Wail Alkowaileet created ASTERIXDB-2220:
-------------------------------------------

             Summary: Resolve nested key expression
                 Key: ASTERIXDB-2220
                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-2220
             Project: Apache AsterixDB
          Issue Type: Bug
            Reporter: Wail Alkowaileet
            Assignee: Steven Jacobs


key field-access expression is not recognized when the first argument is a 
variable

Reproduce
DDL:
{noformat}
DROP DATAVERSE Facebook IF EXISTS;
CREATE DATAVERSE Facebook;

Use Facebook;

CREATE TYPE PersonType AS closed

{ id:string, name:string }
;

CREATE TYPE FriendshipType AS closed

{ person : PersonType, Friends :[PersonType] }
;

/* Creating Datasets */

CREATE DATASET Person(PersonType)
PRIMARY KEY id;

CREATE DATASET Friendship(FriendshipType)
PRIMARY KEY person.id;
{noformat}

Query:
{noformat}
Use Facebook;

select first.person.name as n1, second.person.name as n2
from Friendship first, Friendship second
where first.person.id = second.person.id;
{noformat}

Plan:
{noformat}
"distribute result [$$29]
-- DISTRIBUTE_RESULT  |PARTITIONED|
  exchange
  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
    project ([$$29])
    -- STREAM_PROJECT  |PARTITIONED|
      assign [$$29] <- [{"n1": $$36, "n2": $$37}]
      -- ASSIGN  |PARTITIONED|
        project ([$$36, $$37])
        -- STREAM_PROJECT  |PARTITIONED|
          exchange
          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
            join (eq($$34, $$35))
            -- HYBRID_HASH_JOIN [$$34][$$35]  |PARTITIONED|
              exchange
              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                project ([$$36, $$34])
                -- STREAM_PROJECT  |PARTITIONED|
                  assign [$$36, $$34] <- [$$37, $$35]
                  -- ASSIGN  |PARTITIONED|
                    exchange
                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                      replicate
                      -- REPLICATE  |PARTITIONED|
                        exchange
                        -- HASH_PARTITION_EXCHANGE [$$35]  |PARTITIONED|
                          project ([$$37, $$35])
                          -- STREAM_PROJECT  |PARTITIONED|
                            assign [$$37, $$35] <- [$$31.getField(1), 
$$31.getField(0)]
                            -- ASSIGN  |PARTITIONED|
                              project ([$$31])
                              -- STREAM_PROJECT  |PARTITIONED|
                                assign [$$31] <- [$$second.getField(0)]
                                -- ASSIGN  |PARTITIONED|
                                  project ([$$second])
                                  -- STREAM_PROJECT  |PARTITIONED|
                                    exchange
                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                      data-scan []<-[$$33, $$second] <- 
Facebook.Friendship
                                      -- DATASOURCE_SCAN  |PARTITIONED|
                                        exchange
                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                          empty-tuple-source
                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
              exchange
              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                replicate
                -- REPLICATE  |PARTITIONED|
                  exchange
                  -- HASH_PARTITION_EXCHANGE [$$35]  |PARTITIONED|
                    project ([$$37, $$35])
                    -- STREAM_PROJECT  |PARTITIONED|
                      assign [$$37, $$35] <- [$$31.getField(1), 
$$31.getField(0)]
                      -- ASSIGN  |PARTITIONED|
                        project ([$$31])
                        -- STREAM_PROJECT  |PARTITIONED|
                          assign [$$31] <- [$$second.getField(0)]
                          -- ASSIGN  |PARTITIONED|
                            project ([$$second])
                            -- STREAM_PROJECT  |PARTITIONED|
                              exchange
                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                data-scan []<-[$$33, $$second] <- 
Facebook.Friendship
                                -- 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