[test](regression) Enable segment limit pushdown fuzzy#64479
Conversation
### What problem does this PR solve?
Issue Number: None
Related PR: None
Problem Summary: enable_segment_limit_pushdown was marked as fuzzy but omitted from fuzzy initialization because regression cases still pinned removed common expr pushdown variables. Those removed variables no longer control BE pushdown, so fuzzy mode could disable segment limit pushdown for cases that need it. Replace true common expr pushdown settings in regression cases with enable_segment_limit_pushdown=true and enable the fuzzy randomization.
### Release note
None
### Check List (For Author)
- Test: Manual test
- git diff --check
- git diff --cached --check
- rg verification for removed common expr pushdown true settings outside data files
- rg verification for duplicate enable_segment_limit_pushdown=true hints
- Behavior changed: No
- Does this need documentation: No
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
|
run buildall |
|
/review |
There was a problem hiding this comment.
Review opinion: no blocking issues found.
Checkpoint conclusions:
- Goal and proof: The PR enables fuzzy randomization for
enableSegmentLimitPushdownand migrates regression pins from removed/no-openable_common_expr_pushdown*variables toenable_segment_limit_pushdown. The changed suites now set the live session variable, and the patch removes old variable references from regression suites outside expected compatibility/deprecated definitions. - Scope and focus: The functional change is small: one fuzzy-mode assignment plus mechanical regression hint updates. I noticed whitespace-only cleanup in some touched regression files, but it does not affect behavior.
- Concurrency: No new concurrent execution paths, shared mutable state, or locking changes are introduced.
- Lifecycle/static initialization: No new lifecycle ownership, static initialization dependency, or release-order concern is introduced.
- Configuration/session variables: No new variable is added. The existing
enable_segment_limit_pushdownvariable is already declaredfuzzy=trueandneedForward=true; the change now actually randomizes it in fuzzy mode and still forwards it throughTQueryOptionsto BE. - Compatibility: Deprecated thrift fields for the removed common-expression variables and the FE removed-variable no-op handling remain in place, so old client
SETstatements continue to be ignored instead of rejected. - Parallel code paths: The relevant FE-to-BE forwarding path and BE runtime-state consumption path were checked; the variable gates SegmentIterator LIMIT/TopN pushdown, while common-expression pushdown itself is not gated by the removed variables.
- Conditional checks: No new special runtime condition or defensive branch is added.
- Test coverage: This PR changes regression tests rather than adding a new engine feature. The migration covers the existing tests that explicitly pinned the removed variables. I did not run the full regression suite locally in this review.
- Test result files: No
.outfiles are changed. - Observability: No new runtime path requiring additional logs or metrics is introduced.
- Transactions/persistence/data writes: Not applicable; this is session-variable initialization and regression test hint cleanup only.
- FE/BE variable passing:
SessionVariable.toThrift()already forwardsenableSegmentLimitPushdown; BE reads it fromRuntimeState::enable_segment_limit_pushdown()with default-true compatibility. - Performance: Randomizing the variable intentionally exercises both LIMIT-pushdown states in fuzzy mode. No hot-path implementation change is introduced.
- User focus: No additional user-provided review focus was supplied.
Reviewed existing inline review context first; no existing inline comments or replies were present.
TPC-H: Total hot run time: 29262 ms |
TPC-DS: Total hot run time: 168743 ms |
FE UT Coverage ReportIncrement line coverage |
FE Regression Coverage ReportIncrement line coverage |
FE Regression Coverage ReportIncrement line coverage |
|
PR approved by at least one committer and no changes requested. |
|
PR approved by anyone and no changes requested. |
What problem does this PR solve?
Issue Number: None
Related PR: #64285
Problem Summary:
enable_segment_limit_pushdownis the replacement switch for the old common expr pushdown session variables that were removed as no-op FE variables. The variable was already marked fuzzy, but fuzzy initialization still skipped randomizing it because many regression cases explicitly pinned the old variables.This PR migrates regression cases that set
enable_common_expr_pushdownorenable_common_expr_pushdown_for_inverted_indexto useenable_segment_limit_pushdowninstead, including both true and false settings. Cases that had conflicting old settings in oneSET_VARare normalized to a singleenable_segment_limit_pushdownsetting. After the case cleanup, fuzzy mode now randomizesenableSegmentLimitPushdown.Release note
None
Check List (For Author)
git diff --check HEAD^ HEADgit diff --cached --checkrgverification that regression suites no longer reference the old common expr pushdown variables outside data filesrgverification that no regression hint has conflicting or duplicateenable_segment_limit_pushdownsettings