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)