With PG18 the protocol version 3.2 was introduced (the first minor protocol version bump ever in PG history). We intend to make minor protocol version bumps are frequent thing. Servers speaking the Postgres protocol should send a NegotiateProtocolVersion message with a version downgrade request to the client when they don't support the minor protocol version requested in the StartupMessage.
Currently libpq still defaults to requesting 3.0, because while postgres has supported NegotationProtocolVersion for many years, most proxies or other server implementations (like cockroach) do not yet support it. So hereby a nudge to implement it in pgdog, so that hopefully in some time we can change libpq its defaults and have the protocol evolve quicker.
Also actually supporting protocol version 3.2 is nice for security, since you can send a longer cancellation key.
With PG18 the protocol version 3.2 was introduced (the first minor protocol version bump ever in PG history). We intend to make minor protocol version bumps are frequent thing. Servers speaking the Postgres protocol should send a NegotiateProtocolVersion message with a version downgrade request to the client when they don't support the minor protocol version requested in the StartupMessage.
Currently libpq still defaults to requesting 3.0, because while postgres has supported NegotationProtocolVersion for many years, most proxies or other server implementations (like cockroach) do not yet support it. So hereby a nudge to implement it in pgdog, so that hopefully in some time we can change libpq its defaults and have the protocol evolve quicker.
Also actually supporting protocol version 3.2 is nice for security, since you can send a longer cancellation key.