BUG #5769: Problem with SPI_getvalue
The following bug has been logged online:
Bug reference: 5769
Logged by: Helmar Spangenberg
Email address: hspangenberg@frey.de
PostgreSQL version: 9.0.1
Operating system: Linux
Description: Problem with SPI_getvalue
Details:
Referring to the manual, I can pfree the result returned by SPI_getvalue.
However the backend crashes as soon as I use pfree.
No example uses pfree. Could it be possible, there is a bug in the
documentation?
Thanks,
Helmar
On 25.11.2010 13:45, Helmar Spangenberg wrote:
Bug reference: 5769
Logged by: Helmar Spangenberg
Email address: hspangenberg@frey.de
PostgreSQL version: 9.0.1
Operating system: Linux
Description: Problem with SPI_getvalue
Details:Referring to the manual, I can pfree the result returned by SPI_getvalue.
However the backend crashes as soon as I use pfree.No example uses pfree. Could it be possible, there is a bug in the
documentation?
The return value of SPI_getvalue is certainly palloc()'d, so pfree()ing
it should not crash. Perhaps you are trying to pfree() it after the
whole memory context has already been destroyed. Or perhaps SPI_getvalue
returned a NULL and you're trying to pfree() that. Can't say without
more details.
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com
You are right.
In my case I obviously had corrupted the heap somewhere else - now it works as
expected.
Thanks for your quick answer,
Helmar
Am Donnerstag, 25. November 2010 16:11:03 schrieb Heikki Linnakangas:
Show quoted text
On 25.11.2010 13:45, Helmar Spangenberg wrote:
Bug reference: 5769
Logged by: Helmar Spangenberg
Email address: hspangenberg@frey.de
PostgreSQL version: 9.0.1
Operating system: Linux
Description: Problem with SPI_getvalue
Details:Referring to the manual, I can pfree the result returned by SPI_getvalue.
However the backend crashes as soon as I use pfree.No example uses pfree. Could it be possible, there is a bug in the
documentation?The return value of SPI_getvalue is certainly palloc()'d, so pfree()ing
it should not crash. Perhaps you are trying to pfree() it after the
whole memory context has already been destroyed. Or perhaps SPI_getvalue
returned a NULL and you're trying to pfree() that. Can't say without
more details.
"Helmar Spangenberg" <hspangenberg@frey.de> writes:
Referring to the manual, I can pfree the result returned by SPI_getvalue.
Well, the result is the output of a datatype output function. I think
that's palloc'd by all standard datatypes, but maybe you're working with
a custom datatype that tries to return a constant string?
regards, tom lane