prestodb/presto · error · PrestoException

NOT_SUPPORTED

NOT_SUPPORTED

Error message

This connector does not support creating vector indexes. The connector must provide a ConnectorPlanOptimizer to handle CREATE VECTOR INDEX.

What it means

NOT_SUPPORTED error from TableWriteInfo.createWriterTarget for CREATE VECTOR INDEX: the target catalog provides no ConnectorPlanOptimizer able to handle vector index creation, so the statement cannot be planned against this connector.

Source

Thrown at presto-main-base/src/main/java/com/facebook/presto/execution/scheduler/TableWriteInfo.java:136

                CallDistributedProcedureTarget callDistributedProcedureTarget = (CallDistributedProcedureTarget) target;
                return Optional.of(new ExecuteProcedureHandle(
                        metadata.beginCallDistributedProcedure(
                                session,
                                callDistributedProcedureTarget.getProcedureName(),
                                callDistributedProcedureTarget.getSourceHandle().orElse(null),
                                callDistributedProcedureTarget.getProcedureArguments(),
                                callDistributedProcedureTarget.isSourceTableEliminated()),
                        callDistributedProcedureTarget.getSchemaTableName(),
                        callDistributedProcedureTarget.getProcedureName()));
            }
            if (target instanceof TableWriterNode.MergeTarget) {
                TableWriterNode.MergeTarget mergeTarget = (TableWriterNode.MergeTarget) target;
                Optional<MergeHandle> mergeHandle = mergeTarget.getMergeHandle();
                return Optional.of(new ExecutionWriterTarget.MergeHandle(mergeHandle.orElseThrow(
                        () -> new VerifyException("mergeHandle is absent: " + target.getClass().getSimpleName()))));
            }
            if (target instanceof TableWriterNode.CreateVectorIndexReference) {
                throw new PrestoException(NOT_SUPPORTED,
                        "This connector does not support creating vector indexes. " +
                        "The connector must provide a ConnectorPlanOptimizer to handle CREATE VECTOR INDEX.");
            }
            throw new IllegalArgumentException("Unhandled target type: " + target.getClass().getSimpleName());
        }

        return Optional.empty();
    }

    private static Optional<ExecutionWriterTarget> createWriterTarget(StreamingSubPlan plan, Metadata metadata, Session session)
    {
        return createWriterTarget(findSinglePlanNode(plan, TableFinishNode.class), metadata, session);
    }

    private static Optional<ExecutionWriterTarget> createWriterTarget(PlanNode planNode, Metadata metadata, Session session)
    {
        return createWriterTarget(findSinglePlanNode(planNode, TableFinishNode.class), metadata, session);
    }

View on GitHub (pinned to 55bb57d202)

Solutions

  1. Run CREATE VECTOR INDEX against a connector that implements vector index support
  2. Implement a ConnectorPlanOptimizer in the connector to handle CREATE VECTOR INDEX
  3. Use the connector's native indexing mechanism if one exists
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at presto-main-base/src/main/java/com/facebook/presto/execution/scheduler/TableWriteInfo.java:136 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/ca8f9152d6d0dead. Report an issue: GitHub.