aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2005-01-27 21:49:57 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2005-01-27 21:49:57 +0000
commit728775d781a1e18899240d099461dff163456225 (patch)
tree11d53f0843bddec4de7344ddddb731743d08613c
parent368964e153616041a829c3933af1e69eef3f0fcb (diff)
downloadpostgresql-728775d781a1e18899240d099461dff163456225.tar.gz
postgresql-728775d781a1e18899240d099461dff163456225.zip
Now that I look at it, int_array_enum() didn't work either.
-rw-r--r--contrib/intagg/int_aggregate.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/contrib/intagg/int_aggregate.c b/contrib/intagg/int_aggregate.c
index 67056af8edd..cb0f1f3a452 100644
--- a/contrib/intagg/int_aggregate.c
+++ b/contrib/intagg/int_aggregate.c
@@ -201,6 +201,10 @@ int_enum(PG_FUNCTION_ARGS)
if (!fcinfo->context)
{
/* Allocate a working context */
+ MemoryContext oldcontext;
+
+ oldcontext = MemoryContextSwitchTo(fcinfo->flinfo->fn_mcxt);
+
pc = (CTX *) palloc(sizeof(CTX));
/* Don't copy attribute if you don't need to */
@@ -218,6 +222,7 @@ int_enum(PG_FUNCTION_ARGS)
}
pc->num = 0;
fcinfo->context = (Node *) pc;
+ MemoryContextSwitchTo(oldcontext);
}
else /* use an existing one */
pc = (CTX *) fcinfo->context;