diff options
Diffstat (limited to 'src/test/regress/sql/partition_prune.sql')
-rw-r--r-- | src/test/regress/sql/partition_prune.sql | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/test/regress/sql/partition_prune.sql b/src/test/regress/sql/partition_prune.sql index eca1a7c5ac9..dc327caffd0 100644 --- a/src/test/regress/sql/partition_prune.sql +++ b/src/test/regress/sql/partition_prune.sql @@ -548,11 +548,39 @@ select * from (select * from ab where a = 1 union all select * from ab) ab where explain (analyze, costs off, summary off, timing off) select * from (select * from ab where a = 1 union all (values(10,5)) union all select * from ab) ab where b = (select 1); +-- Another UNION ALL test, but containing a mix of exec init and exec run-time pruning. +create table xy_1 (x int, y int); +insert into xy_1 values(100,-10); + +set enable_bitmapscan = 0; +set enable_indexscan = 0; +set plan_cache_mode = 'force_generic_plan'; + +prepare ab_q6 as +select * from ( + select tableoid::regclass,a,b from ab +union all + select tableoid::regclass,x,y from xy_1 +union all + select tableoid::regclass,a,b from ab +) ab where a = $1 and b = (select -10); + +-- Ensure the xy_1 subplan is not pruned. +explain (analyze, costs off, summary off, timing off) execute ab_q6(1); + +-- Ensure we see just the xy_1 row. +execute ab_q6(100); + +reset enable_bitmapscan; +reset enable_indexscan; +reset plan_cache_mode; + deallocate ab_q1; deallocate ab_q2; deallocate ab_q3; deallocate ab_q4; deallocate ab_q5; +deallocate ab_q6; -- UPDATE on a partition subtree has been seen to have problems. insert into ab values (1,2); |