dailai commented on code in PR #7261:
URL: https://github.com/apache/seatunnel/pull/7261#discussion_r1694786247


##########
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:
   > But in fact, the old way only has performance issues. If the user does not 
have a lot of tables, there is no problem. This PR solves the performance 
problem but should not invalidate the functions of the custom Catalog (It can 
not worked after merge this PR if do not change the code).
   
   In fact, even the original method is also executed the SQL first to get all 
the table names, and if the SQL  is not supported, the original method is also 
not supported. I just added a where condition to the original sql, it doesn't 
seem to make any difference



-- 
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

Reply via email to