Details
-
Task
-
Status: Resolved
-
Blocker
-
Resolution: Fixed
-
Impala 0.5
-
None
-
None
Description
To make it easier to interpret, for a query like:
select * from alltypesagg a full outer join alltypessmall b using (id, int_col) right join alltypesaggnonulls c on (a.id = c.id and b.string_col = c.string_col) where a.day >= 6 and b.month > 2 and c.day < 3 and a.tinyint_col = 15 and b.string_col = '15' and a.tinyint_col + b.tinyint_col < 15 and a.float_col - c.double_col < 0 and (b.double_col * c.tinyint_col > 1000 or c.tinyint_col < 1000)
the output in verbose mode could look like HASH JOIN JOIN OP: RIGHT OUTER JOIN HASH PREDICATES: a.id = c.id, b.string_col = c.string_col OTHER PREDICATES: a.float_col - c.double_col < 0.0, b.double_col * c.tinyint_col > 1000.0 OR c.tinyint_col < 1000 TUPLE IDS: 0N 1N 2 INNER: SCAN HDFS table=default.alltypesaggnonulls (3) compact TUPLE IDS: 2 HASH JOIN JOIN OP: FULL OUTER JOIN HASH PREDICATES: a.id = b.id, a.int_col = b.int_col OTHER PREDICATES: a.tinyint_col + b.tinyint_col < 15 TUPLE IDS: 0N 1N INNER: SCAN HDFS table=default.alltypessmall (1) compact PREDICATES: b.string_col = '15' TUPLE IDS: 1 SCAN HDFS table=default.alltypesagg (0) PREDICATES: a.tinyint_col = 15 TUPLE IDS: 0 right now it is: HASH JOIN JOIN OP: RIGHT OUTER JOIN HASH PREDICATES: a.id = c.id b.string_col = c.string_col OTHER PREDICATES: a.float_col - c.double_col < 0.0, b.double_col * c.tinyint_col > 1000.0 OR c.tinyint_col < 1000 TUPLE IDS: 0N 1N 2 HASH JOIN JOIN OP: FULL OUTER JOIN HASH PREDICATES: a.id = b.id a.int_col = b.int_col OTHER PREDICATES: a.tinyint_col + b.tinyint_col < 15 TUPLE IDS: 0N 1N SCAN HDFS table=default.alltypesagg (0) PREDICATES: a.tinyint_col = 15 TUPLE IDS: 0 SCAN HDFS table=default.alltypessmall (1) compact PREDICATES: b.string_col = '15' TUPLE IDS: 1 SCAN HDFS table=default.alltypesaggnonulls (3) compact TUPLE IDS: 2 in regular mode, it could be something like HASH JOIN JOIN OP: RIGHT OUTER JOIN INNER: SCAN HDFS table=default.alltypesaggnonulls HASH JOIN JOIN OP: FULL OUTER JOIN INNER: SCAN HDFS table=default.alltypessmall SCAN HDFS table=default.alltypesagg (0)