Get ride of pqbool artifact (src/interfaces/libpq/libpq-fe.h)

Started by Ranier Vilela8 months ago4 messageshackers
Jump to latest
#1Ranier Vilela
ranier.vf@gmail.com

Hi.

In libpq-fe.h has an artifact pre C99, pqbool.
IMO this is not more necessary, once Postgres supports C99
and bool becomes standard.

So get ride of pqbool and use bool instead.

trivial patch attached.

best regards,
Ranier Vilela

Attachments:

v1-001-get-ride-pqbool-libpq-fe.patchapplication/octet-stream; name=v1-001-get-ride-pqbool-libpq-fe.patchDownload+6-8
#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Ranier Vilela (#1)
Re: Get ride of pqbool artifact (src/interfaces/libpq/libpq-fe.h)

Ranier Vilela <ranier.vf@gmail.com> writes:

In libpq-fe.h has an artifact pre C99, pqbool.
IMO this is not more necessary, once Postgres supports C99
and bool becomes standard.

So get ride of pqbool and use bool instead.

We can't really remove that typedef ever, because application code
might be using it. Unlikely I concede, but nonetheless it's part
of libpq's exposed API.

We might be able to s/pqbool/bool/ in the struct, but I kind of
wonder if that wouldn't be an ABI break: at the very least it
would lead to subtle changes in code compiled to use the struct.
On the whole I see little value in taking any risk here.

regards, tom lane

#3Jacob Champion
jacob.champion@enterprisedb.com
In reply to: Tom Lane (#2)
Re: Get ride of pqbool artifact (src/interfaces/libpq/libpq-fe.h)

On Tue, Sep 2, 2025 at 12:44 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:

We might be able to s/pqbool/bool/ in the struct, but I kind of
wonder if that wouldn't be an ABI break: at the very least it
would lead to subtle changes in code compiled to use the struct.

I have FUD around C++ compilers in particular when it comes to ABI
assumptions for bool.

On the whole I see little value in taking any risk here.

+1

--Jacob

#4Ranier Vilela
ranier.vf@gmail.com
In reply to: Tom Lane (#2)
Re: Get ride of pqbool artifact (src/interfaces/libpq/libpq-fe.h)

Em ter., 2 de set. de 2025 às 16:44, Tom Lane <tgl@sss.pgh.pa.us> escreveu:

Ranier Vilela <ranier.vf@gmail.com> writes:

In libpq-fe.h has an artifact pre C99, pqbool.
IMO this is not more necessary, once Postgres supports C99
and bool becomes standard.

So get ride of pqbool and use bool instead.

We can't really remove that typedef ever, because application code
might be using it. Unlikely I concede, but nonetheless it's part
of libpq's exposed API.

We might be able to s/pqbool/bool/ in the struct, but I kind of
wonder if that wouldn't be an ABI break: at the very least it
would lead to subtle changes in code compiled to use the struct.
On the whole I see little value in taking any risk here.

Thanks Tom, for the explanation.

best regards,
Ranier Vilela