Oh...well... I messed it up! Thanks a lot for that. The problem I think is the bool pointer. Will check it soon.
-- Sent from my Android On 23 May 2011 19:28, "Tom Lane" <t...@sss.pgh.pa.us> wrote: > Vaibhav Kaushal <vaibhavkaushal...@gmail.com> writes: >> My mind started wandering after that error. Now, actually, i was trying to >> do something like this: > >> *last_result = palloc0(sizeof(Datum)); >> bool *isnnuull = true; >> *last_result = slot_getattr(slot, num_atts, *isnnuull); > > This seems utterly confused about data types. The first line thinks > that last_result is of type Datum ** (ie, pointer to pointer to Datum), > since it's storing a pointer-to-Datum through it. The third line > however is treating last_result as of type Datum *, since it's storing > a Datum (not pointer to Datum) through it. And the second line is > assigning "true" (a bool value) to a variable declared as pointer to > bool, which you then proceed to incorrectly dereference while passing it > as the last argument to slot_getattr. The code will certainly crash on > that deref, independently of the multiple other bugs here. > > Recommendation: gcc is your friend. Pay attention to the warnings it > gives you. > > regards, tom lane