-- test parallel nestloop join path with materialization of the inner path
alter table tenk2 set (parallel_workers = 0);
explain (costs off)
- select * from tenk1 t1, tenk2 t2 where t1.two > t2.two;
+select * from tenk1 t1, tenk2 t2 where t1.two > t2.two;
QUERY PLAN
-------------------------------------------
Gather
-> Seq Scan on tenk2 t2
(7 rows)
--- the joinrel is not parallel-safe due to the OFFSET clause in the subquery
+-- test that parallel nestloop join is not generated if the inner path is
+-- not parallel-safe
explain (costs off)
- select * from tenk1 t1, (select * from tenk2 t2 offset 0) t2 where t1.two > t2.two;
+select * from tenk1 t1
+ left join lateral
+ (select t1.unique1 as x, * from tenk2 t2 order by 1) t2
+ on true
+where t1.two > t2.two;
QUERY PLAN
-------------------------------------------
Nested Loop
- Join Filter: (t1.two > t2.two)
-> Gather
Workers Planned: 4
-> Parallel Seq Scan on tenk1 t1
- -> Materialize
- -> Seq Scan on tenk2 t2
+ -> Subquery Scan on t2
+ Filter: (t1.two > t2.two)
+ -> Seq Scan on tenk2 t2_1
(7 rows)
alter table tenk2 reset (parallel_workers);
-- test parallel nestloop join path with materialization of the inner path
alter table tenk2 set (parallel_workers = 0);
explain (costs off)
- select * from tenk1 t1, tenk2 t2 where t1.two > t2.two;
+select * from tenk1 t1, tenk2 t2 where t1.two > t2.two;
--- the joinrel is not parallel-safe due to the OFFSET clause in the subquery
+-- test that parallel nestloop join is not generated if the inner path is
+-- not parallel-safe
explain (costs off)
- select * from tenk1 t1, (select * from tenk2 t2 offset 0) t2 where t1.two > t2.two;
+select * from tenk1 t1
+ left join lateral
+ (select t1.unique1 as x, * from tenk2 t2 order by 1) t2
+ on true
+where t1.two > t2.two;
alter table tenk2 reset (parallel_workers);
-- test gather merge