[ 
https://issues.apache.org/jira/browse/DRILL-5691?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16141322#comment-16141322
 ] 

ASF GitHub Bot commented on DRILL-5691:
---------------------------------------

Github user amansinha100 commented on a diff in the pull request:

    https://github.com/apache/drill/pull/889#discussion_r135199961
  
    --- Diff: 
exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/JoinUtils.java
 ---
    @@ -231,6 +236,12 @@ public static boolean isScalarSubquery(RelNode root) {
             return true;
           }
         }
    +    if (!hasMoreInputs && currentRel != null) {
    +      Double rowSize = 
RelMetadataQuery.instance().getMaxRowCount(currentRel);
    --- End diff --
    
    Actually,  I am thinking this entire method isScalarSubquery() should be 
rewritten to call RelMetadataQuery.getMaxRowCount().   Originally, when this 
was written, the max row count interface was not available. 
    I think your use case is somewhat specific that the table has 1 row.  
However, suppose we had LIMIT 1 in the subquery, we could still treat it as 
scalar since it would produce at most 1 row.  My thought is instead of solving 
for your specific table scan case, we might as well address the generalized 
scalar check since Calcite already provides it. 


> multiple count distinct query planning error at physical phase 
> ---------------------------------------------------------------
>
>                 Key: DRILL-5691
>                 URL: https://issues.apache.org/jira/browse/DRILL-5691
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Execution - Relational Operators
>    Affects Versions: 1.9.0, 1.10.0
>            Reporter: weijie.tong
>
> I materialized the count distinct query result in a cache , added a plugin 
> rule to translate the (Aggregate、Aggregate、Project、Scan) or 
> (Aggregate、Aggregate、Scan) to (Project、Scan) at the PARTITION_PRUNING phase. 
> Then ,once user issue count distinct queries , it will be translated to query 
> the cache to get the result.
> eg1: " select count(*),sum(a) ,count(distinct b)  from t where dt=xx " 
> eg2:"select count(*),sum(a) ,count(distinct b) ,count(distinct c) from t 
> where dt=xxx "
> eg3:"select count(distinct b), count(distinct c) from t where dt=xxx"
> eg1 will be right and have a query result as I expected , but eg2 will be 
> wrong at the physical phase.The error info is here: 
> https://gist.github.com/weijietong/1b8ed12db9490bf006e8b3fe0ee52269. 
> eg3 will also get the similar error.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to