You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@druid.apache.org by gi...@apache.org on 2019/07/19 20:52:25 UTC

[incubator-druid] branch master updated: Fix druid sql group by queries returning complex aggregation type (#8099)

This is an automated email from the ASF dual-hosted git repository.

gian pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-druid.git


The following commit(s) were added to refs/heads/master by this push:
     new ceb3a89  Fix druid sql group by queries returning complex aggregation type (#8099)
ceb3a89 is described below

commit ceb3a891bb253fd9942950fbda6e9ecb0e5c6a4e
Author: Samarth Jain <sa...@apache.org>
AuthorDate: Fri Jul 19 13:52:14 2019 -0700

    Fix druid sql group by queries returning complex aggregation type (#8099)
    
    * Fix druid sql group by queries returning complex aggregation type
    
    * Remove unnecessary check
---
 .../java/org/apache/druid/sql/calcite/rel/Projection.java    | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/sql/src/main/java/org/apache/druid/sql/calcite/rel/Projection.java b/sql/src/main/java/org/apache/druid/sql/calcite/rel/Projection.java
index 5dcd90c..68962ac 100644
--- a/sql/src/main/java/org/apache/druid/sql/calcite/rel/Projection.java
+++ b/sql/src/main/java/org/apache/druid/sql/calcite/rel/Projection.java
@@ -28,6 +28,7 @@ import org.apache.druid.math.expr.ExprType;
 import org.apache.druid.query.aggregation.PostAggregator;
 import org.apache.druid.query.aggregation.post.ExpressionPostAggregator;
 import org.apache.druid.segment.VirtualColumn;
+import org.apache.druid.segment.column.ValueType;
 import org.apache.druid.sql.calcite.expression.DruidExpression;
 import org.apache.druid.sql.calcite.expression.Expressions;
 import org.apache.druid.sql.calcite.planner.Calcites;
@@ -193,11 +194,14 @@ public class Projection
       return false;
     }
 
-    // Check if a cast is necessary.
-    final ExprType toExprType = Expressions.exprTypeForValueType(
-        aggregateRowSignature.getColumnType(expression.getDirectColumn())
-    );
+    // We don't really have a way to cast complex type. So might as well not do anything and return.
+    final ValueType columnValueType = aggregateRowSignature.getColumnType(expression.getDirectColumn());
+    if (columnValueType == ValueType.COMPLEX) {
+      return true;
+    }
 
+    // Check if a cast is necessary.
+    final ExprType toExprType = Expressions.exprTypeForValueType(columnValueType);
     final ExprType fromExprType = Expressions.exprTypeForValueType(
         Calcites.getValueTypeForSqlTypeName(rexNode.getType().getSqlTypeName())
     );


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@druid.apache.org
For additional commands, e-mail: commits-help@druid.apache.org