Skip to content

Comments

Implement support for protocol 3.2#2498

Merged
jackc merged 2 commits intojackc:masterfrom
dbussink:protocol-32
Feb 14, 2026
Merged

Implement support for protocol 3.2#2498
jackc merged 2 commits intojackc:masterfrom
dbussink:protocol-32

Conversation

@dbussink
Copy link
Contributor

@dbussink dbussink commented Feb 3, 2026

This adds support for the new protocol 3.2 that is available in Postgres 18+.

The specific change is that secret keys are now variable length encoded and no longer a fixed uint32. This is to both improve security and to provide room for additional metadata for middleware.

Fixes #2489

This adds support for the new protocol 3.2 that is available in Postgres
18+.

The specific change is that secret keys are now variable length encoded
and no longer a fixed uint32. This is to both improve security and to
provide room for additional metadata for middleware.

Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com>

func TestConnectProtocolVersion32(t *testing.T) {
t.Parallel()
config, err := pgconn.ParseConfig(os.Getenv("PGX_TEST_DATABASE") + " max_protocol_version=3.2")
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Based on the failures in CI, I think this might need to change to parse the config, then set max protocol version directly on the config struct. I think that string concatenation is yielding an invalid connection string.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jackc Pushed!

Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com>
t.Parallel()
config, err := pgconn.ParseConfig(os.Getenv("PGX_TEST_DATABASE"))
require.NoError(t, err)
config.MaxProtocolVersion = "3.2"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it make sense to use a constant instead of a literal?
Then usages could be found easier in IDEs and Agents.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I haven't done that since I don't see it used for example for ssl mode flags. But I think it's really a project style decision then, more a question for @jackc then I think.

@jackc
Copy link
Owner

jackc commented Feb 14, 2026

It looks like the test failure is something with CockroachDB not liking the unknown connection string argument. I'm going to merge this and fix that later.

@jackc jackc merged commit 2491ae1 into jackc:master Feb 14, 2026
9 of 42 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support for protocol version 3.2

3 participants