[Fix](row cache) invalid row cache using key encoded without sequence column (#26948)

This commit is contained in:
lihangyu
2023-11-14 16:51:23 +08:00
committed by GitHub
parent bfa50f08c1
commit a2ae225c77
2 changed files with 3 additions and 3 deletions

View File

@ -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 =

View File

@ -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 {