Uh oh!
There was an error while loading. Please reload this page.
[fix](be) Support TIMESTAMPTZ in TopN runtime predicate - #63220
Conversation
When the TopnFilter is emitted, the BE tries to build a RuntimePredicate, but `RuntimePredicate::_init` rejected TYPE_TIMESTAMPTZ even though every piece of downstream machinery (ComparisonPredicate, Field ordering, VTopNPred via generic le/ge) already supports it. Add TYPE_TIMESTAMPTZ to the allow-list so the TopN runtime predicate path works for TYPE_TIMESTAMPTZ.
hello-stephen
commented
May 13, 2026
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
jacktengg
commented
May 13, 2026
/review |
jacktengg
commented
May 13, 2026
run buildall |
There was a problem hiding this comment.
Automated review summary:
No blocking issues found in the actual PR diff. The change extends RuntimePredicate::_init to admit TYPE_TIMESTAMPTZ, and the existing predicate creation path already has TIMESTAMPTZ comparison support, so the implementation matches the stated TopN runtime predicate failure.
Critical checkpoint conclusions:
- Goal/test coverage: The PR fixes TIMESTAMPTZ TopN runtime predicate initialization and adds regression cases that assert
TOPN OPT:is present, plus ASC/DESC, OFFSET, mixed timezone, and NULL ordering coverage. - Scope/minimality: The code change is minimal and localized to runtime predicate type admission; tests are focused on the affected path.
- Concurrency/lifecycle: No new shared state, locking, thread, or lifecycle behavior is introduced.
- Config/compatibility: No new configuration, wire/storage format, or rolling-upgrade compatibility concern found.
- Parallel paths: TIMESTAMPTZ comparison support already exists in predicate creators and storage predicate/index code, so the runtime predicate allow-list was the missing path.
- Data correctness: Added tests cover absolute instant ordering and NULLS FIRST/LAST behavior under TopN runtime predicate generation.
- Observability/performance: No new observability requirement; the change enables an existing optimization for an already-supported type.
User focus: No additional user-provided review focus was present.
hello-stephen
commented
May 13, 2026
TPC-H: Total hot run time: 29512 ms |
hello-stephen
commented
May 13, 2026
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
hello-stephen
commented
May 13, 2026
TPC-H: Total hot run time: 29572 ms |
hello-stephen
commented
May 13, 2026
TPC-DS: Total hot run time: 170443 ms |
Uh oh!
There was an error while loading. Please reload this page.
When the TopnFilter is emitted, the BE tries to build a RuntimePredicate, but `RuntimePredicate::_init` rejected TYPE_TIMESTAMPTZ even though every piece of downstream machinery (ComparisonPredicate, Field ordering, VTopNPred via generic le/ge) already supports it. Add TYPE_TIMESTAMPTZ to the allow-list so the TopN runtime predicate path works for TYPE_TIMESTAMPTZ.
When the TopnFilter is emitted, the BE tries to build a RuntimePredicate, but `RuntimePredicate::_init` rejected TYPE_TIMESTAMPTZ even though every piece of downstream machinery (ComparisonPredicate, Field ordering, VTopNPred via generic le/ge) already supports it. Add TYPE_TIMESTAMPTZ to the allow-list so the TopN runtime predicate path works for TYPE_TIMESTAMPTZ.
When the TopnFilter is emitted, the BE tries to build a RuntimePredicate, but `RuntimePredicate::_init` rejected TYPE_TIMESTAMPTZ even though every piece of downstream machinery (ComparisonPredicate, Field ordering, VTopNPred via generic le/ge) already supports it. Add TYPE_TIMESTAMPTZ to the allow-list so the TopN runtime predicate path works for TYPE_TIMESTAMPTZ.
When the TopnFilter is
emitted, the BE tries to build a RuntimePredicate, but
RuntimePredicate::_initrejected TYPE_TIMESTAMPTZ even though every piece of downstream machinery (ComparisonPredicate, Field ordering, VTopNPred via generic le/ge) already supports it.Add TYPE_TIMESTAMPTZ to the allow-list so the TopN runtime predicate path works for TYPE_TIMESTAMPTZ.
What problem does this PR solve?
Issue Number: close #xxx
Related PR: #xxx
Problem Summary:
Release note
None
Check List (For Author)
Test
Behavior changed:
Does this need documentation?
Check List (For Reviewer who merge this PR)