From b756dfd90bc72e0ab4cd56493a9a2dcaf4df35b7 Mon Sep 17 00:00:00 2001 From: xionglei0 <55084968+xionglei0@users.noreply.github.com> Date: Tue, 24 Sep 2019 09:40:11 +0800 Subject: [PATCH] Fix bug: compare column with equals rather than == (#1850) --- .../java/org/apache/doris/analysis/Analyzer.java | 13 ------------- .../org/apache/doris/analysis/TupleDescriptor.java | 13 +++++++++++++ .../org/apache/doris/planner/SingleNodePlanner.java | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) 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 2b3bae98e8..50c8ae6d4c 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 class Analyzer { 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 7b1036a7f0..dd80deb67c 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 class TupleDescriptor { 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 4f9993d30b..cc9056a858 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 @@ public class SingleNodePlanner { 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; }