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