[Bug](vec compaction) fix compaction core with sequence column (#10845)

Block reader ignores sequence column but rowset writer should write this column, will core in set_source_column row_num DCHECK. 

Sequence column works across rowsets, so compaction can not discard it and should keeps it altime. 

Co-authored-by: yixiutt <yixiu@selectdb.com>
This commit is contained in:
yixiutt
2022-07-15 20:39:50 +08:00
committed by GitHub
parent 23dab4cbf9
commit 06ecf8bdc5

View File

@ -106,8 +106,14 @@ void BlockReader::_init_agg_state(const ReaderParams& read_params) {
Status BlockReader::init(const ReaderParams& read_params) {
TabletReader::init(read_params);
auto return_column_size =
read_params.origin_return_columns->size() - (_sequence_col_idx != -1 ? 1 : 0);
int32_t return_column_size = 0;
// read sequence column if not reader_query
if (read_params.reader_type != ReaderType::READER_QUERY) {
return_column_size = read_params.origin_return_columns->size();
} else {
return_column_size =
read_params.origin_return_columns->size() - (_sequence_col_idx != -1 ? 1 : 0);
}
_return_columns_loc.resize(read_params.return_columns.size());
for (int i = 0; i < return_column_size; ++i) {
auto cid = read_params.origin_return_columns->at(i);