[
https://issues.apache.org/jira/browse/ASTERIXDB-1779?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15849171#comment-15849171
]
Taewoo Kim commented on ASTERIXDB-1779:
---------------------------------------
Regarding the description, I agree. But, we never expose this nor strictly keep
the original order. If the functionality that I'm proposing is integrated, we
can tell users that certain types of predicates will be evaluated first. My
point is that the current optimization framework already manipulates the order
of predicate application (e.g., index-search on a predicate among multiple
predicates OR PushSelectDownRule changes the order), thus not strictly follows
the original order.
Regarding the cost of evaluation, my thought is dividing them into three
categories (spatial, textual, and etc). Textual functions are most expensive,
and the spatial functions follow. Other functions that are not spatial and
textual are regarded as one group of functions since we don't have cost-based
evaluator.
> Processing the certain function predicates after a simple predicates
> --------------------------------------------------------------------
>
> Key: ASTERIXDB-1779
> URL: https://issues.apache.org/jira/browse/ASTERIXDB-1779
> Project: Apache AsterixDB
> Issue Type: Improvement
> Reporter: Taewoo Kim
> Assignee: Taewoo Kim
>
> For example, if we have the following AQL query,
> {code}
> for $i in dataset MyData
> where $i.id < 5 and edit-distance($i.name, "Arnold") < 2
> return $i;
> {code}
> It may be better to process *$i.id < 5* predicate first and then process
> *edit-distance($i.name, "Arnold")* predicate since the processing cost of the
> latter is higher than that of the former.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)