You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "weijie.tong (JIRA)" <ji...@apache.org> on 2017/07/27 09:47:00 UTC

[jira] [Comment Edited] (DRILL-5691) multiple count distinct query planning error at physical phase

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

weijie.tong edited comment on DRILL-5691 at 7/27/17 9:46 AM:
-------------------------------------------------------------

sync message, I have solved this issue.  
As [~amansinha100] and [~julianhyde] mentioned at the email, now Drill treats cartesian join only when one of its sub inputs is a scalar. The problem here is that now, only aggregates without group by are considered scalar. My case shows that a table scan with only one row should also be considered as a scalar. 
I will give a commit to enhance this. By the way ,thanks Aman and Julian for your patient advice.


was (Author: weijie):
sync message, I have solved this issue.  
As [~amansinha100] and [~julianhyde] mentioned at the email, now Drill treats cartesian join only when one of its sub input is a scalar. The problem here is that only aggregates without group by are considered scalar. My case shows that a table with only one row should also be considered a scalar. 
I will give a commit to enhance this. By the way ,thanks Aman and Julian for your patient advice.

> 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)