diff --git a/src/main/java/com/samskivert/depot/impl/DepotMarshaller.java b/src/main/java/com/samskivert/depot/impl/DepotMarshaller.java index 723796a..0119840 100644 --- a/src/main/java/com/samskivert/depot/impl/DepotMarshaller.java +++ b/src/main/java/com/samskivert/depot/impl/DepotMarshaller.java @@ -1033,25 +1033,25 @@ public class DepotMarshaller implements QueryMarshal return ctx.invoke(new Fetcher.Trivial() { public TableMetaData invoke (PersistenceContext ctx, Connection conn, DatabaseLiaison dl) throws SQLException { - return new TableMetaData(conn.getMetaData(), dl, tableName); + return new TableMetaData(conn.getCatalog(), conn.getMetaData(), dl, tableName); } }); } - public TableMetaData (DatabaseMetaData meta, DatabaseLiaison dl, String tableName) - throws SQLException - { - tableExists = meta.getTables(null, dl.getSchemaName(), tableName, null).next(); + public TableMetaData ( + String catalog, DatabaseMetaData meta, DatabaseLiaison dl, String tableName + ) throws SQLException { + tableExists = meta.getTables(catalog, dl.getSchemaName(), tableName, null).next(); if (!tableExists) { return; } - ResultSet rs = meta.getColumns(null, dl.getSchemaName(), tableName, "%"); + ResultSet rs = meta.getColumns(catalog, dl.getSchemaName(), tableName, "%"); while (rs.next()) { tableColumns.add(rs.getString("COLUMN_NAME")); } - rs = meta.getIndexInfo(null, dl.getSchemaName(), tableName, false, false); + rs = meta.getIndexInfo(catalog, dl.getSchemaName(), tableName, false, false); while (rs.next()) { String indexName = rs.getString("INDEX_NAME"); Set set = indexColumns.get(indexName); @@ -1071,7 +1071,7 @@ public class DepotMarshaller implements QueryMarshal } } - rs = meta.getPrimaryKeys(null, dl.getSchemaName(), tableName); + rs = meta.getPrimaryKeys(catalog, dl.getSchemaName(), tableName); while (rs.next()) { pkName = rs.getString("PK_NAME"); pkColumns.add(rs.getString("COLUMN_NAME")); diff --git a/src/main/java/com/samskivert/depot/impl/jdbc/BaseLiaison.java b/src/main/java/com/samskivert/depot/impl/jdbc/BaseLiaison.java index d7c8bd3..5fc40e0 100644 --- a/src/main/java/com/samskivert/depot/impl/jdbc/BaseLiaison.java +++ b/src/main/java/com/samskivert/depot/impl/jdbc/BaseLiaison.java @@ -67,7 +67,7 @@ public abstract class BaseLiaison implements DatabaseLiaison // from DatabaseLiaison public boolean tableExists (Connection conn, String name) throws SQLException { - ResultSet rs = conn.getMetaData().getTables(null, getSchemaName(), name, null); + ResultSet rs = conn.getMetaData().getTables(conn.getCatalog(), getSchemaName(), name, null); while (rs.next()) { String tname = rs.getString("TABLE_NAME"); if (name.equals(tname)) { @@ -81,7 +81,8 @@ public abstract class BaseLiaison implements DatabaseLiaison public boolean tableContainsColumn (Connection conn, String table, String column) throws SQLException { - ResultSet rs = conn.getMetaData().getColumns(null, getSchemaName(), table, column); + ResultSet rs = conn.getMetaData().getColumns( + conn.getCatalog(), getSchemaName(), table, column); while (rs.next()) { String tname = rs.getString("TABLE_NAME"); String cname = rs.getString("COLUMN_NAME"); @@ -96,7 +97,8 @@ public abstract class BaseLiaison implements DatabaseLiaison public boolean tableContainsIndex (Connection conn, String table, String index) throws SQLException { - ResultSet rs = conn.getMetaData().getIndexInfo(null, getSchemaName(), table, false, true); + ResultSet rs = conn.getMetaData().getIndexInfo( + conn.getCatalog(), getSchemaName(), table, false, true); while (rs.next()) { String tname = rs.getString("TABLE_NAME"); String iname = rs.getString("INDEX_NAME");