{"record":{"id":"0762db960c56f2eb","repo":"prestodb/presto","slug":"getmaterializedviewstatus-is-not-supported","errorCode":null,"errorMessage":"getMaterializedViewStatus is not supported","messagePattern":"getMaterializedViewStatus is not supported","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"presto-spi/src/main/java/com/facebook/presto/spi/analyzer/MetadataResolver.java","lineNumber":117,"sourceCode":"\n    /**\n     * Returns true if provided catalog, schema and object name is a materialized view.\n     *\n     * @param viewName the fully qualified name (catalog, schema, and view) of the view.\n     */\n    default boolean isMaterializedView(QualifiedObjectName viewName)\n    {\n        return getMaterializedView(viewName).isPresent();\n    }\n\n    /**\n     * Get the materialized view status to inform the engine how much data has been materialized in the view\n     * @param materializedViewName materialized view name\n     * @param baseQueryDomain The domain from which to consider missing partitions.\n     */\n    default MaterializedViewStatus getMaterializedViewStatus(QualifiedObjectName materializedViewName, TupleDomain<String> baseQueryDomain)\n    {\n        throw new UnsupportedOperationException(\"getMaterializedViewStatus is not supported\");\n    }\n}\n","sourceCodeStart":99,"sourceCodeEnd":120,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-spi/src/main/java/com/facebook/presto/spi/analyzer/MetadataResolver.java#L99-L120","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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"],"exampleFix":"// before\nMaterializedViewStatus s = resolver.getMaterializedViewStatus(viewName, domain);\n// after\ntry {\n    MaterializedViewStatus s = resolver.getMaterializedViewStatus(viewName, domain);\n} catch (UnsupportedOperationException e) {\n    // treat as unsupported for this catalog\n}","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try { status = resolver.getMaterializedViewStatus(name, domain); } catch (UnsupportedOperationException e) { status = null; /* unknown/unsupported */ }","preventionTips":["Only query materialized-view status on catalogs that implement the SPI method","Feature-detect capability before enabling materialized view management UI/commands"],"tags":["spi","unsupported-operation","materialized-view"],"backgroundTag":"unsupported-operation-connector-capability","analyzedSha":"55bb57d202de3b926896fa966c2c4a44c779634e","analyzedAt":"2026-09-04T12:50:26.162Z","contentChangedAt":"2026-09-04T12:50:26.162Z","schemaVersion":2},"datasetVersion":"2026-09-11T21:17:09.523Z"}