Re: Problem with heap_form_tuple error

From: Stephen Woodbridge <woodbri(at)swoodbridge(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: Problem with heap_form_tuple error
Date: 2012-11-05 17:55:15
Message-ID: 5097FD83.4000605@swoodbridge.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 11/5/2012 10:34 AM, Tom Lane wrote:
> Stephen Woodbridge <woodbri(at)swoodbridge(dot)com> writes:
>> I'm have a problem with heap_form_tuple error
>> ERROR: invalid memory alloc request size 1149502660
>> I've read through a ton of examples and read through the code and the
>> docs and I'm sure I'm doing something stupid but I'm not seeing it.
>
> Hm ... you're setting up arguments to heap_form_tuple like this:
>
>> values[1] = CStringGetDatum(pstrdup(stdaddr->building));
>
> This is only correct if the corresponding column of the tupledesc is
> declared as being type "cstring", which I'm willing to bet it isn't.
> heap_form_tuple does not do any type conversion --- the datums provided
> have to be of the right types already.
>
> You could feed the string through the input function for the column's
> type, but perhaps what you really ought to do is use
> BuildTupleFromCStrings rather than using heap_form_tuple directly.
>
> regards, tom lane
>
>
Hi Tom,

Thanks, changing my code to use BuildTupleFromCStrings did the trick. So
if I wanted to do some like my code was doing what is the proper way to
convert a CString into varchar and then that into Datum?

I tried to follow the source code for BuildTupleFromCStrings but it
rapidly got convoluted and was not easy to follow.

Thanks again for the help,
-Steve

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Alan Hodgson 2012-11-05 18:11:09 Re: lock database share
Previous Message Marti Raudsepp 2012-11-05 17:50:40 Re: [GENERAL] Error registering at postgresql.org