diff --git a/be/src/olap/tablet_schema.cpp b/be/src/olap/tablet_schema.cpp index 6f097c9664..d41532cf89 100644 --- a/be/src/olap/tablet_schema.cpp +++ b/be/src/olap/tablet_schema.cpp @@ -1225,7 +1225,7 @@ const TabletColumn& TabletSchema::column(const std::string& field_name) const { std::vector TabletSchema::get_indexes_for_column( const TabletColumn& col) const { std::vector 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 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);