[ASTERIXDB-2441][COMP] Improve column alias handling in ORDERBY/LIMIT - user model changes: no - storage format changes: no - interface changes: no
Details: - Introduce LET clauses for column alias expressions instead of inlining them into ORDER BY/LIMIT clauses - Fix incorrect visitor used in SubstituteGroupbyExpressionWithVariableVisitor for rewriting LET clauses after GROUP BY Change-Id: If925cbb803f2ad5fe955ba343ddc62585589b894 Reviewed-on: https://asterix-gerrit.ics.uci.edu/2905 Tested-by: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Contrib: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Integration-Tests: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Reviewed-by: Till Westmann <ti...@apache.org> Contrib: Till Westmann <ti...@apache.org> Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/309c69c5 Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/309c69c5 Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/309c69c5 Branch: refs/heads/master Commit: 309c69c57a4fb79028eeee8efd9e179240299f3d Parents: adaff3c Author: Dmitry Lychagin <dmitry.lycha...@couchbase.com> Authored: Tue Aug 14 22:25:57 2018 -0700 Committer: Dmitry Lychagin <dmitry.lycha...@couchbase.com> Committed: Wed Aug 15 07:55:26 2018 -0700 ---------------------------------------------------------------------- .../queries/group-by/sugar-06-distinct.sqlpp | 35 ++++ .../optimizerts/results/ASTERIXDB-2402.plan | 38 ++-- .../results/aggregate/constant-gby-agg.plan | 6 +- .../secondary-equi-join_06.plan | 8 +- .../optimizerts/results/cust_group_no_agg.plan | 4 +- .../results/gby_partitioning_property_01.plan | 10 +- .../results/group-by/sugar-06-distinct.plan | 27 +++ .../results/query-ASTERIXDB-1806.plan | 6 +- .../results/query-ASTERIXDB-2354.plan | 4 +- .../results/query-ASTERIXDB-2408.plan | 72 ++------ .../optimizerts/results/query-issue601.plan | 6 +- .../rtree-sidx-idxonly-01-disable-idxonly.plan | 2 +- .../optimizerts/results/subquery/exists.plan | 20 +-- .../optimizerts/results/subquery/in.plan | 10 +- .../results/subquery/in_correlated.plan | 10 +- .../results/subquery/not_exists.plan | 20 +-- .../results/tpcds/query-ASTERIXDB-1580.plan | 127 +++++++------ .../tpcds/query-ASTERIXDB-1581-correlated.plan | 64 +++---- .../results/tpcds/query-ASTERIXDB-1581.plan | 26 +-- .../optimizerts/results/tpch/q12_shipping.plan | 12 +- .../results/tpch/q12_shipping_broadcast.plan | 10 +- .../results_parser_sqlpp/columnalias.ast | 42 ++--- .../results_parser_sqlpp/columnalias3.ast | 42 ++--- .../flwor/order-by-13/order-by-13.1.ddl.sqlpp | 29 +++ .../order-by-13/order-by-13.2.update.sqlpp | 36 ++++ .../flwor/order-by-13/order-by-13.3.query.sqlpp | 25 +++ .../sugar-06-distinct.9.query.sqlpp | 26 +++ .../explain_field_access.1.adm | 30 ++-- .../explain_field_access_closed.1.adm | 26 +-- .../results/flwor/order-by-13/order-by-13.3.adm | 4 + .../sugar-06-distinct/sugar-06-distinct.9.adm | 3 + .../results_parser_sqlpp/flwor/at06/at06.3.ast | 42 ++--- .../tinysocial-suite.24.ast | 57 +++--- .../tinysocial-suite/tinysocial-suite.24.ast | 57 +++--- .../resources/runtimets/testsuite_sqlpp.xml | 5 + .../asterix/lang/common/context/Scope.java | 11 +- .../common/rewrites/LangRewritingContext.java | 13 +- .../asterix/lang/sqlpp/clause/SelectBlock.java | 4 +- .../rewrites/SqlppFunctionBodyRewriter.java | 6 +- .../lang/sqlpp/rewrites/SqlppQueryRewriter.java | 6 +- .../visitor/InlineColumnAliasVisitor.java | 176 ++++++++++++++++--- ...uteGroupbyExpressionWithVariableVisitor.java | 36 ++-- .../visitor/VariableCheckAndRewriteVisitor.java | 3 +- .../SqlppSubstituteExpressionVisitor.java | 13 +- 44 files changed, 733 insertions(+), 476 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/asterixdb/blob/309c69c5/asterixdb/asterix-app/src/test/resources/optimizerts/queries/group-by/sugar-06-distinct.sqlpp ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/queries/group-by/sugar-06-distinct.sqlpp b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/group-by/sugar-06-distinct.sqlpp new file mode 100644 index 0000000..d961374 --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/queries/group-by/sugar-06-distinct.sqlpp @@ -0,0 +1,35 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +DROP DATAVERSE gby IF EXISTS; +CREATE DATAVERSE gby; + +USE gby; + +CREATE TYPE EmpType AS { + name : string +}; + +CREATE DATASET Employee(EmpType) PRIMARY KEY name; + +FROM Employee e +GROUP BY deptno +SELECT deptno, MAX(DISTINCT salary) salary_agg +ORDER BY salary_agg DESC +LIMIT 3; http://git-wip-us.apache.org/repos/asf/asterixdb/blob/309c69c5/asterixdb/asterix-app/src/test/resources/optimizerts/results/ASTERIXDB-2402.plan ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/ASTERIXDB-2402.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/ASTERIXDB-2402.plan index fced7a9..18ec417 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/ASTERIXDB-2402.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/ASTERIXDB-2402.plan @@ -5,12 +5,12 @@ { -- AGGREGATE |LOCAL| -- ASSIGN |LOCAL| - -- MICRO_PRE_CLUSTERED_GROUP_BY[$$183] |LOCAL| + -- MICRO_PRE_CLUSTERED_GROUP_BY[$$184] |LOCAL| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- IN_MEMORY_STABLE_SORT [$$183(ASC)] |LOCAL| + -- IN_MEMORY_STABLE_SORT [$$184(ASC)] |LOCAL| -- ASSIGN |LOCAL| -- UNNEST |LOCAL| -- SUBPLAN |LOCAL| @@ -27,7 +27,7 @@ -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- INSERT_DELETE |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$167] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$168] |PARTITIONED| -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| @@ -37,28 +37,28 @@ -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$221] |PARTITIONED| + -- PRE_CLUSTERED_GROUP_BY[$$222] |PARTITIONED| { -- AGGREGATE |LOCAL| -- STREAM_SELECT |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STABLE_SORT [$$221(ASC)] |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$221] |PARTITIONED| + -- STABLE_SORT [$$222(ASC)] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$222] |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- HYBRID_HASH_JOIN [$$267][$$190] |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$267] |PARTITIONED| + -- HYBRID_HASH_JOIN [$$268][$$191] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$268] |PARTITIONED| -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- UNNEST |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$275] |PARTITIONED| + -- PRE_CLUSTERED_GROUP_BY[$$276] |PARTITIONED| { -- AGGREGATE |LOCAL| - -- MICRO_PRE_CLUSTERED_GROUP_BY[$$277, $$279] |LOCAL| + -- MICRO_PRE_CLUSTERED_GROUP_BY[$$278, $$280] |LOCAL| { -- AGGREGATE |LOCAL| -- STREAM_SELECT |LOCAL| @@ -68,8 +68,8 @@ -- NESTED_TUPLE_SOURCE |LOCAL| } -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STABLE_SORT [$$275(ASC), $$277(ASC), $$279(ASC)] |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$275] |PARTITIONED| + -- STABLE_SORT [$$276(ASC), $$278(ASC), $$280(ASC)] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$276] |PARTITIONED| -- UNION_ALL |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| @@ -94,7 +94,7 @@ -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- BTREE_SEARCH |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STABLE_SORT [$$289(ASC)] |PARTITIONED| + -- STABLE_SORT [$$290(ASC)] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| @@ -117,7 +117,7 @@ -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- BTREE_SEARCH |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STABLE_SORT [$$228(ASC)] |PARTITIONED| + -- STABLE_SORT [$$229(ASC)] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| @@ -145,7 +145,7 @@ -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- BTREE_SEARCH |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STABLE_SORT [$$289(ASC)] |PARTITIONED| + -- STABLE_SORT [$$290(ASC)] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| @@ -168,7 +168,7 @@ -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- BTREE_SEARCH |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STABLE_SORT [$$228(ASC)] |PARTITIONED| + -- STABLE_SORT [$$229(ASC)] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| @@ -176,12 +176,12 @@ -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- ASSIGN |PARTITIONED| -- EMPTY_TUPLE_SOURCE |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$190] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$191] |PARTITIONED| -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- HYBRID_HASH_JOIN [$$198, $$200][$$192, $$193] |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$198, $$200] |PARTITIONED| + -- HYBRID_HASH_JOIN [$$199, $$201][$$193, $$194] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$199, $$201] |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| http://git-wip-us.apache.org/repos/asf/asterixdb/blob/309c69c5/asterixdb/asterix-app/src/test/resources/optimizerts/results/aggregate/constant-gby-agg.plan ---------------------------------------------------------------------- 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 59ddab8..88cb592 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,13 +3,13 @@ -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- SORT_GROUP_BY[$$39] |PARTITIONED| + -- SORT_GROUP_BY[$$40] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_EXCHANGE [$$39] |PARTITIONED| - -- SORT_GROUP_BY[$$35] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$40] |PARTITIONED| + -- SORT_GROUP_BY[$$36] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| http://git-wip-us.apache.org/repos/asf/asterixdb/blob/309c69c5/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-join/secondary-equi-join_06.plan ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-join/secondary-equi-join_06.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-join/secondary-equi-join_06.plan index 5163d81..c81b6b0 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-join/secondary-equi-join_06.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-join/secondary-equi-join_06.plan @@ -8,7 +8,7 @@ -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- BTREE_SEARCH |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STABLE_SORT [$$68(ASC)] |PARTITIONED| + -- STABLE_SORT [$$69(ASC)] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| @@ -17,13 +17,13 @@ -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- SORT_GROUP_BY[$$66] |PARTITIONED| + -- SORT_GROUP_BY[$$67] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_EXCHANGE [$$66] |PARTITIONED| - -- SORT_GROUP_BY[$$59] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$67] |PARTITIONED| + -- SORT_GROUP_BY[$$60] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| http://git-wip-us.apache.org/repos/asf/asterixdb/blob/309c69c5/asterixdb/asterix-app/src/test/resources/optimizerts/results/cust_group_no_agg.plan ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/cust_group_no_agg.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/cust_group_no_agg.plan index 1e82aa4..cdea343 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/cust_group_no_agg.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/cust_group_no_agg.plan @@ -1,11 +1,11 @@ -- DISTRIBUTE_RESULT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- SORT_GROUP_BY[$$27] |PARTITIONED| + -- SORT_GROUP_BY[$$28] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_EXCHANGE [$$27] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$28] |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| http://git-wip-us.apache.org/repos/asf/asterixdb/blob/309c69c5/asterixdb/asterix-app/src/test/resources/optimizerts/results/gby_partitioning_property_01.plan ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/gby_partitioning_property_01.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/gby_partitioning_property_01.plan index 254bf24..1bb5b99 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/gby_partitioning_property_01.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/gby_partitioning_property_01.plan @@ -3,13 +3,13 @@ -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$60] |PARTITIONED| + -- PRE_CLUSTERED_GROUP_BY[$$61] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- SORT_GROUP_BY[$$50] |PARTITIONED| + -- SORT_GROUP_BY[$$51] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| @@ -17,8 +17,8 @@ -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- HYBRID_HASH_JOIN [$$50][$$53] |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$50] |PARTITIONED| + -- HYBRID_HASH_JOIN [$$51][$$54] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$51] |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| @@ -26,7 +26,7 @@ -- DATASOURCE_SCAN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- EMPTY_TUPLE_SOURCE |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$53] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$54] |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| http://git-wip-us.apache.org/repos/asf/asterixdb/blob/309c69c5/asterixdb/asterix-app/src/test/resources/optimizerts/results/group-by/sugar-06-distinct.plan ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/group-by/sugar-06-distinct.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/group-by/sugar-06-distinct.plan new file mode 100644 index 0000000..81b8787 --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/group-by/sugar-06-distinct.plan @@ -0,0 +1,27 @@ +-- DISTRIBUTE_RESULT |UNPARTITIONED| + -- ONE_TO_ONE_EXCHANGE |UNPARTITIONED| + -- STREAM_LIMIT |UNPARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- ASSIGN |PARTITIONED| + -- SORT_MERGE_EXCHANGE [$$48(DESC) ] |PARTITIONED| + -- STREAM_LIMIT |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STABLE_SORT [topK: 3] [$$48(DESC)] |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- PRE_CLUSTERED_GROUP_BY[$$46] |PARTITIONED| + { + -- AGGREGATE |LOCAL| + -- MICRO_PRE_SORTED_DISTINCT_BY |LOCAL| + -- IN_MEMORY_STABLE_SORT [$$41(ASC)] |LOCAL| + -- NESTED_TUPLE_SOURCE |LOCAL| + } + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STABLE_SORT [$$46(ASC)] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$46] |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- ASSIGN |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| \ No newline at end of file http://git-wip-us.apache.org/repos/asf/asterixdb/blob/309c69c5/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1806.plan ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1806.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1806.plan index 124d677..fef4ae3 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1806.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-1806.plan @@ -3,13 +3,13 @@ -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- SORT_MERGE_EXCHANGE [$$l_returnflag(ASC), $$l_linestatus(ASC) ] |PARTITIONED| - -- SORT_GROUP_BY[$$148, $$149] |PARTITIONED| + -- SORT_GROUP_BY[$$149, $$150] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_EXCHANGE [$$148, $$149] |PARTITIONED| - -- SORT_GROUP_BY[$$116, $$117] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$149, $$150] |PARTITIONED| + -- SORT_GROUP_BY[$$117, $$118] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| http://git-wip-us.apache.org/repos/asf/asterixdb/blob/309c69c5/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-2354.plan ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-2354.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-2354.plan index 90d5b09..b255ab2 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-2354.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-2354.plan @@ -1,8 +1,8 @@ -- DISTRIBUTE_RESULT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| - -- SORT_MERGE_EXCHANGE [$$69(ASC), $$70(ASC), $$71(ASC) ] |PARTITIONED| - -- STABLE_SORT [$$69(ASC), $$70(ASC), $$71(ASC)] |PARTITIONED| + -- SORT_MERGE_EXCHANGE [$$70(ASC), $$71(ASC), $$72(ASC) ] |PARTITIONED| + -- STABLE_SORT [$$70(ASC), $$71(ASC), $$72(ASC)] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- UNION_ALL |PARTITIONED| -- RANDOM_PARTITION_EXCHANGE |PARTITIONED| http://git-wip-us.apache.org/repos/asf/asterixdb/blob/309c69c5/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-2408.plan ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-2408.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-2408.plan index e6e3520..640a064 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-2408.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-2408.plan @@ -1,68 +1,34 @@ -- DISTRIBUTE_RESULT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| - -- SORT_MERGE_EXCHANGE [$$49(ASC) ] |PARTITIONED| - -- STABLE_SORT [$$49(ASC)] |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| + -- ASSIGN |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- SORT_MERGE_EXCHANGE [$$39(ASC) ] |PARTITIONED| + -- STABLE_SORT [$$39(ASC)] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$60] |PARTITIONED| - { - -- AGGREGATE |LOCAL| - -- NESTED_TUPLE_SOURCE |LOCAL| - } + -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$56] |PARTITIONED| + -- PRE_CLUSTERED_GROUP_BY[$$37] |PARTITIONED| { -- AGGREGATE |LOCAL| -- STREAM_SELECT |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STABLE_SORT [$$56(ASC)] |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| + -- HYBRID_HASH_JOIN [$$37][$$40] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- HYBRID_HASH_JOIN [$$56][$$52] |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ASSIGN |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- ASSIGN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- DATASOURCE_SCAN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$46] |PARTITIONED| - { - -- AGGREGATE |LOCAL| - -- STREAM_SELECT |LOCAL| - -- NESTED_TUPLE_SOURCE |LOCAL| - } - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- HYBRID_HASH_JOIN [$$46][$$50] |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ASSIGN |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- REPLICATE |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$50] |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ASSIGN |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ASSIGN |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$40] |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- ASSIGN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- DATASOURCE_SCAN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- REPLICATE |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$50] |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ASSIGN |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| http://git-wip-us.apache.org/repos/asf/asterixdb/blob/309c69c5/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue601.plan ---------------------------------------------------------------------- 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 8e3ca40..3651eba 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,13 +3,13 @@ -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- SORT_GROUP_BY[$$41] |PARTITIONED| + -- SORT_GROUP_BY[$$42] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_EXCHANGE [$$41] |PARTITIONED| - -- SORT_GROUP_BY[$$38] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$42] |PARTITIONED| + -- SORT_GROUP_BY[$$39] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| http://git-wip-us.apache.org/repos/asf/asterixdb/blob/309c69c5/asterixdb/asterix-app/src/test/resources/optimizerts/results/rtree-index/rtree-sidx-idxonly-01-disable-idxonly.plan ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/rtree-index/rtree-sidx-idxonly-01-disable-idxonly.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/rtree-index/rtree-sidx-idxonly-01-disable-idxonly.plan index 1b959cb..331d31f 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/rtree-index/rtree-sidx-idxonly-01-disable-idxonly.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/rtree-index/rtree-sidx-idxonly-01-disable-idxonly.plan @@ -12,7 +12,7 @@ -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- BTREE_SEARCH |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STABLE_SORT [$$55(ASC)] |PARTITIONED| + -- STABLE_SORT [$$56(ASC)] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| http://git-wip-us.apache.org/repos/asf/asterixdb/blob/309c69c5/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/exists.plan ---------------------------------------------------------------------- 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 9672972..a010ace 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,13 +3,13 @@ -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- SORT_MERGE_EXCHANGE [$$cntrycode(ASC) ] |PARTITIONED| - -- SORT_GROUP_BY[$$162] |PARTITIONED| + -- SORT_GROUP_BY[$$164] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_EXCHANGE [$$162] |PARTITIONED| - -- SORT_GROUP_BY[$$139] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$164] |PARTITIONED| + -- SORT_GROUP_BY[$$141] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| @@ -21,25 +21,25 @@ -- STREAM_SELECT |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- SORT_GROUP_BY[$$159] |PARTITIONED| + -- SORT_GROUP_BY[$$161] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_EXCHANGE [$$159] |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$153] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$161] |PARTITIONED| + -- PRE_CLUSTERED_GROUP_BY[$$155] |PARTITIONED| { -- AGGREGATE |LOCAL| -- STREAM_SELECT |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STABLE_SORT [$$153(ASC)] |PARTITIONED| + -- STABLE_SORT [$$155(ASC)] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- HYBRID_HASH_JOIN [$$148][$$145] |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$148] |PARTITIONED| + -- HYBRID_HASH_JOIN [$$150][$$147] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$150] |PARTITIONED| -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| @@ -66,7 +66,7 @@ -- DATASOURCE_SCAN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- EMPTY_TUPLE_SOURCE |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$145] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$147] |PARTITIONED| -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- DATASOURCE_SCAN |PARTITIONED| http://git-wip-us.apache.org/repos/asf/asterixdb/blob/309c69c5/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in.plan ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in.plan index 9dcdd24..6567388 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in.plan @@ -2,13 +2,13 @@ -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| - -- SORT_MERGE_EXCHANGE [$$41(ASC) ] |PARTITIONED| - -- STABLE_SORT [$$41(ASC)] |PARTITIONED| + -- SORT_MERGE_EXCHANGE [$$44(ASC) ] |PARTITIONED| + -- STABLE_SORT [$$44(ASC)] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- STREAM_SELECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$34] |PARTITIONED| + -- PRE_CLUSTERED_GROUP_BY[$$39] |PARTITIONED| { -- AGGREGATE |LOCAL| -- STREAM_SELECT |LOCAL| @@ -17,7 +17,7 @@ -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- HYBRID_HASH_JOIN [$$34][$$22] |PARTITIONED| + -- HYBRID_HASH_JOIN [$$39][$$29] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- STREAM_SELECT |PARTITIONED| @@ -25,7 +25,7 @@ -- DATASOURCE_SCAN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- EMPTY_TUPLE_SOURCE |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$22] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$29] |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| http://git-wip-us.apache.org/repos/asf/asterixdb/blob/309c69c5/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in_correlated.plan ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in_correlated.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in_correlated.plan index 2d9d64b..bf5fa63 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in_correlated.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/in_correlated.plan @@ -2,13 +2,13 @@ -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| - -- SORT_MERGE_EXCHANGE [$$46(ASC) ] |PARTITIONED| - -- STABLE_SORT [$$46(ASC)] |PARTITIONED| + -- SORT_MERGE_EXCHANGE [$$49(ASC) ] |PARTITIONED| + -- STABLE_SORT [$$49(ASC)] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- STREAM_SELECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$38] |PARTITIONED| + -- PRE_CLUSTERED_GROUP_BY[$$43] |PARTITIONED| { -- AGGREGATE |LOCAL| -- STREAM_SELECT |LOCAL| @@ -22,7 +22,7 @@ -- NESTED_TUPLE_SOURCE |LOCAL| } -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- HYBRID_HASH_JOIN [$$38][$$37] |PARTITIONED| + -- HYBRID_HASH_JOIN [$$43][$$42] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_SELECT |PARTITIONED| -- ASSIGN |PARTITIONED| @@ -30,7 +30,7 @@ -- DATASOURCE_SCAN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- EMPTY_TUPLE_SOURCE |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$37] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$42] |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| http://git-wip-us.apache.org/repos/asf/asterixdb/blob/309c69c5/asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/not_exists.plan ---------------------------------------------------------------------- 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 170a15b..57e0fa0 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,13 +3,13 @@ -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- SORT_MERGE_EXCHANGE [$$cntrycode(ASC) ] |PARTITIONED| - -- SORT_GROUP_BY[$$163] |PARTITIONED| + -- SORT_GROUP_BY[$$165] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_EXCHANGE [$$163] |PARTITIONED| - -- SORT_GROUP_BY[$$140] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$165] |PARTITIONED| + -- SORT_GROUP_BY[$$142] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| @@ -21,25 +21,25 @@ -- STREAM_SELECT |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- SORT_GROUP_BY[$$160] |PARTITIONED| + -- SORT_GROUP_BY[$$162] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } - -- HASH_PARTITION_EXCHANGE [$$160] |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$154] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$162] |PARTITIONED| + -- PRE_CLUSTERED_GROUP_BY[$$156] |PARTITIONED| { -- AGGREGATE |LOCAL| -- STREAM_SELECT |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STABLE_SORT [$$154(ASC)] |PARTITIONED| + -- STABLE_SORT [$$156(ASC)] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- HYBRID_HASH_JOIN [$$149][$$146] |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$149] |PARTITIONED| + -- HYBRID_HASH_JOIN [$$151][$$148] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$151] |PARTITIONED| -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| @@ -66,7 +66,7 @@ -- DATASOURCE_SCAN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- EMPTY_TUPLE_SOURCE |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$146] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$148] |PARTITIONED| -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- DATASOURCE_SCAN |PARTITIONED| http://git-wip-us.apache.org/repos/asf/asterixdb/blob/309c69c5/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1580.plan ---------------------------------------------------------------------- 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 0fabd6d..8887588 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 @@ -3,72 +3,71 @@ -- STREAM_LIMIT |UNPARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- SORT_MERGE_EXCHANGE [$$113(ASC) ] |PARTITIONED| - -- STREAM_LIMIT |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STABLE_SORT [topK: 100] [$$113(ASC)] |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- STREAM_SELECT |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- SORT_GROUP_BY[$$123] |PARTITIONED| - { - -- AGGREGATE |LOCAL| - -- NESTED_TUPLE_SOURCE |LOCAL| - } - -- HASH_PARTITION_EXCHANGE [$$123] |PARTITIONED| - -- SORT_GROUP_BY[$$101] |PARTITIONED| - { - -- AGGREGATE |LOCAL| - -- NESTED_TUPLE_SOURCE |LOCAL| - } - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- HYBRID_HASH_JOIN [$$105][$$108] |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$105] |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- HYBRID_HASH_JOIN [$$114][$$107] |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$114] |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- HYBRID_HASH_JOIN [$$104][$$119] |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$104] |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- HYBRID_HASH_JOIN [$$103][$$117] |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- SORT_MERGE_EXCHANGE [$$109(ASC) ] |PARTITIONED| + -- STREAM_LIMIT |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STABLE_SORT [topK: 100] [$$109(ASC)] |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- STREAM_SELECT |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- SORT_GROUP_BY[$$119] |PARTITIONED| + { + -- AGGREGATE |LOCAL| + -- NESTED_TUPLE_SOURCE |LOCAL| + } + -- HASH_PARTITION_EXCHANGE [$$119] |PARTITIONED| + -- SORT_GROUP_BY[$$100] |PARTITIONED| + { + -- AGGREGATE |LOCAL| + -- NESTED_TUPLE_SOURCE |LOCAL| + } + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- HYBRID_HASH_JOIN [$$103][$$106] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$103] |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- HYBRID_HASH_JOIN [$$111][$$105] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$111] |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- HYBRID_HASH_JOIN [$$102][$$116] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$102] |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- HYBRID_HASH_JOIN [$$101][$$114] |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- ASSIGN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$114] |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- DATASOURCE_SCAN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- EMPTY_TUPLE_SOURCE |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$117] |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ASSIGN |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$119] |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ASSIGN |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$116] |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- ASSIGN |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- DATASOURCE_SCAN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| http://git-wip-us.apache.org/repos/asf/asterixdb/blob/309c69c5/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1581-correlated.plan ---------------------------------------------------------------------- diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1581-correlated.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1581-correlated.plan index c27116d..c636836 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1581-correlated.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/tpcds/query-ASTERIXDB-1581-correlated.plan @@ -8,7 +8,7 @@ -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$149] |PARTITIONED| + -- PRE_CLUSTERED_GROUP_BY[$$152] |PARTITIONED| { -- AGGREGATE |LOCAL| -- AGGREGATE |LOCAL| @@ -20,9 +20,9 @@ -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- HYBRID_HASH_JOIN [$$149][$$150] |PARTITIONED| + -- HYBRID_HASH_JOIN [$$152][$$153] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$137] |PARTITIONED| + -- PRE_CLUSTERED_GROUP_BY[$$140] |PARTITIONED| { -- AGGREGATE |LOCAL| -- AGGREGATE |LOCAL| @@ -32,13 +32,13 @@ -- NESTED_TUPLE_SOURCE |LOCAL| } -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STABLE_SORT [$$137(ASC)] |PARTITIONED| + -- STABLE_SORT [$$140(ASC)] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- HYBRID_HASH_JOIN [$$137][$$138] |PARTITIONED| + -- HYBRID_HASH_JOIN [$$140][$$141] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$117] |PARTITIONED| + -- PRE_CLUSTERED_GROUP_BY[$$120] |PARTITIONED| { -- AGGREGATE |LOCAL| -- AGGREGATE |LOCAL| @@ -48,7 +48,7 @@ -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- HYBRID_HASH_JOIN [$$117][$$127] |PARTITIONED| + -- HYBRID_HASH_JOIN [$$120][$$130] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| @@ -66,7 +66,7 @@ -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- REPLICATE |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$174] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$177] |PARTITIONED| -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| @@ -78,18 +78,18 @@ -- DATASOURCE_SCAN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- EMPTY_TUPLE_SOURCE |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$138] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$141] |PARTITIONED| -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- HYBRID_HASH_JOIN [$$131][$$130] |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$131] |PARTITIONED| + -- HYBRID_HASH_JOIN [$$134][$$133] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$134] |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- STREAM_SELECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$139] |PARTITIONED| + -- PRE_CLUSTERED_GROUP_BY[$$142] |PARTITIONED| { -- AGGREGATE |LOCAL| -- AGGREGATE |LOCAL| @@ -99,7 +99,7 @@ -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- HYBRID_HASH_JOIN [$$139][$$141] |PARTITIONED| + -- HYBRID_HASH_JOIN [$$142][$$144] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| @@ -115,7 +115,7 @@ -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- REPLICATE |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$174] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$177] |PARTITIONED| -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| @@ -127,7 +127,7 @@ -- DATASOURCE_SCAN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- EMPTY_TUPLE_SOURCE |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$130] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$133] |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| @@ -140,13 +140,13 @@ -- DATASOURCE_SCAN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- EMPTY_TUPLE_SOURCE |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$150] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$153] |PARTITIONED| -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- HYBRID_HASH_JOIN [$$133][$$132] |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$133] |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$151] |PARTITIONED| + -- HYBRID_HASH_JOIN [$$136][$$135] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$136] |PARTITIONED| + -- PRE_CLUSTERED_GROUP_BY[$$154] |PARTITIONED| { -- AGGREGATE |LOCAL| -- AGGREGATE |LOCAL| @@ -155,18 +155,18 @@ -- NESTED_TUPLE_SOURCE |LOCAL| } -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STABLE_SORT [$$151(ASC)] |PARTITIONED| + -- STABLE_SORT [$$154(ASC)] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- HYBRID_HASH_JOIN [$$151][$$154] |PARTITIONED| + -- HYBRID_HASH_JOIN [$$154][$$157] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- STREAM_SELECT |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$155] |PARTITIONED| + -- PRE_CLUSTERED_GROUP_BY[$$158] |PARTITIONED| { -- AGGREGATE |LOCAL| -- AGGREGATE |LOCAL| @@ -176,7 +176,7 @@ -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- HYBRID_HASH_JOIN [$$155][$$156] |PARTITIONED| + -- HYBRID_HASH_JOIN [$$158][$$159] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| @@ -194,7 +194,7 @@ -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- REPLICATE |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$174] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$177] |PARTITIONED| -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| @@ -206,18 +206,18 @@ -- DATASOURCE_SCAN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- EMPTY_TUPLE_SOURCE |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$154] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$157] |PARTITIONED| -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- HYBRID_HASH_JOIN [$$168][$$167] |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$168] |PARTITIONED| + -- HYBRID_HASH_JOIN [$$171][$$170] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$171] |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- STREAM_SELECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$173] |PARTITIONED| + -- PRE_CLUSTERED_GROUP_BY[$$176] |PARTITIONED| { -- AGGREGATE |LOCAL| -- AGGREGATE |LOCAL| @@ -227,7 +227,7 @@ -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- HYBRID_HASH_JOIN [$$173][$$174] |PARTITIONED| + -- HYBRID_HASH_JOIN [$$176][$$177] |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- REPLICATE |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| @@ -237,7 +237,7 @@ -- EMPTY_TUPLE_SOURCE |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- REPLICATE |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$174] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$177] |PARTITIONED| -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| @@ -249,7 +249,7 @@ -- DATASOURCE_SCAN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- EMPTY_TUPLE_SOURCE |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$167] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$170] |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| @@ -260,7 +260,7 @@ -- DATASOURCE_SCAN |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- EMPTY_TUPLE_SOURCE |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$132] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$135] |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED|