On Mon, Mar 24, 2008 at 03:52:09PM -0400, Tom Lane wrote:
> Kurt Roeckx <kurt@roeckx.be> writes:
> > On Mon, Mar 24, 2008 at 02:52:18PM -0400, Tom Lane wrote:
> >> Please try that patch and see what it fixes pre-8.3.
>
> > No, returnValue contains the same value for both 8.2 and 8.3. There is
> > no reason why casting from a char * to a char * should result into
> > something else.
>
> Please try the patch rather than assuming you know the answer.
I did try the patch. It fails just the same way.
With or without the patch, with both 8.2 and 8.3, the 0xffffff00
gets passed from seg_same end ends up atleast in ExecutePlan():
ExecutePlan (estate=0xc1c468, planstate=0xc1c698, operation=CMD_SELECT, numberTuples=0,
direction=ForwardScanDirection,dest=0xc03250) at execMain.c:1239
1239 if (TupIsNull(planSlot))
(gdb) p /x planSlot->tts_values[0]
$4 = 0xffffff00
From there on I have no idea what happens with it, but 8.2 turns it
a true, 8.3 into a false.
Kurt