diff options
| author | Robert Haas <rhaas@postgresql.org> | 2017-09-20 10:20:10 -0400 |
|---|---|---|
| committer | Robert Haas <rhaas@postgresql.org> | 2017-09-20 10:20:10 -0400 |
| commit | 57eebca03a9eb61eb18f8ea9db94775653f797d1 (patch) | |
| tree | c1a9834369b762508c1c77a6253ad23a66a9159e /src/test | |
| parent | 7f3a3312abf34ea7e899046e326775612802764b (diff) | |
Fix create_lateral_join_info to handle dead relations properly.
Commit 0a480502b092195a9b25a2f0f199a21d592a9c57 broke it.
Report by Andreas Seltenreich. Fix by Ashutosh Bapat.
Discussion: http://postgr.es/m/874ls2vrnx.fsf@ansel.ydns.eu
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/regress/expected/join.out | 12 | ||||
| -rw-r--r-- | src/test/regress/sql/join.sql | 5 |
2 files changed, 17 insertions, 0 deletions
diff --git a/src/test/regress/expected/join.out b/src/test/regress/expected/join.out index 06a84e8e1c7..f47449b1c44 100644 --- a/src/test/regress/expected/join.out +++ b/src/test/regress/expected/join.out @@ -4060,6 +4060,18 @@ select i8.* from int8_tbl i8 left join (select f1 from int4_tbl group by f1) i4 Seq Scan on int8_tbl i8 (1 row) +-- check join removal with lateral references +explain (costs off) +select 1 from (select a.id FROM a left join b on a.b_id = b.id) q, + lateral generate_series(1, q.id) gs(i) where q.id = gs.i; + QUERY PLAN +------------------------------------------- + Nested Loop + -> Seq Scan on a + -> Function Scan on generate_series gs + Filter: (a.id = i) +(4 rows) + rollback; create temp table parent (k int primary key, pd int); create temp table child (k int unique, cd int); diff --git a/src/test/regress/sql/join.sql b/src/test/regress/sql/join.sql index 8b21838e927..d847d536533 100644 --- a/src/test/regress/sql/join.sql +++ b/src/test/regress/sql/join.sql @@ -1336,6 +1336,11 @@ explain (costs off) select i8.* from int8_tbl i8 left join (select f1 from int4_tbl group by f1) i4 on i8.q1 = i4.f1; +-- check join removal with lateral references +explain (costs off) +select 1 from (select a.id FROM a left join b on a.b_id = b.id) q, + lateral generate_series(1, q.id) gs(i) where q.id = gs.i; + rollback; create temp table parent (k int primary key, pd int); |
