diff options
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/regress/expected/join.out | 15 | ||||
| -rw-r--r-- | src/test/regress/sql/join.sql | 7 |
2 files changed, 22 insertions, 0 deletions
diff --git a/src/test/regress/expected/join.out b/src/test/regress/expected/join.out index 8d7bd937a77..c520839bf7d 100644 --- a/src/test/regress/expected/join.out +++ b/src/test/regress/expected/join.out @@ -5150,6 +5150,21 @@ SELECT * FROM 1 | 4567890123456789 | -4567890123456789 | 4567890123456789 (5 rows) +-- join removal bug #17769: can't remove if there's a pushed-down reference +EXPLAIN (COSTS OFF) +SELECT q2 FROM + (SELECT * + FROM int8_tbl LEFT JOIN innertab ON q2 = id) ss + WHERE COALESCE(dat1, 0) = q1; + QUERY PLAN +---------------------------------------------------------------- + Nested Loop Left Join + Filter: (COALESCE(innertab.dat1, '0'::bigint) = int8_tbl.q1) + -> Seq Scan on int8_tbl + -> Index Scan using innertab_pkey on innertab + Index Cond: (id = int8_tbl.q2) +(5 rows) + rollback; -- another join removal bug: we must clean up correctly when removing a PHV begin; diff --git a/src/test/regress/sql/join.sql b/src/test/regress/sql/join.sql index 9f55147be78..b0e8d559cdb 100644 --- a/src/test/regress/sql/join.sql +++ b/src/test/regress/sql/join.sql @@ -1860,6 +1860,13 @@ SELECT * FROM FROM int8_tbl LEFT JOIN innertab ON q2 = id) ss2 ON true; +-- join removal bug #17769: can't remove if there's a pushed-down reference +EXPLAIN (COSTS OFF) +SELECT q2 FROM + (SELECT * + FROM int8_tbl LEFT JOIN innertab ON q2 = id) ss + WHERE COALESCE(dat1, 0) = q1; + rollback; -- another join removal bug: we must clean up correctly when removing a PHV |
