Re: Cannot find a working 64-bit integer type on Illumos - Mailing list pgsql-hackers

From Peter Eisentraut
Subject Re: Cannot find a working 64-bit integer type on Illumos
Date
Msg-id 216b3727-fb16-4d15-9003-35ec2d1dc701@eisentraut.org
Whole thread Raw
In response to Re: Cannot find a working 64-bit integer type on Illumos  (Peter Eisentraut <peter@eisentraut.org>)
List pgsql-hackers
On 03.09.25 17:04, Peter Eisentraut wrote:
> Consider a third-party extension that does something like dblink or 
> postgres_fdw.  It will compile against a server and also a libpq.  The 
> server and the libpq might not be of the same major version.  (On 
> Debian, only the latest libpq will be available.)  If you have for 
> example server version 17 and libpq version 18, then you will get the 
> pg_int64 typedef both from postgres_ext.h (from the PG17 server 
> includes) and from libpq-fe.h (from PG18 libpq).  That is not allowed in 
> C99, and even if it were, the underlying types of PG_INT64_TYPE (in 
> PG17) and int64_t (in PG18) might be different (long int vs. long long 
> int) and this would fail.
> 
> I think this could be fixed by moving the definition of pg_int64 back to 
> postgres_ext.h.  Then extension builds would only get one definition, 
> because of the header guards.  Depending on include order, they could 
> get a different underlying type, but that's a smaller problem, since the 
> type is supposed to be deprecated anyway.

Here is a patch that has been reported to fix the problem.

Attachment

pgsql-hackers by date:

Previous
From: jian he
Date:
Subject: Re: pg_restore --no-policies should not restore policies' comment
Next
From: Peter Eisentraut
Date:
Subject: Re: Cannot find a working 64-bit integer type on Illumos