This is an automated email from the ASF dual-hosted git repository. mblow pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/asterixdb.git
commit c88453531e7b7d88fc0109ec1b7260297e6da41e Author: Dmitry Lychagin <[email protected]> AuthorDate: Wed Aug 11 17:45:33 2021 -0700 [ASTERIXDB-2947][COMP] Fix internal compiler error - user model changes: no - storage format changes: no - interface changes: no Details: - Fixed optimizer sanity check failure caused by InlineSubplanInputForNestedTupleSourceRule Change-Id: If8e50a0909481e98e25d9c12ebe1a8e8f1464c9e Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/12785 Integration-Tests: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> Reviewed-by: Dmitry Lychagin <[email protected]> Reviewed-by: Ali Alsuliman <[email protected]> --- .../subplan/InlineAllNtsInSubplanVisitor.java | 2 +- .../query-ASTERIXDB-2947.1.ddl.sqlpp | 29 ++++++++++++++++++ .../query-ASTERIXDB-2947.2.update.sqlpp | 35 ++++++++++++++++++++++ .../query-ASTERIXDB-2947.3.query.sqlpp | 30 +++++++++++++++++++ .../query-ASTERIXDB-2947.3.adm | 2 ++ .../test/resources/runtimets/testsuite_sqlpp.xml | 5 ++++ 6 files changed, 102 insertions(+), 1 deletion(-) diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineAllNtsInSubplanVisitor.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineAllNtsInSubplanVisitor.java index 1b7b7d2..4ac44b4 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineAllNtsInSubplanVisitor.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineAllNtsInSubplanVisitor.java @@ -743,7 +743,7 @@ class InlineAllNtsInSubplanVisitor implements IQueryOperatorVisitor<ILogicalOper gbyOp.getNestedPlans().add(nestedPlan); OperatorManipulationUtil.computeTypeEnvironmentBottomUp(gbyOp, context); - return op; + return gbyOp; } private ILogicalOperator visitMultiInputOperator(ILogicalOperator op) throws AlgebricksException { diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/quantifiers/query-ASTERIXDB-2947/query-ASTERIXDB-2947.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/quantifiers/query-ASTERIXDB-2947/query-ASTERIXDB-2947.1.ddl.sqlpp new file mode 100644 index 0000000..0ab290f --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/quantifiers/query-ASTERIXDB-2947/query-ASTERIXDB-2947.1.ddl.sqlpp @@ -0,0 +1,29 @@ +/* + * 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. + */ + +/* + * Description: This test case is to verify the fix for ASTERIXDB-2947 + */ + +drop dataverse test if exists; +create dataverse test; + +use test; + +create dataset t1(id uuid not unknown) open type primary key id autogenerated; diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/quantifiers/query-ASTERIXDB-2947/query-ASTERIXDB-2947.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/quantifiers/query-ASTERIXDB-2947/query-ASTERIXDB-2947.2.update.sqlpp new file mode 100644 index 0000000..5dcf4b9 --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/quantifiers/query-ASTERIXDB-2947/query-ASTERIXDB-2947.2.update.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. + */ + +use test; + +insert into t1 +([ + {"x":1, "y":"A" }, + {"x":1, "y":"B" }, + {"x":1, "y":"C" }, + + {"x":2, "y":"D" }, + {"x":2, "y":"E" }, + {"x":2, "y":"F" }, + + {"x":3, "y":"G" }, + {"x":3, "y":"H" }, + {"x":3, "y":"I" } +]); diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/quantifiers/query-ASTERIXDB-2947/query-ASTERIXDB-2947.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/quantifiers/query-ASTERIXDB-2947/query-ASTERIXDB-2947.3.query.sqlpp new file mode 100644 index 0000000..712b8d1 --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/quantifiers/query-ASTERIXDB-2947/query-ASTERIXDB-2947.3.query.sqlpp @@ -0,0 +1,30 @@ +/* + * 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. + */ + +/* + * Description: This test case is to verify the fix for ASTERIXDB-2947 + */ + +use test; + +select x, array_sort(array_agg({y})) yy +from t1 +group by x +having some r in array_agg({y}) satisfies r.y in ["B", "H"] +order by x; diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/quantifiers/query-ASTERIXDB-2947/query-ASTERIXDB-2947.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/quantifiers/query-ASTERIXDB-2947/query-ASTERIXDB-2947.3.adm new file mode 100644 index 0000000..4f412c8 --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/quantifiers/query-ASTERIXDB-2947/query-ASTERIXDB-2947.3.adm @@ -0,0 +1,2 @@ +{ "yy": [ { "y": "A" }, { "y": "B" }, { "y": "C" } ], "x": 1 } +{ "yy": [ { "y": "G" }, { "y": "H" }, { "y": "I" } ], "x": 3 } \ No newline at end of file diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml index a76cb8b..f0b20bf 100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml +++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml @@ -8828,6 +8828,11 @@ <output-dir compare="Text">query-ASTERIXDB-2696</output-dir> </compilation-unit> </test-case> + <test-case FilePath="quantifiers"> + <compilation-unit name="query-ASTERIXDB-2947"> + <output-dir compare="Text">query-ASTERIXDB-2947</output-dir> + </compilation-unit> + </test-case> <!-- <test-case FilePath="quantifiers"> <compilation-unit name="everysat_02">
