This is an automated email from the ASF dual-hosted git repository.

wuchunfu pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/seatunnel.git


The following commit(s) were added to refs/heads/dev by this push:
     new 0c0eb7e41b [Improve][Jdbc] Jdbc truncate table should check table not 
database (#7654)
0c0eb7e41b is described below

commit 0c0eb7e41bbe2a3003f29de1c2beaaee88bb729b
Author: Jia Fan <[email protected]>
AuthorDate: Thu Sep 19 13:37:03 2024 +0800

    [Improve][Jdbc] Jdbc truncate table should check table not database (#7654)
---
 .../seatunnel/jdbc/catalog/AbstractJdbcCatalog.java        |  4 ++--
 .../connectors/seatunnel/jdbc/AbstractJdbcIT.java          | 14 ++++++++++++++
 2 files changed, 16 insertions(+), 2 deletions(-)

diff --git 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/AbstractJdbcCatalog.java
 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/AbstractJdbcCatalog.java
index 260be79042..772cc3bf77 100644
--- 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/AbstractJdbcCatalog.java
+++ 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/AbstractJdbcCatalog.java
@@ -527,11 +527,11 @@ public abstract class AbstractJdbcCatalog implements 
Catalog {
     public void truncateTable(TablePath tablePath, boolean ignoreIfNotExists)
             throws TableNotExistException, CatalogException {
         checkNotNull(tablePath, "Table path cannot be null");
-        if (!databaseExists(tablePath.getDatabaseName())) {
+        if (!tableExists(tablePath)) {
             if (ignoreIfNotExists) {
                 return;
             }
-            throw new DatabaseNotExistException(catalogName, 
tablePath.getDatabaseName());
+            throw new TableNotExistException(catalogName, tablePath);
         }
         truncateTableInternal(tablePath);
     }
diff --git 
a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-common/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/AbstractJdbcIT.java
 
b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-common/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/AbstractJdbcIT.java
index 6bc135dd46..6b574512c7 100644
--- 
a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-common/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/AbstractJdbcIT.java
+++ 
b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-common/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/AbstractJdbcIT.java
@@ -26,6 +26,7 @@ import org.apache.seatunnel.api.table.catalog.ConstraintKey;
 import org.apache.seatunnel.api.table.catalog.PrimaryKey;
 import org.apache.seatunnel.api.table.catalog.TablePath;
 import org.apache.seatunnel.api.table.catalog.TableSchema;
+import org.apache.seatunnel.api.table.catalog.exception.TableNotExistException;
 import org.apache.seatunnel.api.table.type.SeaTunnelRow;
 import org.apache.seatunnel.common.exception.SeaTunnelRuntimeException;
 import org.apache.seatunnel.common.utils.ExceptionUtils;
@@ -462,6 +463,19 @@ public abstract class AbstractJdbcIT extends TestSuiteBase 
implements TestResour
             catalog.dropDatabase(targetTablePath, false);
             
Assertions.assertFalse(catalog.databaseExists(targetTablePath.getDatabaseName()));
         }
+
+        TableNotExistException exception =
+                Assertions.assertThrows(
+                        TableNotExistException.class,
+                        () ->
+                                catalog.truncateTable(
+                                        TablePath.of("not_exist", "not_exist", 
"not_exist"),
+                                        false));
+        Assertions.assertEquals(
+                String.format(
+                        "ErrorCode:[API-05], ErrorDescription:[Table not 
existed] - Table not_exist.not_exist.not_exist does not exist in Catalog %s.",
+                        catalog.name()),
+                exception.getMessage());
     }
 
     @Test

Reply via email to