{"record":{"id":"589ca4c7dc179708","repo":"prestodb/presto","slug":"view-already-exists-589ca4","errorCode":"VIEW_ALREADY_EXISTS","errorMessage":"Target view '%s' already exists","messagePattern":"Target view '(.+?)' already exists","errorType":"error_code","errorClass":"SemanticException","httpStatus":null,"severity":"error","filePath":"presto-main-base/src/main/java/com/facebook/presto/execution/RenameViewTask.java","lineNumber":64,"sourceCode":"\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\n        accessControl.checkCanRenameView(session.getRequiredTransactionId(), session.getIdentity(), session.getAccessControlContext(), viewName, target);\n\n        metadata.renameView(session, viewName, target);\n\n        return immediateFuture(null);\n    }\n}\n","sourceCodeStart":46,"sourceCodeEnd":80,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-main-base/src/main/java/com/facebook/presto/execution/RenameViewTask.java#L46-L80","documentation":"RenameViewTask checks the rename destination; this fires when a view already exists under the target qualified name and the statement did not allow overwriting, raising the target-exists semantic error.","triggerScenarios":"Thrown at presto-main-base/src/main/java/com/facebook/presto/execution/RenameViewTask.java:64 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pick an unused target view name","Drop the existing target view first","Double-check the target schema, as a view with the same name may exist elsewhere"],"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"}