prestodb/presto · error · UnsupportedOperationException
getMaterializedViewStatus is not supported
Error message
getMaterializedViewStatus is not supported
What it means
MetadataResolver.getMaterializedViewStatus has a default implementation that throws UnsupportedOperationException("getMaterializedViewStatus is not supported"). Only resolvers backing materialized views implement it; the engine calls it (e.g. from MaterializedViewStatus query handling) when it needs to know how much of a materialized view is materialized.
Source
Thrown at presto-spi/src/main/java/com/facebook/presto/spi/analyzer/MetadataResolver.java:117
/**
* Returns true if provided catalog, schema and object name is a materialized view.
*
* @param viewName the fully qualified name (catalog, schema, and view) of the view.
*/
default boolean isMaterializedView(QualifiedObjectName viewName)
{
return getMaterializedView(viewName).isPresent();
}
/**
* Get the materialized view status to inform the engine how much data has been materialized in the view
* @param materializedViewName materialized view name
* @param baseQueryDomain The domain from which to consider missing partitions.
*/
default MaterializedViewStatus getMaterializedViewStatus(QualifiedObjectName materializedViewName, TupleDomain<String> baseQueryDomain)
{
throw new UnsupportedOperationException("getMaterializedViewStatus is not supported");
}
}
View on GitHub (pinned to 55bb57d202)
Solutions
- Avoid materialized-view status operations on catalogs/connectors that don't implement it
- Implement getMaterializedViewStatus in your ConnectorMetadata/MetadataResolver adapter
- Catch UnsupportedOperationException and return a 'status unknown' result in engine-side calling code
Example fix
// before
MaterializedViewStatus s = resolver.getMaterializedViewStatus(viewName, domain);
// after
try {
MaterializedViewStatus s = resolver.getMaterializedViewStatus(viewName, domain);
} catch (UnsupportedOperationException e) {
// treat as unsupported for this catalog
} Defensive patterns
Strategy: try-catch
Try / catch
try { status = resolver.getMaterializedViewStatus(name, domain); } catch (UnsupportedOperationException e) { status = null; /* unknown/unsupported */ } Prevention
- Only query materialized-view status on catalogs that implement the SPI method
- Feature-detect capability before enabling materialized view management UI/commands
When it happens
Trigger: Querying or refreshing a materialized view where the active metadata resolver does not override getMaterializedViewStatus, e.g. catalogs lacking materialized view support being asked for view status.
Common situations: Running SHOW/refresh on materialized views in a catalog whose connector never implemented this method; version upgrades introducing materialized-view features to engines targeting older connectors.
Related errors
- rewind is not supported in this ConnectorSplitSource
- This connector does not support row-level delete
- This connector does not support row update
- INVALID_TABLE_PROPERTY
- SingleMapBlock does not support appendNull()
AI-assisted analysis of prestodb/presto@55bb57d202 (2026-09-04).
Data as JSON: /api/errors/0762db960c56f2eb.
Report an issue: GitHub.