This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-4.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-4.1 by this push:
new 817cd076a37 [fix](regression) stabilize branch-4.1 colocate column
order test (#65231)
817cd076a37 is described below
commit 817cd076a3779e015367b7f54bced580aa1bf8b8
Author: shuke <[email protected]>
AuthorDate: Mon Jul 13 14:05:11 2026 +0800
[fix](regression) stabilize branch-4.1 colocate column order test (#65231)
## Proposed changes
Backport the final master-side stabilization for
`test_colocate_join_of_column_order` to branch-4.1.
Master PR #64940 fixed this case by pinning
`parallel_pipeline_task_num=1` in the three-table colocate explain
query. Branch-4.1 still had the earlier stats-injection workaround from
#64613, but later failure evidence showed stats pinning was not the root
cause: the flaky plan shape is driven by bucket-shuffle downgrade under
higher runtime parallelism.
This patch removes the obsolete stats injection and pins
`parallel_pipeline_task_num=1` for the target explain SQL.
Related to #64960.
Follow-up/backport of #64940.
## Testing
- [x] `git diff --check`
- [ ] Not run regression locally; requires Cloud P0-compatible
regression environment.
---
.../test_colocate_join_of_column_order.groovy | 14 +-------------
1 file changed, 1 insertion(+), 13 deletions(-)
diff --git
a/regression-test/suites/correctness_p0/test_colocate_join_of_column_order.groovy
b/regression-test/suites/correctness_p0/test_colocate_join_of_column_order.groovy
index c62ba0aff88..2561325c4fc 100644
---
a/regression-test/suites/correctness_p0/test_colocate_join_of_column_order.groovy
+++
b/regression-test/suites/correctness_p0/test_colocate_join_of_column_order.groovy
@@ -101,21 +101,9 @@ suite("test_colocate_join_of_column_order") {
sql """insert into test_colocate_join_of_column_order_tb values(1,1);"""
sql """insert into test_colocate_join_of_column_order_tc values(1,1);"""
- // Pin column statistics so the cost-based COLOCATE-vs-PARTITIONED choice
is deterministic.
- // Freshly-created tables have rowCountReported=false (only the async
CloudTabletStatMgr sets it,
- // up to a full tick after INSERT); with unreliable stats the optimizer
can fall back to a
- // PARTITIONED shuffle join, which makes the COLOCATE assertion below
flaky. Injecting stats
- // (userInjected) bypasses the async-report dependency. See
nereids_p0/join/initial_join_order.
- sql """alter table test_colocate_join_of_column_order_ta modify column c1
set stats ('row_count'='1', 'ndv'='1', 'num_nulls'='0', 'min_value'='1',
'max_value'='1')"""
- sql """alter table test_colocate_join_of_column_order_ta modify column c2
set stats ('row_count'='1', 'ndv'='1', 'num_nulls'='0', 'min_value'='1',
'max_value'='1')"""
- sql """alter table test_colocate_join_of_column_order_tb modify column c1
set stats ('row_count'='1', 'ndv'='1', 'num_nulls'='0', 'min_value'='1',
'max_value'='1')"""
- sql """alter table test_colocate_join_of_column_order_tb modify column c2
set stats ('row_count'='1', 'ndv'='1', 'num_nulls'='0', 'min_value'='1',
'max_value'='1')"""
- sql """alter table test_colocate_join_of_column_order_tc modify column c1
set stats ('row_count'='1', 'ndv'='1', 'num_nulls'='0', 'min_value'='1',
'max_value'='1')"""
- sql """alter table test_colocate_join_of_column_order_tc modify column c2
set stats ('row_count'='1', 'ndv'='1', 'num_nulls'='0', 'min_value'='1',
'max_value'='1')"""
-
waitForColocateGroupStable("group_column_order3")
explain {
- sql("""select /*+ set_var(disable_join_reorder=true) */ * from
test_colocate_join_of_column_order_ta join [shuffle] (select cast((c2 + 1) as
bigint) c2 from test_colocate_join_of_column_order_tb)
test_colocate_join_of_column_order_tb on
test_colocate_join_of_column_order_ta.c1 =
test_colocate_join_of_column_order_tb.c2 join [shuffle]
test_colocate_join_of_column_order_tc on
test_colocate_join_of_column_order_tb.c2 =
test_colocate_join_of_column_order_tc.c1;""");
+ sql("""select /*+ set_var(disable_join_reorder=true,
parallel_pipeline_task_num=1) */ * from test_colocate_join_of_column_order_ta
join [shuffle] (select cast((c2 + 1) as bigint) c2 from
test_colocate_join_of_column_order_tb) test_colocate_join_of_column_order_tb
on test_colocate_join_of_column_order_ta.c1 =
test_colocate_join_of_column_order_tb.c2 join [shuffle]
test_colocate_join_of_column_order_tc on
test_colocate_join_of_column_order_tb.c2 = test_colocate_join_of_column_orde
[...]
contains "COLOCATE"
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]