You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by "Yingyi Bu (JIRA)" <ji...@apache.org> on 2017/01/21 01:59:26 UTC

[jira] [Created] (ASTERIXDB-1772) Rewrite OR predicates to joins only when there are available indexes

Yingyi Bu created ASTERIXDB-1772:
------------------------------------

             Summary: Rewrite OR predicates to joins only when there are available indexes
                 Key: ASTERIXDB-1772
                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-1772
             Project: Apache AsterixDB
          Issue Type: Bug
          Components: Optimizer
            Reporter: Yingyi Bu
            Assignee: Taewoo Kim


Reference query:

asterixdb/asterix-app/src/test/resources/optimizerts/queries/disjunction-to-join-delete-3.aql

For the query, there is no available index for the OR predicate, but the optimizer still rewrites it to use a join, which is not efficient.

Currently, the index selection rules cannot handle OR predicates, instead, OR predicates are first rewritten to joins by DisjunctivePredicateToJoinRule and then rewritten to index joins.

The right approach would be to let index selection rules handle OR predicates properly and doesn't regress the performance for the case that there is no index available.







--
This message was sent by Atlassian JIRA
(v6.3.4#6332)