[core][flink][spark][python][vector] Support vector indexes on DV tables - #8930
[core][flink][spark][python][vector] Support vector indexes on DV tables#8930XiaoHongbo-Hope wants to merge 2 commits into
Conversation
ef31d32 to
5b03c02
Compare
5b03c02 to
5cb2e47
Compare
|
Thanks for working on this. I think this PR needs two changes before merge:
I consider both items part of this PR rather than follow-ups. The |
9ea4129 to
3b1a6ab
Compare
Allow deletion-vector tables to build vector global indexes whose readers can filter deleted row IDs. Opt in both Lumina and every paimon-vector native index factory while keeping other generic index types rejected.\n\nPin Spark and PyPaimon vector reads to the snapshot used for planning. Thread that snapshot through live-row filtering, scalar-index filtering, and raw fallback reads so materialized-deletion compaction cannot mix old index plans with new row-id or DV state.\n\nRefresh global-index deletions on every materialized-compaction commit attempt so indexes committed after preparation are still removed.
3b1a6ab to
6363ee8
Compare
Thanks for the detailed review. Both requested changes are addressed in 6363ee8: |
Purpose
Allow building vector global indexes on deletion-vector (DV) enabled tables. Generic global-index building previously rejected every index type on DV tables, even though the vector read paths can filter DV-deleted rows and safely build over the physical-row superset.
Changes
GlobalIndexerFactory.supportsDeletionVectors()capability, defaulting tofalse.paimon-vectornative index types:ivf-flat,ivf-pq,ivf-sq,ivf-rq, anddiskann.Related merged fixes
This PR completes snapshot pinning for Spark and PyPaimon and closes the remaining preparation-to-commit race.
Tests