>From Shahrzad Shirazi <shaji...@ucr.edu>: Attention is currently required from: Shahrzad Shirazi. Hello Jenkins, Anon. E. Moose #1000171,
I'd like you to reexamine a change. Please visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17729 to look at the new patch set (#15). Change subject: [NO ISSUE][COMP] Simplify Index-only plan ...................................................................... [NO ISSUE][COMP] Simplify Index-only plan If a secondary index contains all the fields needed by a query, the query plan can be optimized into an index-only plan. Simplify Index-only plan to handle potential duplicate keys, since no locks are acquired during the secondary index scan, a sort on the PK is added after searching the secondary index, followed by a DISTINCT operation to ensure result correctness. In the case of an index nested loop join, a window function is used to ensure that no duplicates are returned. Change-Id: I516dc90b8da3a7086dc80b67946a5d4f6dde0972 --- M asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_03-index-only.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-sidx-idxonly-01.plan M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/IntroduceSelectAccessMethodRule.java A asterixdb/asterix-app/src/test/resources/runtimets/results/index-only-testcases/simple-index-only-rtree/simple-index-only-rtree.2.plan M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/InvertedIndexAccessMethod.java A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-only-testcases/simple-index-only/simple-index-only.2.update.sqlpp M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/IntroducePrimaryIndexForAggregationRule.java M asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-selection/cast-default-null/cast-default-null-24.plan A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-only-testcases/heterogeneous-index-only-compund-keys/heterogeneous-index-only-compund-keys.3.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-only-testcases/simple-index-only/simple-index-only.1.ddl.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-only-testcases/heterogeneous-index-only-compund-keys/heterogeneous-index-only-compund-keys.4.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-only-testcases/simple-index-only-rtree/simple-index-only-rtree.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/leftouterjoin/index-only-leftouterjoin/index-only-leftouterjoin.010.plan A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-only-testcases/heterogeneous-index-only-compund-keys/heterogeneous-index-only-compund-keys.6.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/leftouterjoin/index-only-leftouterjoin/index-only-leftouterjoin.008.plan A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-only-testcases/heterogeneous-index-only-compund-keys/heterogeneous-index-only-compund-keys.5.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/index-only-testcases/heterogeneous-index-only-compund-keys/heterogeneous-index-only-compund-keys.5.plan M asterixdb/asterix-app/src/test/resources/runtimets/results/leftouterjoin/index-only-leftouterjoin/index-only-leftouterjoin.010.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-selection/btree-index-composite-key-04.plan A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-only-testcases/simple-index-only-compund-keys/simple-index-only-compund-keys.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-sidx-idxonly-10.plan A asterixdb/asterix-app/src/test/resources/runtimets/results/index-only-testcases/simple-index-only-compund-keys/simple-index-only-compund-keys.4.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/filter_on_meta_with_idx_0.plan A asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/runningaggregates/std/WinMarkHalloweenRunningAggregateDescriptor.java A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-only-testcases/simple-index-only-rtree/simple-index-only-rtree.2.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/index-only-testcases/simple-index-only-compund-keys/simple-index-only-compund-keys.6.plan M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/AccessMethodUtils.java M asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-sidx-idxonly-01_ps.plan A asterixdb/asterix-app/src/test/resources/runtimets/results/index-only-testcases/heterogeneous-index-only-compund-keys/heterogeneous-index-only-compund-keys.5.plan A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-only-testcases/heterogeneous-index-only-compund-keys/heterogeneous-index-only-compund-keys.2.update.sqlpp M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/RTreeAccessMethod.java M asterixdb/asterix-app/src/test/resources/runtimets/results/leftouterjoin/index-only-leftouterjoin/index-only-leftouterjoin.008.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/ASTERIXDB-2402.plan A asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/index-only-testcases/simple-index-only/simple-index-only.4.plan A asterixdb/asterix-app/src/test/resources/runtimets/results/index-only-testcases/simple-index-only-compund-keys/simple-index-only-compund-keys.3.adm A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-only-testcases/simple-index-only-compund-keys/simple-index-only-compund-keys.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/optimizerts/results/ASTERIXDB-2402.plan A asterixdb/asterix-app/src/test/resources/runtimets/results/index-only-testcases/simple-index-only-compund-keys/simple-index-only-compund-keys.6.plan A asterixdb/asterix-app/src/test/resources/runtimets/results/index-only-testcases/simple-index-only-compund-keys/simple-index-only-compund-keys.5.adm M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java A asterixdb/asterix-app/src/test/resources/runtimets/results/index-only-testcases/simple-index-only/simple-index-only.4.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_01_ps.plan M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/functions/FunctionCollection.java A asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/index-only-testcases/simple-index-only-compund-keys/simple-index-only-compund-keys.4.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/rtree-index/rtree-sidx-idxonly-01.plan M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/BTreeAccessMethod.java A asterixdb/asterix-app/src/test/resources/runtimets/results/index-only-testcases/heterogeneous-index-only-compund-keys/heterogeneous-index-only-compund-keys.3.adm M asterixdb/asterix-app/src/test/resources/runtimets/sqlpp_queries.xml A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-only-testcases/simple-index-only-compund-keys/simple-index-only-compund-keys.4.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-only-testcases/simple-index-only-compund-keys/simple-index-only-compund-keys.6.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/index-only-testcases/heterogeneous-index-only-compund-keys/heterogeneous-index-only-compund-keys.6.plan A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-only-testcases/simple-index-only-compund-keys/simple-index-only-compund-keys.5.query.sqlpp M asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01_ps.plan A asterixdb/asterix-app/src/test/resources/runtimets/results_cbo/index-only-testcases/heterogeneous-index-only-compund-keys/heterogeneous-index-only-compund-keys.6.plan A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-only-testcases/simple-index-only/simple-index-only.4.query.sqlpp M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/IntroduceLSMComponentFilterRule.java A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-only-testcases/heterogeneous-index-only-compund-keys/heterogeneous-index-only-compund-keys.1.ddl.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-only-testcases/simple-index-only-compund-keys/simple-index-only-compund-keys.3.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/index-only-testcases/heterogeneous-index-only-compund-keys/heterogeneous-index-only-compund-keys.4.adm A asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/runningaggregates/std/WinMarkHalloweenRunningAggregateEvaluator.java 60 files changed, 2,032 insertions(+), 1,936 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/29/17729/15 -- To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17729 To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Change-Id: I516dc90b8da3a7086dc80b67946a5d4f6dde0972 Gerrit-Change-Number: 17729 Gerrit-PatchSet: 15 Gerrit-Owner: Shahrzad Shirazi <shaji...@ucr.edu> Gerrit-Reviewer: Anon. E. Moose #1000171 Gerrit-Reviewer: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Gerrit-Attention: Shahrzad Shirazi <shaji...@ucr.edu> Gerrit-MessageType: newpatchset