{"record":{"id":"2bb0a8629188a987","repo":"prestodb/presto","slug":"missing-view","errorCode":"MISSING_VIEW","errorMessage":"View '%s' does not exist","messagePattern":"View '(.+?)' does not exist","errorType":"error_code","errorClass":"SemanticException","httpStatus":null,"severity":"error","filePath":"presto-main-base/src/main/java/com/facebook/presto/execution/RenameViewTask.java","lineNumber":54,"sourceCode":"import static com.google.common.util.concurrent.Futures.immediateFuture;\n\npublic class RenameViewTask\n        implements DDLDefinitionTask<RenameView>\n{\n    @Override\n    public String getName()\n    {\n        return \"RENAME VIEW\";\n    }\n\n    public ListenableFuture<?> execute(RenameView statement, TransactionManager transactionManager, Metadata metadata, AccessControl accessControl, Session session, List<Expression> parameters, WarningCollector warningCollector, String query)\n    {\n        QualifiedObjectName viewName = createQualifiedObjectName(session, statement, statement.getSource(), metadata);\n\n        Optional<ViewDefinition> view = metadata.getMetadataResolver(session).getView(viewName);\n        if (!view.isPresent()) {\n            if (!statement.isExists()) {\n                throw new SemanticException(MISSING_VIEW, statement, \"View '%s' does not exist\", viewName);\n            }\n            return immediateFuture(null);\n        }\n\n        QualifiedObjectName target = createQualifiedObjectName(session, statement, statement.getTarget(), metadata);\n        if (!metadata.getCatalogHandle(session, target.getCatalogName()).isPresent()) {\n            throw new SemanticException(MISSING_CATALOG, statement, \"Target catalog '%s' does not exist\", target.getCatalogName());\n        }\n        if (metadata.getMetadataResolver(session).getView(target).isPresent()) {\n            throw new SemanticException(VIEW_ALREADY_EXISTS, statement, \"Target view '%s' already exists\", target);\n        }\n        if (!viewName.getSchemaName().equals(target.getSchemaName())) {\n            throw new SemanticException(NOT_SUPPORTED, statement, \"View rename across schemas is not supported\");\n        }\n        if (!viewName.getCatalogName().equals(target.getCatalogName())) {\n            throw new SemanticException(NOT_SUPPORTED, statement, \"View rename across catalogs is not supported\");\n        }\n","sourceCodeStart":36,"sourceCodeEnd":72,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-main-base/src/main/java/com/facebook/presto/execution/RenameViewTask.java#L36-L72","documentation":"SemanticException (MISSING_VIEW) raised at the start of ALTER VIEW ... RENAME: the metadata resolver has no view definition for the fully qualified source name. With IF EXISTS the rename is silently skipped instead.","triggerScenarios":"Thrown at presto-main-base/src/main/java/com/facebook/presto/execution/RenameViewTask.java:54 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the view name and its catalog/schema qualification with SHOW VIEWS","Append IF EXISTS if a no-op on missing view is desired","Create the view before attempting to rename it"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"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"}