[ 
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)

Reply via email to