You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Jiajun Xie (Jira)" <ji...@apache.org> on 2023/04/03 08:32:00 UTC

[jira] [Created] (CALCITE-5630) Window with rows equivalence error in volcano planner

Jiajun Xie created CALCITE-5630:
-----------------------------------

             Summary: Window with rows equivalence error in volcano planner
                 Key: CALCITE-5630
                 URL: https://issues.apache.org/jira/browse/CALCITE-5630
             Project: Calcite
          Issue Type: Bug
            Reporter: Jiajun Xie


Here is UT
{code:java}
@Test void testUnionWindow() {
  String selectSqlBase =
      "SELECT 'col{?}' as col, sum(\"salary\" ) OVER("
          + "PARTITION BY \"deptno\" "
          + "ORDER BY \"empid\" "
          + "ROWS BETWEEN CURRENT ROW AND {?} FOLLOWING) "
          + "FROM  \"hr\".\"emps\"";
  String selectSql1 = selectSqlBase.replace("{?}", "1"); // window1
  String selectSql2 = selectSqlBase.replace("{?}", "2"); // window2
  String sql = selectSql1 + "\nunion all\n" + selectSql2;
  CalciteAssert.hr().query(sql).runs()
      .returns("COL=col1; EXPR$1=8000.0\n"
          + "COL=col1; EXPR$1=21500.0\n"
          + "COL=col1; EXPR$1=18500.0\n"
          + "COL=col1; EXPR$1=7000.0\n"
          + "COL=col2; EXPR$1=8000.0\n"
          + "COL=col2; EXPR$1=21500.0\n"
          + "COL=col2; EXPR$1=18500.0\n"
          + "COL=col2; EXPR$1=7000.0\n"); 
         // sum that for col1 is same as sum that for col2, this is error
}
 {code}
Because RelDigest is same between window1 and window2,

volcano planner use window1 replace window2.

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)