You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by "Glenn Justo Galvizo (Jira)" <ji...@apache.org> on 2022/06/29 17:59:00 UTC

[jira] [Assigned] (ASTERIXDB-3041) Index cannot be used with OBJECT_ADD

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

Glenn Justo Galvizo reassigned ASTERIXDB-3041:
----------------------------------------------

    Assignee: Glenn Justo Galvizo

> Index cannot be used with OBJECT_ADD
> ------------------------------------
>
>                 Key: ASTERIXDB-3041
>                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-3041
>             Project: Apache AsterixDB
>          Issue Type: Improvement
>          Components: COMP - Compiler
>            Reporter: Glenn Justo Galvizo
>            Assignee: Glenn Justo Galvizo
>            Priority: Major
>
> OBJECT_ADD prevents index usage:
>  
> {code:java}
> DROP DATAVERSE Test IF EXISTS;
> CREATE DATAVERSE Test;
> USE Test;
> CREATE TYPE UsersType AS { user_id: bigint };
> CREATE DATASET Users (UsersType) PRIMARY KEY user_id;
> CREATE INDEX usersNameIdx ON Users ( name : string );
> // The following query uses the usersNameIdx index.
> FROM   Test.Users U
> WHERE  U.name = "Glenn"
> SELECT *;
> // The following query does not use the usersNameIdx index.
> FROM   Test.Users U
> LET    augmentedUser = OBJECT_ADD(U, "favoriteColor", "Green")
> WHERE  augmentedUser.name = "Glenn"
> SELECT *;{code}
>  
> In the second query, we get the following plan:
> {noformat}
> distribute result [$$26]
> -- DISTRIBUTE_RESULT  |PARTITIONED|
>   exchange
>   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
>     project ([$$26])
>     -- STREAM_PROJECT  |PARTITIONED|
>       assign [$$26] <- [{"U": $$U, "augmentedUser": $$32}]
>       -- ASSIGN  |PARTITIONED|
>         select (eq($$32.getField("name"), "Glenn"))
>         -- STREAM_SELECT  |PARTITIONED|
>           assign [$$32] <- [object-add($$U, "favoriteColor", "Green")]
>           -- ASSIGN  |PARTITIONED|
>             project ([$$U])
>             -- STREAM_PROJECT  |PARTITIONED|
>               exchange
>               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
>                 data-scan []<-[$$27, $$U] <- Test.Users
>                 -- DATASOURCE_SCAN  |PARTITIONED|
>                   exchange
>                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
>                     empty-tuple-source
>                     -- EMPTY_TUPLE_SOURCE  |PARTITIONED|{noformat}
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)