[ https://issues.apache.org/jira/browse/ASTERIXDB-2331?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16401248#comment-16401248 ]
Taewoo Kim commented on ASTERIXDB-2331: --------------------------------------- No problem. It's just a complex query. > 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 > Assignee: Taewoo Kim > Priority: Major > > 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)