aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2023-06-20 10:29:57 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2023-06-20 10:29:57 -0400
commitefeb12ef0bfef0b5aa966a56bb4dbb1f936bda0c (patch)
tree0c81a184f93fcb91be81707a56ea75883d718c4a /src/test
parent0655c03ef9cc6154b0b209059e758863dcf4e6b0 (diff)
downloadpostgresql-efeb12ef0bfef0b5aa966a56bb4dbb1f936bda0c.tar.gz
postgresql-efeb12ef0bfef0b5aa966a56bb4dbb1f936bda0c.zip
Don't include outer join relids in lateral_relids bitmapsets.
This avoids an assertion failure when outer joins are rearranged per identity 3. Listing only the baserels from a PlaceHolderVar's ph_lateral set should be enough to ensure that the required values are available when we need to compute the PHV --- it's what we did before inventing nullingrel sets, after all. It's a bit unsatisfying; but with beta2 hard upon us, there's not time to look for an aesthetically cleaner fix. Richard Guo and Tom Lane Discussion: https://postgr.es/m/CAMbWs48Jcw-NvnxT23WiHP324wG44DvzcH1j4hc0Zn+3sR9cfg@mail.gmail.com
Diffstat (limited to 'src/test')
-rw-r--r--src/test/regress/expected/join.out17
-rw-r--r--src/test/regress/sql/join.sql7
2 files changed, 24 insertions, 0 deletions
diff --git a/src/test/regress/expected/join.out b/src/test/regress/expected/join.out
index 35476a0d126..cd1163d039b 100644
--- a/src/test/regress/expected/join.out
+++ b/src/test/regress/expected/join.out
@@ -2625,6 +2625,23 @@ select * from int8_tbl t1
(7 rows)
explain (costs off)
+select * from int8_tbl t1
+ left join int8_tbl t2 on true
+ left join lateral
+ (select t2.q1 from int8_tbl t3) s
+ on t2.q1 = 1;
+ QUERY PLAN
+-------------------------------------------
+ Nested Loop Left Join
+ -> Seq Scan on int8_tbl t1
+ -> Materialize
+ -> Nested Loop Left Join
+ Join Filter: (t2.q1 = 1)
+ -> Seq Scan on int8_tbl t2
+ -> Seq Scan on int8_tbl t3
+(7 rows)
+
+explain (costs off)
select * from onek t1
left join onek t2 on true
left join lateral
diff --git a/src/test/regress/sql/join.sql b/src/test/regress/sql/join.sql
index d8d9579092d..7ca737eec0f 100644
--- a/src/test/regress/sql/join.sql
+++ b/src/test/regress/sql/join.sql
@@ -529,6 +529,13 @@ select * from int8_tbl t1
on t2.q1 = 1;
explain (costs off)
+select * from int8_tbl t1
+ left join int8_tbl t2 on true
+ left join lateral
+ (select t2.q1 from int8_tbl t3) s
+ on t2.q1 = 1;
+
+explain (costs off)
select * from onek t1
left join onek t2 on true
left join lateral