JingsongLi commented on code in PR #8930:
URL: https://github.com/apache/paimon/pull/8930#discussion_r3712077893
##########
paimon-flink/paimon-flink-common/src/main/java/org/apache/paimon/flink/globalindex/GenericGlobalIndexBuilder.java:
##########
@@ -67,13 +67,6 @@ public List<ManifestEntry> scan() {
+ "but table '%s' has bucket = %d.",
table.name(),
table.coreOptions().bucket());
- checkArgument(
- !table.coreOptions().deletionVectorsEnabled(),
- "Generic global index does not support tables with deletion
vectors enabled. "
- + "Table '%s' has 'deletion-vectors.enabled' = true,
which may cause "
- + "deleted rows to be indexed.",
- table.name());
-
scanSnapshot = table.snapshotManager().latestSnapshot();
Review Comment:
Removing the DV guard here enables every generic index type, including
`full-text` and `es-index`, but those read paths are not snapshot-consistent
yet. `FullTextRead.read(Plan)` discards the plan context, and
`DataEvolutionFullTextRead` computes live rows from the latest snapshot. If
materialized-DV compaction commits between planning at S1 and reading at S2,
the S1 index row IDs are intersected with S2 live rows, which can produce
missing or empty top-K results. Please keep non-vector indexes gated (or
restore an explicit vector-capability check) until full-text plans carry their
snapshot and both live-row and raw fallback reads are pinned to it. A plan ->
materialized compaction -> read regression test would cover this race.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]