diff options
Diffstat (limited to 'src/test/regress/sql/subselect.sql')
| -rw-r--r-- | src/test/regress/sql/subselect.sql | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/test/regress/sql/subselect.sql b/src/test/regress/sql/subselect.sql index af5a1d8b55a..a6ab42454f0 100644 --- a/src/test/regress/sql/subselect.sql +++ b/src/test/regress/sql/subselect.sql @@ -939,6 +939,39 @@ select t1.q1, x from on t1.q2 = t2.q2 order by 1, 2; +-- strict expressions containing variables of rels under the same lowest +-- nulling outer join can escape being wrapped +explain (verbose, costs off) +select t1.q1, x from + int8_tbl t1 left join + (int8_tbl t2 inner join + lateral (select t2.q1+1 as x, * from int8_tbl t3) t3 on t2.q2 = t3.q2) + on t1.q2 = t2.q2 +order by 1, 2; + +select t1.q1, x from + int8_tbl t1 left join + (int8_tbl t2 inner join + lateral (select t2.q1+1 as x, * from int8_tbl t3) t3 on t2.q2 = t3.q2) + on t1.q2 = t2.q2 +order by 1, 2; + +-- otherwise we need to wrap the strict expressions +explain (verbose, costs off) +select t1.q1, x from + int8_tbl t1 left join + (int8_tbl t2 left join + lateral (select t2.q1+1 as x, * from int8_tbl t3) t3 on t2.q2 = t3.q2) + on t1.q2 = t2.q2 +order by 1, 2; + +select t1.q1, x from + int8_tbl t1 left join + (int8_tbl t2 left join + lateral (select t2.q1+1 as x, * from int8_tbl t3) t3 on t2.q2 = t3.q2) + on t1.q2 = t2.q2 +order by 1, 2; + -- lateral references for simple Vars can escape being wrapped if the -- referenced rel is under the same lowest nulling outer join explain (verbose, costs off) |
