-- -- PARALLEL -- -- Serializable isolation would disable parallel query, so explicitly use an -- arbitrary other level. begin isolation level repeatable read; -- encourage use of parallel plans set parallel_setup_cost=0; set parallel_tuple_cost=0; set min_parallel_table_scan_size=0; set max_parallel_workers_per_gather=4; -- -- Test write operations that has an underlying query that is eligble -- for parallel plans -- explain (costs off) create table parallel_write as select length(stringu1) from tenk1 group by length(stringu1); QUERY PLAN --------------------------------------------------- Finalize HashAggregate Group Key: (length((stringu1)::text)) -> Gather Workers Planned: 4 -> Partial HashAggregate Group Key: length((stringu1)::text) -> Parallel Seq Scan on tenk1 (7 rows) create table parallel_write as select length(stringu1) from tenk1 group by length(stringu1); drop table parallel_write; explain (costs off) select length(stringu1) into parallel_write from tenk1 group by length(stringu1); QUERY PLAN --------------------------------------------------- Finalize HashAggregate Group Key: (length((stringu1)::text)) -> Gather Workers Planned: 4 -> Partial HashAggregate Group Key: length((stringu1)::text) -> Parallel Seq Scan on tenk1 (7 rows) select length(stringu1) into parallel_write from tenk1 group by length(stringu1); drop table parallel_write; explain (costs off) create materialized view parallel_mat_view as select length(stringu1) from tenk1 group by length(stringu1); QUERY PLAN --------------------------------------------------- Finalize HashAggregate Group Key: (length((stringu1)::text)) -> Gather Workers Planned: 4 -> Partial HashAggregate Group Key: length((stringu1)::text) -> Parallel Seq Scan on tenk1 (7 rows) create materialized view parallel_mat_view as select length(stringu1) from tenk1 group by length(stringu1); drop materialized view parallel_mat_view; prepare prep_stmt as select length(stringu1) from tenk1 group by length(stringu1); explain (costs off) create table parallel_write as execute prep_stmt; QUERY PLAN --------------------------------------------------- Finalize HashAggregate Group Key: (length((stringu1)::text)) -> Gather Workers Planned: 4 -> Partial HashAggregate Group Key: length((stringu1)::text) -> Parallel Seq Scan on tenk1 (7 rows) create table parallel_write as execute prep_stmt; drop table parallel_write; rollback;