-
Notifications
You must be signed in to change notification settings - Fork 492
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support PostgreSQL protocol and protocol extension negotiation #7810
Comments
Problem:
Needs to figure out how to resolve this early.
|
Alternative work around:
|
This would probably be less useful though. If a customer wants to make use of a new protocol feature, this would be inconsistent behaviour. I think I would prefer having different hostname/nlb/proxy per protocol version. |
I went for the approach that downgrades the protocol for now. We can reconsider once there are protocol extensions that we might need to support. Either by implementing the translation in proxy, or by launching separate proxies. |
The PostgreSQL frontend-backend protocol supports protocol negotiation, so that if the client supports a higher version of the protocol than the server, they can agree to use the lowest common denominator. In practice, that never happens because there haven't been any new protocol versions since that mechanism was introduced. The protocol version is always 3.0. The same mechanism can also be used to negotiate the use of optional protocol extensions. That is also not used in practice because no optional protocol extensions have been introduced.
There were some patches in the v17 release cycle to introduce protocol changes that would've used that mechanism, but they were not committed. For future-proofing, it would be nice to support the protocol negotiation in the proxy.
See
NegotiateProtocolVersion
at https://www.postgresql.org/docs/devel/protocol-flow.html.The text was updated successfully, but these errors were encountered: