Thomas Hütter created ASTERIXDB-2806:
----------------------------------------

             Summary: AND Operands swapped
                 Key: ASTERIXDB-2806
                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-2806
             Project: Apache AsterixDB
          Issue Type: Bug
            Reporter: Thomas Hütter


Query:
{code:java}
USE FaceDetection;

SELECT count(f) FROM
    (SELECT VALUE [i1, i2]
 FROM Im i1 LEFT OUTER JOIN Im i2
 ON i1.content != i2.content AND deep_equal(i1, i2)) AS f
WHERE f[1] IS NOT UNKNOWN AND object_merge(f[0], f[1]);
{code}

Plan:
{code:java}
distribute result [$$71]
-- DISTRIBUTE_RESULT  |UNPARTITIONED|
  exchange
  -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
    project ([$$71])
    -- STREAM_PROJECT  |UNPARTITIONED|
      assign [$$71] <- [{"$1": $$75}]
      -- ASSIGN  |UNPARTITIONED|
        aggregate [$$75] <- [agg-sql-sum($$85)]
        -- AGGREGATE  |UNPARTITIONED|
          exchange
          -- RANDOM_MERGE_EXCHANGE  |PARTITIONED|
            aggregate [$$85] <- [agg-sql-count(1)]
            -- AGGREGATE  |PARTITIONED|
              select (and(object-merge(get-item($$86, 0), get-item($$86, 1)), 
not(is-unknown(get-item($$86, 1)))))
              -- STREAM_SELECT  |PARTITIONED|
                project ([$$86])
                -- STREAM_PROJECT  |PARTITIONED|
                  assign [$$86] <- [ordered-list-constructor(cast($$i1), 
cast($$i2))]
                  -- ASSIGN  |PARTITIONED|
                    project ([$$i1, $$i2])
                    -- STREAM_PROJECT  |PARTITIONED|
                      exchange
                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                        left outer join (and(neq($$73, $$74), deep-equal($$i1, 
$$i2)))
                        -- NESTED_LOOP  |PARTITIONED|
                          exchange
                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                            data-scan []<-[$$73, $$i1] <- FaceDetection.Im
                            -- DATASOURCE_SCAN  |PARTITIONED|
                              exchange
                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                empty-tuple-source
                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
                          exchange
                          -- BROADCAST_EXCHANGE  |PARTITIONED|
                            data-scan []<-[$$74, $$i2] <- FaceDetection.Im
                            -- DATASOURCE_SCAN  |PARTITIONED|
                              exchange
                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                empty-tuple-source
                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
{code}

We see that the order of the AND operands in the plan does not match the one in 
the query.



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

Reply via email to