prestodb/presto · error · java.lang.UnsupportedOperationException

isTransactionControlStatement method is not supported!

Error message

isTransactionControlStatement method is not supported!

What it means

Sentinel UnsupportedOperationException: this PreparedQuery subclass does not carry query-analysis state, so calling isTransactionControlStatement is unsupported; it fires when such a prepared query is executed without proper statement classification.

Source

Thrown at presto-common/src/main/java/com/facebook/presto/common/analyzer/PreparedQuery.java:50

    public Optional<String> getFormattedQuery()
    {
        return formattedQuery;
    }

    public Optional<String> getPrepareSql()
    {
        return prepareSql;
    }

    public Optional<QueryType> getQueryType()
    {
        throw new UnsupportedOperationException("getQueryType method is not supported!");
    }

    public boolean isTransactionControlStatement()
    {
        throw new UnsupportedOperationException("isTransactionControlStatement method is not supported!");
    }

    public boolean isRollbackStatement()
    {
        throw new UnsupportedOperationException("isRollbackStatement method is not supported!");
    }

    public Class<?> getStatementClass()
    {
        throw new UnsupportedOperationException("getStatementClass method is not supported!");
    }

    public boolean isExplainTypeValidate()
    {
        throw new UnsupportedOperationException("isExplainTypeValidate method is not supported!");
    }
}

View on GitHub (pinned to 55bb57d202)

Solutions

  1. Use the PreparedQuery subclass that wraps the analyzed Statement
  2. Move the transaction-control check to where the Statement object is available
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at presto-common/src/main/java/com/facebook/presto/common/analyzer/PreparedQuery.java:50 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of prestodb/presto@55bb57d202 (2026-09-04). Data as JSON: /api/errors/401bb74f82620abc. Report an issue: GitHub.