diff --git a/plugin/src/main/java/com/databasir/core/meta/repository/condition/TableCondition.java b/plugin/src/main/java/com/databasir/core/meta/repository/condition/TableCondition.java index 753aa51..dba3828 100644 --- a/plugin/src/main/java/com/databasir/core/meta/repository/condition/TableCondition.java +++ b/plugin/src/main/java/com/databasir/core/meta/repository/condition/TableCondition.java @@ -15,6 +15,7 @@ public class TableCondition extends Condition { return TableCondition.builder() .databaseName(condition.getDatabaseName()) .tableName(tableName) + .schemaName(condition.getSchemaName()) .ignoreTableNameRegex(condition.getIgnoreTableNameRegex()) .ignoreTableColumnNameRegex(condition.getIgnoreTableColumnNameRegex()) .build(); diff --git a/plugin/src/main/java/com/databasir/core/meta/repository/impl/jdbc/JdbcColumnMetaRepository.java b/plugin/src/main/java/com/databasir/core/meta/repository/impl/jdbc/JdbcColumnMetaRepository.java index 3d11acb..530b8d8 100644 --- a/plugin/src/main/java/com/databasir/core/meta/repository/impl/jdbc/JdbcColumnMetaRepository.java +++ b/plugin/src/main/java/com/databasir/core/meta/repository/impl/jdbc/JdbcColumnMetaRepository.java @@ -30,10 +30,11 @@ public class JdbcColumnMetaRepository implements ColumnMetaRepository { List columnDocs = new ArrayList<>(); String databaseName = tableCondition.getDatabaseName(); String tableName = tableCondition.getTableName(); - List primaryKeyColumns = selectPrimaryKeyColumns(connection.getMetaData(), databaseName, tableName); + List primaryKeyColumns = selectPrimaryKeyColumns(connection.getMetaData(), tableCondition); ResultSet columnsResult; try { - columnsResult = connection.getMetaData().getColumns(databaseName, null, tableName, null); + columnsResult = connection.getMetaData() + .getColumns(databaseName, tableCondition.getSchemaName(), tableName, null); } catch (SQLException e) { log.warn("warn: ignore columns in " + databaseName + "." + tableName); return columnDocs; @@ -85,9 +86,9 @@ public class JdbcColumnMetaRepository implements ColumnMetaRepository { } private List selectPrimaryKeyColumns(DatabaseMetaData meta, - String catalog, - String tableName) throws SQLException { - ResultSet result = meta.getPrimaryKeys(catalog, null, tableName); + TableCondition tableCondition) throws SQLException { + ResultSet result = meta.getPrimaryKeys(tableCondition.getDatabaseName(), + tableCondition.getSchemaName(), tableCondition.getTableName()); List columns = new ArrayList<>(); while (result.next()) { String columnName = result.getString("COLUMN_NAME"); diff --git a/plugin/src/main/java/com/databasir/core/meta/repository/impl/jdbc/JdbcIndexMetaRepository.java b/plugin/src/main/java/com/databasir/core/meta/repository/impl/jdbc/JdbcIndexMetaRepository.java index 5d0ded5..f44f3c2 100644 --- a/plugin/src/main/java/com/databasir/core/meta/repository/impl/jdbc/JdbcIndexMetaRepository.java +++ b/plugin/src/main/java/com/databasir/core/meta/repository/impl/jdbc/JdbcIndexMetaRepository.java @@ -28,7 +28,8 @@ public class JdbcIndexMetaRepository implements IndexMetaRepository { List indexMetas = new ArrayList<>(); ResultSet indexResults; try { - indexResults = connection.getMetaData().getIndexInfo(databaseName, null, tableName, false, false); + indexResults = connection.getMetaData() + .getIndexInfo(databaseName, condition.getSchemaName(), tableName, false, false); } catch (SQLException e) { log.warn("warn: ignore " + databaseName + "." + tableName); return indexMetas;