prestodb/presto · error · SemanticException
MISSING_TABLE
MISSING_TABLE
Error message
Table '%s' does not exist
What it means
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.
Source
Thrown at presto-main-base/src/main/java/com/facebook/presto/execution/AddColumnTask.java:76
import static com.google.common.util.concurrent.Futures.immediateFuture;
public class AddColumnTask
implements DDLDefinitionTask<AddColumn>
{
@Override
public String getName()
{
return "ADD COLUMN";
}
@Override
public ListenableFuture<?> execute(AddColumn statement, TransactionManager transactionManager, Metadata metadata, AccessControl accessControl, Session session, List<Expression> parameters, WarningCollector warningCollector, String query)
{
QualifiedObjectName tableName = createQualifiedObjectName(session, statement, statement.getName(), metadata);
Optional<TableHandle> tableHandle = metadata.getMetadataResolver(session).getTableHandle(tableName);
if (!tableHandle.isPresent()) {
if (!statement.isTableExists()) {
throw new SemanticException(MISSING_TABLE, statement, "Table '%s' does not exist", tableName);
}
return immediateFuture(null);
}
Optional<MaterializedViewDefinition> optionalMaterializedView = metadata.getMetadataResolver(session).getMaterializedView(tableName);
if (optionalMaterializedView.isPresent()) {
if (!statement.isTableExists()) {
throw new SemanticException(NOT_SUPPORTED, statement, "'%s' is a materialized view, and add column is not supported", tableName);
}
return immediateFuture(null);
}
ConnectorId connectorId = getConnectorIdOrThrow(session, metadata, tableName.getCatalogName());
accessControl.checkCanAddColumns(session.getRequiredTransactionId(), session.getIdentity(), session.getAccessControlContext(), tableName);
Map<String, ColumnHandle> columnHandles = metadata.getColumnHandles(session, tableHandle.get());
View on GitHub (pinned to 55bb57d202)
Solutions
- Verify the table name and catalog/schema qualification
- Create the table before adding columns
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at presto-main-base/src/main/java/com/facebook/presto/execution/AddColumnTask.java:76 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of prestodb/presto@55bb57d202 (2026-09-04).
Data as JSON: /api/errors/5a3339e7f96b4e90.
Report an issue: GitHub.