You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by "Xikui Wang (Jira)" <ji...@apache.org> on 2019/11/16 17:13:00 UTC
[jira] [Created] (ASTERIXDB-2676) Index access method ignores
condition containing function calls
Xikui Wang created ASTERIXDB-2676:
-------------------------------------
Summary: Index access method ignores condition containing function calls
Key: ASTERIXDB-2676
URL: https://issues.apache.org/jira/browse/ASTERIXDB-2676
Project: Apache AsterixDB
Issue Type: Improvement
Components: COMP - Compiler
Reporter: Xikui Wang
Given the following two datasets
{code}
CREATE TYPE Tweet AS OPEN {
tid: bigint,
area_code: string,
text: string,
location: point,
hateful_rating: int,
timestamp: datetime
};
CREATE DATASET Tweets(Tweet) PRIMARY KEY tid;
CREATE TYPE OfficerLocation AS OPEN {
oid: bigint,
location: point
};
CREATE DATASET OfficerLocations(OfficerLocation) PRIMARY KEY oid;
CREATE INDEX s_location ON Tweets(location) type RTREE;
CREATE INDEX o_location ON OfficerLocations(location) type RTREE;
{code}
The 1st query won't be able to utilize index, and a user would have to explicitly create a new variable to be able to use it. The reason is in IntroduceJoinAccessMethodRule, the case in which one of the parameters is function call is ignored when considering utilize indexes.
{code}
SELECT t
FROM Tweets t, OfficerLocations o
LET area = create_circle(t.location, 100)
WHERE /*+ indexnl */ spatial_intersect(area, o.location) AND is_new(t) AND is_new(o);
{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)