From whitin an aggregate sfunc I did: oldcontext = MemoryContextSwitchTo(fcinfo->flinfo->fn_mcxt); geom =
(GEOMETRY*)PG_DETOAST_DATUM(datum); MemoryContextSwitchTo(oldcontext);
And later in aggregate's finalfunc:pfree(geom);
Result:segfault!
What's wrong with it ?
NOTE that if I MemoryContextAllocate in fcinfo->flinfo->fn_mcxt and
memcopy DETOASTED geom, everything works (ar at least it seems to)
--strk;
strk wrote:
> Tom, thanks again for the quick answer and
> sorry for the lame question about memor allocation.
>
> I hope this is acceptable:
> Is there a way to make PG_DETOAST_DATUM and friends allocate
> memory in a custom memory context ?
>
> Right now I'm DETOASTing, memcopying in a custom context
> and pfreeing the DETOASTed datum, I'd like to avoid one
> copy.
>
> TIA.
> --strk;
>
> ---------------------------(end of broadcast)---------------------------
> TIP 9: the planner will ignore your desire to choose an index scan if your
> joining column's datatypes do not match