On Thu, May 9, 2024 at 8:06 AM Dave Cramer <davecramer@gmail.com> wrote: > The JDBC driver is currently keeping a per connection cache of types in the driver. We are seeing cases where the number of columns is quite high. In one case Prevent fetchFieldMetaData() from being run when unnecessary. · Issue #3241 · pgjdbc/pgjdbc (github.com) 2.6 Million columns. > > If we knew that we were connecting to the same database we could use a single cache across connections. > > I think we would require a server/database identifier in the startup message.
I understand the desire to share the cache, but not why that would require any kind of change to the wire protocol.
The server identity is actually useful for many things such as knowing which instance of a cluster you are connected to.
For the cache however we can't use the IP address to determine which server we are connected to as we could be connected to a pooler.
Knowing exactly which server/database makes it relatively easy to have a common cache across connections. Getting that in the startup message seems like a good place