>From Preetham Poluparthi <[email protected]>:

Preetham Poluparthi has submitted this change. ( 
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21125?usp=email )

Change subject: [ASTERIXDB-3709][COMP] Intersect Btree & Array Indexes
......................................................................

[ASTERIXDB-3709][COMP] Intersect Btree & Array Indexes

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

Details : Changed index optimization to a top-down approach, enabling 
intersection between array and B-tree indexes. Previously, only the first 
SELECT after the data scan was optimized into an index search, which limited 
the intersection.

Ext-ref: MB-70981

Change-Id: I9656cf4353a843728bd68682766010dbe6925934
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21125
Tested-by: Jenkins <[email protected]>
Integration-Tests: Jenkins <[email protected]>
Reviewed-by: Ali Alsuliman <[email protected]>
---
M 
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/IntroduceSelectAccessMethodRule.java
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.01.ddl.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.02.update.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.03.ddl.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.04.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.05.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.06.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.07.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.08.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.09.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.10.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.11.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.12.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.13.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.14.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.15.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.16.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.17.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.18.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.19.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.20.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.21.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.01.ddl.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.02.update.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.03.ddl.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.04.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.05.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.06.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.07.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.08.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.09.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.10.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.11.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.12.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.13.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.14.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.15.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.16.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.17.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.18.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.19.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.20.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.21.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.22.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.23.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.24.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.25.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.04.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.05.adm
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.06.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.07.adm
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.08.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.09.adm
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.10.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.11.adm
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.12.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.13.adm
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.14.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.15.adm
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.16.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.17.adm
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.18.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.19.adm
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.20.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.21.adm
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.04.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.05.adm
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.06.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.07.adm
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.08.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.09.adm
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.10.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.11.adm
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.12.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.13.adm
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.14.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.15.adm
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.16.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.17.adm
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.18.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.19.adm
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.20.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.21.adm
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.22.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.23.adm
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.24.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.25.adm
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.04.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.06.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.08.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.10.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.12.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.14.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.16.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.18.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.20.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.04.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.06.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.08.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.10.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.12.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.14.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.16.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.18.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.20.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.22.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.24.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_column/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.04.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_column/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.06.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_column/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.08.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_column/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.10.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_column/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.12.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_column/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.14.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_column/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.16.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_column/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.18.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_column/index-selection/secondary-index-intersection-01/secondary-index-intersection-01.20.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_column/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.12.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_column/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.14.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_column/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.16.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_column/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.18.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_column/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.20.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_column/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.22.plan
A 
asterixdb/asterix-app/src/test/resources/runtimets/results_column/index-selection/secondary-index-or-in-01/secondary-index-or-in-01.24.plan
M asterixdb/asterix-app/src/test/resources/runtimets/sqlpp_queries.xml
124 files changed, 4,402 insertions(+), 10 deletions(-)

Approvals:
  Jenkins: Verified; Verified
  Ali Alsuliman: Looks good to me, approved

Objections:
  Anon. E. Moose #1000171: Violations found





--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21125?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://asterix-gerrit.ics.uci.edu/settings?usp=email

Gerrit-MessageType: merged
Gerrit-Project: asterixdb
Gerrit-Branch: lumina
Gerrit-Change-Id: I9656cf4353a843728bd68682766010dbe6925934
Gerrit-Change-Number: 21125
Gerrit-PatchSet: 12
Gerrit-Owner: Preetham Poluparthi <[email protected]>
Gerrit-Reviewer: Ali Alsuliman <[email protected]>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins <[email protected]>
Gerrit-Reviewer: Preetham Poluparthi <[email protected]>

Reply via email to