Wail Alkowaileet created ASTERIXDB-2331: -------------------------------------------
Summary: Plan branch repeated Key: ASTERIXDB-2331 URL: https://issues.apache.org/jira/browse/ASTERIXDB-2331 Project: Apache AsterixDB Issue Type: Bug Components: COMP - Compiler Reporter: Wail Alkowaileet I didn't investigate. But it looks like unmaintained Split output. DDL {noformat} DROP DATAVERSE SocialNetworkData IF EXISTS; CREATE DATAVERSE SocialNetworkData; USE SocialNetworkData; create type ChirpMessageType as { chirpid: int64, send_time: datetime }; create type GleambookUserType as { id: int64, user_since: datetime }; create type GleambookMessageType as { message_id: int64, author_id: int64, send_time: datetime }; create dataset GleambookMessages(GleambookMessageType) primary key message_id; create dataset GleambookUsers(GleambookUserType) primary key id; create dataset ChirpMessages(ChirpMessageType) primary key chirpid; create index usrSinceIx on GleambookUsers(user_since); create index sndTimeIx on ChirpMessages(send_time); create index authorIdIx on GleambookMessages(author_id); {noformat} Query: {noformat} USE SocialNetworkData; EXPLAIN SELECT g.message_id FROM GleambookUsers as u, GleambookMessages as g WHERE u.id/*+indexnl*/ = g.author_id AND u.user_since = datetime("2013-04-16T09:45:46") {noformat} Plan: {noformat} distribute result [$$28] -- DISTRIBUTE_RESULT |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| union ($$54, $$55, $$28) -- UNION_ALL |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| project ([$$54]) -- STREAM_PROJECT |PARTITIONED| assign [$$54] <- [{"message_id": $$52}] -- ASSIGN |PARTITIONED| project ([$$52]) -- STREAM_PROJECT |PARTITIONED| select (eq($$29, $$53.getField(1))) -- STREAM_SELECT |PARTITIONED| project ([$$29, $$52, $$53]) -- STREAM_PROJECT |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| unnest-map [$$52, $$53] <- index-search("GleambookMessages", 0, "SocialNetworkData", "GleambookMessages", TRUE, FALSE, 1, $$46, 1, $$46, TRUE, TRUE, TRUE) -- BTREE_SEARCH |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| project ([$$29, $$46]) -- STREAM_PROJECT |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| split ($$47) -- SPLIT |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| project ([$$29, $$46, $$47]) -- STREAM_PROJECT |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| unnest-map [$$45, $$46, $$47] <- index-search("authorIdIx", 0, "SocialNetworkData", "GleambookMessages", TRUE, TRUE, 1, $$29, 1, $$29, TRUE, TRUE, TRUE) -- BTREE_SEARCH |PARTITIONED| exchange -- BROADCAST_EXCHANGE |PARTITIONED| union ($$43, $$38, $$29) -- UNION_ALL |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| project ([$$43]) -- STREAM_PROJECT |PARTITIONED| select (eq($$33, datetime: { 2013-04-16T09:45:46.000Z })) -- STREAM_SELECT |PARTITIONED| project ([$$43, $$33]) -- STREAM_PROJECT |PARTITIONED| assign [$$33] <- [$$44.getField(1)] -- ASSIGN |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| unnest-map [$$43, $$44] <- index-search("GleambookUsers", 0, "SocialNetworkData", "GleambookUsers", FALSE, FALSE, 1, $$38, 1, $$38, TRUE, TRUE, TRUE) -- BTREE_SEARCH |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| split ($$39) -- SPLIT |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| project ([$$38, $$39]) -- STREAM_PROJECT |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| unnest-map [$$37, $$38, $$39] <- index-search("usrSinceIx", 0, "SocialNetworkData", "GleambookUsers", FALSE, FALSE, 1, $$35, 1, $$36, TRUE, TRUE, TRUE) -- BTREE_SEARCH |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| assign [$$35, $$36] <- [datetime: { 2013-04-16T09:45:46.000Z }, datetime: { 2013-04-16T09:45:46.000Z }] -- ASSIGN |PARTITIONED| empty-tuple-source -- EMPTY_TUPLE_SOURCE |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| project ([$$38]) -- STREAM_PROJECT |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| split ($$39) -- SPLIT |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| project ([$$38, $$39]) -- STREAM_PROJECT |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| unnest-map [$$37, $$38, $$39] <- index-search("usrSinceIx", 0, "SocialNetworkData", "GleambookUsers", FALSE, FALSE, 1, $$35, 1, $$36, TRUE, TRUE, TRUE) -- BTREE_SEARCH |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| assign [$$35, $$36] <- [datetime: { 2013-04-16T09:45:46.000Z }, datetime: { 2013-04-16T09:45:46.000Z }] -- ASSIGN |PARTITIONED| empty-tuple-source -- EMPTY_TUPLE_SOURCE |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| project ([$$55]) -- STREAM_PROJECT |PARTITIONED| assign [$$55] <- [{"message_id": $$46}] -- ASSIGN |PARTITIONED| project ([$$46]) -- STREAM_PROJECT |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| split ($$47) -- SPLIT |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| project ([$$29, $$46, $$47]) -- STREAM_PROJECT |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| unnest-map [$$45, $$46, $$47] <- index-search("authorIdIx", 0, "SocialNetworkData", "GleambookMessages", TRUE, TRUE, 1, $$29, 1, $$29, TRUE, TRUE, TRUE) -- BTREE_SEARCH |PARTITIONED| exchange -- BROADCAST_EXCHANGE |PARTITIONED| union ($$43, $$38, $$29) -- UNION_ALL |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| project ([$$43]) -- STREAM_PROJECT |PARTITIONED| select (eq($$33, datetime: { 2013-04-16T09:45:46.000Z })) -- STREAM_SELECT |PARTITIONED| project ([$$43, $$33]) -- STREAM_PROJECT |PARTITIONED| assign [$$33] <- [$$44.getField(1)] -- ASSIGN |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| unnest-map [$$43, $$44] <- index-search("GleambookUsers", 0, "SocialNetworkData", "GleambookUsers", FALSE, FALSE, 1, $$38, 1, $$38, TRUE, TRUE, TRUE) -- BTREE_SEARCH |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| split ($$39) -- SPLIT |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| project ([$$38, $$39]) -- STREAM_PROJECT |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| unnest-map [$$37, $$38, $$39] <- index-search("usrSinceIx", 0, "SocialNetworkData", "GleambookUsers", FALSE, FALSE, 1, $$35, 1, $$36, TRUE, TRUE, TRUE) -- BTREE_SEARCH |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| assign [$$35, $$36] <- [datetime: { 2013-04-16T09:45:46.000Z }, datetime: { 2013-04-16T09:45:46.000Z }] -- ASSIGN |PARTITIONED| empty-tuple-source -- EMPTY_TUPLE_SOURCE |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| project ([$$38]) -- STREAM_PROJECT |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| split ($$39) -- SPLIT |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| project ([$$38, $$39]) -- STREAM_PROJECT |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| unnest-map [$$37, $$38, $$39] <- index-search("usrSinceIx", 0, "SocialNetworkData", "GleambookUsers", FALSE, FALSE, 1, $$35, 1, $$36, TRUE, TRUE, TRUE) -- BTREE_SEARCH |PARTITIONED| exchange -- ONE_TO_ONE_EXCHANGE |PARTITIONED| assign [$$35, $$36] <- [datetime: { 2013-04-16T09:45:46.000Z }, datetime: { 2013-04-16T09:45:46.000Z }] -- ASSIGN |PARTITIONED| empty-tuple-source -- EMPTY_TUPLE_SOURCE |PARTITIONED| {noformat} -- This message was sent by Atlassian JIRA (v7.6.3#76005)