Обсуждение: Get ride of pqbool artifact (src/interfaces/libpq/libpq-fe.h)
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
Вложения
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
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
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