drill-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From amansinha100 <...@git.apache.org>
Subject [GitHub] drill issue #889: DRILL-5691: enhance scalar sub queries checking for the ca...
Date Wed, 08 Nov 2017 19:14:08 GMT
Github user amansinha100 commented on the issue:

    https://github.com/apache/drill/pull/889
  
    @weijietong I ran the functional tests with the PR and saw some failures.  While debugging
those failures, I found the simple scalar aggregate case works but anything with compound
aggregate expressions  throws a CannotPlanException, for example:  
    
    explain plan for select count(*) from cp.`tpch/lineitem.parquet` l where l_quantity <
(select max(l2.l_quantity) + 1 from cp.`tpch/lineitem.parquet` l2)
     
    Here, the right side of the inequality join is actually a scalar but the JoinUtils.isScalar()
method does not detect it correctly.  The reason is the right side is a DrillProjectRel whose
input is a RelSubSet.  The RelSubSet has a DrillAggregateRel but it looks like currently Calcite
does not detect this is a scalar aggregate if it occurs as part of a RelSubSet.   I see Calcite
has a comment in [1] which points to an open JIRA CALCITE-1048.  
    
    [1] https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/rel/metadata/RelMdMaxRowCount.java#L165


---

Mime
View raw message