Skip to content

[feature](be) Build table filters from conjuncts#63733

Merged
Gabriel39 merged 2 commits into
apache:refact_reader_branchfrom
Gabriel39:refactor_0527
May 27, 2026
Merged

[feature](be) Build table filters from conjuncts#63733
Gabriel39 merged 2 commits into
apache:refact_reader_branchfrom
Gabriel39:refactor_0527

Conversation

@Gabriel39
Copy link
Copy Markdown
Contributor

What problem does this PR solve?

Issue Number: close #xxx

Related PR: #xxx

Problem Summary:

Release note

None

Check List (For Author)

  • Test

    • Regression test
    • Unit Test
    • Manual test (add detailed scripts or steps below)
    • No need to test or manual test. Explain why:
      • This is a refactor/code format and no logic has been changed.
      • Previous test can cover this change.
      • No code files have been changed.
      • Other reason
  • Behavior changed:

    • No.
    • Yes.
  • Does this need documentation?

    • No.
    • Yes.

Check List (For Reviewer who merge this PR)

  • Confirm the release note
  • Confirm test cases
  • Confirm document
  • Add branch pick label

### What problem does this PR solve?

Issue Number: close #xxx

Related PR: #xxx

Problem Summary: TableReader stored TableReadOptions::conjuncts but did not convert them into _table_filters before ColumnMapper created FileScanRequest. This adds conservative single-slot conjunct extraction during open_reader(), prepares/opens the generated filter contexts, and covers the localized Parquet row filtering path in TableReader tests.

### Release note

None

### Check List (For Author)

- Test: Manual test
    - Ran git diff --check. ./run-be-ut.sh --run '--filter=TableReaderTest.*' could not run because JAVA_HOME points to JDK 11 and JDK_17 is not set. build-support/check-format.sh could not run because clang-format is not installed.
- Behavior changed: Yes. TableReader now localizes single-slot table conjuncts into FileScanRequest local filters during reader open.
- Does this need documentation: No
@hello-stephen
Copy link
Copy Markdown
Contributor

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR.

Please clearly describe your PR:

  1. What problem was fixed (it's best to include specific error reporting information). How it was fixed.
  2. Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
  3. What features were added. Why was this function added?
  4. Which code was refactored and why was this part of the code refactored?
  5. Which functions were optimized and what is the difference before and after the optimization?

### What problem does this PR solve?

Issue Number: close #xxx

Related PR: #xxx

Problem Summary: TableReader builds table filters from table-level conjuncts, but the conjunct slot refs use table block positions. Passing them directly to ParquetReader is incorrect because ParquetReader evaluates filters on a file-local block with different column positions. This rewrites localized conjunct slot refs to file-local positions and opens those localized filter expressions after FileScanRequest creation.

### Release note

None

### Check List (For Author)

- Test: Unit Test
    - git diff --check
    - build-support/check-format.sh --files be/src/format/reader/column_mapper.cpp be/src/format/reader/table_reader.cpp be/src/format/reader/table_reader.h be/test/format/reader/table_reader_test.cpp (blocked: clang-format not found)
    - ./run-be-ut.sh --run '--filter=TableReaderTest.*' (blocked: JAVA_HOME points to JDK 11 and JDK_17 is not set)
- Behavior changed: No
- Does this need documentation: No
@Gabriel39 Gabriel39 changed the title Refactor 0527 [feature](be) Build table filters from conjuncts May 27, 2026
@Gabriel39 Gabriel39 merged commit f19f78a into apache:refact_reader_branch May 27, 2026
10 of 13 checks passed
Gabriel39 added a commit to Gabriel39/incubator-doris that referenced this pull request May 27, 2026
Gabriel39 added a commit to Gabriel39/incubator-doris that referenced this pull request May 27, 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.

2 participants