fix: correct inverted_indexed_column_ids behavior (#5586)

* fix: correct `inverted_indexed_column_ids`

* fix: fix unit tests
This commit is contained in:
Weny Xu
2025-02-23 16:17:38 +09:00
committed by GitHub
parent 4f988b5ba9
commit 286f225e50
3 changed files with 20 additions and 34 deletions

View File

@@ -340,27 +340,16 @@ impl RegionMetadata {
}
/// Gets the column ids to be indexed by inverted index.
///
/// If there is no column with inverted index key, it will use primary key columns.
pub fn inverted_indexed_column_ids<'a>(
&self,
ignore_column_ids: impl Iterator<Item = &'a ColumnId>,
) -> HashSet<ColumnId> {
// Default to use primary key columns as inverted index columns.
let pk_as_inverted_index = !self
let mut inverted_index = self
.column_metadatas
.iter()
.any(|c| c.column_schema.has_inverted_index_key());
let mut inverted_index: HashSet<_> = if pk_as_inverted_index {
self.primary_key_columns().map(|c| c.column_id).collect()
} else {
self.column_metadatas
.iter()
.filter(|column| column.column_schema.is_inverted_indexed())
.map(|column| column.column_id)
.collect()
};
.filter(|column| column.column_schema.is_inverted_indexed())
.map(|column| column.column_id)
.collect::<HashSet<_>>();
for ignored in ignore_column_ids {
inverted_index.remove(ignored);