You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu> on 2026/09/30 03:30:36 UTC

[XL] Change in asterixdb[master]: [ASTERIXDB-3916][COMP] Fold the OR search plan into the B-tree search...

From Ali Alsuliman <al...@gmail.com>:

Attention is currently required from: Ali Alsuliman.

Hello Anon. E. Moose #1000171, Jenkins, 

I'd like you to reexamine a change. Please visit

    https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21919?usp=email

to look at the new patch set (#2).

The following approvals got outdated and were removed:
Contrib-2 by Anon. E. Moose #1000171, Integration-Tests+1 by Jenkins, Verified+1 by Jenkins


Change subject: [ASTERIXDB-3916][COMP] Fold the OR search plan into the B-tree search plan
......................................................................

[ASTERIXDB-3916][COMP] Fold the OR search plan into the B-tree search plan

- user model changes: no
- storage format changes: no
- interface changes: no

Details: an IN list had its own B-tree search plan, most of it a copy of
the regular one, whose bounds were always inclusive and always checked
again after the search. Fixes to the regular bounds never reached it.

The regular plan now treats an IN list as an equality on a variable
that an unnest over the list's values feeds, so a range after the list
gets an exact bound, and an equality on the list's key is searched for
instead of the list. An IN list still drives the search only when every
key before it is an equality, and only a secondary-index search offers
it for the rewrite of the SELECT.

With an IN list, an equality's low and high keys are one variable: a
primary-index search hash-partitions its broadcast keys on all of its
key variables, so two variables for one value send the key to the
wrong partition.

Ext-ref: MB-74315
Generated-by: Claude Opus 5.5 <no...@anthropic.com>
Change-Id: Ide19540f3a9b9b28254d0b458b9369431652719a
---
M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/BTreeAccessMethod.java
M asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/btree-index-range-02/btree-index-range-02.04.plan
M asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/btree-index-range-02/btree-index-range-02.06.plan
M asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/btree-index-range-02/btree-index-range-02.11.plan
M asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/btree-index-range-02/btree-index-range-02.13.plan
M asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/index-selection/btree-index-range-02/btree-index-range-02.04.plan
M asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/index-selection/btree-index-range-02/btree-index-range-02.06.plan
M asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/index-selection/btree-index-range-02/btree-index-range-02.13.plan
M asterixdb/asterix-app/src/test/resources/runtimets/results_column/index-selection/btree-index-range-02/btree-index-range-02.04.plan
M asterixdb/asterix-app/src/test/resources/runtimets/results_column/index-selection/btree-index-range-02/btree-index-range-02.06.plan
M asterixdb/asterix-app/src/test/resources/runtimets/results_column/index-selection/btree-index-range-02/btree-index-range-02.11.plan
M asterixdb/asterix-app/src/test/resources/runtimets/results_column/index-selection/btree-index-range-02/btree-index-range-02.13.plan
M asterixdb/asterix-app/src/test/resources/runtimets/results_full_parallelism/index-selection/btree-index-range-02/btree-index-range-02.04.plan
M asterixdb/asterix-app/src/test/resources/runtimets/results_full_parallelism/index-selection/btree-index-range-02/btree-index-range-02.06.plan
M asterixdb/asterix-app/src/test/resources/runtimets/results_full_parallelism/index-selection/btree-index-range-02/btree-index-range-02.11.plan
M asterixdb/asterix-app/src/test/resources/runtimets/results_full_parallelism/index-selection/btree-index-range-02/btree-index-range-02.13.plan
M asterixdb/asterix-app/src/test/resources/runtimets/results_less_parallelism/index-selection/btree-index-range-02/btree-index-range-02.04.plan
M asterixdb/asterix-app/src/test/resources/runtimets/results_less_parallelism/index-selection/btree-index-range-02/btree-index-range-02.06.plan
M asterixdb/asterix-app/src/test/resources/runtimets/results_less_parallelism/index-selection/btree-index-range-02/btree-index-range-02.11.plan
M asterixdb/asterix-app/src/test/resources/runtimets/results_less_parallelism/index-selection/btree-index-range-02/btree-index-range-02.13.plan
20 files changed, 243 insertions(+), 791 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/19/21919/2
-- 
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21919?usp=email
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings?usp=email

Gerrit-MessageType: newpatchset
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: Ide19540f3a9b9b28254d0b458b9369431652719a
Gerrit-Change-Number: 21919
Gerrit-PatchSet: 2
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Attention: Ali Alsuliman <al...@gmail.com>