{"record":{"id":"5a3339e7f96b4e90","repo":"prestodb/presto","slug":"missing-table","errorCode":"MISSING_TABLE","errorMessage":"Table '%s' does not exist","messagePattern":"Table '(.+?)' does not exist","errorType":"error_code","errorClass":"SemanticException","httpStatus":null,"severity":"error","filePath":"presto-main-base/src/main/java/com/facebook/presto/execution/AddColumnTask.java","lineNumber":76,"sourceCode":"import static com.google.common.util.concurrent.Futures.immediateFuture;\n\npublic class AddColumnTask\n        implements DDLDefinitionTask<AddColumn>\n{\n    @Override\n    public String getName()\n    {\n        return \"ADD COLUMN\";\n    }\n\n    @Override\n    public ListenableFuture<?> execute(AddColumn statement, TransactionManager transactionManager, Metadata metadata, AccessControl accessControl, Session session, List<Expression> parameters, WarningCollector warningCollector, String query)\n    {\n        QualifiedObjectName tableName = createQualifiedObjectName(session, statement, statement.getName(), metadata);\n        Optional<TableHandle> tableHandle = metadata.getMetadataResolver(session).getTableHandle(tableName);\n        if (!tableHandle.isPresent()) {\n            if (!statement.isTableExists()) {\n                throw new SemanticException(MISSING_TABLE, statement, \"Table '%s' does not exist\", tableName);\n            }\n            return immediateFuture(null);\n        }\n\n        Optional<MaterializedViewDefinition> optionalMaterializedView = metadata.getMetadataResolver(session).getMaterializedView(tableName);\n        if (optionalMaterializedView.isPresent()) {\n            if (!statement.isTableExists()) {\n                throw new SemanticException(NOT_SUPPORTED, statement, \"'%s' is a materialized view, and add column is not supported\", tableName);\n            }\n            return immediateFuture(null);\n        }\n\n        ConnectorId connectorId = getConnectorIdOrThrow(session, metadata, tableName.getCatalogName());\n\n        accessControl.checkCanAddColumns(session.getRequiredTransactionId(), session.getIdentity(), session.getAccessControlContext(), tableName);\n\n        Map<String, ColumnHandle> columnHandles = metadata.getColumnHandles(session, tableHandle.get());\n","sourceCodeStart":58,"sourceCodeEnd":94,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-main-base/src/main/java/com/facebook/presto/execution/AddColumnTask.java#L58-L94","documentation":"AddColumnTask.execute could not resolve an ALTER TABLE ... ADD COLUMN target because the table does not exist in the catalog (metadata lookup returned no table handle); NOT_FOUND-style semantic error with the table name.","triggerScenarios":"Thrown at presto-main-base/src/main/java/com/facebook/presto/execution/AddColumnTask.java:76 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the table name and catalog/schema qualification","Create the table before adding columns"],"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"}