Re: C function migration from 9.2 to 9.5

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Michael Omotayo Akinde <michaeloa(at)met(dot)no>
Cc: pavel(dot)stehule(at)gmail(dot)com, pgsql-general(at)postgresql(dot)org
Subject: Re: C function migration from 9.2 to 9.5
Date: 2016-03-04 00:52:36
Message-ID: 6590.1457052756@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Michael Omotayo Akinde <michaeloa(at)met(dot)no> writes:
> This throws a compiler warning on the cast from heap_form_tuple to
> HeapTuple, but IIRC it's always done that so not an error?

Uh, that's *awfully* fishy, because heap_form_tuple certainly returns
HeapTuple. I wondered why you had that cast there; it should not be
necessary. If the compiler is warning about it, that sets off all kinds
of alarm bells.

I notice your test program fails to #include "access/htup_details.h",
which is where heap_form_tuple() is declared these days. I wonder if
your problem boils down to "no visible declaration of function, so
compiler thinks it returns int"? In that case the real difference
from what worked to what didn't probably had less to do with any PG
version change and more to do with moving from 32-bit to 64-bit.
(Or I guess we might've relocated the declaration of heap_form_tuple
somewhere along the line.)

A general tip for getting C code to work is to turn on as many
compiler warnings as you can, and never ignore any of them.

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Premsun Choltanwanich 2016-03-04 02:22:06 Re: could not migrate 8.0.13 database with large object data to 9.5.1
Previous Message Craig Ringer 2016-03-03 23:44:59 Re: BDR concern/issue