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)