You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Paul Rogers (JIRA)" <ji...@apache.org> on 2018/12/19 00:30:00 UTC
[jira] [Created] (IMPALA-8002) Unstable join ordering for
equivalent tables
Paul Rogers created IMPALA-8002:
-----------------------------------
Summary: Unstable join ordering for equivalent tables
Key: IMPALA-8002
URL: https://issues.apache.org/jira/browse/IMPALA-8002
Project: IMPALA
Issue Type: Bug
Components: Frontend
Affects Versions: Impala 3.1.0
Reporter: Paul Rogers
Consider the following test: {{PlannerTest.testJoins()}}:
{noformat}
select t1.d, t2.d
from functional.nulltable t1, functional.nulltable t2, functional.nulltable t3
where t1.d IS DISTINCT FROM t2.d
and t3.a != t2.g
---- PLAN
PLAN-ROOT SINK
|
04:NESTED LOOP JOIN [INNER JOIN]
| predicates: t3.a != t2.g
|
|--02:SCAN HDFS [functional.nulltable t3]
| partitions=1/1 files=1 size=18B
|
03:NESTED LOOP JOIN [INNER JOIN]
| predicates: t1.d IS DISTINCT FROM t2.d
|
|--00:SCAN HDFS [functional.nulltable t1]
| partitions=1/1 files=1 size=18B
|
01:SCAN HDFS [functional.nulltable t2]
partitions=1/1 files=1 size=18B
{noformat}
Despite no changes in the planner code, on one run the order flipped to the above. Previously, 01 was t1 and 00 was t2.
Likely, the behavior when two tables are equivalent has some kind of non-determinism, perhaps storing candidates in a Java Set or Map with undefined order.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)