[ https://issues.apache.org/jira/browse/HIVE-6643?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Anthony Hsu updated HIVE-6643: ------------------------------ Description: Now that we support old style join syntax, it is easy to write queries that generate a plan with a cross product. For e.g. say you have A join B join C join D on A.x = B.x and A.y = D.y and C.z = D.z So the JoinTree is: A — B \|__ D — C Since we don't reorder join graphs, we will end up with a cross product between (A join B) and C was: Now that we support old style join syntax, it is easy to write queries that generate a plan with a cross product. For e.g. say you have A join B join C join D on A.x = B.x and A.y = D.y and C.z = D.z So the JoinTree is: A — B |__ D — C Since we don't reorder join graphs, we will end up with a cross product between (A join B) and C > Add a check for cross products in plans and output a warning > ------------------------------------------------------------ > > Key: HIVE-6643 > URL: https://issues.apache.org/jira/browse/HIVE-6643 > Project: Hive > Issue Type: Bug > Reporter: Harish Butani > Assignee: Harish Butani > Fix For: 0.13.0 > > Attachments: HIVE-6643.1.patch, HIVE-6643.2.patch, HIVE-6643.3.patch, > HIVE-6643.4.patch, HIVE-6643.5.patch, HIVE-6643.6.patch, HIVE-6643.7.patch > > > Now that we support old style join syntax, it is easy to write queries that > generate a plan with a cross product. > For e.g. say you have A join B join C join D on A.x = B.x and A.y = D.y and > C.z = D.z > So the JoinTree is: > A — B > \|__ D — C > Since we don't reorder join graphs, we will end up with a cross product > between (A join B) and C -- This message was sent by Atlassian JIRA (v6.3.4#6332)