Обсуждение: Get ride of pqbool artifact (src/interfaces/libpq/libpq-fe.h)

Поиск
Список
Период
Сортировка

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

От
Ranier Vilela
Дата:
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
Вложения

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

От
Tom Lane
Дата:
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



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

От
Jacob Champion
Дата:
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



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

От
Ranier Vilela
Дата:

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