diff options
author | David Rowley <drowley@postgresql.org> | 2023-01-09 17:15:08 +1300 |
---|---|---|
committer | David Rowley <drowley@postgresql.org> | 2023-01-09 17:15:08 +1300 |
commit | 3c569049b7b502bb4952483d19ce622ff0af5fd6 (patch) | |
tree | 7ce433043ae025e93ed62e5a763d1ed01942f0c4 /src/test/regress/expected/join.out | |
parent | 216a784829c2c5f03ab0c43e009126cbb819e9b2 (diff) | |
download | postgresql-3c569049b7b502bb4952483d19ce622ff0af5fd6.tar.gz |
Allow left join removals and unique joins on partitioned tables
This allows left join removals and unique joins to work with partitioned
tables. The planner just lacked sufficient proofs that a given join
would not cause any row duplication. Unique indexes currently serve as
that proof, so have get_relation_info() populate the indexlist for
partitioned tables too.
Author: Arne Roland
Reviewed-by: Alvaro Herrera, Zhihong Yu, Amit Langote, David Rowley
Discussion: https://postgr.es/m/c3b2408b7a39433b8230bbcd02e9f302@index.de
Diffstat (limited to 'src/test/regress/expected/join.out')
-rw-r--r-- | src/test/regress/expected/join.out | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/test/regress/expected/join.out b/src/test/regress/expected/join.out index 3ddea3b683..c2b85d2795 100644 --- a/src/test/regress/expected/join.out +++ b/src/test/regress/expected/join.out @@ -4860,6 +4860,16 @@ select 1 from (select a.id FROM a left join b on a.b_id = b.id) q, Filter: (a.id = i) (4 rows) +CREATE TEMP TABLE parted_b (id int PRIMARY KEY) partition by range(id); +CREATE TEMP TABLE parted_b1 partition of parted_b for values from (0) to (10); +-- test join removals on a partitioned table +explain (costs off) +select a.* from a left join parted_b pb on a.b_id = pb.id; + QUERY PLAN +--------------- + Seq Scan on a +(1 row) + rollback; create temp table parent (k int primary key, pd int); create temp table child (k int unique, cd int); |