prestodb/presto · error · PrestoException

NOT_SUPPORTED

NOT_SUPPORTED

Error message

This connector does not support creating vector indexes

What it means

Metadata.beginCreateVectorIndex is a default interface method that connectors must override to support the CREATE VECTOR INDEX operation. The default implementation throws NOT_SUPPORTED, meaning the connector backing the target catalog has not implemented vector index creation.

Source

Thrown at presto-main-base/src/main/java/com/facebook/presto/metadata/Metadata.java:291

    Optional<NewTableLayout> getNewTableLayout(Session session, String catalogName, ConnectorTableMetadata tableMetadata);

    /**
     * Begin the atomic creation of a table with data.
     */
    OutputTableHandle beginCreateTable(Session session, String catalogName, ConnectorTableMetadata tableMetadata, Optional<NewTableLayout> layout);

    /**
     * Finish a table creation with data after the data is written.
     */
    Optional<ConnectorOutputMetadata> finishCreateTable(Session session, OutputTableHandle tableHandle, Collection<Slice> fragments, Collection<ComputedStatistics> computedStatistics);

    /**
     * Begin the atomic creation of a vector index with data.
     */
    default OutputTableHandle beginCreateVectorIndex(Session session, String catalogName, ConnectorTableMetadata indexMetadata, Optional<NewTableLayout> layout, SchemaTableName sourceTableName)
    {
        throw new PrestoException(NOT_SUPPORTED, "This connector does not support creating vector indexes");
    }

    /**
     * Finish a vector index creation with data after the data is written.
     */
    default Optional<ConnectorOutputMetadata> finishCreateVectorIndex(Session session, OutputTableHandle tableHandle, Collection<Slice> fragments, Collection<ComputedStatistics> computedStatistics)
    {
        throw new PrestoException(NOT_SUPPORTED, "This connector does not support creating vector indexes");
    }

    Optional<NewTableLayout> getInsertLayout(Session session, TableHandle target);

    /**
     * Describes statistics that must be collected during a write.
     */
    TableStatisticsMetadata getStatisticsCollectionMetadataForWrite(Session session, String catalogName, ConnectorTableMetadata tableMetadata);

    /**

View on GitHub (pinned to 55bb57d202)

Solutions

  1. Use a catalog whose connector implements vector index creation (e.g. an engine/native connector that supports it)
  2. Check the connector's documentation for vector index support before issuing CREATE VECTOR INDEX
  3. If you own the connector, implement beginCreateVectorIndex/finishCreateVectorIndex in its ConnectorMetadata
  4. Upgrade the connector/plugin to a version that adds vector index support

Example fix

// before
CREATE VECTOR INDEX idx ON hive.db.table(col); -- connector doesn't support it
// after
CREATE VECTOR INDEX idx ON vectorcapable_catalog.db.table(col);
Defensive patterns

Strategy: validation

Validate before calling

// Before CREATE VECTOR INDEX, confirm connector support:
// Check the connector's documentation/features; there is no supportsVectorIndex() SPI check,
// so validate catalog choice at deployment/config time.
if (!vectorIndexCapableCatalogs.contains(catalogName)) {
    throw new IllegalArgumentException("Catalog " + catalogName + " does not support vector indexes");
}

Try / catch

try { metadata.beginCreateVectorIndex(session, catalog, md, layout, src); }
catch (PrestoException e) { if (NOT_SUPPORTED.getCode() == e.getErrorCode()) { /* route to a supporting catalog or surface a clear user error */ } else throw e; }

Prevention

When it happens

Trigger: Running a CREATE VECTOR INDEX statement (or otherwise calling beginCreateVectorIndex) against a catalog whose ConnectorMetadata does not override this method.

Common situations: Pointing CREATE VECTOR INDEX at a catalog using a connector (Hive, most JDBC connectors) that lacks vector-index support; running on a Presto build/connector version that predates vector index support; expecting a generic connector to support the feature.

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.

Related errors


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