Tags: infiniflow/infinity
Tags
Fix: Multiple Memory Indexers Cause BM25 Calculation Error (#3340) Close #3339 ### Summary `ColumnIndexReader` may contain multiple memory indexers (one per segment). However, `FullTextColumnLengthReader::GetDocTermCount()` was only using a single `memory_indexer_` variable, causing `total_df_ < doc_freq_` crash during BM25 calculation. ### Reproduction Steps 1. Set `optimize_interval` to 3600s 2. Run `TestMultipleIndexTypesImport` with snapshot restore enabled 3. The test will crash with `total_df_ < doc_freq_` error ### Expected behavior _No response_ ### Additional information `UnrecoverableError(fmt::format("total_df_ {} is less than doc_freq_ {}", total_df_, doc_freq_));`
Fix PhysicalFilter::Execute (#3342) ### What problem does this PR solve? When table is empty, prev_op_state->data_block_array_.empty() is true in PhysicalFilter, we should return empty result instead of crash. ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue)
PreviousNext