diff --git a/fe/src/main/java/org/apache/doris/analysis/Analyzer.java b/fe/src/main/java/org/apache/doris/analysis/Analyzer.java index 2b3bae98e8bed0..50c8ae6d4c57dd 100644 --- a/fe/src/main/java/org/apache/doris/analysis/Analyzer.java +++ b/fe/src/main/java/org/apache/doris/analysis/Analyzer.java @@ -1032,19 +1032,6 @@ public boolean containsOuterJoinedTid(List tids) { return false; } - /** - * Return slot descriptor corresponding to column referenced in the context - * of tupleDesc, or null if no such reference exists. - */ - public SlotDescriptor getColumnSlot(TupleDescriptor tupleDesc, Column col) { - for (SlotDescriptor slotDesc : tupleDesc.getSlots()) { - if (slotDesc.getColumn() == col) { - return slotDesc; - } - } - return null; - } - public DescriptorTable getDescTbl() { return globalState.descTbl; } diff --git a/fe/src/main/java/org/apache/doris/analysis/TupleDescriptor.java b/fe/src/main/java/org/apache/doris/analysis/TupleDescriptor.java index 7b1036a7f0ece8..dd80deb67c16db 100644 --- a/fe/src/main/java/org/apache/doris/analysis/TupleDescriptor.java +++ b/fe/src/main/java/org/apache/doris/analysis/TupleDescriptor.java @@ -102,6 +102,19 @@ public ArrayList getMaterializedSlots() { return result; } + /** + * Return slot descriptor corresponding to column referenced in the context + * of tupleDesc, or null if no such reference exists. + */ + public SlotDescriptor getColumnSlot(String columnName) { + for (SlotDescriptor slotDesc : slots) { + if (slotDesc.getColumn() != null && slotDesc.getColumn().getName().equalsIgnoreCase(columnName)) { + return slotDesc; + } + } + return null; + } + public Table getTable() { return table; } diff --git a/fe/src/main/java/org/apache/doris/planner/SingleNodePlanner.java b/fe/src/main/java/org/apache/doris/planner/SingleNodePlanner.java index 4f9993d30b0f37..cc9056a858ed58 100644 --- a/fe/src/main/java/org/apache/doris/planner/SingleNodePlanner.java +++ b/fe/src/main/java/org/apache/doris/planner/SingleNodePlanner.java @@ -1261,7 +1261,7 @@ private PlanNode createScanNode(Analyzer analyzer, TableRef tblRef) Map columnFilters = Maps.newHashMap(); List conjuncts = analyzer.getUnassignedConjuncts(scanNode); for (Column column : tblRef.getTable().getBaseSchema()) { - SlotDescriptor slotDesc = analyzer.getColumnSlot(tblRef.getDesc(), column); + SlotDescriptor slotDesc = tblRef.getDesc().getColumnSlot(column.getName()); if (null == slotDesc) { continue; }