Michael>_pgNameToOid.put(schema + "." + name, oid)
Michael>I think it makes sense to follow this behavior in getPGType(pgTypeName).
The idea of type cache is to avoid pg_catalog SQLs on the hot path.
Consider a user issuing `createArrayOf`. Do you mean pgjdbc should query the catalog on each invocation of createArrayOf? I'm not sure it would be the right thing, as it is basically the only way to create arrays.
Theoretically, there's java.sql.SQLType (since Java 1.8), however I don't thing 1.8-specific APIs (e.g. implementing TypeCache via Map<java.sql.SQLType, ...>) would be a good idea at this point.
Michael>search path. This results in the cache returning unqualified type
I think that is a separate issue and we might handle "search path" changes by flushing the cache of user-provided names.
Vladimir