Skip to content

[core] Decide full-text row filters from data when no scalar index can evaluate them - #10381

Merged
JingsongLi merged 1 commit into
apache:masterfrom
thswlsqls:fix/core-full-text-filter-declined-scalar-index
Oct 5, 2026
Merged

JingsongLi merged 1 commit into
apache:masterfrom
thswlsqls:fix/core-full-text-filter-declined-scalar-index

Conversation

@thswlsqls

Copy link
Copy Markdown
Contributor

Purpose

fix #10380

  • When every scalar index covering the filter columns declines the predicate (e.g. FM on =), DataEvolutionFullTextRead#matchedRows dropped the covered rows, so full/detail returned nothing.
  • In full/detail these rows are now decided by reading their filter columns, as full-text.mdx documents for unindexed rows and fm.mdx promises for declined predicates.
  • Mirrors the runtime-decline fallback of DataEvolutionGlobalIndexScanner ([core] Support composite BTree equality queries for data evolution tables #10339).
  • Default fast is unchanged; extra reads happen only in opt-in full/detail and only for declined rows, the same cost as an unindexed column.

Tests

  • Added FullTextSearchBuilderTest#testFullTextSearchReadsFilterColumnsWhenScalarIndexDeclinesFilter (fast/full/detail). Without the fix, full/detail fail (expected [5], got []); with it, 3/3 pass.
  • mvn -pl paimon-core clean install (JDK 11): all tests pass, including FullTextSearchBuilderTest 57/57; PostgresqlCatalogTest was skipped (needs Docker).

…n evaluate them

When every scalar global index covering the filter columns declines the
predicate at runtime (for example an FM index on an equality filter),
DataEvolutionFullTextRead#matchedRows dropped the index-covered rows, so
full-text search with a row filter returned nothing in search mode full
or detail. Decide those rows by reading their filter columns, like rows
whose filter columns have no index. Fast mode is unchanged.

Generated-by: Claude Code
@JingsongLi

Copy link
Copy Markdown
Contributor

+1

@JingsongLi
JingsongLi merged commit 38598f6 into apache:master Oct 5, 2026
16 of 18 checks passed
@thswlsqls
thswlsqls deleted the fix/core-full-text-filter-declined-scalar-index branch October 6, 2026 04:02
XiaoHongbo-Hope pushed a commit that referenced this pull request Oct 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] Full-text search with a row filter returns no rows in full mode when the filter column's scalar index declines the predicate

2 participants