You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Alexander Behm (JIRA)" <ji...@apache.org> on 2017/05/01 21:50:04 UTC
[jira] [Resolved] (IMPALA-3352) Analytic function eval order
changed for no reason in planner test
[ https://issues.apache.org/jira/browse/IMPALA-3352?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alexander Behm resolved IMPALA-3352.
------------------------------------
Resolution: Duplicate
Duplicates IMPALA-3887
> Analytic function eval order changed for no reason in planner test
> ------------------------------------------------------------------
>
> Key: IMPALA-3352
> URL: https://issues.apache.org/jira/browse/IMPALA-3352
> Project: IMPALA
> Issue Type: Bug
> Components: Frontend
> Affects Versions: Impala 2.6.0
> Reporter: Tim Armstrong
> Priority: Minor
> Labels: broken-build, planner
>
> I think the plan is equivalent but I'm not sure why this failed.
> {code}
> com.cloudera.impala.planner.PlannerTest.testAnalyticFns
> Failing for the past 1 build (Since Failed#2237 )
> Took 0.85 sec.
> Error Message
> Section PLAN of query:
> select * from
> (select year, tinyint_col,
> last_value(int_col) over(partition by int_col, year order by id
> rows between 1 preceding and 1 following),
> last_value(tinyint_col) over(partition by id, year order by int_col
> range between unbounded preceding and unbounded following),
> sum(int_col) over(partition by year, tinyint_col),
> avg(int_col) over(partition by tinyint_col, id, year order by bigint_col)
> from functional.alltypes) v
> where year = 2009 and tinyint_col + 1 = 1
> Actual does not match expected result:
> 09:SELECT
> | predicates: tinyint_col + 1 = 1
> |
> 08:ANALYTIC
> | functions: avg(int_col)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^
> | partition by: tinyint_col, id, year
> | order by: bigint_col ASC
> | window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
> |
> 07:SORT
> | order by: tinyint_col ASC NULLS FIRST, id ASC NULLS FIRST, year ASC NULLS FIRST, bigint_col ASC
> |
> 06:ANALYTIC
> | functions: sum(int_col)
> | partition by: year, tinyint_col
> |
> 05:SORT
> | order by: year ASC NULLS FIRST, tinyint_col ASC NULLS FIRST
> |
> 04:ANALYTIC
> | functions: last_value(int_col)
> | partition by: int_col, year
> | order by: id ASC
> | window: ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING
> |
> 03:SORT
> | order by: int_col ASC NULLS FIRST, year ASC NULLS FIRST, id ASC
> |
> 02:ANALYTIC
> | functions: last_value(tinyint_col)
> | partition by: id, year
> | order by: int_col ASC
> | window: RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
> |
> 01:SORT
> | order by: id ASC NULLS FIRST, year ASC NULLS FIRST, int_col ASC
> |
> 00:SCAN HDFS [functional.alltypes]
> partitions=12/24 files=12 size=238.68KB
> Expected:
> 09:SELECT
> | predicates: tinyint_col + 1 = 1
> |
> 08:ANALYTIC
> | functions: sum(int_col)
> | partition by: year, tinyint_col
> |
> 07:SORT
> | order by: year ASC NULLS FIRST, tinyint_col ASC NULLS FIRST
> |
> 06:ANALYTIC
> | functions: last_value(int_col)
> | partition by: int_col, year
> | order by: id ASC
> | window: ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING
> |
> 05:SORT
> | order by: int_col ASC NULLS FIRST, year ASC NULLS FIRST, id ASC
> |
> 04:ANALYTIC
> | functions: avg(int_col)
> | partition by: tinyint_col, id, year
> | order by: bigint_col ASC
> | window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
> |
> 03:SORT
> | order by: tinyint_col ASC NULLS FIRST, id ASC NULLS FIRST, year ASC NULLS FIRST, bigint_col ASC
> |
> 02:ANALYTIC
> | functions: last_value(tinyint_col)
> | partition by: id, year
> | order by: int_col ASC
> | window: RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
> |
> 01:SORT
> | order by: id ASC NULLS FIRST, year ASC NULLS FIRST, int_col ASC
> |
> 00:SCAN HDFS [functional.alltypes]
> partitions=12/24 files=12 size=238.68KB
> Verbose plan:
> F00:PLAN FRAGMENT [UNPARTITIONED]
> 09:SELECT
> | predicates: tinyint_col + 1 = 1
> | hosts=2 per-host-mem=unavailable
> | tuple-ids=15,8 row-size=42B cardinality=365
> |
> 08:ANALYTIC
> | functions: avg(int_col)
> | partition by: tinyint_col, id, year
> | order by: bigint_col ASC
> | window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
> | hosts=2 per-host-mem=unavailable
> | tuple-ids=15,8 row-size=42B cardinality=3650
> |
> 07:SORT
> | order by: tinyint_col ASC NULLS FIRST, id ASC NULLS FIRST, year ASC NULLS FIRST, bigint_col ASC
> | hosts=2 per-host-mem=unavailable
> | tuple-ids=15 row-size=34B cardinality=3650
> |
> 06:ANALYTIC
> | functions: sum(int_col)
> | partition by: year, tinyint_col
> | hosts=2 per-host-mem=unavailable
> | tuple-ids=13,6 row-size=34B cardinality=3650
> |
> 05:SORT
> | order by: year ASC NULLS FIRST, tinyint_col ASC NULLS FIRST
> | hosts=2 per-host-mem=unavailable
> | tuple-ids=13 row-size=26B cardinality=3650
> |
> 04:ANALYTIC
> | functions: last_value(int_col)
> | partition by: int_col, year
> | order by: id ASC
> | window: ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING
> | hosts=2 per-host-mem=unavailable
> | tuple-ids=11,4 row-size=26B cardinality=3650
> |
> 03:SORT
> | order by: int_col ASC NULLS FIRST, year ASC NULLS FIRST, id ASC
> | hosts=2 per-host-mem=unavailable
> | tuple-ids=11 row-size=22B cardinality=3650
> |
> 02:ANALYTIC
> | functions: last_value(tinyint_col)
> | partition by: id, year
> | order by: int_col ASC
> | window: RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
> | hosts=2 per-host-mem=unavailable
> | tuple-ids=9,5 row-size=22B cardinality=3650
> |
> 01:SORT
> | order by: id ASC NULLS FIRST, year ASC NULLS FIRST, int_col ASC
> | hosts=2 per-host-mem=unavailable
> | tuple-ids=9 row-size=21B cardinality=3650
> |
> 00:SCAN HDFS [functional.alltypes]
> partitions=12/24 files=12 size=238.68KB
> table stats: 7300 rows total
> column stats: all
> hosts=2 per-host-mem=unavailable
> tuple-ids=0 row-size=21B cardinality=3650
> Stacktrace
> java.lang.AssertionError:
> Section PLAN of query:
> select * from
> (select year, tinyint_col,
> last_value(int_col) over(partition by int_col, year order by id
> rows between 1 preceding and 1 following),
> last_value(tinyint_col) over(partition by id, year order by int_col
> range between unbounded preceding and unbounded following),
> sum(int_col) over(partition by year, tinyint_col),
> avg(int_col) over(partition by tinyint_col, id, year order by bigint_col)
> from functional.alltypes) v
> where year = 2009 and tinyint_col + 1 = 1
> Actual does not match expected result:
> 09:SELECT
> | predicates: tinyint_col + 1 = 1
> |
> 08:ANALYTIC
> | functions: avg(int_col)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^
> | partition by: tinyint_col, id, year
> | order by: bigint_col ASC
> | window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
> |
> 07:SORT
> | order by: tinyint_col ASC NULLS FIRST, id ASC NULLS FIRST, year ASC NULLS FIRST, bigint_col ASC
> |
> 06:ANALYTIC
> | functions: sum(int_col)
> | partition by: year, tinyint_col
> |
> 05:SORT
> | order by: year ASC NULLS FIRST, tinyint_col ASC NULLS FIRST
> |
> 04:ANALYTIC
> | functions: last_value(int_col)
> | partition by: int_col, year
> | order by: id ASC
> | window: ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING
> |
> 03:SORT
> | order by: int_col ASC NULLS FIRST, year ASC NULLS FIRST, id ASC
> |
> 02:ANALYTIC
> | functions: last_value(tinyint_col)
> | partition by: id, year
> | order by: int_col ASC
> | window: RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
> |
> 01:SORT
> | order by: id ASC NULLS FIRST, year ASC NULLS FIRST, int_col ASC
> |
> 00:SCAN HDFS [functional.alltypes]
> partitions=12/24 files=12 size=238.68KB
> Expected:
> 09:SELECT
> | predicates: tinyint_col + 1 = 1
> |
> 08:ANALYTIC
> | functions: sum(int_col)
> | partition by: year, tinyint_col
> |
> 07:SORT
> | order by: year ASC NULLS FIRST, tinyint_col ASC NULLS FIRST
> |
> 06:ANALYTIC
> | functions: last_value(int_col)
> | partition by: int_col, year
> | order by: id ASC
> | window: ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING
> |
> 05:SORT
> | order by: int_col ASC NULLS FIRST, year ASC NULLS FIRST, id ASC
> |
> 04:ANALYTIC
> | functions: avg(int_col)
> | partition by: tinyint_col, id, year
> | order by: bigint_col ASC
> | window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
> |
> 03:SORT
> | order by: tinyint_col ASC NULLS FIRST, id ASC NULLS FIRST, year ASC NULLS FIRST, bigint_col ASC
> |
> 02:ANALYTIC
> | functions: last_value(tinyint_col)
> | partition by: id, year
> | order by: int_col ASC
> | window: RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
> |
> 01:SORT
> | order by: id ASC NULLS FIRST, year ASC NULLS FIRST, int_col ASC
> |
> 00:SCAN HDFS [functional.alltypes]
> partitions=12/24 files=12 size=238.68KB
> Verbose plan:
> F00:PLAN FRAGMENT [UNPARTITIONED]
> 09:SELECT
> | predicates: tinyint_col + 1 = 1
> | hosts=2 per-host-mem=unavailable
> | tuple-ids=15,8 row-size=42B cardinality=365
> |
> 08:ANALYTIC
> | functions: avg(int_col)
> | partition by: tinyint_col, id, year
> | order by: bigint_col ASC
> | window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
> | hosts=2 per-host-mem=unavailable
> | tuple-ids=15,8 row-size=42B cardinality=3650
> |
> 07:SORT
> | order by: tinyint_col ASC NULLS FIRST, id ASC NULLS FIRST, year ASC NULLS FIRST, bigint_col ASC
> | hosts=2 per-host-mem=unavailable
> | tuple-ids=15 row-size=34B cardinality=3650
> |
> 06:ANALYTIC
> | functions: sum(int_col)
> | partition by: year, tinyint_col
> | hosts=2 per-host-mem=unavailable
> | tuple-ids=13,6 row-size=34B cardinality=3650
> |
> 05:SORT
> | order by: year ASC NULLS FIRST, tinyint_col ASC NULLS FIRST
> | hosts=2 per-host-mem=unavailable
> | tuple-ids=13 row-size=26B cardinality=3650
> |
> 04:ANALYTIC
> | functions: last_value(int_col)
> | partition by: int_col, year
> | order by: id ASC
> | window: ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING
> | hosts=2 per-host-mem=unavailable
> | tuple-ids=11,4 row-size=26B cardinality=3650
> |
> 03:SORT
> | order by: int_col ASC NULLS FIRST, year ASC NULLS FIRST, id ASC
> | hosts=2 per-host-mem=unavailable
> | tuple-ids=11 row-size=22B cardinality=3650
> |
> 02:ANALYTIC
> | functions: last_value(tinyint_col)
> | partition by: id, year
> | order by: int_col ASC
> | window: RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
> | hosts=2 per-host-mem=unavailable
> | tuple-ids=9,5 row-size=22B cardinality=3650
> |
> 01:SORT
> | order by: id ASC NULLS FIRST, year ASC NULLS FIRST, int_col ASC
> | hosts=2 per-host-mem=unavailable
> | tuple-ids=9 row-size=21B cardinality=3650
> |
> 00:SCAN HDFS [functional.alltypes]
> partitions=12/24 files=12 size=238.68KB
> table stats: 7300 rows total
> column stats: all
> hosts=2 per-host-mem=unavailable
> tuple-ids=0 row-size=21B cardinality=3650
> at org.junit.Assert.fail(Assert.java:88)
> at com.cloudera.impala.planner.PlannerTestBase.runPlannerTestFile(PlannerTestBase.java:623)
> at com.cloudera.impala.planner.PlannerTestBase.runPlannerTestFile(PlannerTestBase.java:628)
> at com.cloudera.impala.planner.PlannerTest.testAnalyticFns(PlannerTest.java:52)
> {code}
> http://sandbox.jenkins.cloudera.com/job/impala-external-gerrit-verify-merge/2237/testReport/junit/com.cloudera.impala.planner/PlannerTest/testAnalyticFns/
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)