Hisoka-X commented on code in PR #7261: URL: https://github.com/apache/seatunnel/pull/7261#discussion_r1694700491
########## seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/AbstractJdbcCatalog.java: ########## @@ -277,15 +285,24 @@ public List<String> listDatabases() throws CatalogException { @Override public boolean databaseExists(String databaseName) throws CatalogException { - checkArgument(StringUtils.isNotBlank(databaseName)); - - return listDatabases().contains(databaseName); + if (StringUtils.isBlank(databaseName)) { + return false; + } + if (!SYS_DATABASES.isEmpty() && SYS_DATABASES.contains(databaseName)) { + return false; + } + return queryExists( + getUrlFromDatabaseName(databaseName), getDatabaseWithConditionSql(databaseName)); Review Comment: Do we need to keep the rollback strategy? If Catalog does not support the `getDatabaseWithConditionSql` method, we can continue to use the old check way. ########## seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/AbstractJdbcCatalog.java: ########## @@ -277,15 +285,24 @@ public List<String> listDatabases() throws CatalogException { @Override public boolean databaseExists(String databaseName) throws CatalogException { - checkArgument(StringUtils.isNotBlank(databaseName)); - - return listDatabases().contains(databaseName); + if (StringUtils.isBlank(databaseName)) { + return false; + } + if (!SYS_DATABASES.isEmpty() && SYS_DATABASES.contains(databaseName)) { Review Comment: ```suggestion if (SYS_DATABASES.contains(databaseName)) { ``` ########## seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/AbstractJdbcCatalog.java: ########## @@ -528,6 +548,17 @@ protected List<String> queryString(String url, String sql, ResultSetConsumer<Str } } + protected boolean queryExists(String dbUrl, String sql) { Review Comment: ```suggestion protected boolean querySQLResultExists(String dbUrl, String sql) { ``` ########## seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/AbstractJdbcCatalog.java: ########## @@ -317,12 +334,15 @@ public List<String> listTables(String databaseName) @Override public boolean tableExists(TablePath tablePath) throws CatalogException { - try { - return databaseExists(tablePath.getDatabaseName()) - && listTables(tablePath.getDatabaseName()).contains(getTableName(tablePath)); - } catch (DatabaseNotExistException e) { + String databaseName = tablePath.getDatabaseName(); + if (!databaseExists(databaseName)) { return false; } + if (EXCLUDED_SCHEMAS.contains(tablePath.getSchemaName())) { + return false; + } + return queryExists( + this.getUrlFromDatabaseName(databaseName), getTableWithConditionSql(tablePath)); Review Comment: ```suggestion String databaseName = tablePath.getDatabaseName(); if (EXCLUDED_SCHEMAS.contains(tablePath.getSchemaName())) { return false; } return queryExists( this.getUrlFromDatabaseName(databaseName), getTableWithConditionSql(tablePath)); ``` how about remove check database exist? It won't affect the result. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@seatunnel.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org