Yingyi Bu has submitted this change and it was merged. Change subject: Disable hash merge exchange. ......................................................................
Disable hash merge exchange. - Hash merge exchange does not work very well on large clusters. - Hash merge exchange is used only when a user explicitly enable it. Change-Id: If82c4e4db1d4340cdd53d17e48a193ab2b7a05e0 Reviewed-on: https://asterix-gerrit.ics.uci.edu/1345 Sonar-Qube: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> Integration-Tests: Jenkins <[email protected]> Reviewed-by: Yingyi Bu <[email protected]> --- M asterixdb/asterix-app/src/test/resources/optimizerts/results/aggregate/constant-gby-agg.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/consolidate-selects-complex.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/count-tweets.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/fj-phase1.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/inlined_q18_large_volume_customer.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-aggreg.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive-open_01.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive-open_02.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive_01.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive_02.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/q01_pricing_summary_report_nt.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/q2.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1263.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1343-2.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1343-3.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1343-4.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1343.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-830.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue562.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue601.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue697.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue785.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue810-2.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue810.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/rtree-secondary-index-open.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/rtree-secondary-index.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/scan-delete-rtree-secondary-index.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/skip-index/skip-rtree-secondary-index.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/split-materialization-above-join.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/exists.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/not_exists.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1580.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1591.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping_broadcast.plan M asterixdb/asterix-app/src/test/resources/runtimets/queries/big-object/big_object_load_20M/big_object_load_20M.2.update.aql M asterixdb/asterix-app/src/test/resources/runtimets/queries/big-object/big_object_load_only_20M/big_object_load_only_20M.2.update.aql M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/tpch/q01_pricing_summary_report_nt/q01_pricing_summary_report_nt.3.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q01_pricing_summary_report_nt/q01_pricing_summary_report_nt.3.ast M asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.3.update.aql M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/metadata/IMetadataProvider.java M hyracks-fullstack/algebricks/algebricks-examples/piglet-example/src/main/java/org/apache/hyracks/algebricks/examples/piglet/metadata/PigletMetadataProvider.java M hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/EnforceStructuralPropertiesRule.java 43 files changed, 282 insertions(+), 223 deletions(-) Approvals: Yingyi Bu: Looks good to me, approved Jenkins: Verified; No violations found; Verified diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/aggregate/constant-gby-agg.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/aggregate/constant-gby-agg.plan index 773be15..94bf390 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/aggregate/constant-gby-agg.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/aggregate/constant-gby-agg.plan @@ -3,12 +3,12 @@ -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$26] |PARTITIONED| + -- SORT_GROUP_BY[$$26] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$26(ASC)] HASH:[$$26] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$26] |PARTITIONED| -- SORT_GROUP_BY[$$22] |PARTITIONED| { -- AGGREGATE |LOCAL| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/consolidate-selects-complex.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/consolidate-selects-complex.plan index 3abde90..aa8c7e6 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/consolidate-selects-complex.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/consolidate-selects-complex.plan @@ -3,12 +3,14 @@ -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- BULKLOAD |PARTITIONED| - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$2(ASC)] HASH:[$$2] |PARTITIONED| - -- ASSIGN |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STABLE_SORT [$$2(ASC)] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$2] |PARTITIONED| + -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| -- DISTRIBUTE_RESULT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/count-tweets.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/count-tweets.plan index 5db2633..a17020e 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/count-tweets.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/count-tweets.plan @@ -3,12 +3,12 @@ -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$14] |PARTITIONED| + -- SORT_GROUP_BY[$$14] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$14(ASC)] HASH:[$$14] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$14] |PARTITIONED| -- SORT_GROUP_BY[$$4] |PARTITIONED| { -- AGGREGATE |LOCAL| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/fj-phase1.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/fj-phase1.plan index 64c0b06..83af511 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/fj-phase1.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/fj-phase1.plan @@ -31,12 +31,12 @@ -- SORT_MERGE_EXCHANGE [$$23(DESC) ] |PARTITIONED| -- STABLE_SORT [$$23(DESC)] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$30] |PARTITIONED| + -- SORT_GROUP_BY[$$30] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$30(ASC)] HASH:[$$30] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$30] |PARTITIONED| -- SORT_GROUP_BY[$$3] |PARTITIONED| { -- AGGREGATE |LOCAL| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inlined_q18_large_volume_customer.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inlined_q18_large_volume_customer.plan index f438fac..b2d5267 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/inlined_q18_large_volume_customer.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/inlined_q18_large_volume_customer.plan @@ -8,12 +8,12 @@ -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STABLE_SORT [topK: 100] [$$12(DESC), $$11(ASC)] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$72, $$73] |PARTITIONED| + -- SORT_GROUP_BY[$$72, $$73] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$72(ASC), $$73(ASC)] HASH:[$$72, $$73] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$72, $$73] |PARTITIONED| -- SORT_GROUP_BY[$$56, $$57] |PARTITIONED| { -- AGGREGATE |LOCAL| @@ -49,12 +49,12 @@ -- STREAM_PROJECT |PARTITIONED| -- STREAM_SELECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$69] |PARTITIONED| + -- SORT_GROUP_BY[$$69] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$69(ASC)] HASH:[$$69] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$69] |PARTITIONED| -- PRE_CLUSTERED_GROUP_BY[$$58] |PARTITIONED| { -- AGGREGATE |LOCAL| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-aggreg.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-aggreg.plan index c100a31..45b584a 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-aggreg.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-aggreg.plan @@ -3,12 +3,12 @@ -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$24] |PARTITIONED| + -- SORT_GROUP_BY[$$24] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$24(ASC)] HASH:[$$24] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$24] |PARTITIONED| -- SORT_GROUP_BY[$$16] |PARTITIONED| { -- AGGREGATE |LOCAL| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive-open_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive-open_01.plan index 3fbd339..e0a20c8 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive-open_01.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive-open_01.plan @@ -3,12 +3,14 @@ -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- BULKLOAD |PARTITIONED| - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$2(ASC)] HASH:[$$2] |PARTITIONED| - -- ASSIGN |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STABLE_SORT [$$2(ASC)] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$2] |PARTITIONED| + -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| -- DISTRIBUTE_RESULT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive-open_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive-open_02.plan index e3baddf..c30de53 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive-open_02.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive-open_02.plan @@ -3,12 +3,14 @@ -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- BULKLOAD |PARTITIONED| - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$2(ASC)] HASH:[$$2] |PARTITIONED| - -- ASSIGN |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STABLE_SORT [$$2(ASC)] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$2] |PARTITIONED| + -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| -- DISTRIBUTE_RESULT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive_01.plan index 3fbd339..e0a20c8 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive_01.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive_01.plan @@ -3,12 +3,14 @@ -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- BULKLOAD |PARTITIONED| - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$2(ASC)] HASH:[$$2] |PARTITIONED| - -- ASSIGN |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STABLE_SORT [$$2(ASC)] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$2] |PARTITIONED| + -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| -- DISTRIBUTE_RESULT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive_02.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive_02.plan index e3baddf..c30de53 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive_02.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/orders-index-search-conjunctive_02.plan @@ -3,12 +3,14 @@ -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- BULKLOAD |PARTITIONED| - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$2(ASC)] HASH:[$$2] |PARTITIONED| - -- ASSIGN |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STABLE_SORT [$$2(ASC)] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$2] |PARTITIONED| + -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| -- DISTRIBUTE_RESULT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/q01_pricing_summary_report_nt.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/q01_pricing_summary_report_nt.plan index fb35c0c..d0b7ef3 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/q01_pricing_summary_report_nt.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/q01_pricing_summary_report_nt.plan @@ -3,12 +3,14 @@ -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- BULKLOAD |PARTITIONED| - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$2(ASC), $$3(ASC)] HASH:[$$2, $$3] |PARTITIONED| - -- ASSIGN |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STABLE_SORT [$$2(ASC), $$3(ASC)] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$2, $$3] |PARTITIONED| + -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| -- DISTRIBUTE_RESULT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/q2.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/q2.plan index 87aa995..cdcee3a 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/q2.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/q2.plan @@ -22,21 +22,23 @@ } -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$32(ASC), $$33(ASC)] HASH:[$$32] |PARTITIONED| - -- SORT_GROUP_BY[$$23, $$24] |PARTITIONED| - { - -- AGGREGATE |LOCAL| - -- NESTED_TUPLE_SOURCE |LOCAL| - } - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ASSIGN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STABLE_SORT [$$32(ASC), $$33(ASC)] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$32] |PARTITIONED| + -- SORT_GROUP_BY[$$23, $$24] |PARTITIONED| + { + -- AGGREGATE |LOCAL| + -- NESTED_TUPLE_SOURCE |LOCAL| + } + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| - -- UNNEST |PARTITIONED| + -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| - -- ASSIGN |PARTITIONED| + -- UNNEST |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| + -- ASSIGN |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1263.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1263.plan index 8532218..ab10f2d 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1263.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1263.plan @@ -19,17 +19,19 @@ -- ASSIGN |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$27(ASC), $$28(ASC)] HASH:[$$27] |PARTITIONED| - -- SORT_GROUP_BY[$$18, $$24] |PARTITIONED| - { - -- AGGREGATE |LOCAL| - -- NESTED_TUPLE_SOURCE |LOCAL| - } - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ASSIGN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STABLE_SORT [$$27(ASC)] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$27] |PARTITIONED| + -- SORT_GROUP_BY[$$18, $$24] |PARTITIONED| + { + -- AGGREGATE |LOCAL| + -- NESTED_TUPLE_SOURCE |LOCAL| + } + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| + -- ASSIGN |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1343-2.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1343-2.plan index 1dac8b2..cb833a5 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1343-2.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1343-2.plan @@ -3,12 +3,12 @@ -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- SORT_MERGE_EXCHANGE [$$3(ASC) ] |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$39] |PARTITIONED| + -- SORT_GROUP_BY[$$39] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$39(ASC)] HASH:[$$39] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$39] |PARTITIONED| -- SORT_GROUP_BY[$$27] |PARTITIONED| { -- AGGREGATE |LOCAL| @@ -29,11 +29,13 @@ -- EMPTY_TUPLE_SOURCE |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- PRE_SORTED_DISTINCT_BY |PARTITIONED| - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$31(ASC)] HASH:[$$31] |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- STREAM_SELECT |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STABLE_SORT [$$31(ASC)] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$31] |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| + -- STREAM_SELECT |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1343-3.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1343-3.plan index b084028..336d7d4 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1343-3.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1343-3.plan @@ -3,12 +3,12 @@ -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- SORT_MERGE_EXCHANGE [$$3(ASC) ] |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$39] |PARTITIONED| + -- SORT_GROUP_BY[$$39] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$39(ASC)] HASH:[$$39] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$39] |PARTITIONED| -- SORT_GROUP_BY[$$27] |PARTITIONED| { -- AGGREGATE |LOCAL| @@ -29,11 +29,13 @@ -- EMPTY_TUPLE_SOURCE |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- PRE_SORTED_DISTINCT_BY |PARTITIONED| - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$31(ASC)] HASH:[$$31] |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- STREAM_SELECT |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STABLE_SORT [$$31(ASC)] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$31] |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| + -- STREAM_SELECT |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1343-4.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1343-4.plan index 4a3162f..5e3d14a 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1343-4.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1343-4.plan @@ -3,12 +3,12 @@ -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- SORT_MERGE_EXCHANGE [$$3(ASC) ] |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$39] |PARTITIONED| + -- SORT_GROUP_BY[$$39] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$39(ASC)] HASH:[$$39] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$39] |PARTITIONED| -- SORT_GROUP_BY[$$27] |PARTITIONED| { -- AGGREGATE |LOCAL| @@ -36,11 +36,13 @@ -- EMPTY_TUPLE_SOURCE |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- PRE_SORTED_DISTINCT_BY |PARTITIONED| - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$31(ASC)] HASH:[$$31] |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- STREAM_SELECT |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STABLE_SORT [$$31(ASC)] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$31] |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| + -- STREAM_SELECT |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1343.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1343.plan index 1dac8b2..cb833a5 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1343.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1343.plan @@ -3,12 +3,12 @@ -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- SORT_MERGE_EXCHANGE [$$3(ASC) ] |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$39] |PARTITIONED| + -- SORT_GROUP_BY[$$39] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$39(ASC)] HASH:[$$39] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$39] |PARTITIONED| -- SORT_GROUP_BY[$$27] |PARTITIONED| { -- AGGREGATE |LOCAL| @@ -29,11 +29,13 @@ -- EMPTY_TUPLE_SOURCE |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- PRE_SORTED_DISTINCT_BY |PARTITIONED| - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$31(ASC)] HASH:[$$31] |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- STREAM_SELECT |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STABLE_SORT [$$31(ASC)] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$31] |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| + -- STREAM_SELECT |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-830.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-830.plan index ef384eb..26185a2 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-830.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-830.plan @@ -12,39 +12,41 @@ -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$32(ASC)] HASH:[$$32] |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$24] |PARTITIONED| - { - -- AGGREGATE |LOCAL| - -- NESTED_TUPLE_SOURCE |LOCAL| - } - { - -- AGGREGATE |LOCAL| - -- NESTED_TUPLE_SOURCE |LOCAL| - } - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STABLE_SORT [$$24(ASC)] |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STABLE_SORT [$$32(ASC)] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$32] |PARTITIONED| + -- PRE_CLUSTERED_GROUP_BY[$$24] |PARTITIONED| + { + -- AGGREGATE |LOCAL| + -- NESTED_TUPLE_SOURCE |LOCAL| + } + { + -- AGGREGATE |LOCAL| + -- NESTED_TUPLE_SOURCE |LOCAL| + } -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ASSIGN |PARTITIONED| - -- STREAM_SELECT |PARTITIONED| + -- STABLE_SORT [$$24(ASC)] |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| + -- STREAM_SELECT |PARTITIONED| + -- ASSIGN |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| -- DISTRIBUTE_RESULT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$40] |PARTITIONED| + -- SORT_GROUP_BY[$$40] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$40(ASC)] HASH:[$$40] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$40] |PARTITIONED| -- SORT_GROUP_BY[$$30] |PARTITIONED| { -- AGGREGATE |LOCAL| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue562.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue562.plan index 931ec7d..173aae7 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue562.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue562.plan @@ -3,12 +3,12 @@ -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- SORT_MERGE_EXCHANGE [$$7(ASC) ] |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$82] |PARTITIONED| + -- SORT_GROUP_BY[$$82] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$82(ASC)] HASH:[$$82] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$82] |PARTITIONED| -- SORT_GROUP_BY[$$11] |PARTITIONED| { -- AGGREGATE |LOCAL| @@ -19,12 +19,12 @@ -- STREAM_SELECT |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$79] |PARTITIONED| + -- SORT_GROUP_BY[$$79] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$79(ASC)] HASH:[$$79] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$79] |PARTITIONED| -- PRE_CLUSTERED_GROUP_BY[$$75] |PARTITIONED| { -- AGGREGATE |LOCAL| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue601.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue601.plan index 7b628a7..369f475 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue601.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue601.plan @@ -3,12 +3,12 @@ -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$13] |PARTITIONED| + -- SORT_GROUP_BY[$$13] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$13(ASC)] HASH:[$$13] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$13] |PARTITIONED| -- SORT_GROUP_BY[$$10] |PARTITIONED| { -- AGGREGATE |LOCAL| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue697.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue697.plan index e2a985d..13fb7e1 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue697.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue697.plan @@ -3,12 +3,12 @@ -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$19] |PARTITIONED| + -- SORT_GROUP_BY[$$19] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$19(ASC)] HASH:[$$19] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$19] |PARTITIONED| -- PRE_CLUSTERED_GROUP_BY[$$16] |PARTITIONED| { -- AGGREGATE |LOCAL| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue785.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue785.plan index ac2c294..4027e6a 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue785.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue785.plan @@ -13,12 +13,12 @@ -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STABLE_SORT [$$7(ASC)] |PARTITIONED| -- HASH_PARTITION_EXCHANGE [$$7] |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$69, $$70] |PARTITIONED| + -- SORT_GROUP_BY[$$69, $$70] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$69(ASC), $$70(ASC)] HASH:[$$69, $$70] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$69, $$70] |PARTITIONED| -- SORT_GROUP_BY[$$50, $$54] |PARTITIONED| { -- AGGREGATE |LOCAL| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue810-2.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue810-2.plan index 2b98aec..7b94c2a 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue810-2.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue810-2.plan @@ -16,29 +16,31 @@ -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$75(ASC), $$76(ASC)] HASH:[$$75, $$76] |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$42, $$43] |PARTITIONED| - { - -- AGGREGATE |LOCAL| - -- NESTED_TUPLE_SOURCE |LOCAL| - } - { - -- AGGREGATE |LOCAL| - -- STREAM_SELECT |LOCAL| - -- NESTED_TUPLE_SOURCE |LOCAL| - } - { - -- AGGREGATE |LOCAL| - -- STREAM_SELECT |LOCAL| - -- NESTED_TUPLE_SOURCE |LOCAL| - } - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STABLE_SORT [$$42(ASC), $$43(ASC)] |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STABLE_SORT [$$75(ASC), $$76(ASC)] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$75, $$76] |PARTITIONED| + -- PRE_CLUSTERED_GROUP_BY[$$42, $$43] |PARTITIONED| + { + -- AGGREGATE |LOCAL| + -- NESTED_TUPLE_SOURCE |LOCAL| + } + { + -- AGGREGATE |LOCAL| + -- STREAM_SELECT |LOCAL| + -- NESTED_TUPLE_SOURCE |LOCAL| + } + { + -- AGGREGATE |LOCAL| + -- STREAM_SELECT |LOCAL| + -- NESTED_TUPLE_SOURCE |LOCAL| + } -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STREAM_SELECT |PARTITIONED| - -- ASSIGN |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| + -- STABLE_SORT [$$42(ASC), $$43(ASC)] |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STREAM_SELECT |PARTITIONED| + -- ASSIGN |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue810.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue810.plan index fc4ab7d..3e7d5d9 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue810.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue810.plan @@ -12,25 +12,27 @@ -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$34(ASC), $$35(ASC)] HASH:[$$34, $$35] |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$23, $$24] |PARTITIONED| - { - -- AGGREGATE |LOCAL| - -- STREAM_SELECT |LOCAL| - -- NESTED_TUPLE_SOURCE |LOCAL| - } - { - -- AGGREGATE |LOCAL| - -- STREAM_SELECT |LOCAL| - -- NESTED_TUPLE_SOURCE |LOCAL| - } - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STABLE_SORT [$$23(ASC), $$24(ASC)] |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STABLE_SORT [$$34(ASC), $$35(ASC)] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$34, $$35] |PARTITIONED| + -- PRE_CLUSTERED_GROUP_BY[$$23, $$24] |PARTITIONED| + { + -- AGGREGATE |LOCAL| + -- STREAM_SELECT |LOCAL| + -- NESTED_TUPLE_SOURCE |LOCAL| + } + { + -- AGGREGATE |LOCAL| + -- STREAM_SELECT |LOCAL| + -- NESTED_TUPLE_SOURCE |LOCAL| + } -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STREAM_SELECT |PARTITIONED| - -- ASSIGN |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| + -- STABLE_SORT [$$23(ASC), $$24(ASC)] |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STREAM_SELECT |PARTITIONED| + -- ASSIGN |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/rtree-secondary-index-open.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/rtree-secondary-index-open.plan index f77dc35..2b07c56 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/rtree-secondary-index-open.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/rtree-secondary-index-open.plan @@ -3,12 +3,14 @@ -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- BULKLOAD |PARTITIONED| - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$2(ASC)] HASH:[$$2] |PARTITIONED| - -- ASSIGN |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STABLE_SORT [$$2(ASC)] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$2] |PARTITIONED| + -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| -- DISTRIBUTE_RESULT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/rtree-secondary-index.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/rtree-secondary-index.plan index f77dc35..2b07c56 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/rtree-secondary-index.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/rtree-secondary-index.plan @@ -3,12 +3,14 @@ -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- BULKLOAD |PARTITIONED| - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$2(ASC)] HASH:[$$2] |PARTITIONED| - -- ASSIGN |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STABLE_SORT [$$2(ASC)] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$2] |PARTITIONED| + -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| -- DISTRIBUTE_RESULT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/scan-delete-rtree-secondary-index.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/scan-delete-rtree-secondary-index.plan index 317b163..2562338 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/scan-delete-rtree-secondary-index.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/scan-delete-rtree-secondary-index.plan @@ -3,12 +3,14 @@ -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- BULKLOAD |PARTITIONED| - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$2(ASC)] HASH:[$$2] |PARTITIONED| - -- ASSIGN |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STABLE_SORT [$$2(ASC)] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$2] |PARTITIONED| + -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| -- COMMIT |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| @@ -28,4 +30,4 @@ -- BTREE_SEARCH |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- ASSIGN |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| \ No newline at end of file + -- EMPTY_TUPLE_SOURCE |PARTITIONED| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/skip-index/skip-rtree-secondary-index.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/skip-index/skip-rtree-secondary-index.plan index 1534f6c..49535e9 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/skip-index/skip-rtree-secondary-index.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/skip-index/skip-rtree-secondary-index.plan @@ -3,12 +3,14 @@ -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- BULKLOAD |PARTITIONED| - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$2(ASC)] HASH:[$$2] |PARTITIONED| - -- ASSIGN |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STABLE_SORT [$$2(ASC)] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$2] |PARTITIONED| + -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| -- DISTRIBUTE_RESULT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/split-materialization-above-join.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/split-materialization-above-join.plan index 5d9600c..d698437 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/split-materialization-above-join.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/split-materialization-above-join.plan @@ -69,12 +69,12 @@ -- SORT_MERGE_EXCHANGE [$$102(ASC), $$18(ASC) ] |PARTITIONED| -- STABLE_SORT [$$102(ASC), $$18(ASC)] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$130] |PARTITIONED| + -- SORT_GROUP_BY[$$130] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$130(ASC)] HASH:[$$130] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$130] |PARTITIONED| -- SORT_GROUP_BY[$$17] |PARTITIONED| { -- AGGREGATE |LOCAL| @@ -126,12 +126,12 @@ -- SORT_MERGE_EXCHANGE [$$102(ASC), $$18(ASC) ] |PARTITIONED| -- STABLE_SORT [$$102(ASC), $$18(ASC)] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$130] |PARTITIONED| + -- SORT_GROUP_BY[$$130] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$130(ASC)] HASH:[$$130] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$130] |PARTITIONED| -- SORT_GROUP_BY[$$17] |PARTITIONED| { -- AGGREGATE |LOCAL| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/exists.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/exists.plan index a379cb8..3724559 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/exists.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/exists.plan @@ -3,12 +3,12 @@ -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- SORT_MERGE_EXCHANGE [$$31(ASC) ] |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$104] |PARTITIONED| + -- SORT_GROUP_BY[$$104] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$104(ASC)] HASH:[$$104] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$104] |PARTITIONED| -- SORT_GROUP_BY[$$81] |PARTITIONED| { -- AGGREGATE |LOCAL| @@ -21,12 +21,12 @@ -- STREAM_SELECT |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$101] |PARTITIONED| + -- SORT_GROUP_BY[$$101] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$101(ASC)] HASH:[$$101] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$101] |PARTITIONED| -- PRE_CLUSTERED_GROUP_BY[$$95] |PARTITIONED| { -- AGGREGATE |LOCAL| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/not_exists.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/not_exists.plan index bc68200..139b084 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/not_exists.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/not_exists.plan @@ -3,12 +3,12 @@ -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- SORT_MERGE_EXCHANGE [$$31(ASC) ] |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$105] |PARTITIONED| + -- SORT_GROUP_BY[$$105] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$105(ASC)] HASH:[$$105] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$105] |PARTITIONED| -- SORT_GROUP_BY[$$82] |PARTITIONED| { -- AGGREGATE |LOCAL| @@ -21,12 +21,12 @@ -- STREAM_SELECT |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$102] |PARTITIONED| + -- SORT_GROUP_BY[$$102] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$102(ASC)] HASH:[$$102] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$102] |PARTITIONED| -- PRE_CLUSTERED_GROUP_BY[$$96] |PARTITIONED| { -- AGGREGATE |LOCAL| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1580.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1580.plan index 5e73419..80bb3f4 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1580.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1580.plan @@ -12,12 +12,12 @@ -- STREAM_PROJECT |PARTITIONED| -- STREAM_SELECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$95] |PARTITIONED| + -- SORT_GROUP_BY[$$95] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$95(ASC)] HASH:[$$95] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$95] |PARTITIONED| -- SORT_GROUP_BY[$$73] |PARTITIONED| { -- AGGREGATE |LOCAL| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1591.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1591.plan index 03ad253..2ade8bb 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1591.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1591.plan @@ -10,12 +10,12 @@ -- STREAM_SELECT |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$129, $$130] |PARTITIONED| + -- SORT_GROUP_BY[$$129, $$130] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$129(ASC), $$130(ASC)] HASH:[$$129, $$130] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$129, $$130] |PARTITIONED| -- PRE_CLUSTERED_GROUP_BY[$$117, $$118] |PARTITIONED| { -- AGGREGATE |LOCAL| @@ -29,12 +29,12 @@ -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- HYBRID_HASH_JOIN [$$117][$$99] |PARTITIONED| -- HASH_PARTITION_EXCHANGE [$$117] |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$126, $$127] |PARTITIONED| + -- SORT_GROUP_BY[$$126, $$127] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$126(ASC), $$127(ASC)] HASH:[$$126, $$127] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$126, $$127] |PARTITIONED| -- PRE_CLUSTERED_GROUP_BY[$$114, $$115] |PARTITIONED| { -- AGGREGATE |LOCAL| @@ -51,12 +51,12 @@ -- STREAM_PROJECT |PARTITIONED| -- STREAM_SELECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$123, $$124] |PARTITIONED| + -- SORT_GROUP_BY[$$123, $$124] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$123(ASC), $$124(ASC)] HASH:[$$123, $$124] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$123, $$124] |PARTITIONED| -- PRE_CLUSTERED_GROUP_BY[$$78, $$79] |PARTITIONED| { -- AGGREGATE |LOCAL| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping.plan index 754e03b..ad011cb 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping.plan @@ -3,12 +3,12 @@ -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- SORT_MERGE_EXCHANGE [$$12(ASC) ] |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$104] |PARTITIONED| + -- SORT_GROUP_BY[$$104] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$104(ASC)] HASH:[$$104] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$104] |PARTITIONED| -- SORT_GROUP_BY[$$86] |PARTITIONED| { -- AGGREGATE |LOCAL| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping_broadcast.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping_broadcast.plan index 773b4db..27108be 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping_broadcast.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpch/q12_shipping_broadcast.plan @@ -3,12 +3,12 @@ -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- SORT_MERGE_EXCHANGE [$$12(ASC) ] |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$104] |PARTITIONED| + -- SORT_GROUP_BY[$$104] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$104(ASC)] HASH:[$$104] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$104] |PARTITIONED| -- SORT_GROUP_BY[$$86] |PARTITIONED| { -- AGGREGATE |LOCAL| diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/big-object/big_object_load_20M/big_object_load_20M.2.update.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/big-object/big_object_load_20M/big_object_load_20M.2.update.aql index d8895f6..f384e96 100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/big-object/big_object_load_20M/big_object_load_20M.2.update.aql +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/big-object/big_object_load_20M/big_object_load_20M.2.update.aql @@ -25,6 +25,9 @@ use dataverse testdv2; + +set hash_merge "true" + load dataset testds using localfs (("path"="asterix_nc1://target/data/big-object/big_object_20M.adm"),("format"="adm")) pre-sorted; diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/big-object/big_object_load_only_20M/big_object_load_only_20M.2.update.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/big-object/big_object_load_only_20M/big_object_load_only_20M.2.update.aql index d8895f6..f384e96 100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/big-object/big_object_load_only_20M/big_object_load_only_20M.2.update.aql +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/big-object/big_object_load_only_20M/big_object_load_only_20M.2.update.aql @@ -25,6 +25,9 @@ use dataverse testdv2; + +set hash_merge "true" + load dataset testds using localfs (("path"="asterix_nc1://target/data/big-object/big_object_20M.adm"),("format"="adm")) pre-sorted; diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/tpch/q01_pricing_summary_report_nt/q01_pricing_summary_report_nt.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/tpch/q01_pricing_summary_report_nt/q01_pricing_summary_report_nt.3.query.sqlpp index b6dd0c0..9ac57fd 100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/tpch/q01_pricing_summary_report_nt/q01_pricing_summary_report_nt.3.query.sqlpp +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/tpch/q01_pricing_summary_report_nt/q01_pricing_summary_report_nt.3.query.sqlpp @@ -19,8 +19,7 @@ use tpch; - -set `import-private-functions` `true`; +set hash_merge "true" select element {'l_returnflag':l_returnflag,'l_linestatus':l_linestatus,'sum_qty':COLL_SUM(( select element i.l_quantity diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q01_pricing_summary_report_nt/q01_pricing_summary_report_nt.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q01_pricing_summary_report_nt/q01_pricing_summary_report_nt.3.ast index 815615d..54fe3f5 100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q01_pricing_summary_report_nt/q01_pricing_summary_report_nt.3.ast +++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/tpch/q01_pricing_summary_report_nt/q01_pricing_summary_report_nt.3.ast @@ -1,5 +1,5 @@ DataverseUse tpch -Set import-private-functions=true +Set hash_merge=true Query: SELECT ELEMENT [ RecordConstructor [ diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.3.update.aql b/asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.3.update.aql index f1b3819..b99ccdc 100644 --- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.3.update.aql +++ b/asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.3.update.aql @@ -25,6 +25,8 @@ use dataverse testdv2; +set hash_merge "true" + load dataset testds using localfs (("path"="asterix_nc1://../../../../../../asterix-app/target/data/big-object/big_object_20M.adm"),("format"="adm")) pre-sorted; diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/metadata/IMetadataProvider.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/metadata/IMetadataProvider.java index 6947942..5d1f402 100644 --- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/metadata/IMetadataProvider.java +++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/metadata/IMetadataProvider.java @@ -19,6 +19,7 @@ package org.apache.hyracks.algebricks.core.algebra.metadata; import java.util.List; +import java.util.Map; import org.apache.hyracks.algebricks.common.constraints.AlgebricksPartitionConstraint; import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException; @@ -205,4 +206,5 @@ List<LogicalVariable> prevSecondaryKeys, LogicalVariable prevAdditionalFilteringKeys, RecordDescriptor inputDesc, JobGenContext context, JobSpecification spec) throws AlgebricksException; + public Map<String, String> getConfig(); } diff --git a/hyracks-fullstack/algebricks/algebricks-examples/piglet-example/src/main/java/org/apache/hyracks/algebricks/examples/piglet/metadata/PigletMetadataProvider.java b/hyracks-fullstack/algebricks/algebricks-examples/piglet-example/src/main/java/org/apache/hyracks/algebricks/examples/piglet/metadata/PigletMetadataProvider.java index 35b433b..3f7f56d 100644 --- a/hyracks-fullstack/algebricks/algebricks-examples/piglet-example/src/main/java/org/apache/hyracks/algebricks/examples/piglet/metadata/PigletMetadataProvider.java +++ b/hyracks-fullstack/algebricks/algebricks-examples/piglet-example/src/main/java/org/apache/hyracks/algebricks/examples/piglet/metadata/PigletMetadataProvider.java @@ -253,4 +253,9 @@ // TODO Auto-generated method stub return null; } + + @Override + public Map<String, String> getConfig() { + return Collections.emptyMap(); + } } diff --git a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/EnforceStructuralPropertiesRule.java b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/EnforceStructuralPropertiesRule.java index 159bcf5..0b3a57e 100644 --- a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/EnforceStructuralPropertiesRule.java +++ b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/EnforceStructuralPropertiesRule.java @@ -93,6 +93,8 @@ public class EnforceStructuralPropertiesRule implements IAlgebraicRewriteRule { + private static final String HASH_MERGE = "hash_merge"; + private static final String TRUE_CONSTANT = "true"; private PhysicalOptimizationConfig physicalOptimizationConfig; @Override @@ -552,6 +554,11 @@ } case UNORDERED_PARTITIONED: { List<LogicalVariable> varList = new ArrayList<>(((UnorderedPartitionedProperty) pp).getColumnSet()); + String hashMergeHint = context.getMetadataProvider().getConfig().get(HASH_MERGE); + if (hashMergeHint == null || !hashMergeHint.equalsIgnoreCase(TRUE_CONSTANT)) { + pop = new HashPartitionExchangePOperator(varList, domain); + break; + } List<ILocalStructuralProperty> cldLocals = deliveredByChild.getLocalProperties(); List<ILocalStructuralProperty> reqdLocals = required.getLocalProperties(); boolean propWasSet = false; -- To view, visit https://asterix-gerrit.ics.uci.edu/1345 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: merged Gerrit-Change-Id: If82c4e4db1d4340cdd53d17e48a193ab2b7a05e0 Gerrit-PatchSet: 9 Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Owner: Yingyi Bu <[email protected]> Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Till Westmann <[email protected]> Gerrit-Reviewer: Yingyi Bu <[email protected]>
