]> granicus.if.org Git - postgis/commitdiff
Call POSTGIS2GEOS in aggregate context.
authorDarafei Praliaskouski <me@komzpa.net>
Sun, 21 Apr 2019 15:52:00 +0000 (15:52 +0000)
committerDarafei Praliaskouski <me@komzpa.net>
Sun, 21 Apr 2019 15:52:00 +0000 (15:52 +0000)
References #4382

git-svn-id: http://svn.osgeo.org/postgis/trunk@17405 b70326c6-7e19-0410-871a-916f4a2858ee

postgis/lwgeom_geos.c

index 0e265c4246a8927029af7ea9f5c359bf22082935..8071b58ae71e99292f3d9ecde0d56fb53cb02e59 100644 (file)
@@ -572,6 +572,7 @@ Datum pgis_geometry_union_transfn(PG_FUNCTION_ARGS)
 
                if (!gserialized_is_empty(gser_in))
                {
+                       MemoryContext old = MemoryContextSwitchTo(aggcontext);
                        if (state->ngeoms == 0)
                        {
                                state->srid = gserialized_get_srid(gser_in);
@@ -592,13 +593,12 @@ Datum pgis_geometry_union_transfn(PG_FUNCTION_ARGS)
 
                        if (state->ngeoms > state->alen)
                        {
-                               MemoryContext old = MemoryContextSwitchTo(aggcontext);
                                state->alen *= 2;
                                state->geoms = repalloc(state->geoms, state->alen);
-                               MemoryContextSwitchTo(old);
                        }
 
                        state->geoms[curgeom] = g;
+                       MemoryContextSwitchTo(old);
                }
                else
                {