Now that I look at it, int_array_enum() didn't work either.
This commit is contained in:
parent
368964e153
commit
728775d781
@ -201,6 +201,10 @@ int_enum(PG_FUNCTION_ARGS)
|
|||||||
if (!fcinfo->context)
|
if (!fcinfo->context)
|
||||||
{
|
{
|
||||||
/* Allocate a working context */
|
/* Allocate a working context */
|
||||||
|
MemoryContext oldcontext;
|
||||||
|
|
||||||
|
oldcontext = MemoryContextSwitchTo(fcinfo->flinfo->fn_mcxt);
|
||||||
|
|
||||||
pc = (CTX *) palloc(sizeof(CTX));
|
pc = (CTX *) palloc(sizeof(CTX));
|
||||||
|
|
||||||
/* Don't copy attribute if you don't need to */
|
/* Don't copy attribute if you don't need to */
|
||||||
@ -218,6 +222,7 @@ int_enum(PG_FUNCTION_ARGS)
|
|||||||
}
|
}
|
||||||
pc->num = 0;
|
pc->num = 0;
|
||||||
fcinfo->context = (Node *) pc;
|
fcinfo->context = (Node *) pc;
|
||||||
|
MemoryContextSwitchTo(oldcontext);
|
||||||
}
|
}
|
||||||
else /* use an existing one */
|
else /* use an existing one */
|
||||||
pc = (CTX *) fcinfo->context;
|
pc = (CTX *) fcinfo->context;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user