Re: Problem with composite type creation in C under Linux - Mailing list pgsql-hackers

From Marios Vodas
Subject Re: Problem with composite type creation in C under Linux
Date
Msg-id AANLkTinG-wk3fBjqgCXPOPgtUdaxZpc5dt72c2v7bB8A@mail.gmail.com
Whole thread Raw
In response to Re: Problem with composite type creation in C under Linux  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Thank you! now I understand it...

On Wed, Mar 2, 2011 at 7:35 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Marios Vodas <mvodas@gmail.com> writes:
> I have developed some custom composite and base types in PostgreSQL 9 which
> you can find in the code I provide below.
> I compile my C library using GCC 4.5 under Linux and Visual Studio 2010
> under Windows.

> The problem is when I run this command: *SELECT to_composite('((1, 2), (3,
> 4))'::m_segment_base)*.
> This is the result I get in Windows and Linux respectively:
>     Windows: "("(1,2)","(3,4)")"
>     Linux: "("(1,)",)"

You're passing a single isnull flag to heap_form_tuple calls that are
expecting arrays of two flags ... and even the one value that's there
according to the code isn't being initialized, so it's remarkable that
this code works at all on any platform.

                       regards, tom lane

pgsql-hackers by date:

Previous
From: Nicolas Barbier
Date:
Subject: Re: Native XML
Next
From: Alvaro Herrera
Date:
Subject: WAL segments pile up during standalone mode