diff options
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/regress/expected/inherit.out | 58 | ||||
| -rw-r--r-- | src/test/regress/sql/inherit.sql | 31 |
2 files changed, 89 insertions, 0 deletions
diff --git a/src/test/regress/expected/inherit.out b/src/test/regress/expected/inherit.out index 0948974d9ad..3e2ab9ac5b8 100644 --- a/src/test/regress/expected/inherit.out +++ b/src/test/regress/expected/inherit.out @@ -1242,3 +1242,61 @@ NOTICE: drop cascades to 3 other objects DETAIL: drop cascades to table matest1 drop cascades to table matest2 drop cascades to table matest3 +-- +-- Test merge-append for UNION ALL append relations +-- Check handling of duplicated, constant, or volatile targetlist items +-- +set enable_seqscan = off; +set enable_indexscan = on; +set enable_bitmapscan = off; +explain (costs off) +SELECT thousand, tenthous FROM tenk1 +UNION ALL +SELECT thousand, thousand FROM tenk1 +ORDER BY thousand, tenthous; + QUERY PLAN +----------------------------------------------------------------------- + Result + -> Merge Append + Sort Key: public.tenk1.thousand, public.tenk1.tenthous + -> Index Only Scan using tenk1_thous_tenthous on tenk1 + -> Sort + Sort Key: public.tenk1.thousand, public.tenk1.thousand + -> Index Only Scan using tenk1_thous_tenthous on tenk1 +(7 rows) + +explain (costs off) +SELECT thousand, tenthous FROM tenk1 +UNION ALL +SELECT 42, 42 FROM tenk1 +ORDER BY thousand, tenthous; + QUERY PLAN +----------------------------------------------------------------------- + Result + -> Merge Append + Sort Key: public.tenk1.thousand, public.tenk1.tenthous + -> Index Only Scan using tenk1_thous_tenthous on tenk1 + -> Sort + Sort Key: (42), (42) + -> Index Only Scan using tenk1_thous_tenthous on tenk1 +(7 rows) + +explain (costs off) +SELECT thousand, tenthous FROM tenk1 +UNION ALL +SELECT thousand, random()::integer FROM tenk1 +ORDER BY thousand, tenthous; + QUERY PLAN +----------------------------------------------------------------------- + Result + -> Merge Append + Sort Key: public.tenk1.thousand, public.tenk1.tenthous + -> Index Only Scan using tenk1_thous_tenthous on tenk1 + -> Sort + Sort Key: public.tenk1.thousand, ((random())::integer) + -> Index Only Scan using tenk1_thous_tenthous on tenk1 +(7 rows) + +reset enable_seqscan; +reset enable_indexscan; +reset enable_bitmapscan; diff --git a/src/test/regress/sql/inherit.sql b/src/test/regress/sql/inherit.sql index 3087a14b729..6e5a1d1c8ee 100644 --- a/src/test/regress/sql/inherit.sql +++ b/src/test/regress/sql/inherit.sql @@ -406,3 +406,34 @@ select * from matest0 order by 1-id; reset enable_seqscan; drop table matest0 cascade; + +-- +-- Test merge-append for UNION ALL append relations +-- Check handling of duplicated, constant, or volatile targetlist items +-- + +set enable_seqscan = off; +set enable_indexscan = on; +set enable_bitmapscan = off; + +explain (costs off) +SELECT thousand, tenthous FROM tenk1 +UNION ALL +SELECT thousand, thousand FROM tenk1 +ORDER BY thousand, tenthous; + +explain (costs off) +SELECT thousand, tenthous FROM tenk1 +UNION ALL +SELECT 42, 42 FROM tenk1 +ORDER BY thousand, tenthous; + +explain (costs off) +SELECT thousand, tenthous FROM tenk1 +UNION ALL +SELECT thousand, random()::integer FROM tenk1 +ORDER BY thousand, tenthous; + +reset enable_seqscan; +reset enable_indexscan; +reset enable_bitmapscan; |
