apache/seatunnel · error · TableAlreadyExistException
Table already exists in catalog (TableAlreadyExistException)
Error message
Table %s already exists in catalog %s (TableAlreadyExistException)
What it means
DorisCatalog.createTable throws TableAlreadyExistException(catalogName, tablePath) when the target table already exists and ignoreIfExists is false; with ignoreIfExists=true it logs and skips creation instead.
Solutions
- Drop the existing table or choose a different table name
- Enable ignoreIfExists semantics so existing tables are reused
- Confirm the target table path does not point at an unintended table
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/catalog/DorisCatalog.java:411 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/faee1225fa2ee807.
Report an issue: GitHub.
Appendix: source
Thrown at seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/catalog/DorisCatalog.java:411
return typeConverter.convert(typeDefine);
}
@Override
public void createTable(TablePath tablePath, CatalogTable table, boolean ignoreIfExists)
throws TableAlreadyExistException, DatabaseNotExistException, CatalogException {
if (!databaseExists(tablePath.getDatabaseName())) {
throw new DatabaseNotExistException(catalogName, tablePath.getDatabaseName());
}
boolean tableExists = tableExists(tablePath);
if (ignoreIfExists && tableExists) {
LOG.info("table {} is exists, skip create", tablePath.getFullName());
return;
}
if (tableExists) {
throw new TableAlreadyExistException(catalogName, tablePath);
}
String stmt =
DorisCatalogUtil.getCreateTableStatement(
createTableTemplate, tablePath, table, typeConverter);
try (Statement statement = conn.createStatement()) {
statement.execute(stmt);
} catch (SQLException e) {
throw new CatalogException("create table statement execute failed", e);
}
}
@Override
public void dropTable(TablePath tablePath, boolean ignoreIfNotExists)
throws TableNotExistException, CatalogException {
String query = DorisCatalogUtil.getDropTableQuery(tablePath, ignoreIfNotExists);
try (Statement stmt = conn.createStatement()) {
stmt.execute(query);View on GitHub (pinned to cf67b549a7)