You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "xzh_dz (Jira)" <ji...@apache.org> on 2020/11/10 11:49:00 UTC
[jira] [Created] (CALCITE-4391) When the join condition order is
different, materialized view recognition fails
xzh_dz created CALCITE-4391:
-------------------------------
Summary: When the join condition order is different, materialized view recognition fails
Key: CALCITE-4391
URL: https://issues.apache.org/jira/browse/CALCITE-4391
Project: Calcite
Issue Type: Wish
Reporter: xzh_dz
When the child nodes of join are identical, but the order of join conditions is different, materialized view recognition will fail.
{code:java}
// code placeholder
String query = ""
+ "select a.empid, a.deptno\n"
+ "from emps a left join emps_table b\n"
+ "on a.empid = b.empid and a.deptno = b.deptno";
String mvLogic = ""
+ "select a.deptno, a.empid\n"
+ "from emps a left join emps_table b\n"
+ "on a.deptno = b.deptno and a.empid = b.empid";
Query:
LogicalProject(empid=[$0], deptno=[$1])
LogicalJoin(condition=[AND(=($0, $5), =($1, $6))], joinType=[left])
LogicalTableScan(table=[[default, emps]])
LogicalTableScan(table=[[default, emps_table]])
MV:
LogicalProject(deptno=[$1], empid=[$0])
LogicalJoin(condition=[AND(=($1, $6), =($0, $5))], joinType=[left])
LogicalTableScan(table=[[default, emps]])
LogicalTableScan(table=[[default, emps_table]]){code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)