Skip to content

[lake] Reset lake filters for each pushdown#3414

Open
QuakeWang wants to merge 1 commit into
apache:mainfrom
QuakeWang:paimon-filter-reset
Open

[lake] Reset lake filters for each pushdown#3414
QuakeWang wants to merge 1 commit into
apache:mainfrom
QuakeWang:paimon-filter-reset

Conversation

@QuakeWang
Copy link
Copy Markdown

Purpose

Lake filter pushdown state was kept on mutable lake source instances. If a later pushdown had no convertible lake predicates, the old predicate could remain active and incorrectly filter subsequent lake reads.

Brief change log

  • Reset Paimon and Iceberg lake filters on every withFilters call.
  • Ensure Flink clears lake filters even when no lake predicates are convertible.
  • Recreate and replay lake pushdown state when copying FlinkTableSource, avoiding shared mutable lake source state between copies.
  • Add regression tests for Paimon, Iceberg, and Flink lake source copy isolation.

Tests

  • ./mvnw -pl fluss-flink/fluss-flink-common -am -Dtest='FlinkTableSourceFilterPushDownTest$LakeSourcePushDownTests' -DfailIfNoTests=false -Dsurefire.failIfNoSpecifiedTests=false test
  • ./mvnw -pl fluss-flink/fluss-flink-common,fluss-lake/fluss-lake-paimon,fluss-lake/fluss-lake-iceberg -am -Dtest=FlinkTableSourceFilterPushDownTest,PaimonLakeSourceTest,IcebergLakeSourceTest -DfailIfNoTests=false -Dsurefire.failIfNoSpecifiedTests=false test

API and Format

Documentation

Lake sources kept filter pushdown predicates as mutable instance state. When a later pushdown had no convertible predicates, the old lake predicate could still be used by split planning and reading.

Reset Paimon and Iceberg filters on each pushdown, clear lake filters from Flink when no lake predicate is convertible, and replay lake pushdown state onto an independent lake source when Flink copies the table source.

Add regression coverage for Paimon, Iceberg, and Flink lake source copy isolation.
@QuakeWang
Copy link
Copy Markdown
Author

@luoyuxia PTAL, Thanks : )

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.

1 participant