prestodb/presto · error · PrestoException

NOT_SUPPORTED

NOT_SUPPORTED

Error message

Dropping materialized views not yet supported

What it means

Fired by dropTable when the table handle being dropped actually refers to a Cassandra materialized view. The Cassandra connector's drop path only implements table deletion; dropping a view is an unimplemented operation, so the request is rejected as not yet supported.

Source

Thrown at presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraMetadata.java:266

    @Override
    public void createTable(ConnectorSession session, ConnectorTableMetadata tableMetadata, boolean ignoreExisting)
    {
        createTable(session, tableMetadata);
    }

    @Override
    public void dropTable(ConnectorSession session, ConnectorTableHandle tableHandle)
    {
        checkArgument(tableHandle instanceof CassandraTableHandle, "tableHandle is not an instance of CassandraTableHandle");

        if (!allowDropTable) {
            throw new PrestoException(PERMISSION_DENIED, "DROP TABLE is disabled in this Cassandra catalog");
        }

        CassandraTableHandle cassandraTableHandle = (CassandraTableHandle) tableHandle;
        if (cassandraSession.isMaterializedView(cassandraTableHandle.getSchemaTableName())) {
            throw new PrestoException(NOT_SUPPORTED, "Dropping materialized views not yet supported");
        }

        cassandraSession.execute(String.format("DROP TABLE \"%s\".\"%s\"", cassandraTableHandle.getSchemaName(), cassandraTableHandle.getTableName()));

        // Refresh metadata after DROP to ensure schema cache is updated in Driver 4.x
        cassandraSession.refreshSchema();
    }

    @Override
    public void renameTable(ConnectorSession session, ConnectorTableHandle tableHandle, SchemaTableName newTableName)
    {
        throw new PrestoException(NOT_SUPPORTED, "Renaming tables not yet supported for Cassandra");
    }

    @Override
    public ConnectorOutputTableHandle beginCreateTable(ConnectorSession session, ConnectorTableMetadata tableMetadata, Optional<ConnectorNewTableLayout> layout)
    {
        return createTable(session, tableMetadata);

View on GitHub (pinned to 55bb57d202)

Solutions

  1. Drop the materialized view directly in Cassandra with DROP MATERIALIZED VIEW
  2. Track support for view drops in newer connector versions
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraMetadata.java:266 when the library encounters an invalid state.

Common situations: See trigger scenarios.

Understand the failure class

Background: Presto NOT_SUPPORTED error: what "not supported" means and how to fix it — this error's family across 3 libraries.


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