This is an automated email from the ASF dual-hosted git repository. avamingli pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/cloudberry.git
commit 1c45f0c8e2daa083cde1142bd188f685f028868d Author: Zhang Mingli <[email protected]> AuthorDate: Tue Oct 28 17:05:33 2025 +0800 fix unstable cte_prune again --- src/test/regress/expected/cte_prune.out | 1 + src/test/regress/expected/cte_prune_optimizer.out | 11 ++++++----- src/test/regress/sql/cte_prune.sql | 1 + 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/test/regress/expected/cte_prune.out b/src/test/regress/expected/cte_prune.out index bdda6b89c9c..84f6f0b7d10 100644 --- a/src/test/regress/expected/cte_prune.out +++ b/src/test/regress/expected/cte_prune.out @@ -8,6 +8,7 @@ insert into t1 values(generate_series(1, 10), generate_series(11, 20), generate_ analyze t1; create table t2(v1 int, v2 int, v3 int); insert into t2 values(generate_series(0, 100), generate_series(100, 200), generate_series(200, 300)); +analyze t2; -- should pruned both seq scan and shared scan explain verbose with c1 as (select v1, v2, v3 from t1) select c11.v1 from c1 as c11 left join c1 as c22 on c11.v1=c22.v1 where c11.v1 < 5; QUERY PLAN diff --git a/src/test/regress/expected/cte_prune_optimizer.out b/src/test/regress/expected/cte_prune_optimizer.out index d0573b3f2d4..e7f2339a0eb 100644 --- a/src/test/regress/expected/cte_prune_optimizer.out +++ b/src/test/regress/expected/cte_prune_optimizer.out @@ -12,6 +12,7 @@ create table t2(v1 int, v2 int, v3 int); NOTICE: Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'v1' as the Apache Cloudberry data distribution key for this table. HINT: The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew. insert into t2 values(generate_series(0, 100), generate_series(100, 200), generate_series(200, 300)); +analyze t2; -- should pruned both seq scan and shared scan explain verbose with c1 as (select v1, v2, v3 from t1) select c11.v1 from c1 as c11 left join c1 as c22 on c11.v1=c22.v1 where c11.v1 < 5; QUERY PLAN @@ -867,12 +868,12 @@ select c11.v1 from c1 as c11 left join c1 as c22 on c11.v1=c22.v1; -> Hash Join (cost=0.00..862.00 rows=1 width=4) Output: t1.v1 Hash Cond: (t1.v1 = t2.v1) - -> Seq Scan on cte_prune.t1 (cost=0.00..431.00 rows=4 width=4) - Output: t1.v1 - -> Hash (cost=431.00..431.00 rows=1 width=4) + -> Seq Scan on cte_prune.t2 (cost=0.00..431.00 rows=4 width=4) Output: t2.v1 - -> Seq Scan on cte_prune.t2 (cost=0.00..431.00 rows=1 width=4) - Output: t2.v1 + -> Hash (cost=431.00..431.00 rows=1 width=4) + Output: t1.v1 + -> Seq Scan on cte_prune.t1 (cost=0.00..431.00 rows=1 width=4) + Output: t1.v1 -> Hash Left Join (cost=0.00..862.00 rows=1 width=4) Output: share0_ref3.v1 Hash Cond: (share0_ref3.v1 = share0_ref2.v1) diff --git a/src/test/regress/sql/cte_prune.sql b/src/test/regress/sql/cte_prune.sql index ae3c7671f11..2083a4b7e10 100644 --- a/src/test/regress/sql/cte_prune.sql +++ b/src/test/regress/sql/cte_prune.sql @@ -10,6 +10,7 @@ analyze t1; create table t2(v1 int, v2 int, v3 int); insert into t2 values(generate_series(0, 100), generate_series(100, 200), generate_series(200, 300)); +analyze t2; -- should pruned both seq scan and shared scan explain verbose with c1 as (select v1, v2, v3 from t1) select c11.v1 from c1 as c11 left join c1 as c22 on c11.v1=c22.v1 where c11.v1 < 5; --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
