[Fix](Variant) fix inverted index lost due to wrong column unique id (#31992)

This commit is contained in:
lihangyu
2024-03-13 17:31:14 +08:00
committed by yiguolei
parent 1db57c0667
commit 554f13ca12

View File

@ -1225,7 +1225,7 @@ const TabletColumn& TabletSchema::column(const std::string& field_name) const {
std::vector<const TabletIndex*> TabletSchema::get_indexes_for_column(
const TabletColumn& col) const {
std::vector<const TabletIndex*> indexes_for_column;
int32_t col_unique_id = col.unique_id();
int32_t col_unique_id = col.is_extracted_column() ? col.parent_unique_id() : col.unique_id();
const std::string& suffix_path =
col.has_path_info() ? escape_for_path_name(col.path_info_ptr()->get_path()) : "";
// TODO use more efficient impl
@ -1242,7 +1242,7 @@ std::vector<const TabletIndex*> TabletSchema::get_indexes_for_column(
bool TabletSchema::has_inverted_index(const TabletColumn& col) const {
// TODO use more efficient impl
int32_t col_unique_id = col.unique_id();
int32_t col_unique_id = col.is_extracted_column() ? col.parent_unique_id() : col.unique_id();
const std::string& suffix_path =
col.has_path_info() ? escape_for_path_name(col.path_info_ptr()->get_path()) : "";
for (size_t i = 0; i < _indexes.size(); i++) {
@ -1299,7 +1299,7 @@ const TabletIndex* TabletSchema::get_inverted_index(int32_t col_unique_id,
const TabletIndex* TabletSchema::get_inverted_index(const TabletColumn& col) const {
// TODO use more efficient impl
// Use parent id if unique not assigned, this could happend when accessing subcolumns of variants
int32_t col_unique_id = col.unique_id() < 0 ? col.parent_unique_id() : col.unique_id();
int32_t col_unique_id = col.is_extracted_column() ? col.parent_unique_id() : col.unique_id();
const std::string& suffix_path =
col.has_path_info() ? escape_for_path_name(col.path_info_ptr()->get_path()) : "";
return get_inverted_index(col_unique_id, suffix_path);