Re: C function returns null values - Mailing list pgsql-general

From Gregor Trefs
Subject Re: C function returns null values
Date
Msg-id 5987F6572432A3439988CDF27C6239A60124F7A43D8B@winserver.delphit.com
Whole thread Raw
In response to Re: C function returns null values  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: C function returns null values  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
Thanks for your answer. I edited my code, but still get these random null values. What else can I do ?

Regards

-----Ursprüngliche Nachricht-----
Von: Tom Lane [mailto:tgl@sss.pgh.pa.us]
Gesendet: Freitag, 15. Juli 2011 16:24
An: Gregor Trefs
Cc: pgsql-general@postgresql.org
Betreff: Re: [GENERAL] C function returns null values

Gregor Trefs <gregor.trefs@delphit.com> writes:
> I developed a C function which returns a record. The record contains 3 scalar values and 2 arrays. Randomly some
recordelements are null and I wonder why. I could trace down the problem to the point where the return record is
created.Until this point everything is computed correctly. Below you see an excerpt of the relevant code. I use
PostGres8.4 on Ubuntu 10.10 (x64). 

You're not bothering to fill in the nulls[] array:

>     // Allocate enough memory for nulls
>     nulls = palloc(tuplen * sizeof (bool));
>     // Create tuple
>     res_tuple = heap_form_tuple(tupdesc, values, nulls);

palloc0 would work better here.

BTW, it's a good idea to develop/test C code in a backend built with --enable-debug --enable-cassert.  Had you been
doingso, palloc would have given you back intentionally-garbage-filled memory, and you'd have noticed the mistake
immediately.

            regards, tom lane

pgsql-general by date:

Previous
From: Adrian Klaver
Date:
Subject: Re: Table dublicates values
Next
From: Tom Lane
Date:
Subject: Re: C function returns null values