[Fix](row cache) invalid row cache using key encoded without sequence column (#26948)
This commit is contained in:
@ -387,6 +387,7 @@ Status SegmentWriter::append_block_with_partial_content(const vectorized::Block*
|
||||
size_t delta_pos = block_pos - row_pos;
|
||||
size_t segment_pos = segment_start_pos + delta_pos;
|
||||
std::string key = _full_encode_keys(key_columns, delta_pos);
|
||||
_maybe_invalid_row_cache(key);
|
||||
if (have_input_seq_column) {
|
||||
_encode_seq_column(seq_column, delta_pos, &key);
|
||||
}
|
||||
@ -396,7 +397,6 @@ Status SegmentWriter::append_block_with_partial_content(const vectorized::Block*
|
||||
if (!_tablet_schema->has_sequence_col() || have_input_seq_column) {
|
||||
RETURN_IF_ERROR(_primary_key_index_builder->add_item(key));
|
||||
}
|
||||
_maybe_invalid_row_cache(key);
|
||||
|
||||
// mark key with delete sign as deleted.
|
||||
bool have_delete_sign =
|
||||
|
||||
@ -366,6 +366,7 @@ Status VerticalSegmentWriter::_append_block_with_partial_content(RowsInBlock& da
|
||||
size_t delta_pos = block_pos - data.row_pos;
|
||||
size_t segment_pos = segment_start_pos + delta_pos;
|
||||
std::string key = _full_encode_keys(key_columns, delta_pos);
|
||||
_maybe_invalid_row_cache(key);
|
||||
if (have_input_seq_column) {
|
||||
_encode_seq_column(seq_column, delta_pos, &key);
|
||||
}
|
||||
@ -375,7 +376,6 @@ Status VerticalSegmentWriter::_append_block_with_partial_content(RowsInBlock& da
|
||||
if (!_tablet_schema->has_sequence_col() || have_input_seq_column) {
|
||||
RETURN_IF_ERROR(_primary_key_index_builder->add_item(key));
|
||||
}
|
||||
_maybe_invalid_row_cache(key);
|
||||
|
||||
// mark key with delete sign as deleted.
|
||||
bool have_delete_sign =
|
||||
@ -715,6 +715,7 @@ Status VerticalSegmentWriter::write_batch() {
|
||||
std::string last_key;
|
||||
for (size_t pos = 0; pos < data.num_rows; pos++) {
|
||||
std::string key = _full_encode_keys(key_columns, pos);
|
||||
_maybe_invalid_row_cache(key);
|
||||
if (_tablet_schema->has_sequence_col()) {
|
||||
_encode_seq_column(seq_column, pos, &key);
|
||||
}
|
||||
@ -722,7 +723,6 @@ Status VerticalSegmentWriter::write_batch() {
|
||||
<< "found duplicate key or key is not sorted! current key: " << key
|
||||
<< ", last key" << last_key;
|
||||
RETURN_IF_ERROR(_primary_key_index_builder->add_item(key));
|
||||
_maybe_invalid_row_cache(key);
|
||||
last_key = std::move(key);
|
||||
}
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user