This is an automated email from the ASF dual-hosted git repository. peeyush pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/asterixdb.git
The following commit(s) were added to refs/heads/master by this push: new a909e18144 [ASTERIXDB-3316][COMP] Stack overflow during query compilation a909e18144 is described below commit a909e18144a9ec05aef53119c45c369c323131c5 Author: Peeyush Gupta <peeyush.gu...@couchbase.com> AuthorDate: Tue Jan 23 18:08:09 2024 +0530 [ASTERIXDB-3316][COMP] Stack overflow during query compilation - user model changes: no - storage format changes: no - interface changes: no Details: This patch reverts part of the change introduced with the fix of ASTERIXDB-3316 that caused the CancelUnnestWithNestedListifyRule to not fire in some legitimate queries. Change-Id: Id5b108888ffb7084f1314bf908ab7bcc9e3e764b Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18135 Reviewed-by: Peeyush Gupta <peeyush.gu...@couchbase.com> Reviewed-by: Ali Alsuliman <ali.al.solai...@gmail.com> Tested-by: Jenkins <jenk...@fulliautomatix.ics.uci.edu> --- .../rules/CancelUnnestWithNestedListifyRule.java | 3 -- .../optimizerts/results/query_issue849-2.plan | 33 ++++++------------- .../optimizerts/results/query_issue849.plan | 37 +++++++--------------- .../optimizerts/results_cbo/query_issue849-2.plan | 33 ++++++------------- .../optimizerts/results_cbo/query_issue849.plan | 28 ++++------------ 5 files changed, 38 insertions(+), 96 deletions(-) diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/CancelUnnestWithNestedListifyRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/CancelUnnestWithNestedListifyRule.java index 9ad3a35501..4974fed443 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/CancelUnnestWithNestedListifyRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/CancelUnnestWithNestedListifyRule.java @@ -185,9 +185,6 @@ public class CancelUnnestWithNestedListifyRule implements IAlgebraicRewriteRule if (gby.getNestedPlans().get(0).getRoots().size() != 1) { return false; } - if (gby.getDecorList().size() != 0) { - return false; - } AbstractLogicalOperator nestedPlanRoot = (AbstractLogicalOperator) gby.getNestedPlans().get(0).getRoots().get(0).getValue(); diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue849-2.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue849-2.plan index e9f6596604..11bad6c909 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue849-2.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue849-2.plan @@ -19,27 +19,14 @@ -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| - -- UNNEST |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$47] |PARTITIONED| - { - -- AGGREGATE |LOCAL| - -- STREAM_SELECT |LOCAL| - -- NESTED_TUPLE_SOURCE |LOCAL| - } + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- HYBRID_HASH_JOIN [$$47][$$49] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$47] |PARTITIONED| + -- DATASOURCE_SCAN (test.s) |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STABLE_SORT [$$47(ASC)] |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- HYBRID_HASH_JOIN [$$47][$$49] |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$47] |PARTITIONED| - -- DATASOURCE_SCAN (test.s) |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$49] |PARTITIONED| - -- STREAM_PROJECT |UNPARTITIONED| - -- ASSIGN |UNPARTITIONED| - -- UNNEST |UNPARTITIONED| - -- EMPTY_TUPLE_SOURCE |UNPARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$49] |PARTITIONED| + -- STREAM_PROJECT |UNPARTITIONED| + -- ASSIGN |UNPARTITIONED| + -- UNNEST |UNPARTITIONED| + -- EMPTY_TUPLE_SOURCE |UNPARTITIONED| \ No newline at end of file diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue849.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue849.plan index 962b84dcd9..90e2808fd6 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue849.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue849.plan @@ -19,30 +19,15 @@ -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| - -- UNNEST |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$49] |PARTITIONED| - { - -- AGGREGATE |LOCAL| - -- STREAM_SELECT |LOCAL| - -- NESTED_TUPLE_SOURCE |LOCAL| - } + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- HYBRID_HASH_JOIN [$$48][$$47] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$48] |PARTITIONED| + -- ASSIGN |UNPARTITIONED| + -- UNNEST |UNPARTITIONED| + -- EMPTY_TUPLE_SOURCE |UNPARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$47] |PARTITIONED| + -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STABLE_SORT [$$49(ASC)] |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$49] |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- HYBRID_HASH_JOIN [$$48][$$47] |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$48] |PARTITIONED| - -- RUNNING_AGGREGATE |UNPARTITIONED| - -- ASSIGN |UNPARTITIONED| - -- UNNEST |UNPARTITIONED| - -- EMPTY_TUPLE_SOURCE |UNPARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$47] |PARTITIONED| - -- ASSIGN |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- DATASOURCE_SCAN (test.s) |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- DATASOURCE_SCAN (test.s) |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| \ No newline at end of file diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/query_issue849-2.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/query_issue849-2.plan index e9f6596604..e23c4e53d2 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/query_issue849-2.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/query_issue849-2.plan @@ -19,27 +19,14 @@ -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| - -- UNNEST |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$47] |PARTITIONED| - { - -- AGGREGATE |LOCAL| - -- STREAM_SELECT |LOCAL| - -- NESTED_TUPLE_SOURCE |LOCAL| - } + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- HYBRID_HASH_JOIN [$$47][$$49] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$47] |PARTITIONED| + -- DATASOURCE_SCAN (test.s) |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STABLE_SORT [$$47(ASC)] |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- HYBRID_HASH_JOIN [$$47][$$49] |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$47] |PARTITIONED| - -- DATASOURCE_SCAN (test.s) |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- EMPTY_TUPLE_SOURCE |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$49] |PARTITIONED| - -- STREAM_PROJECT |UNPARTITIONED| - -- ASSIGN |UNPARTITIONED| - -- UNNEST |UNPARTITIONED| - -- EMPTY_TUPLE_SOURCE |UNPARTITIONED| + -- EMPTY_TUPLE_SOURCE |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$49] |PARTITIONED| + -- STREAM_PROJECT |UNPARTITIONED| + -- ASSIGN |UNPARTITIONED| + -- UNNEST |UNPARTITIONED| + -- EMPTY_TUPLE_SOURCE |UNPARTITIONED| diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/query_issue849.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/query_issue849.plan index aa1c0bb65c..59b09a98c6 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/query_issue849.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results_cbo/query_issue849.plan @@ -19,25 +19,11 @@ -- STREAM_PROJECT |PARTITIONED| -- ASSIGN |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| - -- UNNEST |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| + -- BTREE_SEARCH (test.s.s) |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$49] |PARTITIONED| - { - -- AGGREGATE |LOCAL| - -- STREAM_SELECT |LOCAL| - -- NESTED_TUPLE_SOURCE |LOCAL| - } - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STABLE_SORT [$$49(ASC)] |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$49] |PARTITIONED| - -- STREAM_PROJECT |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- BTREE_SEARCH (test.s.s) |PARTITIONED| - -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STABLE_SORT [$$55(ASC)] |PARTITIONED| - -- HASH_PARTITION_EXCHANGE [$$55] |PARTITIONED| - -- ASSIGN |UNPARTITIONED| - -- RUNNING_AGGREGATE |UNPARTITIONED| - -- UNNEST |UNPARTITIONED| - -- EMPTY_TUPLE_SOURCE |UNPARTITIONED| + -- STABLE_SORT [$$55(ASC)] |PARTITIONED| + -- HASH_PARTITION_EXCHANGE [$$55] |PARTITIONED| + -- ASSIGN |UNPARTITIONED| + -- UNNEST |UNPARTITIONED| + -- EMPTY_TUPLE_SOURCE |UNPARTITIONED|