1
0
mirror of https://github.com/postgres/postgres.git synced 2026-01-26 09:41:40 +03:00

pqcomm.h: Explicitly reserve protocol v3.1

Document this unused version alongside the other special protocol
numbers.

Reviewed-by: Jelte Fennema-Nio <postgres@jeltef.nl>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/CAOYmi%2BkKyw%3Dh-5NKqqpc7HC5M30_QmzFx3kgq2AdipyNj47nUw%40mail.gmail.com
This commit is contained in:
Jacob Champion
2026-01-23 12:57:15 -08:00
parent 4ce105d9c4
commit f7521bf721
2 changed files with 7 additions and 1 deletions

View File

@@ -98,6 +98,12 @@ is_unixsock_path(const char *path)
* Reserved protocol numbers, which have special semantics:
*/
/*
* 3.1 would have collided with old pgbouncer deployments, and was skipped. We
* neither emit it nor accept it on the wire.
*/
#define PG_PROTOCOL_RESERVED_31 PG_PROTOCOL(3,1)
/*
* A client can send a cancel-current-operation request to the postmaster.
* This is uglier than sending it directly to the client's backend, but it

View File

@@ -1465,7 +1465,7 @@ pqGetNegotiateProtocolVersion3(PGconn *conn)
}
/* 3.1 never existed, we went straight from 3.0 to 3.2 */
if (their_version == PG_PROTOCOL(3, 1))
if (their_version == PG_PROTOCOL_RESERVED_31)
{
libpq_append_conn_error(conn, "received invalid protocol negotiation message: server requested downgrade to non-existent 3.1 protocol version");
goto failure;