This is an automated email from the ASF dual-hosted git repository. dlych pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/asterixdb.git
commit 544c4ab0e0d9eee09d65267731b70d28d4abcccf Merge: fae6e3b 9b39f07 Author: Dmitry Lychagin <dmitry.lycha...@couchbase.com> AuthorDate: Fri Dec 18 10:39:43 2020 -0800 Merge commit '9b39f07' Change-Id: I1bb2d9a67d9f68f7fa989ea5e04e7ae79f503c20 ...ixMoveFreeVariableOperatorOutOfSubplanRule.java | 11 +- .../queries/leftouterjoin/loj-03-no-listify.sqlpp | 49 ++++++++ .../results/leftouterjoin/loj-03-no-listify.plan | 127 +++++++++++++++++++++ .../loj-03-no-listify.1.ddl.sqlpp} | 17 ++- .../loj-03-no-listify.2.update.sqlpp} | 26 +++-- .../loj-03-no-listify.3.query.sqlpp} | 28 +++-- .../loj-03-no-listify/loj-03-no-listify.3.adm | 2 + .../test/resources/runtimets/testsuite_sqlpp.xml | 5 + .../MoveFreeVariableOperatorOutOfSubplanRule.java | 22 ++-- .../rules/subplan/PushSubplanIntoGroupByRule.java | 33 ++++-- 10 files changed, 272 insertions(+), 48 deletions(-) diff --cc asterixdb/asterix-app/src/test/resources/optimizerts/results/leftouterjoin/loj-03-no-listify.plan index 0000000,5184b51..6d569dc mode 000000,100644..100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/leftouterjoin/loj-03-no-listify.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/leftouterjoin/loj-03-no-listify.plan @@@ -1,0 -1,127 +1,127 @@@ + -- DISTRIBUTE_RESULT |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- ASSIGN |PARTITIONED| + -- SORT_MERGE_EXCHANGE [$$taskId(ASC) ] |PARTITIONED| + -- STABLE_SORT [$$taskId(ASC)] |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- HYBRID_HASH_JOIN [$$taskId][$$taskId] |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- HYBRID_HASH_JOIN [$$taskId][$$taskId] |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- HYBRID_HASH_JOIN [$$taskId][$$taskId] |PARTITIONED| + -- HASH_PARTITION_MERGE_EXCHANGE MERGE:[$$taskId(ASC)] HASH:[$$taskId] |PARTITIONED| - -- SORT_GROUP_BY[$$263] |PARTITIONED| ++ -- SORT_GROUP_BY[$$279] |PARTITIONED| + { + -- AGGREGATE |LOCAL| + -- NESTED_TUPLE_SOURCE |LOCAL| + } - -- HASH_PARTITION_EXCHANGE [$$263] |PARTITIONED| - -- SORT_GROUP_BY[$$226] |PARTITIONED| ++ -- HASH_PARTITION_EXCHANGE [$$279] |PARTITIONED| ++ -- SORT_GROUP_BY[$$242] |PARTITIONED| + { + -- AGGREGATE |LOCAL| + -- NESTED_TUPLE_SOURCE |LOCAL| + } + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- ASSIGN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- REPLICATE |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- ASSIGN |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| ++ -- DATASOURCE_SCAN (test.tasks) |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- ASSIGN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- SORT_GROUP_BY[$$265] |PARTITIONED| ++ -- SORT_GROUP_BY[$$281] |PARTITIONED| + { + -- AGGREGATE |LOCAL| + -- NESTED_TUPLE_SOURCE |LOCAL| + } - -- HASH_PARTITION_EXCHANGE [$$265] |PARTITIONED| - -- SORT_GROUP_BY[$$227] |PARTITIONED| ++ -- HASH_PARTITION_EXCHANGE [$$281] |PARTITIONED| ++ -- SORT_GROUP_BY[$$243] |PARTITIONED| + { + -- AGGREGATE |LOCAL| + -- NESTED_TUPLE_SOURCE |LOCAL| + } + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- STREAM_SELECT |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- REPLICATE |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- ASSIGN |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| ++ -- DATASOURCE_SCAN (test.tasks) |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- ASSIGN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- SORT_GROUP_BY[$$267] |PARTITIONED| ++ -- SORT_GROUP_BY[$$283] |PARTITIONED| + { + -- AGGREGATE |LOCAL| + -- NESTED_TUPLE_SOURCE |LOCAL| + } - -- HASH_PARTITION_EXCHANGE [$$267] |PARTITIONED| - -- SORT_GROUP_BY[$$228] |PARTITIONED| ++ -- HASH_PARTITION_EXCHANGE [$$283] |PARTITIONED| ++ -- SORT_GROUP_BY[$$244] |PARTITIONED| + { + -- AGGREGATE |LOCAL| + -- NESTED_TUPLE_SOURCE |LOCAL| + } + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- STREAM_SELECT |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- ASSIGN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- REPLICATE |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- ASSIGN |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| ++ -- DATASOURCE_SCAN (test.tasks) |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- ASSIGN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- SORT_GROUP_BY[$$269] |PARTITIONED| ++ -- SORT_GROUP_BY[$$285] |PARTITIONED| + { + -- AGGREGATE |LOCAL| + -- NESTED_TUPLE_SOURCE |LOCAL| + } - -- HASH_PARTITION_EXCHANGE [$$269] |PARTITIONED| - -- SORT_GROUP_BY[$$229] |PARTITIONED| ++ -- HASH_PARTITION_EXCHANGE [$$285] |PARTITIONED| ++ -- SORT_GROUP_BY[$$245] |PARTITIONED| + { + -- AGGREGATE |LOCAL| + -- NESTED_TUPLE_SOURCE |LOCAL| + } + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- STREAM_SELECT |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- ASSIGN |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- REPLICATE |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- ASSIGN |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN |PARTITIONED| ++ -- DATASOURCE_SCAN (test.tasks) |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED|