Re: libpq: Bump protocol version to version 3.2 at least until the first/second beta
Jacob Champion <jacob.champion@enterprisedb.com>
From: Jacob Champion <jacob.champion@enterprisedb.com>
To: Jelte Fennema-Nio <postgres@jeltef.nl>
Cc: Andres Freund <andres@anarazel.de>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>,
Heikki Linnakangas <hlinnaka@iki.fi>, Robert Haas <robertmhaas@gmail.com>
Date: 2026-01-23T23:38:48Z
Lists: pgsql-hackers
Attachments
- since-v3.diff.txt (text/plain)
- v5-0001-doc-Expand-upon-protocol-versions-and-extensions.patch (application/octet-stream) patch v5-0001
- v5-0002-libpq-Prepare-for-protocol-grease-during-19beta.patch (application/octet-stream) patch v5-0002
- v5-0003-libpq-Grease-the-protocol-by-default.patch (application/octet-stream) patch v5-0003
On Wed, Jan 14, 2026 at 2:56 PM Jacob Champion <jacob.champion@enterprisedb.com> wrote: > Thanks, I'll plan to squash those in v5, and probably kick 0005 out > into its own thread to give people a chance to object even if they're > ignoring the grease stuff. 0001, 0003, and 0005 are committed. v5 is attached with several changes, described below. On Wed, Jan 14, 2026 at 12:23 PM Jacob Champion <jacob.champion@enterprisedb.com> wrote: > I want to more clearly decouple ourselves from TLS's GREASE in the > documentation and comments. Done. Unfortunately the rewrites were too difficult to put into nice squash! commits, since they ended up being spread across the split described below, so I've also attached an "overall" diff file to try to highlight what I changed from v3-0002. One thing I tried to do here was separate the beta-only behavior into <note>s, so that documentation writers can still review and patch the language that's going to be published for release. I don't think that will confuse the limited audience that is going to be reading this. > I will also work on splitting 0002 into revertable and not-revertable > halves. The grease constant probably needs to remain documented and > reserved even if it doesn't do anything for 19.0. Done. My proposed split is in v5-0002 (which stays) and -0003 (which gets reverted). I also added an 0001 which (IMO) improves our documentation around this, and adds a registry of sorts for the protocol extension parameters. I'm not completely thrilled about the code and formatting of that new registry table, but I think what I have is better than nothing, so I'm going to stop fighting with docbook about this. > I'd like reserve a (protected?) wiki page, or something of the sort, > that we can point people to directly if they hit any grease failures. This still needs to be done/discussed, but we have a good amount of time. > Finally: is there any appetite for retaining the ability to grease > connections as production functionality, e.g. via > `max_protocol_version=grease`? This is on the back burner for now. (As stated upthread, it doesn't need to block the beta-only behavior.) WDYT? Thanks, --Jacob
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
libpq: Grease the protocol by default
- 4966bd3ed95e 19 (unreleased) landed
-
libpq: Prepare for protocol grease during 19beta
- d8d7c5dc8f74 19 (unreleased) landed
-
doc: Expand upon protocol versions and extensions
- e3d37853ecd5 19 (unreleased) landed
-
libpq_pipeline: Test the default protocol version
- 9b9eaf08ab2d 19 (unreleased) landed