#include "fmgr.h"
#include "funcapi.h"
#include "access/tupmacs.h"
+#include "utils/datum.h"
#include "utils/array.h"
#include "utils/lsyscache.h"
if (PG_NARGS() == 3)
{
- p->data = PG_GETARG_DATUM(2);
+ Datum argument = PG_GETARG_DATUM(2);
+ Oid dataOid = get_fn_expr_argtype(fcinfo->flinfo, 2);
+ MemoryContext old = MemoryContextSwitchTo(aggcontext);
+
+ p->data = datumCopy(argument, get_typbyval(dataOid), get_typlen(dataOid));
+
+ MemoryContextSwitchTo(old);
}
}
else