Minghui Zhu has uploaded a new patch set (#2). ( 
http://gerrit.cloudera.org:8080/19768 )

Change subject: IMPALA-12051: Propagate analytic tuple predicates of 
outer-joined InlineView
......................................................................

IMPALA-12051: Propagate analytic tuple predicates of outer-joined InlineView

In some cases, direct pushing down predicates that reference analytic tuple 
into inline view leads to incorrect query results. such as sql:
WITH detail_measure AS (
  SELECT
    *
  FROM
    (
      VALUES
        (
          1 AS `isqbiuar`,
          1 AS `bgsfrbun`,
          1 AS `result_type`,
          1 AS `bjuzzevg`
        ),
        (2, 2, 2, 2)
    ) a
),
order_measure_sql0 AS (
  SELECT
    row_number() OVER (
      ORDER BY
        row_number_0 DESC NULLS LAST,
        isqbiuar ASC NULLS LAST
    ) AS `row_number_0`,
    `isqbiuar`
  FROM
    (
      VALUES
        (1 AS `row_number_0`, 1 AS `isqbiuar`),
        (2, 2)
    ) b
)
SELECT
  detail_measure.`isqbiuar` AS `isqbiuar`,
  detail_measure.`bgsfrbun` AS `bgsfrbun`,
  detail_measure.`result_type` AS `result_type`,
  detail_measure.`bjuzzevg` AS `bjuzzevg`,
  `row_number_0` AS `row_number_0`
FROM
  detail_measure
  LEFT JOIN order_measure_sql0 ON order_measure_sql0.isqbiuar = 
detail_measure.isqbiuar
WHERE
  row_number_0 BETWEEN 1
  AND 1
ORDER BY
  `row_number_0` ASC NULLS LAST,
  `bgsfrbun` ASC NULLS LAST

The current query result is:
+----------+----------+-------------+----------+--------------+
| isqbiuar | bgsfrbun | result_type | bjuzzevg | row_number_0 |
+----------+----------+-------------+----------+--------------+
| 2        | 2        | 2           | 2        | 1            |
| 1        | 1        | 1           | 1        | NULL         |
+----------+----------+-------------+----------+--------------+

The correct query result is:
+----------+----------+-------------+----------+--------------+
| isqbiuar | bgsfrbun | result_type | bjuzzevg | row_number_0 |
+----------+----------+-------------+----------+--------------+
| 2        | 2        | 2           | 2        | 1            |
+----------+----------+-------------+----------+--------------+

Tests:
* Add plan tests in analytic-rank-pushdown.test

Change-Id: If6c209b2a64bad37d893ba8b520342bf1f9a7513
---
M fe/src/main/java/org/apache/impala/planner/SingleNodePlanner.java
M 
testdata/workloads/functional-planner/queries/PlannerTest/analytic-rank-pushdown.test
M testdata/workloads/functional-query/queries/QueryTest/analytic-fns.test
3 files changed, 529 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/68/19768/2
--
To view, visit http://gerrit.cloudera.org:8080/19768
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: If6c209b2a64bad37d893ba8b520342bf1f9a7513
Gerrit-Change-Number: 19768
Gerrit-PatchSet: 2
Gerrit-Owner: Minghui Zhu <huihui.cod...@gmail.com>
Gerrit-Reviewer: Impala Public Jenkins <impala-public-jenk...@cloudera.com>
Gerrit-Reviewer: Michael Smith <michael.sm...@cloudera.com>
Gerrit-Reviewer: Quanlong Huang <huangquanl...@gmail.com>
Gerrit-Reviewer: Tim Armstrong <tarmstr...@cloudera.com>
Gerrit-Reviewer: Wenzhe Zhou <wz...@cloudera.com>
Gerrit-Reviewer: Xianqing He <hexianqing...@126.com>

Reply via email to