apache/seatunnel · warning
The catalog: is not supported the…
Error message
The catalog: {} is not supported the getDatabaseWithConditionSql for databaseExists What it means
XuguCatalog.databaseExists() probes existence with getDatabaseWithConditionSql() against the database name upper-cased (Xugu identifiers are typically uppercase). If that builder throws UNSUPPORTED_METHOD, the catalog logs this warning and falls back to listDatabases().contains(upperCasedName). The fallback answer is still returned.
Solutions
- Rely on the fallback; ensure listDatabases() works and the name is upper-cased as Xugu expects.
- Implement getDatabaseWithConditionSql(String) in XuguCatalog to enable the direct probe.
- Upgrade the SeaTunnel JDBC connector for fuller Xugu dialect support.
- Verify database name casing: pass a name whose uppercase form matches the stored identifier.
Example fix
// before
boolean exists = catalog.databaseExists("mydb");
// after (match Xugu uppercase identifiers)
boolean exists = catalog.databaseExists("mydb".toUpperCase()); Defensive patterns
Strategy: fallback
Validate before calling
// Xugu stores uppercase identifiers
String upper = databaseName.toUpperCase();
boolean exists = catalog.listDatabases().contains(upper);
if (!exists) throw new IllegalStateException("Database missing on Xugu: " + upper); Try / catch
// databaseExists handles the fallback internally boolean exists = catalog.databaseExists(databaseName.toUpperCase());
Prevention
- Always upper-case identifiers for Xugu before catalog calls
- Verify listDatabases() output matches the expected casing
- Upgrade the connector for full Xugu dialect SQL support
When it happens
Trigger: Calling databaseExists() on XuguCatalog where getDatabaseWithConditionSql is not implemented/unsupported, so querySQLResultExists throws UNSUPPORTED_METHOD.
Common situations: Auto-creation flows on Xugu databases checking database presence; running a connector version where the Xugu dialect's conditional-database SQL is missing.
Understand the failure class
Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.
Related errors
- The catalog: is not supported the getListDatabaseSql for…
- The catalog: is not supported the getTableWithConditionSql…
- Catalog not found, loading tables from jdbc directly. url
- COMMON-19
- Failed to querySQLResult
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/16f682692ed11c05.
Report an issue: GitHub.
Appendix: source
Thrown at seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/xugu/XuguCatalog.java:163
// "Test" and "TEST" are the same database
@Override
protected String getListDatabaseSql() {
return "SELECT UPPER(DB_NAME) FROM all_databases";
}
// Rewrite the databaseExists method, and xugu will force the conversion to uppercase
@Override
public boolean databaseExists(String databaseName) throws CatalogException {
if (StringUtils.isBlank(databaseName)) {
return false;
}
try {
return querySQLResultExists(
defaultUrl, getDatabaseWithConditionSql(databaseName.toUpperCase()));
} catch (SeaTunnelRuntimeException e) {
if (e.getSeaTunnelErrorCode().getCode().equals(UNSUPPORTED_METHOD.getCode())) {
log.warn(
"The catalog: {} is not supported the getDatabaseWithConditionSql for databaseExists",
this.catalogName);
return listDatabases().contains(databaseName.toUpperCase());
}
throw e;
} catch (SQLException e) {
throw new SeaTunnelException("Failed to querySQLResult", e);
}
}
@Override
protected String getCreateTableSql(
TablePath tablePath, CatalogTable table, boolean createIndex) {
return new XuguCreateTableSqlBuilder(table, createIndex).build(tablePath);
}
@Override
protected String getDropTableSql(TablePath tablePath) {View on GitHub (pinned to cf67b549a7)