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