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

Reply via email to