These test cases could be adversely affected by an upcoming change
to allow pullup of FROM-less subqueries. Tweak them to ensure that
they'll continue to test what they did before.
Discussion: https://postgr.es/m/5395.
1539275668@sss.pgh.pa.us
--
-- Test some cases involving whole-row Var referencing a subquery
--
-select foo from (select 1) as foo;
+select foo from (select 1 offset 0) as foo;
foo
-----
(1)
(1 row)
-select foo from (select null) as foo;
+select foo from (select null offset 0) as foo;
foo
-----
()
(1 row)
-select foo from (select 'xyzzy',1,null) as foo;
+select foo from (select 'xyzzy',1,null offset 0) as foo;
foo
------------
(xyzzy,1,)
DEALLOCATE pstmt;
-- test interaction between subquery and partial_paths
-SET LOCAL min_parallel_table_scan_size TO 0;
CREATE VIEW tenk1_vw_sec WITH (security_barrier) AS SELECT * FROM tenk1;
EXPLAIN (COSTS OFF)
-SELECT 1 FROM tenk1_vw_sec WHERE EXISTS (SELECT 1 WHERE unique1 = 0);
+SELECT 1 FROM tenk1_vw_sec
+ WHERE (SELECT sum(f1) FROM int4_tbl WHERE f1 < unique1) < 100;
QUERY PLAN
-------------------------------------------------------------------
Subquery Scan on tenk1_vw_sec
- Filter: (alternatives: SubPlan 1 or hashed SubPlan 2)
+ Filter: ((SubPlan 1) < 100)
-> Gather
Workers Planned: 4
-> Parallel Index Only Scan using tenk1_unique1 on tenk1
SubPlan 1
- -> Result
- One-Time Filter: (tenk1_vw_sec.unique1 = 0)
- SubPlan 2
- -> Result
-(10 rows)
+ -> Aggregate
+ -> Seq Scan on int4_tbl
+ Filter: (f1 < tenk1_vw_sec.unique1)
+(9 rows)
rollback;
--
-- Test some cases involving whole-row Var referencing a subquery
--
-select foo from (select 1) as foo;
-select foo from (select null) as foo;
-select foo from (select 'xyzzy',1,null) as foo;
+select foo from (select 1 offset 0) as foo;
+select foo from (select null offset 0) as foo;
+select foo from (select 'xyzzy',1,null offset 0) as foo;
--
-- Test VALUES lists
DEALLOCATE pstmt;
-- test interaction between subquery and partial_paths
-SET LOCAL min_parallel_table_scan_size TO 0;
CREATE VIEW tenk1_vw_sec WITH (security_barrier) AS SELECT * FROM tenk1;
EXPLAIN (COSTS OFF)
-SELECT 1 FROM tenk1_vw_sec WHERE EXISTS (SELECT 1 WHERE unique1 = 0);
+SELECT 1 FROM tenk1_vw_sec
+ WHERE (SELECT sum(f1) FROM int4_tbl WHERE f1 < unique1) < 100;
rollback;