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
- Use a catalog whose connector implements vector index creation (e.g. an engine/native connector that supports it)
- Check the connector's documentation for vector index support before issuing CREATE VECTOR INDEX
- If you own the connector, implement beginCreateVectorIndex/finishCreateVectorIndex in its ConnectorMetadata
- 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
- Maintain a list of catalogs whose connectors support vector indexes
- Gate CREATE VECTOR INDEX statements by catalog in your SQL gateway
- Keep connector plugins up to date with vector-index support
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.