Re: Add new protocol message to change GUCs for usage with future protocol-only GUCs
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Jelte Fennema-Nio <postgres@jeltef.nl>
Cc: Tom Lane <tgl@sss.pgh.pa.us>,
Jacob Burroughs <jburroughs@instructure.com>, Dave Cramer <davecramer@gmail.com>, Peter Smith <smithpb2250@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, "Andrey M. Borodin" <x4mmm@yandex-team.ru>,
Pavel Stehule <pavel.stehule@gmail.com>, Jeff Davis <pgsql@j-davis.com>, Peter Eisentraut <peter@eisentraut.org>,
hlinnaka <hlinnaka@iki.fi>
Date: 2024-06-05T15:12:28Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
libpq: Add min/max_protocol_version connection options
- 285613c60a7a 18.0 landed
-
libpq: Handle NegotiateProtocolVersion message differently
- 5070349102af 18.0 landed
-
Add PQfullProtocolVersion() to surface the precise protocol version.
- cdb6b0fdb0b2 18.0 landed
-
Do not hardcode PG_PROTOCOL_LATEST in NegotiateProtocolVersion
- 516b87502dc1 18.0 landed
-
libpq: Handle NegotiateProtocolVersion message
- bbf9c282ce92 16.0 cited
-
Provide for forward compatibility with future minor protocol versions.
- ae65f6066dc3 11.0 cited
On Wed, Jun 5, 2024 at 10:06 AM Jelte Fennema-Nio <postgres@jeltef.nl> wrote: > FYI Heikki his patchset is here: > https://www.postgresql.org/message-id/flat/508d0505-8b7a-4864-a681-e7e5edfe32aa%40iki.fi > > Afaict there's no way to implement this with old clients supporting > the new message. So it would need to be opt-in from the client > perspective, either using a version bump or a protocol parameter (e.g. > large_cancel=true). IMHO a version bump would make more sense for this > one. Well, hang on. The discussion on that thread suggests that this is only going to break connections to servers that don't have NegotiateProtocolVersion. Personally, I think that's fairly OK. It's true that connections to, I guess, pre-9.3 servers will break, but there shouldn't be tons of those left around. It's not great to break connectivity to such servers, of course, but it seems kind of OK. What I really don't want is for v18 to break connections to v17 servers. That would be exponentially more disruptive. I do take your point that poolers haven't added support for NegotiateProtocolVersion yet, but I bet that will change pretty quickly once there's a benefit to doing so. I think it's a lot easier for people to install a new pooler version than a new server version, because the server has the data in it. Also, it's not like they haven't had time. But the real question here is whether we think the longer cancel key is really important enough to justify the partial compatibility break. I'm not deathly opposed to it, but I think it's debatable and I'm sure some people are going to be unhappy. -- Robert Haas EDB: http://www.enterprisedb.com