From 7919f8a9b17de8b3d49f479cd2f261d29d2953b9 Mon Sep 17 00:00:00 2001 From: xionglei1 Date: Mon, 23 Sep 2019 22:10:22 +0800 Subject: [PATCH 1/3] bugfix: compare with equals rather than == --- fe/src/main/java/org/apache/doris/analysis/Analyzer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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..34f624a3bea45f 100644 --- a/fe/src/main/java/org/apache/doris/analysis/Analyzer.java +++ b/fe/src/main/java/org/apache/doris/analysis/Analyzer.java @@ -1038,7 +1038,7 @@ public boolean containsOuterJoinedTid(List tids) { */ public SlotDescriptor getColumnSlot(TupleDescriptor tupleDesc, Column col) { for (SlotDescriptor slotDesc : tupleDesc.getSlots()) { - if (slotDesc.getColumn() == col) { + if (slotDesc.getColumn().equals(col)) { return slotDesc; } } From 8ba6f672c7f38a2436173732219280e8b981f252 Mon Sep 17 00:00:00 2001 From: xionglei1 Date: Mon, 23 Sep 2019 23:02:37 +0800 Subject: [PATCH 2/3] refactor func getColumnSlot --- .../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 34f624a3bea45f..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().equals(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..cdf9e5a23926fc 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().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; } From 624a2869cf59c3c34f8403b9d44fffbd4f3201bf Mon Sep 17 00:00:00 2001 From: xionglei1 Date: Tue, 24 Sep 2019 08:48:33 +0800 Subject: [PATCH 3/3] remove tab and add null check --- .../java/org/apache/doris/analysis/TupleDescriptor.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 cdf9e5a23926fc..dd80deb67c16db 100644 --- a/fe/src/main/java/org/apache/doris/analysis/TupleDescriptor.java +++ b/fe/src/main/java/org/apache/doris/analysis/TupleDescriptor.java @@ -103,12 +103,12 @@ public ArrayList getMaterializedSlots() { } /** - * Return slot descriptor corresponding to column referenced in the context - * of tupleDesc, or null if no such reference exists. - */ + * 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().getName().equalsIgnoreCase(columnName)) { + if (slotDesc.getColumn() != null && slotDesc.getColumn().getName().equalsIgnoreCase(columnName)) { return slotDesc; } }