You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "Xurenhe (Jira)" <ji...@apache.org> on 2021/10/15 02:56:00 UTC

[jira] [Created] (CALCITE-4854) SubstitutionVisitor exec aggregate-match fail, which query with grouping literal alone

Xurenhe created CALCITE-4854:
--------------------------------

             Summary: SubstitutionVisitor exec aggregate-match fail, which query with grouping literal alone
                 Key: CALCITE-4854
                 URL: https://issues.apache.org/jira/browse/CALCITE-4854
             Project: Calcite
          Issue Type: Bug
          Components: core
            Reporter: Xurenhe


This case execute SubstitutionVisitor fail, but it need be mv-match.

 
{code:java}
//org.apache.calcite.test.MaterializedViewSubstitutionVisitorTest#test
@Test void test() {
  final String mv = ""
      + "select \"deptno\", \"empid\", count(*)\n"
      + "from \"emps\"\n"
      + "group by \"deptno\", \"empid\"";
  final String query = ""
      + "select '1', count(*)\n"
      + "from \"emps\"\n"
      + "group by '1'";
  sql(mv, query).ok();
}
{code}
 

 

I found that [CALCITE-4779|https://issues.apache.org/jira/browse/CALCITE-4779] have done some pre-handler to canonicalize query's relnode, but it‘s not applicable for this test case.

Because, AGGREGATE_PROJECT_PULL_UP_CONSTANTS will stop to transform, if size of grouping is one.

So, I try to enhance UnifyRules to support it.
 * AggregateToAggregateUnifyRule
 * AggregateOnCalcToAggregateUnifyRule

 

Hi community, Is my solution correct?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)