diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java index e3e8196379..e93d622df5 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java @@ -994,7 +994,10 @@ public class Analyzer { newTblName == null ? "table list" : newTblName.toString()); } - Column col = d.getTable() == null ? new Column(colName, ScalarType.BOOLEAN) : d.getTable().getColumn(colName); + Column col = (d.getTable() == null) + ? new Column(colName, ScalarType.BOOLEAN, + globalState.markTuples.get(d.getAlias()) != null) + : d.getTable().getColumn(colName); if (col == null) { ErrorReport.reportAnalysisException(ErrorCode.ERR_BAD_FIELD_ERROR, colName, newTblName == null ? d.getTable().getName() : newTblName.toString()); diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/StmtRewriter.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/StmtRewriter.java index 6e3ec2b50c..d80328683d 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/StmtRewriter.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/StmtRewriter.java @@ -529,7 +529,7 @@ public class StmtRewriter { String slotName = stmt.getColumnAliasGenerator().getNextAlias(); markSlot.setType(ScalarType.BOOLEAN); markSlot.setIsMaterialized(true); - markSlot.setIsNullable(false); + markSlot.setIsNullable(true); markSlot.setColumn(new Column(slotName, ScalarType.BOOLEAN)); SlotRef markRef = new SlotRef(markSlot); markRef.setTblName(new TableName(null, null, markTuple.getAlias()));