Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
Improve how JDBC adapter deduces current schema on Amazon Redshift or PostgreSQL. Until now, we either look at the schema connect-string parameter, or call Connection.getSchema() (on JDBC 4.1 and above). But in Redshift's JDBC driver, Connection.getSchema() always returns null.
Now, if we know we are running against Redshift or PostgreSQL, we will execute a select current_schema() query to find the current schema.
Similarly for Connection.getCatalog() and select current_database().
Without this fix, we sometimes call DatabaseMetaData.getTables with null or empty schema, and get tables from other schemas, resulting in a "Multiple entries with same key" error while populating a Guava ImmutableMap.