Hi,

I have strange behaviour when EXPLAIN returns parallel execution plan but the 
query execution is not parallel. The query looks as

        SELECT
            plpgsql_function(...parameters…)
        FROM table as t
        WHERE id=1
        UNION ALL
        SELECT
            plpgsql_function(...parameters…)
        FROM table as t
        WHERE id=2
        UNION ALL
        ...

EXPLAIN outputs looks ok:

Append  (cost=0.00..10.25 rows=8 width=32)
  ->  Gather  (cost=0.00..1.27 rows=1 width=32)
        Workers Planned: 8
        ->  Parallel Seq Scan on table t  (cost=0.00..1.27 rows=1 width=32)
              Filter: (id = 1)
  ->  Gather  (cost=0.00..1.27 rows=1 width=32)
        Workers Planned: 8
        ->  Parallel Seq Scan on table t_1  (cost=0.00..1.27 rows=1 width=32)
              Filter: (id = 2)
  ->  Gather  (cost=0.00..1.27 rows=1 width=32)
...


But the query still uses just one core and I see sequential RAISE NOTICE 
outputs from the function plpgsql_function().

select version();
                                                             version            
                                                
---------------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 12.4 (Ubuntu 12.4-1.pgdg18.04+1) on x86_64-pc-linux-gnu, compiled 
by gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0, 64-bit


Reply via email to