pgsql: libpq-fe.h: Don't claim SOCKTYPE in the global namespace

From: Jacob Champion <jchampion(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: libpq-fe.h: Don't claim SOCKTYPE in the global namespace
Date: 2025-12-17 20:34:10
Message-ID: E1vVyDp-001Ilj-1s@gemulon.postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers

libpq-fe.h: Don't claim SOCKTYPE in the global namespace

The definition of PGoauthBearerRequest uses a temporary SOCKTYPE macro
to hide the difference between Windows and Berkeley socket handles,
since we don't surface pgsocket in our public API. This macro doesn't
need to escape the header, because implementers will choose the correct
socket type based on their platform, so I #undef'd it immediately after
use.

I didn't namespace that helper, though, so if anyone else needs a
SOCKTYPE macro, libpq-fe.h will now unhelpfully get rid of it. This
doesn't seem too far-fetched, given its proximity to existing POSIX
macro names.

Add a PQ_ prefix to avoid collisions, update and improve the surrounding
documentation, and backpatch.

Reviewed-by: Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com>
Discussion: https://postgr.es/m/CAOYmi%2BmrGg%2Bn_X2MOLgeWcj3v_M00gR8uz_D7mM8z%3DdX1JYVbg%40mail.gmail.com
Backpatch-through: 18

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/8b217c96ea2d0cf5046092aef03612f46bb136e4

Modified Files
--------------
doc/src/sgml/libpq.sgml | 10 +++++++---
src/interfaces/libpq/libpq-fe.h | 17 ++++++++++++-----
2 files changed, 19 insertions(+), 8 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Michael Paquier 2025-12-17 22:34:11 pgsql: Fix const correctness in pgstat data serialization callbacks
Previous Message Tom Lane 2025-12-17 19:11:38 Re: pgsql: Revert "Avoid requiring Spanish locale to test NLS infrastructur