hexianqing created IMPALA-9356:
----------------------------------

             Summary: The predicate which the tuple ids involved are empty 
can't migrate to outer-joined inline view
                 Key: IMPALA-9356
                 URL: https://issues.apache.org/jira/browse/IMPALA-9356
             Project: IMPALA
          Issue Type: Bug
          Components: Frontend
    Affects Versions: Impala 3.3.0
            Reporter: hexianqing


{code}
SELECT COUNT(*)
FROM (
    SELECT id, upper(string_col) AS upper_val
    FROM functional.alltypestiny
) a
    FULL JOIN (
        SELECT id, upper(string_col) AS upper_val
        FROM functional.alltypestiny
    ) b
    ON a.id = b.id
WHERE rand() = 12
{code}
The Plan
{noformat}
+------------------------------------------------------------+
| Explain String                                             |
+------------------------------------------------------------+
| Max Per-Host Resource Reservation: Memory=1.95MB Threads=6 |
| Per-Host Resource Estimates: Memory=86MB                   |
| Codegen disabled by planner                                |
|                                                            |
| PLAN-ROOT SINK                                             |
| |                                                          |
| 07:AGGREGATE [FINALIZE]                                    |
| |  output: count:merge(*)                                  |
| |  row-size=8B cardinality=1                               |
| |                                                          |
| 06:EXCHANGE [UNPARTITIONED]                                |
| |                                                          |
| 03:AGGREGATE                                               |
| |  output: count(*)                                        |
| |  row-size=8B cardinality=1                               |
| |                                                          |
| 02:HASH JOIN [FULL OUTER JOIN, PARTITIONED]                |
| |  hash predicates: id = id                                |
| |  row-size=8B cardinality=9                               |
| |                                                          |
| |--05:EXCHANGE [HASH(id)]                                  |
| |  |                                                       |
| |  00:SCAN HDFS [functional.alltypestiny]                  |
| |     HDFS partitions=4/4 files=4 size=460B                |
| |     predicates: rand() = 12                              |
| |     row-size=4B cardinality=1                            |
| |                                                          |
| 04:EXCHANGE [HASH(id)]                                     |
| |                                                          |
| 01:SCAN HDFS [functional.alltypestiny]                     |
|    HDFS partitions=4/4 files=4 size=460B                   |
|    row-size=4B cardinality=8                               |
+------------------------------------------------------------+
{noformat}
The rand() returns a random value between 0 and 1 so "rand() = 12" will always 
be false. All rows should be rejected by the WHERE clause. If "rand() = 12" is 
evaluated in only one side, the other side can still produce rows. So the outer 
join will still have results.
We can't migrate the predicate that the tuple ids involved are empty to 
outer-joined inline view



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-all-unsubscr...@impala.apache.org
For additional commands, e-mail: issues-all-h...@impala.apache.org

Reply via email to