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)