From c05ae1570fa53059e4d1e4ab9c63bd6efa92b606 Mon Sep 17 00:00:00 2001 From: Paul Ramsey Date: Mon, 7 Oct 2019 01:29:38 +0000 Subject: [PATCH] datumCopy has to happen in agg context or else objects larger than datum size will be lost. Shows up in 32 bit because float8 doesn't fit on a datum. Closes #4522 git-svn-id: http://svn.osgeo.org/postgis/trunk@17863 b70326c6-7e19-0410-871a-916f4a2858ee --- postgis/lwgeom_accum.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/postgis/lwgeom_accum.c b/postgis/lwgeom_accum.c index 950274375..eb96fe418 100644 --- a/postgis/lwgeom_accum.c +++ b/postgis/lwgeom_accum.c @@ -97,7 +97,9 @@ pgis_geometry_accum_transfn(PG_FUNCTION_ARGS) { Datum argument = PG_GETARG_DATUM(i+2); Oid dataOid = get_fn_expr_argtype(fcinfo->flinfo, i+2); + old = MemoryContextSwitchTo(aggcontext); state->data[i] = datumCopy(argument, get_typbyval(dataOid), get_typlen(dataOid)); + MemoryContextSwitchTo(old); } } else -- 2.50.1