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

  1. Rely on the fallback; ensure listDatabases() works and the name is upper-cased as Xugu expects.
  2. Implement getDatabaseWithConditionSql(String) in XuguCatalog to enable the direct probe.
  3. Upgrade the SeaTunnel JDBC connector for fuller Xugu dialect support.
  4. 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

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


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)