| От | Tom Lane |
|---|---|
| Тема | Re: DETOASTing in custom memory context |
| Дата | |
| Msg-id | 2043.1067281991@sss.pgh.pa.us обсуждение исходный текст |
| Ответ на | Re: DETOASTing in custom memory context (strk <strk@keybit.net>) |
| Ответы |
Re: DETOASTing in custom memory context
|
| Список | pgsql-hackers |
strk <strk@keybit.net> writes:
>> 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 ?
Perhaps you wanted PG_DETOAST_DATUM_COPY(). Or possibly use
PG_FREE_IF_COPY() rather than an unconditional pfree, though
that would depend on just what your usage pattern is.
regards, tom lane
В списке pgsql-hackers по дате отправления:
Сайт использует файлы cookie для корректной работы и повышения удобства. Нажимая кнопку «Принять» или продолжая пользоваться сайтом, вы соглашаетесь на их использование в соответствии с Политикой в отношении обработки cookie ООО «ППГ», в том числе на передачу данных из файлов cookie сторонним статистическим и рекламным службам. Вы можете управлять настройками cookie через параметры вашего браузера