Re: Problem with composite type creation in C under Linux

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Marios Vodas <mvodas(at)gmail(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Problem with composite type creation in C under Linux
Date: 2011-03-02 17:35:22
Message-ID: 5724.1299087322@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Marios Vodas <mvodas(at)gmail(dot)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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Merlin Moncure 2011-03-02 17:39:09 Re: Sync Rep v17
Previous Message Marios Vodas 2011-03-02 17:19:55 Problem with composite type creation in C under Linux