You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by "Till (JIRA)" <ji...@apache.org> on 2019/04/12 16:53:00 UTC

[jira] [Updated] (ASTERIXDB-2220) Resolve nested key expression

     [ https://issues.apache.org/jira/browse/ASTERIXDB-2220?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Till updated ASTERIXDB-2220:
----------------------------
    Fix Version/s: 0.9.4.2

> Resolve nested key expression
> -----------------------------
>
>                 Key: ASTERIXDB-2220
>                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-2220
>             Project: Apache AsterixDB
>          Issue Type: Bug
>          Components: COMP - Compiler
>    Affects Versions: 0.9.4
>            Reporter: Wail Alkowaileet
>            Assignee: Dmitry Lychagin
>            Priority: Major
>              Labels: triaged
>             Fix For: 0.9.4.2
>
>
> 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
(v7.6.3#76005)