Wail Alkowaileet created ASTERIXDB-2221:
-------------------------------------------

             Summary: EquiJoin condition propagation for constant values
                 Key: ASTERIXDB-2221
                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-2221
             Project: Apache AsterixDB
          Issue Type: Improvement
            Reporter: Wail Alkowaileet


When EquiJoin condition: t1.a=t2.a AND t.a = CONSTANT
The filtration only applied on t1.a but not t2.a

Query:
{noformat}
SELECT t.text as t1, te.text as t2
FROM Tweets as t, TweetsExt as te
WHERE t.a = te.a and t.a = "10"
{noformat}

Plan:
{noformat}
distribute result [$$28]
-- DISTRIBUTE_RESULT  |PARTITIONED|
  exchange
  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
    project ([$$28])
    -- STREAM_PROJECT  |PARTITIONED|
      assign [$$28] <- [{"t1": $$32, "t2": $$33}]
      -- ASSIGN  |PARTITIONED|
        project ([$$32, $$33])
        -- STREAM_PROJECT  |PARTITIONED|
          exchange
          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
            join (eq($$29, $$31))
            -- HYBRID_HASH_JOIN [$$29][$$31]  |PARTITIONED|
              exchange
              -- HASH_PARTITION_EXCHANGE [$$29]  |PARTITIONED|
                select (eq($$29, "10"))
                -- STREAM_SELECT  |PARTITIONED|
                  project ([$$32, $$29])
                  -- STREAM_PROJECT  |PARTITIONED|
                    assign [$$32, $$29] <- [$$t.getField("text"), 
$$t.getField("a")]
                    -- ASSIGN  |PARTITIONED|
                      project ([$$t])
                      -- STREAM_PROJECT  |PARTITIONED|
                        exchange
                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                          data-scan []<-[$$30, $$t] <- TwitterDataverse.Tweets
                          -- DATASOURCE_SCAN  |PARTITIONED|
                            exchange
                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                              empty-tuple-source
                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
              exchange
              -- HASH_PARTITION_EXCHANGE [$$31]  |PARTITIONED|
                project ([$$33, $$31])
                -- STREAM_PROJECT  |PARTITIONED|
                  assign [$$33, $$31] <- [$$te.getField("text"), 
$$te.getField("a")]
                  -- ASSIGN  |PARTITIONED|
                    exchange
                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                      data-scan []<-[$$te] <- TwitterDataverse.TweetsExt
                      -- DATASOURCE_SCAN  |PARTITIONED|
                        exchange
                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                          empty-tuple-source
                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
{noformat}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to