cannot start commands during a parallel operation

Justin Pryzby pryzby at telsasoft.com
Fri Aug 9 13:49:17 PDT 2024


On Fri, Aug 09, 2024 at 01:43:22PM -0700, Paul Ramsey wrote:
> 
> 
> > On Aug 9, 2024, at 1:40 PM, Justin Pryzby <pryzby at telsasoft.com> wrote:
> > 
> > On Fri, Aug 09, 2024 at 01:19:22PM -0700, Paul Ramsey wrote:
> >> Where’s the PostGIS content to this? The stack trace doesn’t hit and PostGIS code, and the SQL doesn’t call any PostGIS functions…?
> > 
> > Our get_x() calls postgis st_x().
> 
> And get_x() also does a transform along the way? Crazy that st_x() could cause any problems, it’s so simple.

I minimized our get_x() and reproduced with this:

ts=# \sf get_x_min 
CREATE OR REPLACE FUNCTION public.get_x_min(integer, integer)
 RETURNS double precision
 LANGUAGE plpgsql
 PARALLEL SAFE
AS $function$
        DECLARE
                s_id alias for $1;
                rec record;
        begin
                select st_x(site_geo) AS x into rec from sites where site_id = s_id;
                return rec.x;
        end;
$function$

ts=# SET parallel_tuple_cost=0; SET parallel_setup_cost=0; CREATE TEMP TABLE rpt AS SELECT get_x_min(site_id, site_alias) FROM sites;
ERROR:  cannot start commands during a parallel operation
CONTEXT:  SQL statement "select st_x(site_geo) AS x          from sites where site_id = s_id"
PL/pgSQL function get_x_min(integer,integer) line 6 at SQL statement


More information about the postgis-devel mailing list