Hello Jenkins, I'd like you to reexamine a change. Please visit
https://asterix-gerrit.ics.uci.edu/579 to look at the new patch set (#16). Change subject: ASTERIXDB-1005, ASTERIXDB-1263: Clean up subplan flattening: 1. Inline NestedTupleSource and remove SubplanOperator for special cases that join operators inside the SubplanOperator can be re-targeted for correlations; 2. Blindly inline NestedTupleSo ...................................................................... ASTERIXDB-1005, ASTERIXDB-1263: Clean up subplan flattening: 1. Inline NestedTupleSource and remove SubplanOperator for special cases that join operators inside the SubplanOperator can be re-targeted for correlations; 2. Blindly inline NestedTupleSource and remove SubplanOperator for general cases where the condition of the special case is not met. Change-Id: I4dd130a25f3c81272cc23f844ea20e376e990612 --- M asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java M asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/CancelUnnestWithNestedListifyRule.java M asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/BTreeAccessMethod.java A asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineAllNtsInSubplanVisitor.java A asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineLeftNtsInSubplanJoinFlatteningVisitor.java M asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineSubplanInputForNestedTupleSourceRule.java A asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/SubplanFlatteningUtil.java A asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/SubplanSpecialFlatteningCheckVisitor.java M asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/util/EquivalenceClassUtils.java A asterix-app/data/restaurants/restaurants.adm M asterix-app/src/test/resources/optimizerts/queries/nested_loj2.aql M asterix-app/src/test/resources/optimizerts/queries/nested_loj3.aql A asterix-app/src/test/resources/optimizerts/queries/nested_loj4.aql A asterix-app/src/test/resources/optimizerts/queries/query-ASTERIXDB-1005.aql A asterix-app/src/test/resources/optimizerts/queries/query-ASTERIXDB-1263.aql M asterix-app/src/test/resources/optimizerts/results/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01.plan M asterix-app/src/test/resources/optimizerts/results/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02.plan M asterix-app/src/test/resources/optimizerts/results/fj-phase1.plan M asterix-app/src/test/resources/optimizerts/results/inverted-index-join/issue741.plan M asterix-app/src/test/resources/optimizerts/results/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01.plan M asterix-app/src/test/resources/optimizerts/results/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01.plan M asterix-app/src/test/resources/optimizerts/results/loj-super-key_01.plan M asterix-app/src/test/resources/optimizerts/results/loj-super-key_02.plan M asterix-app/src/test/resources/optimizerts/results/nest_aggregate.plan M asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01.plan M asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02.plan M asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01.plan M asterix-app/src/test/resources/optimizerts/results/nested-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-jaccard-check-idx_01.plan M asterix-app/src/test/resources/optimizerts/results/nested-index/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_01.plan M asterix-app/src/test/resources/optimizerts/results/nested-index/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_02.plan M asterix-app/src/test/resources/optimizerts/results/nested-open-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01_1.plan M asterix-app/src/test/resources/optimizerts/results/nested-open-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01_2.plan M asterix-app/src/test/resources/optimizerts/results/nested-open-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02_1.plan M asterix-app/src/test/resources/optimizerts/results/nested-open-index/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02_2.plan M asterix-app/src/test/resources/optimizerts/results/nested-open-index/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01.plan M asterix-app/src/test/resources/optimizerts/results/nested-open-index/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_01.plan M asterix-app/src/test/resources/optimizerts/results/nested-open-index/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_02.plan M asterix-app/src/test/resources/optimizerts/results/nested_loj2.plan M asterix-app/src/test/resources/optimizerts/results/nested_loj3.plan A asterix-app/src/test/resources/optimizerts/results/nested_loj4.plan M asterix-app/src/test/resources/optimizerts/results/open-index-enforced/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01_1.plan M asterix-app/src/test/resources/optimizerts/results/open-index-enforced/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_01_2.plan M asterix-app/src/test/resources/optimizerts/results/open-index-enforced/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02_1.plan M asterix-app/src/test/resources/optimizerts/results/open-index-enforced/btree-index-join/leftouterjoin-probe-pidx-with-join-btree-sidx_02_2.plan M asterix-app/src/test/resources/optimizerts/results/open-index-enforced/inverted-index-join/leftouterjoin-probe-pidx-with-join-edit-distance-check-idx_01.plan M asterix-app/src/test/resources/optimizerts/results/open-index-enforced/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_01.plan M asterix-app/src/test/resources/optimizerts/results/open-index-enforced/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_02.plan M asterix-app/src/test/resources/optimizerts/results/push-project-through-group.plan M asterix-app/src/test/resources/optimizerts/results/q08_group_by.plan A asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1005.plan A asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1263.plan M asterix-app/src/test/resources/optimizerts/results/query-issue562.plan M asterix-app/src/test/resources/optimizerts/results/query_issue849-2.plan M asterix-app/src/test/resources/optimizerts/results/query_issue849.plan M asterix-app/src/test/resources/optimizerts/results/rtree-index-join/issue730.plan M asterix-app/src/test/resources/optimizerts/results/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_01.plan M asterix-app/src/test/resources/optimizerts/results/rtree-index-join/leftouterjoin-probe-pidx-with-join-rtree-sidx_02.plan M asterix-app/src/test/resources/optimizerts/results/split-materialization-above-join.plan M asterix-app/src/test/resources/optimizerts/results/udfs/query-ASTERIXDB-1017-2.plan M asterix-app/src/test/resources/optimizerts/results/udfs/query-ASTERIXDB-1017-recursive-2.plan M asterix-app/src/test/resources/optimizerts/results/udfs/query-ASTERIXDB-1017-recursive.plan M asterix-app/src/test/resources/optimizerts/results/udfs/query-ASTERIXDB-1017.plan M asterix-app/src/test/resources/optimizerts/results/udfs/query-ASTERIXDB-1018.plan M asterix-app/src/test/resources/optimizerts/results/udfs/query-ASTERIXDB-1019.plan M asterix-app/src/test/resources/optimizerts/results/udfs/query-ASTERIXDB-1020.plan M asterix-app/src/test/resources/optimizerts/results/udfs/query-ASTERIXDB-1029.plan M asterix-app/src/test/resources/optimizerts/results/udfs/query-ASTERIXDB-1029_2.plan A asterix-app/src/test/resources/runtimets/queries/tinysocial/tinysocial-suite/query-ASTERIXDB-1063.23.query.aql A asterix-app/src/test/resources/runtimets/queries/tpch/nest_aggregate2/nest_aggregate2.1.ddl.aql A asterix-app/src/test/resources/runtimets/queries/tpch/nest_aggregate2/nest_aggregate2.2.update.aql A asterix-app/src/test/resources/runtimets/queries/tpch/nest_aggregate2/nest_aggregate2.3.query.aql A asterix-app/src/test/resources/runtimets/queries_sqlpp/quantifiers/query-ASTERIXDB-1005/query-ASTERIXDB-1005.1.ddl.sqlpp A asterix-app/src/test/resources/runtimets/queries_sqlpp/quantifiers/query-ASTERIXDB-1005/query-ASTERIXDB-1005.2.update.sqlpp A asterix-app/src/test/resources/runtimets/queries_sqlpp/quantifiers/query-ASTERIXDB-1005/query-ASTERIXDB-1005.3.query.sqlpp A asterix-app/src/test/resources/runtimets/queries_sqlpp/tinysocial/tinysocial-suite/query-ASTERIXDB-1063.23.query.sqlpp A asterix-app/src/test/resources/runtimets/queries_sqlpp/tpch/nest_aggregate2/nest_aggregate2.1.ddl.sqlpp A asterix-app/src/test/resources/runtimets/queries_sqlpp/tpch/nest_aggregate2/nest_aggregate2.2.update.sqlpp A asterix-app/src/test/resources/runtimets/queries_sqlpp/tpch/nest_aggregate2/nest_aggregate2.3.query.sqlpp A asterix-app/src/test/resources/runtimets/results/quantifiers/query-ASTERIXDB-1005/query-ASTERIXDB-1005.1.adm M asterix-app/src/test/resources/runtimets/results/temporal/overlap_bins_gby_3/overlap_bins_gby_3.1.adm A asterix-app/src/test/resources/runtimets/results/tinysocial/tinysocial-suite/tinysocial-suite.23.adm A asterix-app/src/test/resources/runtimets/results/tpch/nest_aggregate2/nest_aggregate2.1.adm A asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tinysocial/tinysocial-suite/query-ASTERIXDB-1263.23.ast M asterix-app/src/test/resources/runtimets/testsuite.xml M asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml M asterix-metadata/src/main/java/org/apache/asterix/metadata/feeds/FeedMetadataUtil.java 86 files changed, 4,682 insertions(+), 2,175 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/79/579/16 -- To view, visit https://asterix-gerrit.ics.uci.edu/579 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I4dd130a25f3c81272cc23f844ea20e376e990612 Gerrit-PatchSet: 16 Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Owner: Yingyi Bu <buyin...@gmail.com> Gerrit-Reviewer: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Gerrit-Reviewer: Michael D. Blow <michael.b...@couchbase.com> Gerrit-Reviewer: Preston Carman <prest...@apache.org> Gerrit-Reviewer: Steven Jacobs <sjaco...@ucr.edu> Gerrit-Reviewer: Till Westmann <ti...@apache.org> Gerrit-Reviewer: Yingyi Bu <buyin...@gmail.com>