Change in asterixdb[master]: [NO ISSUE][COMP] Option to disable DisjunctivePredicateToJoinRule
Hello Anon. E. Moose (1000171), Jenkins, I'd like you to reexamine a change. Please visit https://asterix-gerrit.ics.uci.edu/3468 to look at the new patch set (#3). Change subject: [NO ISSUE][COMP] Option to disable DisjunctivePredicateToJoinRule .. [NO ISSUE][COMP] Option to disable DisjunctivePredicateToJoinRule - user model changes: no - storage format changes: no - interface changes: no Details: - Added compiler option "rewrite_or_as_join" that disables DisjunctivePredicateToJoinRule set rewrite_or_as_join "false"; Default value is 'true' (the rule is enabled) Change-Id: Ifbde19b7371a351d13ac2b05efa70a42eddbae7b --- M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/DisjunctivePredicateToJoinRule.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java A asterixdb/asterix-app/src/test/resources/optimizerts/queries/btree-index-selection/disjunctive-predicate/disjunctive-predicate-1.sqlpp A asterixdb/asterix-app/src/test/resources/optimizerts/queries/btree-index-selection/disjunctive-predicate/disjunctive-predicate-2.sqlpp A asterixdb/asterix-app/src/test/resources/optimizerts/queries/btree-index-selection/disjunctive-predicate/disjunctive-predicate-3.sqlpp A asterixdb/asterix-app/src/test/resources/optimizerts/queries/btree-index-selection/disjunctive-predicate/disjunctive-predicate-4.sqlpp A asterixdb/asterix-app/src/test/resources/optimizerts/queries/btree-index-selection/disjunctive-predicate/disjunctive-predicate-5.sqlpp A asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-selection/disjunctive-predicate/disjunctive-predicate-1.plan A asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-selection/disjunctive-predicate/disjunctive-predicate-2.plan A asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-selection/disjunctive-predicate/disjunctive-predicate-3.plan A asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-selection/disjunctive-predicate/disjunctive-predicate-4.plan A asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-selection/disjunctive-predicate/disjunctive-predicate-5.plan M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/disjunctive-predicate-1/disjunctive-predicate-1.3.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/disjunctive-predicate-1/disjunctive-predicate-1.4.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/disjunctive-predicate-1/disjunctive-predicate-1.5.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/disjunctive-predicate-1/disjunctive-predicate-1.6.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/disjunctive-predicate-1/disjunctive-predicate-1.7.query.sqlpp R asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/disjunctive-predicate-1/disjunctive-predicate-1.3.adm C asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/disjunctive-predicate-1/disjunctive-predicate-1.4.adm C asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/disjunctive-predicate-1/disjunctive-predicate-1.5.adm C asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/disjunctive-predicate-1/disjunctive-predicate-1.6.adm C asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/disjunctive-predicate-1/disjunctive-predicate-1.7.adm M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/disjunctive-predicate-1/disjunctive-predicate-1.3.ast A asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/disjunctive-predicate-1/disjunctive-predicate-1.4.ast A asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/disjunctive-predicate-1/disjunctive-predicate-1.5.ast A asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/disjunctive-predicate-1/disjunctive-predicate-1.6.ast A asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/index-selection/disjunctive-predicate-1/disjunctive-predicate-1.7.ast 27 files changed, 595 insertions(+), 3 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/68/3468/3 -- To view, visit https://asterix-gerrit.ics.uci.edu/3468 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ifbde19b7371a351d13ac2b05efa70a42eddbae7b Gerrit-Change-Number: 3468 Gerrit-PatchSet: 3 Gerrit-Owner: Dmitry Lychagin Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Jenkins
Change in asterixdb[master]: [NO ISSUE][COMP] Option to disable DisjunctivePredicateToJoinRule
Hello Anon. E. Moose (1000171), Jenkins, I'd like you to reexamine a change. Please visit https://asterix-gerrit.ics.uci.edu/3468 to look at the new patch set (#2). Change subject: [NO ISSUE][COMP] Option to disable DisjunctivePredicateToJoinRule .. [NO ISSUE][COMP] Option to disable DisjunctivePredicateToJoinRule - user model changes: no - storage format changes: no - interface changes: no Details: - Added compiler option "rewrite_or_as_join" that disables DisjunctivePredicateToJoinRule set rewrite_or_as_join "false"; Default value is 'true' (the rule is enabled) Change-Id: Ifbde19b7371a351d13ac2b05efa70a42eddbae7b --- M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/DisjunctivePredicateToJoinRule.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java A asterixdb/asterix-app/src/test/resources/optimizerts/queries/btree-index-selection/disjunctive-predicate/disjunctive-predicate-1.sqlpp A asterixdb/asterix-app/src/test/resources/optimizerts/queries/btree-index-selection/disjunctive-predicate/disjunctive-predicate-2.sqlpp A asterixdb/asterix-app/src/test/resources/optimizerts/queries/btree-index-selection/disjunctive-predicate/disjunctive-predicate-3.sqlpp A asterixdb/asterix-app/src/test/resources/optimizerts/queries/btree-index-selection/disjunctive-predicate/disjunctive-predicate-4.sqlpp A asterixdb/asterix-app/src/test/resources/optimizerts/queries/btree-index-selection/disjunctive-predicate/disjunctive-predicate-5.sqlpp A asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-selection/disjunctive-predicate/disjunctive-predicate-1.plan A asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-selection/disjunctive-predicate/disjunctive-predicate-2.plan A asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-selection/disjunctive-predicate/disjunctive-predicate-3.plan A asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-selection/disjunctive-predicate/disjunctive-predicate-4.plan A asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-selection/disjunctive-predicate/disjunctive-predicate-5.plan M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/disjunctive-predicate-1/disjunctive-predicate-1.3.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/disjunctive-predicate-1/disjunctive-predicate-1.4.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/disjunctive-predicate-1/disjunctive-predicate-1.5.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/disjunctive-predicate-1/disjunctive-predicate-1.6.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index-selection/disjunctive-predicate-1/disjunctive-predicate-1.7.query.sqlpp R asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/disjunctive-predicate-1/disjunctive-predicate-1.3.adm C asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/disjunctive-predicate-1/disjunctive-predicate-1.4.adm C asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/disjunctive-predicate-1/disjunctive-predicate-1.5.adm C asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/disjunctive-predicate-1/disjunctive-predicate-1.6.adm C asterixdb/asterix-app/src/test/resources/runtimets/results/index-selection/disjunctive-predicate-1/disjunctive-predicate-1.7.adm 22 files changed, 400 insertions(+), 3 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/68/3468/2 -- To view, visit https://asterix-gerrit.ics.uci.edu/3468 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ifbde19b7371a351d13ac2b05efa70a42eddbae7b Gerrit-Change-Number: 3468 Gerrit-PatchSet: 2 Gerrit-Owner: Dmitry Lychagin Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Jenkins
Change in asterixdb[master]: [ASTERIXDB-2597] Load UDFs via HTTP
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3386 ) Change subject: [ASTERIXDB-2597] Load UDFs via HTTP .. Patch Set 12: (1 comment) https://asterix-gerrit.ics.uci.edu/#/c/3386/12/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/deployment/DeploymentUtils.java File hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/deployment/DeploymentUtils.java: https://asterix-gerrit.ics.uci.edu/#/c/3386/12/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/deployment/DeploymentUtils.java@252 PS12, Line 252: f.delete(); > should we try/catch around this so we don't abort delete attempt on first f File.delete() doesn't throw IOException if deletion fails, it returns 'false' instead. So it won't exit the loop. We could check the return value an log a warning if deletion failed. -- To view, visit https://asterix-gerrit.ics.uci.edu/3386 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6be9fef54c010bdb32f5c78af9b973f9843f442f Gerrit-Change-Number: 3386 Gerrit-PatchSet: 12 Gerrit-Owner: Ian Maxon Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Ian Maxon Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Michael Blow Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Thu, 27 Jun 2019 21:27:08 + Gerrit-HasComments: Yes
Change in asterixdb[master]: [NO ISSUE] Reorganize OVER clause documentation
Dmitry Lychagin has submitted this change and it was merged. ( https://asterix-gerrit.ics.uci.edu/3464 ) Change subject: [NO ISSUE] Reorganize OVER clause documentation .. [NO ISSUE] Reorganize OVER clause documentation - Move OVER clause into Query doc - Add link to window function calls from Expressions - Update links to OVER clause - Update ToCs with new location of OVER clause - Standardize IDs - Correct capitalization for admonition headings - Correct indentation in Window Function doc - Separate ToCs for SQL++ and AQL builtins Change-Id: I683d024c56fcc55d67e1f87eec5494781bbcdede Reviewed-on: https://asterix-gerrit.ics.uci.edu/3464 Sonar-Qube: Jenkins Contrib: Jenkins Tested-by: Jenkins Integration-Tests: Jenkins Reviewed-by: Dmitry Lychagin --- M asterixdb/asterix-doc/pom.xml M asterixdb/asterix-doc/src/main/markdown/builtins/0_toc.md A asterixdb/asterix-doc/src/main/markdown/builtins/0_toc_aql.md A asterixdb/asterix-doc/src/main/markdown/builtins/0_toc_common.md A asterixdb/asterix-doc/src/main/markdown/builtins/0_toc_sqlpp.md M asterixdb/asterix-doc/src/main/markdown/builtins/14_window.md D asterixdb/asterix-doc/src/main/markdown/builtins/15_over.md M asterixdb/asterix-doc/src/main/markdown/builtins/9_aggregate_sql.md M asterixdb/asterix-doc/src/main/markdown/sqlpp/0_toc.md M asterixdb/asterix-doc/src/main/markdown/sqlpp/2_expr.md M asterixdb/asterix-doc/src/main/markdown/sqlpp/3_query.md 11 files changed, 496 insertions(+), 434 deletions(-) Approvals: Jenkins: Verified; No violations found; ; Verified Dmitry Lychagin: Looks good to me, approved Objections: Anon. E. Moose (1000171): Violations found diff --git a/asterixdb/asterix-doc/pom.xml b/asterixdb/asterix-doc/pom.xml index 963daec..83f82ad 100644 --- a/asterixdb/asterix-doc/pom.xml +++ b/asterixdb/asterix-doc/pom.xml @@ -55,10 +55,10 @@ - + - + diff --git a/asterixdb/asterix-doc/src/main/markdown/builtins/0_toc.md b/asterixdb/asterix-doc/src/main/markdown/builtins/0_toc.md index 1a94577..c81c656 100644 --- a/asterixdb/asterix-doc/src/main/markdown/builtins/0_toc.md +++ b/asterixdb/asterix-doc/src/main/markdown/builtins/0_toc.md @@ -18,24 +18,3 @@ !--> # Builtin Functions # - -## Table of Contents ## - -* [Numeric Functions](#NumericFunctions) -* [String Functions](#StringFunctions) -* [Binary Functions](#BinaryFunctions) -* [Spatial Functions](#SpatialFunctions) -* [Similarity Functions](#SimilarityFunctions) -* [Tokenizing Functions](#TokenizingFunctions) -* [Temporal Functions](#TemporalFunctions) -* [Object Functions](#ObjectFunctions) -* [Aggregate Functions (Array Functions)](#AggregateFunctions) -* [Comparison Functions](#ComparisonFunctions) -* [Type Functions](#TypeFunctions) -* [Conditional Functions](#ConditionalFunctions) -* [Miscellaneous Functions](#MiscFunctions) -* [Window Functions](#WindowFunctions) -* [OVER Clause (Window Function Calls)](#OverClause) - -The system provides various classes of functions to support operations on numeric, string, spatial, and temporal data. -This document explains how to use these functions. diff --git a/asterixdb/asterix-doc/src/main/markdown/builtins/0_toc_aql.md b/asterixdb/asterix-doc/src/main/markdown/builtins/0_toc_aql.md new file mode 100644 index 000..f9e81dd --- /dev/null +++ b/asterixdb/asterix-doc/src/main/markdown/builtins/0_toc_aql.md @@ -0,0 +1,34 @@ + + +## Table of Contents ## + +* [Numeric Functions](#NumericFunctions) +* [String Functions](#StringFunctions) +* [Binary Functions](#BinaryFunctions) +* [Spatial Functions](#SpatialFunctions) +* [Similarity Functions](#SimilarityFunctions) +* [Tokenizing Functions](#TokenizingFunctions) +* [Temporal Functions](#TemporalFunctions) +* [Object Functions](#ObjectFunctions) +* [Aggregate Functions (Array Functions)](#AggregateFunctions) +* [Comparison Functions](#ComparisonFunctions) +* [Type Functions](#TypeFunctions) +* [Conditional Functions](#ConditionalFunctions) +* [Miscellaneous Functions](#MiscFunctions) diff --git a/asterixdb/asterix-doc/src/main/markdown/builtins/0_toc_common.md b/asterixdb/asterix-doc/src/main/markdown/builtins/0_toc_common.md new file mode 100644 index 000..c1a97cb --- /dev/null +++ b/asterixdb/asterix-doc/src/main/markdown/builtins/0_toc_common.md @@ -0,0 +1,21 @@ + + +The system provides various classes of functions to support operations on numeric, string, spatial, and temporal data. +This document explains how to use these functions. diff --git a/asterixdb/asterix-doc/src/main/markdown/builtins/0_toc_sqlpp.md b/asterixdb/asterix-doc/src/main/markdown/builtins/0_toc_sqlpp.md new file mode 100644 index 000..7064b17 --- /dev/null +++
Change in asterixdb[master]: [NO ISSUE] Reorganize OVER clause documentation
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3464 ) Change subject: [NO ISSUE] Reorganize OVER clause documentation .. Patch Set 1: Code-Review+2 -- To view, visit https://asterix-gerrit.ics.uci.edu/3464 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I683d024c56fcc55d67e1f87eec5494781bbcdede Gerrit-Change-Number: 3464 Gerrit-PatchSet: 1 Gerrit-Owner: Simon Dew Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Simon Dew Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Wed, 26 Jun 2019 18:41:35 + Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Fix variable handling in Intersect operator
Dmitry Lychagin has submitted this change and it was merged. ( https://asterix-gerrit.ics.uci.edu/3460 ) Change subject: [NO ISSUE][COMP] Fix variable handling in Intersect operator .. [NO ISSUE][COMP] Fix variable handling in Intersect operator - user model changes: no - storage format changes: no - interface changes: no Details: - Create separate lists for output compare and extra variables in Intersect logical operator - Align accessor method for input extra variables with the one for input compare variables - Remove getInputVariables() from Intersect operator because these variables are already provided by getInputCompareVariables() and getInputExtraVariables() Change-Id: I4f436566e743d7e908a72bfa502c138ae7b99c6c Reviewed-on: https://asterix-gerrit.ics.uci.edu/3460 Contrib: Jenkins Tested-by: Jenkins Integration-Tests: Jenkins Reviewed-by: Dmitry Lychagin Reviewed-by: Ali Alsuliman --- M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/IntroduceLSMComponentFilterRule.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineAllNtsInSubplanVisitor.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/IntersectOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/IsomorphismOperatorVisitor.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/IsomorphismVariableMappingVisitor.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalOperatorDeepCopyWithNewVariablesVisitor.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/OperatorDeepCopyVisitor.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/ProducedVariableVisitor.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/SubstituteVariableVisitor.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/UsedVariableVisitor.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/IntersectPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitor.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitorJson.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/utils/LogicalOperatorDotVisitor.java 14 files changed, 292 insertions(+), 205 deletions(-) Approvals: Jenkins: Verified; ; Verified Dmitry Lychagin: Looks good to me, but someone else must approve Ali Alsuliman: Looks good to me, approved Objections: Jenkins: Violations found Anon. E. Moose (1000171): Violations found diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/IntroduceLSMComponentFilterRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/IntroduceLSMComponentFilterRule.java index bd5b7c4..42af276 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/IntroduceLSMComponentFilterRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/IntroduceLSMComponentFilterRule.java @@ -320,16 +320,13 @@ private IntersectOperator createIntersectWithFilter(List outputFilterVars, List> filterVars, IntersectOperator intersect) throws AlgebricksException { -List outputVars = new ArrayList<>(); -outputVars.addAll(intersect.getOutputVars()); -outputVars.addAll(outputFilterVars); - -List> compareVars = new ArrayList<>(intersect.getNumInput()); -for (int i = 0; i < intersect.getNumInput(); i++) { -compareVars.add(new ArrayList<>(intersect.getCompareVariables(i))); +int nInput = intersect.getNumInput(); +List> inputCompareVars = new ArrayList<>(nInput); +for (int i = 0; i < nInput; i++) { +inputCompareVars.add(new ArrayList<>(intersect.getInputCompareVariables(i))); } - -IntersectOperator intersectWithFilter = new IntersectOperator(outputVars, compareVars, filterVars); +IntersectOperator intersectWithFilter = new IntersectOperator(intersect.getOutputCompareVariables(), +
Change in asterixdb[master]: [NO ISSUE][COMP] Fix variable handling in Intersect operator
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3460 ) Change subject: [NO ISSUE][COMP] Fix variable handling in Intersect operator .. Patch Set 1: Code-Review+1 -- To view, visit https://asterix-gerrit.ics.uci.edu/3460 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4f436566e743d7e908a72bfa502c138ae7b99c6c Gerrit-Change-Number: 3460 Gerrit-PatchSet: 1 Gerrit-Owner: Dmitry Lychagin Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Comment-Date: Wed, 26 Jun 2019 00:27:47 + Gerrit-HasComments: No
Change in asterixdb[master]: [ASTERIXDB-2597] Load UDFs via HTTP
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3386 ) Change subject: [ASTERIXDB-2597] Load UDFs via HTTP .. Patch Set 10: Code-Review+1 (4 comments) https://asterix-gerrit.ics.uci.edu/#/c/3386/9/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/UdfApiServlet.java File asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/UdfApiServlet.java: https://asterix-gerrit.ics.uci.edu/#/c/3386/9/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/UdfApiServlet.java@96 PS9, Line 96: ByteBuffer content = reqContent.nioBuffer(); > It's the classloader of ExternalLibraryUtils. so the deployed code will have access to all Hyracks/Asterix classes. We'll need to fix it at some point. https://asterix-gerrit.ics.uci.edu/#/c/3386/10/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/UdfApiServlet.java File asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/UdfApiServlet.java: https://asterix-gerrit.ics.uci.edu/#/c/3386/10/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/UdfApiServlet.java@88 PS10, Line 88: udf = File.createTempFile( are you sure this does the right thing? The temp directory should be the third argument to createTempFile() and I think it should already exist. So I'd write this a something like: File.createTempFile(resourceName, ".zip", new File( appCtx.getServiceContext().getServerCtx().getBaseDir(), UDF_TMP_DIR_PREFIX)); https://asterix-gerrit.ics.uci.edu/#/c/3386/10/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/bootstrap/TestNodeController.java File asterixdb/asterix-app/src/test/java/org/apache/asterix/app/bootstrap/TestNodeController.java: https://asterix-gerrit.ics.uci.edu/#/c/3386/10/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/bootstrap/TestNodeController.java@167 PS10, Line 167: //ExternalUDFLibrarian.removeLibraryDir(); minor. remove commented out code https://asterix-gerrit.ics.uci.edu/#/c/3386/10/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/bootstrap/TestNodeController.java@167 PS10, Line 167: //ExternalUDFLibrarian.removeLibraryDir(); minor. remove commented out code. -- To view, visit https://asterix-gerrit.ics.uci.edu/3386 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6be9fef54c010bdb32f5c78af9b973f9843f442f Gerrit-Change-Number: 3386 Gerrit-PatchSet: 10 Gerrit-Owner: Ian Maxon Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Ian Maxon Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Michael Blow Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Tue, 25 Jun 2019 23:31:39 + Gerrit-HasComments: Yes
Change in asterixdb[master]: [NO ISSUE][COMP] Fix variable handling in Intersect operator
Dmitry Lychagin has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/3460 Change subject: [NO ISSUE][COMP] Fix variable handling in Intersect operator .. [NO ISSUE][COMP] Fix variable handling in Intersect operator - user model changes: no - storage format changes: no - interface changes: no Details: - Create separate lists for output compare and extra variables in Intersect logical operator - Align accessor method for input extra variables with the one for input compare variables - Remove getInputVariables() from Intersect operator because these variables are already provided by getInputCompareVariables() and getInputExtraVariables() Change-Id: I4f436566e743d7e908a72bfa502c138ae7b99c6c --- M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/IntroduceLSMComponentFilterRule.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineAllNtsInSubplanVisitor.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/IntersectOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/IsomorphismOperatorVisitor.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/IsomorphismVariableMappingVisitor.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalOperatorDeepCopyWithNewVariablesVisitor.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/OperatorDeepCopyVisitor.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/ProducedVariableVisitor.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/SubstituteVariableVisitor.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/UsedVariableVisitor.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/IntersectPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitor.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitorJson.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/utils/LogicalOperatorDotVisitor.java 14 files changed, 292 insertions(+), 205 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/60/3460/1 diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/IntroduceLSMComponentFilterRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/IntroduceLSMComponentFilterRule.java index bd5b7c4..42af276 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/IntroduceLSMComponentFilterRule.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/IntroduceLSMComponentFilterRule.java @@ -320,16 +320,13 @@ private IntersectOperator createIntersectWithFilter(List outputFilterVars, List> filterVars, IntersectOperator intersect) throws AlgebricksException { -List outputVars = new ArrayList<>(); -outputVars.addAll(intersect.getOutputVars()); -outputVars.addAll(outputFilterVars); - -List> compareVars = new ArrayList<>(intersect.getNumInput()); -for (int i = 0; i < intersect.getNumInput(); i++) { -compareVars.add(new ArrayList<>(intersect.getCompareVariables(i))); +int nInput = intersect.getNumInput(); +List> inputCompareVars = new ArrayList<>(nInput); +for (int i = 0; i < nInput; i++) { +inputCompareVars.add(new ArrayList<>(intersect.getInputCompareVariables(i))); } - -IntersectOperator intersectWithFilter = new IntersectOperator(outputVars, compareVars, filterVars); +IntersectOperator intersectWithFilter = new IntersectOperator(intersect.getOutputCompareVariables(), +outputFilterVars, inputCompareVars, filterVars); intersectWithFilter.setSourceLocation(intersect.getSourceLocation()); intersectWithFilter.getInputs().addAll(intersect.getInputs()); return intersectWithFilter; diff --git
Change in asterixdb[master]: [ASTERIXDB-2598][RT] Add Support For Runtime Warnings
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3451 ) Change subject: [ASTERIXDB-2598][RT] Add Support For Runtime Warnings .. Patch Set 3: Code-Review+2 (1 comment) https://asterix-gerrit.ics.uci.edu/#/c/3451/3/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml File asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml: https://asterix-gerrit.ics.uci.edu/#/c/3451/3/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml@12361 PS3, Line 12361: ASX0003: Type incompatibility: function min/max gets incompatible input values: bigint and string I wonder whether we can be more precise here and specify a set of warnings for each query instead of a union of all expected warnings for all queries in the testcase. May be ... ... -- To view, visit https://asterix-gerrit.ics.uci.edu/3451 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I52fa5b807799487d62e67a8861068e1547aa629a Gerrit-Change-Number: 3451 Gerrit-PatchSet: 3 Gerrit-Owner: Murtadha Hubail Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Michael Blow Gerrit-Reviewer: Murtadha Hubail Gerrit-Comment-Date: Mon, 24 Jun 2019 18:50:00 + Gerrit-HasComments: Yes
Change in asterixdb[master]: [ASTERIXDB-2597] Load UDFs via HTTP
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3386 ) Change subject: [ASTERIXDB-2597] Load UDFs via HTTP .. Patch Set 9: (21 comments) https://asterix-gerrit.ics.uci.edu/#/c/3386/9/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/UdfApiServlet.java File asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/UdfApiServlet.java: https://asterix-gerrit.ics.uci.edu/#/c/3386/9/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/UdfApiServlet.java@64 PS9, Line 64: if (path.length != 5) { why 5? In the document you only have 4 parts: "admin/udf/fooverse/mylib" https://asterix-gerrit.ics.uci.edu/#/c/3386/9/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/UdfApiServlet.java@78 PS9, Line 78: return; I'd move response.setStatus(HttpResponseStatus.BAD_REQUEST) here from getResource(). getResource() could then return 'null' if it couldn't get resource name from the request. Then this method will control HTTP response status. https://asterix-gerrit.ics.uci.edu/#/c/3386/9/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/UdfApiServlet.java@84 PS9, Line 84: File udf = File.createTempFile(resourceName, ".zip"); Should we have 'temp' directory under the "base" directory (ServerContext.getBaseDir())? https://asterix-gerrit.ics.uci.edu/#/c/3386/9/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/UdfApiServlet.java@88 PS9, Line 88: ByteBuffer content = request.getHttpRequest().content().nioBuffer(); minor. you're already getting req.content() in line 86 above. can we assign it to a variable there and just use this variable here? https://asterix-gerrit.ics.uci.edu/#/c/3386/9/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/UdfApiServlet.java@96 PS9, Line 96: ClassLoader cl = appCtx.getLibraryManager().getLibraryClassLoader(dataverse, resourceName); related question: what's the parent of the library classloader? I think we need to set it up, so the deployed code does not see hyracks classes. May be let's discuss it later https://asterix-gerrit.ics.uci.edu/#/c/3386/9/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/UdfApiServlet.java@109 PS9, Line 109: broker.sendSyncRequestToNCs(reqId, ncs, requests, 5000); minor. let's create a constant for this timeout. https://asterix-gerrit.ics.uci.edu/#/c/3386/9/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/UdfApiServlet.java@111 PS9, Line 111: response.setStatus(HttpResponseStatus.SERVICE_UNAVAILABLE); Should we return INTERNAL_SERVER_ERROR instead? https://asterix-gerrit.ics.uci.edu/#/c/3386/9/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/UdfApiServlet.java@114 PS9, Line 114: } finally { when are we deleting 'udf' temp file? https://asterix-gerrit.ics.uci.edu/#/c/3386/9/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/UdfApiServlet.java@132 PS9, Line 132: appCtx.getLibraryManager().deregisterLibraryClassLoader(dataverse, resourceName); where are we closing the classloader? I think we need to close it *(URLClassLoader.close()) before attempting to delete the jar files that are opened by it. https://asterix-gerrit.ics.uci.edu/#/c/3386/9/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/UdfApiServlet.java@147 PS9, Line 147: response.setStatus(HttpResponseStatus.BAD_REQUEST); Should we return INTERNAL_SERVER_ERROR instead? https://asterix-gerrit.ics.uci.edu/#/c/3386/9/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/DeleteUdfMessage.java File asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/DeleteUdfMessage.java: https://asterix-gerrit.ics.uci.edu/#/c/3386/9/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/DeleteUdfMessage.java@30 PS9, Line 30: private final String deploymentId; why can't we have 2 strings: dataverseName, libraryName? so we don't have to concat / split? https://asterix-gerrit.ics.uci.edu/#/c/3386/9/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/LoadUdfMessage.java File asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/LoadUdfMessage.java: https://asterix-gerrit.ics.uci.edu/#/c/3386/9/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/LoadUdfMessage.java@33 PS9, Line 33: private final String deploymentId; why not have two strings? dataverseName, libraryName? https://asterix-gerrit.ics.uci.edu/#/c/3386/9/asterixdb/asterix-app/src/test/java/org/apache/asterix/api/common/AsterixHyracksIntegrationUtil.java File asterixdb/asterix-app/src/test/java/org/apache/asterix/api/common/AsterixHyracksIntegrationUtil.java:
Change in asterixdb[master]: [ASTERIXDB-2593][FUN] TPC-DS always parallelize + gen all tables
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3437 ) Change subject: [ASTERIXDB-2593][FUN] TPC-DS always parallelize + gen all tables .. Patch Set 8: Code-Review+2 (1 comment) https://asterix-gerrit.ics.uci.edu/#/c/3437/8/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/TPCDSDataGeneratorReader.java File asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/TPCDSDataGeneratorReader.java: https://asterix-gerrit.ics.uci.edu/#/c/3437/8/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/TPCDSDataGeneratorReader.java@165 PS8, Line 165: String parentRow = builder.toString(); It'd be nice at some point to see whether we avoid string copying here. StringBuilder.toString() makes a copy of the content. Then String.toCharArray() does another copy. Then CharArray.append() makes a third copy. We could introduce CharArrayRecord.append(java.lang.CharSequence) method, then see if we could append StringBuilder directly (because StringBuilder implements CharSequence). So only one copy would be done by CharArrayRecord.append() -- To view, visit https://asterix-gerrit.ics.uci.edu/3437 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iff199b0c533d22bcae1caf5057788b257ba4e486 Gerrit-Change-Number: 3437 Gerrit-PatchSet: 8 Gerrit-Owner: Hussain Towaileb Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Hussain Towaileb Gerrit-Reviewer: Jenkins Gerrit-Comment-Date: Fri, 21 Jun 2019 18:17:27 + Gerrit-HasComments: Yes
Change in asterixdb[master]: [NO ISSUE] Correct markup for window function documentation
Dmitry Lychagin has submitted this change and it was merged. ( https://asterix-gerrit.ics.uci.edu/3452 ) Change subject: [NO ISSUE] Correct markup for window function documentation .. [NO ISSUE] Correct markup for window function documentation Correct indentation for code and follow-on paragraphs in bullets. More descriptive aliases in LEAD and LAG examples. Change-Id: I34627d2b50b18d4e429e43807161b85eeab9e730 Reviewed-on: https://asterix-gerrit.ics.uci.edu/3452 Sonar-Qube: Jenkins Contrib: Jenkins Tested-by: Jenkins Integration-Tests: Jenkins Reviewed-by: Dmitry Lychagin --- M asterixdb/asterix-doc/src/main/markdown/builtins/14_window.md 1 file changed, 681 insertions(+), 681 deletions(-) Approvals: Jenkins: Verified; No violations found; ; Verified Dmitry Lychagin: Looks good to me, approved diff --git a/asterixdb/asterix-doc/src/main/markdown/builtins/14_window.md b/asterixdb/asterix-doc/src/main/markdown/builtins/14_window.md index e661064..64bcf17 100644 --- a/asterixdb/asterix-doc/src/main/markdown/builtins/14_window.md +++ b/asterixdb/asterix-doc/src/main/markdown/builtins/14_window.md @@ -39,7 +39,7 @@ * Syntax: - CUME_DIST() OVER ([window-partition-clause] window-order-clause) +CUME_DIST() OVER ([window-partition-clause] window-order-clause) * Returns the percentile rank of the current tuple as part of the cumulative distribution – that is, the number of tuples ranked lower than or equal to @@ -63,60 +63,60 @@ * Example: - For each author, find the cumulative distribution of all messages - in order of message ID. +For each author, find the cumulative distribution of all messages +in order of message ID. - SELECT m.messageId, m.authorId, CUME_DIST() OVER ( -PARTITION BY m.authorId -ORDER BY m.messageId - ) AS `rank` - FROM GleambookMessages AS m; +SELECT m.messageId, m.authorId, CUME_DIST() OVER ( + PARTITION BY m.authorId + ORDER BY m.messageId +) AS `rank` +FROM GleambookMessages AS m; * The expected result is: - [ -{ - "rank": 0.2, - "messageId": 2, - "authorId": 1 -}, -{ - "rank": 0.4, - "messageId": 4, - "authorId": 1 -}, -{ - "rank": 0.6, - "messageId": 8, - "authorId": 1 -}, -{ - "rank": 0.8, - "messageId": 10, - "authorId": 1 -}, -{ - "rank": 1, - "messageId": 11, - "authorId": 1 -}, -{ - "rank": 0.5, - "messageId": 3, - "authorId": 2 -}, -{ - "rank": 1, - "messageId": 6, - "authorId": 2 -} - ] +[ + { +"rank": 0.2, +"messageId": 2, +"authorId": 1 + }, + { +"rank": 0.4, +"messageId": 4, +"authorId": 1 + }, + { +"rank": 0.6, +"messageId": 8, +"authorId": 1 + }, + { +"rank": 0.8, +"messageId": 10, +"authorId": 1 + }, + { +"rank": 1, +"messageId": 11, +"authorId": 1 + }, + { +"rank": 0.5, +"messageId": 3, +"authorId": 2 + }, + { +"rank": 1, +"messageId": 6, +"authorId": 2 + } +] ### dense_rank ### * Syntax: - DENSE_RANK() OVER ([window-partition-clause] window-order-clause) +DENSE_RANK() OVER ([window-partition-clause] window-order-clause) * Returns the dense rank of the current tuple – that is, the number of distinct tuples preceding this tuple in the current window partition, plus @@ -146,67 +146,67 @@ * Example: - For each author, find the dense rank of all messages in order of location. +For each author, find the dense rank of all messages in order of location. - SELECT m.authorId, m.messageId, m.senderLocation[1] as longitude, - DENSE_RANK() OVER ( -PARTITION BY m.authorId -ORDER BY m.senderLocation[1] - ) AS `rank` - FROM GleambookMessages AS m; +SELECT m.authorId, m.messageId, m.senderLocation[1] as longitude, +DENSE_RANK() OVER ( + PARTITION BY m.authorId + ORDER BY m.senderLocation[1] +) AS `rank` +FROM GleambookMessages AS m; * The expected result is: - [ -{ - "rank": 1, - "authorId": 1, - "messageId": 10, - "longitude": 70.01 -}, -{ - "rank": 2, - "authorId": 1, - "messageId": 11, - "longitude": 77.49 -}, -{ - "rank": 3, - "authorId": 1, -
Change in asterixdb[master]: [NO ISSUE] Correct markup for window function documentation
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3452 ) Change subject: [NO ISSUE] Correct markup for window function documentation .. Patch Set 1: Code-Review+2 -- To view, visit https://asterix-gerrit.ics.uci.edu/3452 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I34627d2b50b18d4e429e43807161b85eeab9e730 Gerrit-Change-Number: 3452 Gerrit-PatchSet: 1 Gerrit-Owner: Simon Dew Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Simon Dew Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Fri, 21 Jun 2019 18:19:04 + Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Stop reusing variables of Intersect operator
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3450 ) Change subject: [NO ISSUE][COMP] Stop reusing variables of Intersect operator .. Patch Set 1: Code-Review+1 -- To view, visit https://asterix-gerrit.ics.uci.edu/3450 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I551819b828450760797f6b29af02aad4e124646c Gerrit-Change-Number: 3450 Gerrit-PatchSet: 1 Gerrit-Owner: Dmitry Lychagin Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Comment-Date: Thu, 20 Jun 2019 17:57:38 + Gerrit-HasComments: No
Change in asterixdb[master]: [ASTERIXDB-2593][FUN] TPC-DS always parallelize + gen all tables
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3437 ) Change subject: [ASTERIXDB-2593][FUN] TPC-DS always parallelize + gen all tables .. Patch Set 7: (3 comments) https://asterix-gerrit.ics.uci.edu/#/c/3437/7/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/TPCDSAllTablesDataGeneratorDatasource.java File asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/TPCDSAllTablesDataGeneratorDatasource.java: https://asterix-gerrit.ics.uci.edu/#/c/3437/7/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/TPCDSAllTablesDataGeneratorDatasource.java@37 PS7, Line 37: private final String tableName; tableName is always 'null' here? why keep this field? https://asterix-gerrit.ics.uci.edu/#/c/3437/7/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/TPCDSDataGeneratorReader.java File asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/TPCDSDataGeneratorReader.java: https://asterix-gerrit.ics.uci.edu/#/c/3437/7/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/TPCDSDataGeneratorReader.java@192 PS7, Line 192: selectedTables = getTableFromStringTableName(tableName); I'd move these 3 lines (192-195) to the constructor. This method assigns these 3 fields and returns a list of iterators which is also assigned to a field in the constructor. Let's either move all field assignments to the constructor or make this method void and rename to initTableGeneratorIterators(), so it assigns all 4 fields (current 3 + list of iterators) https://asterix-gerrit.ics.uci.edu/#/c/3437/7/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/function/TPCDSDataGeneratorReader.java@217 PS7, Line 217: generateAllTables = true; can we assign this field ('gemerateAllTables') in the constructor? (so this method doesn't have side-effects) -- To view, visit https://asterix-gerrit.ics.uci.edu/3437 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iff199b0c533d22bcae1caf5057788b257ba4e486 Gerrit-Change-Number: 3437 Gerrit-PatchSet: 7 Gerrit-Owner: Hussain Towaileb Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Hussain Towaileb Gerrit-Reviewer: Jenkins Gerrit-Comment-Date: Wed, 19 Jun 2019 23:06:54 + Gerrit-HasComments: Yes
Change in asterixdb[master]: [NO ISSUE] Document window functions.
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3448 ) Change subject: [NO ISSUE] Document window functions. .. Patch Set 4: Code-Review+2 -- To view, visit https://asterix-gerrit.ics.uci.edu/3448 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I52d6e97a27c2fa51208810c6ac3d98cb21a0e2b1 Gerrit-Change-Number: 3448 Gerrit-PatchSet: 4 Gerrit-Owner: Simon Dew Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Simon Dew Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Wed, 19 Jun 2019 22:37:58 + Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE] Fix error message thrown by ATypeHierarchy
Dmitry Lychagin has submitted this change and it was merged. ( https://asterix-gerrit.ics.uci.edu/3441 ) Change subject: [NO ISSUE] Fix error message thrown by ATypeHierarchy .. [NO ISSUE] Fix error message thrown by ATypeHierarchy - user model changes: no - storage format changes: no - interface changes: no Details: - Align type mismatch error message thrown by ATypeHierarchy with the one produced by TypeMismatchException Change-Id: I830e93056d18123610b933a0e36fd1b54c6e140b Reviewed-on: https://asterix-gerrit.ics.uci.edu/3441 Tested-by: Jenkins Integration-Tests: Jenkins Reviewed-by: Dmitry Lychagin Reviewed-by: Ali Alsuliman --- M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/exceptions/ExceptionUtil.java M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/hierachy/ATypeHierarchy.java 2 files changed, 18 insertions(+), 17 deletions(-) Approvals: Jenkins: Verified; Verified Dmitry Lychagin: Looks good to me, but someone else must approve Ali Alsuliman: Looks good to me, approved Objections: Jenkins: Violations found Anon. E. Moose (1000171): Violations found diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/exceptions/ExceptionUtil.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/exceptions/ExceptionUtil.java index 9a115c8..bdcb201 100644 --- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/exceptions/ExceptionUtil.java +++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/exceptions/ExceptionUtil.java @@ -24,7 +24,7 @@ private ExceptionUtil() { } -static String toExpectedTypeString(Object... expectedItems) { +public static String toExpectedTypeString(Object... expectedItems) { StringBuilder expectedTypes = new StringBuilder(); int numCandidateTypes = expectedItems.length; for (int index = 0; index < numCandidateTypes; ++index) { @@ -40,7 +40,7 @@ return expectedTypes.toString(); } -static String indexToPosition(int index) { +public static String indexToPosition(int index) { int i = index + 1; switch (i % 100) { case 11: diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/hierachy/ATypeHierarchy.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/hierachy/ATypeHierarchy.java index f182370..e5b1c62 100644 --- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/hierachy/ATypeHierarchy.java +++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/hierachy/ATypeHierarchy.java @@ -20,7 +20,6 @@ import java.io.DataOutput; import java.io.IOException; -import java.util.Arrays; import java.util.BitSet; import java.util.EnumMap; import java.util.HashMap; @@ -32,6 +31,7 @@ import org.apache.asterix.om.base.AFloat; import org.apache.asterix.om.base.IAObject; import org.apache.asterix.om.constants.AsterixConstantValue; +import org.apache.asterix.om.exceptions.ExceptionUtil; import org.apache.asterix.om.types.ATypeTag; import org.apache.asterix.om.types.EnumDeserializer; import org.apache.commons.lang3.tuple.Pair; @@ -315,10 +315,8 @@ case DOUBLE: return DoubleToInt32TypeConvertComputer.getInstance(strictDemote).convertType(bytes, offset); default: -throw new RuntimeDataException(ErrorCode.TYPE_MISMATCH_FUNCTION, name, argIndex, -Arrays.toString(new Object[] { ATypeTag.TINYINT, ATypeTag.SMALLINT, ATypeTag.INTEGER, -ATypeTag.BIGINT, ATypeTag.FLOAT, ATypeTag.DOUBLE }), -sourceTypeTag); +throw createTypeMismatchException(name, argIndex, sourceTypeTag, ATypeTag.TINYINT, ATypeTag.SMALLINT, +ATypeTag.INTEGER, ATypeTag.BIGINT, ATypeTag.FLOAT, ATypeTag.DOUBLE); } } @@ -354,10 +352,8 @@ case DOUBLE: return DoubleToInt64TypeConvertComputer.getInstance(strictDemote).convertType(bytes, offset); default: -throw new RuntimeDataException(ErrorCode.TYPE_MISMATCH_FUNCTION, name, argIndex, -Arrays.toString(new Object[] { ATypeTag.TINYINT, ATypeTag.SMALLINT, ATypeTag.INTEGER, -ATypeTag.BIGINT, ATypeTag.FLOAT, ATypeTag.DOUBLE }), -sourceTypeTag); +throw createTypeMismatchException(name, argIndex, sourceTypeTag, ATypeTag.TINYINT, ATypeTag.SMALLINT, +ATypeTag.INTEGER, ATypeTag.BIGINT, ATypeTag.FLOAT, ATypeTag.DOUBLE); } } @@ -385,18 +381,16 @@ case BIGINT: return IntegerToDoubleTypeConvertComputer.getInstance().convertType(bytes, offset, sourceTypeTag); default: -throw new RuntimeDataException(ErrorCode.TYPE_MISMATCH_FUNCTION,
Change in asterixdb[master]: [NO ISSUE] Fix error message thrown by ATypeHierarchy
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3441 ) Change subject: [NO ISSUE] Fix error message thrown by ATypeHierarchy .. Patch Set 2: Code-Review+1 -- To view, visit https://asterix-gerrit.ics.uci.edu/3441 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I830e93056d18123610b933a0e36fd1b54c6e140b Gerrit-Change-Number: 3441 Gerrit-PatchSet: 2 Gerrit-Owner: Dmitry Lychagin Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Anon. E. Moose Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Comment-Date: Tue, 18 Jun 2019 18:08:08 + Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][FUN] Allow frame in RATIO_TO_REPORT()
Dmitry Lychagin has submitted this change and it was merged. ( https://asterix-gerrit.ics.uci.edu/3449 ) Change subject: [NO ISSUE][FUN] Allow frame in RATIO_TO_REPORT() .. [NO ISSUE][FUN] Allow frame in RATIO_TO_REPORT() - user model changes: yes - storage format changes: no - interface changes: no Details: - Support frame specification in RATIO_TO_REPORT() window function call Change-Id: Ibc3686bebaf791aa84ef34d8fd143e53edc7856a Reviewed-on: https://asterix-gerrit.ics.uci.edu/3449 Contrib: Jenkins Integration-Tests: Jenkins Tested-by: Jenkins Reviewed-by: Dmitry Lychagin Reviewed-by: Ali Alsuliman --- M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/ratio_to_report_01/ratio_to_report_01.8.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/window/ratio_to_report_01/ratio_to_report_01.8.adm M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java 4 files changed, 36 insertions(+), 6 deletions(-) Approvals: Jenkins: Verified; ; Verified Anon. E. Moose (1000171): Dmitry Lychagin: Looks good to me, but someone else must approve Ali Alsuliman: Looks good to me, approved Objections: Jenkins: Violations found diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java index 1c5750c..988723f 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java @@ -1228,11 +1228,6 @@ createOperatorExpr(fargs.get(1), OperatorType.MINUS, new IntegerLiteral(1), sourceLoc); } else if (BuiltinFunctions.RATIO_TO_REPORT_IMPL.equals(fi)) { // ratio_to_report(x) over (...) --> x / sum(x) over (...) -winFrameMode = WindowExpression.FrameMode.RANGE; -winFrameStartKind = WindowExpression.FrameBoundaryKind.UNBOUNDED_PRECEDING; -winFrameEndKind = WindowExpression.FrameBoundaryKind.CURRENT_ROW; -winFrameExclusionKind = WindowExpression.FrameExclusionKind.NO_OTHERS; - nestedAggFunc = BuiltinFunctions.SCALAR_SQL_SUM; postWinResultFunc = BuiltinFunctions.NUMERIC_DIVIDE; postWinExpr = fargs.get(1); diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/ratio_to_report_01/ratio_to_report_01.8.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/ratio_to_report_01/ratio_to_report_01.8.query.sqlpp new file mode 100644 index 000..9408641 --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/ratio_to_report_01/ratio_to_report_01.8.query.sqlpp @@ -0,0 +1,27 @@ +/* + * 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 : Test RATIO_TO_REPORT() with frame specification + * Expected Res : SUCCESS + */ + +FROM range(1, 2) x, range(1, 4) y +SELECT x, y, + round_half_to_even(ratio_to_report(y) over (partition by x order by y rows between 1 preceding and 1 following), 2) rr +ORDER BY x, y diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/window/ratio_to_report_01/ratio_to_report_01.8.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/window/ratio_to_report_01/ratio_to_report_01.8.adm new file mode 100644 index 000..5ff1afc --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/window/ratio_to_report_01/ratio_to_report_01.8.adm @@ -0,0 +1,8 @@ +{ "x": 1, "y": 1, "rr": 0.33 } +{ "x": 1, "y": 2, "rr": 0.33 } +{ "x": 1, "y": 3, "rr": 0.33 } +{ "x": 1, "y": 4, "rr": 0.57 } +{ "x": 2, "y": 1, "rr": 0.33 } +{ "x": 2, "y": 2, "rr": 0.33 } +{ "x": 2, "y": 3, "rr": 0.33 } +{ "x": 2, "y": 4, "rr": 0.57 } \ No newline at
Change in asterixdb[master]: [NO ISSUE][FUN] Allow frame in RATIO_TO_REPORT()
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3449 ) Change subject: [NO ISSUE][FUN] Allow frame in RATIO_TO_REPORT() .. Patch Set 1: Code-Review+1 -- To view, visit https://asterix-gerrit.ics.uci.edu/3449 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ibc3686bebaf791aa84ef34d8fd143e53edc7856a Gerrit-Change-Number: 3449 Gerrit-PatchSet: 1 Gerrit-Owner: Dmitry Lychagin Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Comment-Date: Tue, 18 Jun 2019 04:20:30 + Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][FUN] Allow frame in RATIO_TO_REPORT()
Dmitry Lychagin has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/3449 Change subject: [NO ISSUE][FUN] Allow frame in RATIO_TO_REPORT() .. [NO ISSUE][FUN] Allow frame in RATIO_TO_REPORT() - user model changes: yes - storage format changes: no - interface changes: no Details: - Support frame specification in RATIO_TO_REPORT() window function call Change-Id: Ibc3686bebaf791aa84ef34d8fd143e53edc7856a --- M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/ratio_to_report_01/ratio_to_report_01.8.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/window/ratio_to_report_01/ratio_to_report_01.8.adm M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java 4 files changed, 36 insertions(+), 6 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/49/3449/1 diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java index 1c5750c..988723f 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java @@ -1228,11 +1228,6 @@ createOperatorExpr(fargs.get(1), OperatorType.MINUS, new IntegerLiteral(1), sourceLoc); } else if (BuiltinFunctions.RATIO_TO_REPORT_IMPL.equals(fi)) { // ratio_to_report(x) over (...) --> x / sum(x) over (...) -winFrameMode = WindowExpression.FrameMode.RANGE; -winFrameStartKind = WindowExpression.FrameBoundaryKind.UNBOUNDED_PRECEDING; -winFrameEndKind = WindowExpression.FrameBoundaryKind.CURRENT_ROW; -winFrameExclusionKind = WindowExpression.FrameExclusionKind.NO_OTHERS; - nestedAggFunc = BuiltinFunctions.SCALAR_SQL_SUM; postWinResultFunc = BuiltinFunctions.NUMERIC_DIVIDE; postWinExpr = fargs.get(1); diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/ratio_to_report_01/ratio_to_report_01.8.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/ratio_to_report_01/ratio_to_report_01.8.query.sqlpp new file mode 100644 index 000..9408641 --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/ratio_to_report_01/ratio_to_report_01.8.query.sqlpp @@ -0,0 +1,27 @@ +/* + * 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 : Test RATIO_TO_REPORT() with frame specification + * Expected Res : SUCCESS + */ + +FROM range(1, 2) x, range(1, 4) y +SELECT x, y, + round_half_to_even(ratio_to_report(y) over (partition by x order by y rows between 1 preceding and 1 following), 2) rr +ORDER BY x, y diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/window/ratio_to_report_01/ratio_to_report_01.8.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/window/ratio_to_report_01/ratio_to_report_01.8.adm new file mode 100644 index 000..5ff1afc --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/window/ratio_to_report_01/ratio_to_report_01.8.adm @@ -0,0 +1,8 @@ +{ "x": 1, "y": 1, "rr": 0.33 } +{ "x": 1, "y": 2, "rr": 0.33 } +{ "x": 1, "y": 3, "rr": 0.33 } +{ "x": 1, "y": 4, "rr": 0.57 } +{ "x": 2, "y": 1, "rr": 0.33 } +{ "x": 2, "y": 2, "rr": 0.33 } +{ "x": 2, "y": 3, "rr": 0.33 } +{ "x": 2, "y": 4, "rr": 0.57 } \ No newline at end of file diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java index 7afda20..5e2257a 100644 ---
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Dmitry Lychagin has submitted this change and it was merged. ( https://asterix-gerrit.ics.uci.edu/3436 ) Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses .. [NO ISSUE][COMP] Do not inline non-functional LET clauses - user model changes: no - storage format changes: no - interface changes: no Details: - When inlining LET clauses in LET ... SELECT ... skip those that contain non-functional expressions Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553 Reviewed-on: https://asterix-gerrit.ics.uci.edu/3436 Contrib: Jenkins Tested-by: Jenkins Integration-Tests: Jenkins Tested-by: Dmitry Lychagin Reviewed-by: Ali Alsuliman --- M asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue562_ps.plan A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/random/random.2.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/misc/random/random.2.adm M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/base/AbstractQueryExpressionVisitor.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppQueryRewriter.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/InlineWithExpressionVisitor.java A asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/CheckNonFunctionalExpressionVisitor.java A asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/base/AbstractSqlppContainsExpressionVisitor.java M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/ExternalFunctionInfo.java 10 files changed, 454 insertions(+), 25 deletions(-) Approvals: Jenkins: Verified; ; Verified Anon. E. Moose (1000171): Dmitry Lychagin: Verified Ali Alsuliman: Looks good to me, approved Objections: Jenkins: Violations found diff --git a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue562_ps.plan b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue562_ps.plan index d2bfaf0..9499b08 100644 --- a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue562_ps.plan +++ b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue562_ps.plan @@ -9,12 +9,12 @@ -- ONE_TO_ONE_EXCHANGE |PARTITIONED| -- REPLICATE |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- SORT_GROUP_BY[$$152] |PARTITIONED| + -- SORT_GROUP_BY[$$156] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } --- HASH_PARTITION_EXCHANGE [$$152] |PARTITIONED| +-- HASH_PARTITION_EXCHANGE [$$156] |PARTITIONED| -- SORT_GROUP_BY[$$phone_substr] |PARTITIONED| { -- AGGREGATE |LOCAL| @@ -27,29 +27,29 @@ -- STREAM_SELECT |PARTITIONED| -- STREAM_PROJECT |PARTITIONED| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- SORT_GROUP_BY[$$149] |PARTITIONED| + -- SORT_GROUP_BY[$$153] |PARTITIONED| { -- AGGREGATE |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } --- HASH_PARTITION_EXCHANGE [$$149] |PARTITIONED| - -- PRE_CLUSTERED_GROUP_BY[$$145] |PARTITIONED| +-- HASH_PARTITION_EXCHANGE [$$153] |PARTITIONED| + -- PRE_CLUSTERED_GROUP_BY[$$149] |PARTITIONED| { -- AGGREGATE |LOCAL| -- STREAM_SELECT |LOCAL| -- NESTED_TUPLE_SOURCE |LOCAL| } -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - -- STABLE_SORT [$$145(ASC)] |PARTITIONED| + -- STABLE_SORT [$$149(ASC)] |PARTITIONED|
Change in asterixdb[master]: [NO ISSUE] Document window functions.
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3448 ) Change subject: [NO ISSUE] Document window functions. .. Patch Set 1: (17 comments) Looks good! Just a few comments. https://asterix-gerrit.ics.uci.edu/#/c/3448/1/asterixdb/asterix-doc/src/main/markdown/builtins/0_toc.md File asterixdb/asterix-doc/src/main/markdown/builtins/0_toc.md: https://asterix-gerrit.ics.uci.edu/#/c/3448/1/asterixdb/asterix-doc/src/main/markdown/builtins/0_toc.md@38 PS1, Line 38: * [Window Clause (OVER Clause)](#WindowClause) OVER clause is strictly speaking not a window clause. There's a separate WINDOW clause defined by the SQL standard: https://www.postgresql.org/docs/11/sql-select.html#SQL-WINDOW We're currently not supporting the standard WINDOW clause, but we will in the future. https://asterix-gerrit.ics.uci.edu/#/c/3448/1/asterixdb/asterix-doc/src/main/markdown/builtins/14_window.md File asterixdb/asterix-doc/src/main/markdown/builtins/14_window.md: https://asterix-gerrit.ics.uci.edu/#/c/3448/1/asterixdb/asterix-doc/src/main/markdown/builtins/14_window.md@260 PS1, Line 260: tied objects in the window frame, the function returns the lowest value "lowest"? what if ORDER BY had DESC modifier? https://asterix-gerrit.ics.uci.edu/#/c/3448/1/asterixdb/asterix-doc/src/main/markdown/builtins/14_window.md@491 PS1, Line 491: tied objects in the window frame, the function returns the highest "highest"? What if ORDER BY had DESC modifier? https://asterix-gerrit.ics.uci.edu/#/c/3448/1/asterixdb/asterix-doc/src/main/markdown/builtins/14_window.md@691 PS1, Line 691: * [Nth Val From](#nthval-from): (Optional) Determines where the function trailing whitespace https://asterix-gerrit.ics.uci.edu/#/c/3448/1/asterixdb/asterix-doc/src/main/markdown/builtins/14_window.md@743 PS1, Line 743: * If the window frame is defined by `RANGE` or `GROUPS`, and there are lowest/highest will also depend on the ORDER BY modifier (DESC/ASC) https://asterix-gerrit.ics.uci.edu/#/c/3448/1/asterixdb/asterix-doc/src/main/markdown/builtins/15_over.md File asterixdb/asterix-doc/src/main/markdown/builtins/15_over.md: https://asterix-gerrit.ics.uci.edu/#/c/3448/1/asterixdb/asterix-doc/src/main/markdown/builtins/15_over.md@20 PS1, Line 20: ## Window Clause (OVER Clause) ## May be instead of "window clause" we should call it "window function call expressions" or "window function calls". These are function call expressions with OVER clause. The OVER clause either provides window specification directly (which is what we support now), or in the future will be able to refer to a WINDOW clause that defined the window specification. https://asterix-gerrit.ics.uci.edu/#/c/3448/1/asterixdb/asterix-doc/src/main/markdown/builtins/15_over.md@23 PS1, Line 23: the order of objects within the window, and the size of the window frame. May be say "the order of tuples within those partitions". Also, I'd may be say "contents of the window frame", instead of just "size" https://asterix-gerrit.ics.uci.edu/#/c/3448/1/asterixdb/asterix-doc/src/main/markdown/builtins/15_over.md@24 PS1, Line 24: The `OVER` keyword introduces the window clause. " ... introduces the window function call" ? https://asterix-gerrit.ics.uci.edu/#/c/3448/1/asterixdb/asterix-doc/src/main/markdown/builtins/15_over.md@94 PS1, Line 94: The AS keyword enables you to specify an alias for the window clause. ".. an alias for the window frame contents". It introduces a variable which will be bound to the contents of the frame. https://asterix-gerrit.ics.uci.edu/#/c/3448/1/asterixdb/asterix-doc/src/main/markdown/builtins/15_over.md@97 PS1, Line 97: window clause using this alias, for example: may be "refers to this alias"? The alias is just a variable that's introduced by the OVER clause that's only visible inside window function call arguments. https://asterix-gerrit.ics.uci.edu/#/c/3448/1/asterixdb/asterix-doc/src/main/markdown/builtins/15_over.md@99 PS1, Line 99: FROM source I'd give an alias for "source" too: "FROM source AS src", then change "FROM alias SELECT VALUE alias.source.expr" to "FROM alias AS a SELECT VALUE a.src.field_name" https://asterix-gerrit.ics.uci.edu/#/c/3448/1/asterixdb/asterix-doc/src/main/markdown/builtins/15_over.md@125 PS1, Line 125: ### Window Clause ### Again, we probably should not call it "Window Clause" to avoid confusion with standard WINDOW clause that we'll support in the future. https://asterix-gerrit.ics.uci.edu/#/c/3448/1/asterixdb/asterix-doc/src/main/markdown/builtins/15_over.md@137 PS1, Line 137: The **window partition clause** groups the query results into partitions using "groups the query results" might be confusing. Unlike GROUP BY window function calls do not change the number of tuples in the result, so they don't introduce groups. May be say "divides"? Also, "query results" is not strictly
Change in asterixdb[master]: [NO ISSUE][OTH] Use Request Stats When Printing Results on NC
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3444 ) Change subject: [NO ISSUE][OTH] Use Request Stats When Printing Results on NC .. Patch Set 1: Code-Review+2 -- To view, visit https://asterix-gerrit.ics.uci.edu/3444 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I54c3b3e72cfb0c2499a95bfc0f514dd5d6774293 Gerrit-Change-Number: 3444 Gerrit-PatchSet: 1 Gerrit-Owner: Murtadha Hubail Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Hussain Towaileb Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Michael Blow Gerrit-Reviewer: Murtadha Hubail Gerrit-Comment-Date: Mon, 17 Jun 2019 18:46:32 + Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][FUN] Allow ORDER BY in RATIO_TO_REPORT()
Dmitry Lychagin has submitted this change and it was merged. ( https://asterix-gerrit.ics.uci.edu/3442 ) Change subject: [NO ISSUE][FUN] Allow ORDER BY in RATIO_TO_REPORT() .. [NO ISSUE][FUN] Allow ORDER BY in RATIO_TO_REPORT() - user model changes: yes - storage format changes: no - interface changes: no Details: - Support ORDER BY specification in RATIO_TO_REPORT() window function call Change-Id: I031b3eff1aee8be12f1943d39f5f1c640476e4e8 Reviewed-on: https://asterix-gerrit.ics.uci.edu/3442 Contrib: Jenkins Integration-Tests: Jenkins Tested-by: Jenkins Reviewed-by: Dmitry Lychagin Reviewed-by: Ali Alsuliman --- M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/ratio_to_report_01/ratio_to_report_01.6.query.sqlpp R asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/ratio_to_report_01/ratio_to_report_01.7.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.2.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/window/ratio_to_report_01/ratio_to_report_01.6.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/window/ratio_to_report_01/ratio_to_report_01.7.adm M asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java 8 files changed, 37 insertions(+), 15 deletions(-) Approvals: Jenkins: Verified; ; Verified Anon. E. Moose (1000171): Dmitry Lychagin: Looks good to me, but someone else must approve Ali Alsuliman: Looks good to me, approved Objections: Jenkins: Violations found diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java index 988723f..1c5750c 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java @@ -1228,6 +1228,11 @@ createOperatorExpr(fargs.get(1), OperatorType.MINUS, new IntegerLiteral(1), sourceLoc); } else if (BuiltinFunctions.RATIO_TO_REPORT_IMPL.equals(fi)) { // ratio_to_report(x) over (...) --> x / sum(x) over (...) +winFrameMode = WindowExpression.FrameMode.RANGE; +winFrameStartKind = WindowExpression.FrameBoundaryKind.UNBOUNDED_PRECEDING; +winFrameEndKind = WindowExpression.FrameBoundaryKind.CURRENT_ROW; +winFrameExclusionKind = WindowExpression.FrameExclusionKind.NO_OTHERS; + nestedAggFunc = BuiltinFunctions.SCALAR_SQL_SUM; postWinResultFunc = BuiltinFunctions.NUMERIC_DIVIDE; postWinExpr = fargs.get(1); diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.9.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/ratio_to_report_01/ratio_to_report_01.6.query.sqlpp similarity index 71% copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.9.query.sqlpp copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/ratio_to_report_01/ratio_to_report_01.6.query.sqlpp index c03e763..537d373 100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.9.query.sqlpp +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/ratio_to_report_01/ratio_to_report_01.6.query.sqlpp @@ -17,9 +17,12 @@ * under the License. */ /* - * Description : Function that doesn't support FROM FIRST/LAST - * Expected Res : FAILURE + * Description : Test RATIO_TO_REPORT() with ORDER BY (and with PARTITION BY) + * Expected Res : SUCCESS */ -from range(1, 4) x -select value first_value(x) from last over (order by x) \ No newline at end of file +FROM range(1, 2) x, range(1, 4) y +SELECT x, y, + round_half_to_even(ratio_to_report(y) over (partition by x), 2) rr, + round_half_to_even(ratio_to_report(y) over (partition by x order by y), 2) rr_oby +ORDER BY x, y diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.9.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/ratio_to_report_01/ratio_to_report_01.7.query.sqlpp similarity index 74% rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.9.query.sqlpp rename to
Change in asterixdb[master]: [NO ISSUE][FUN] Allow ORDER BY in RATIO_TO_REPORT()
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3442 ) Change subject: [NO ISSUE][FUN] Allow ORDER BY in RATIO_TO_REPORT() .. Patch Set 1: Code-Review+1 -- To view, visit https://asterix-gerrit.ics.uci.edu/3442 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I031b3eff1aee8be12f1943d39f5f1c640476e4e8 Gerrit-Change-Number: 3442 Gerrit-PatchSet: 1 Gerrit-Owner: Dmitry Lychagin Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Comment-Date: Fri, 14 Jun 2019 22:30:40 + Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][FUN] Allow ORDER BY in RATIO_TO_REPORT()
Dmitry Lychagin has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/3442 Change subject: [NO ISSUE][FUN] Allow ORDER BY in RATIO_TO_REPORT() .. [NO ISSUE][FUN] Allow ORDER BY in RATIO_TO_REPORT() - user model changes: yes - storage format changes: no - interface changes: no Details: - Support ORDER BY specification in RATIO_TO_REPORT() window function call Change-Id: I031b3eff1aee8be12f1943d39f5f1c640476e4e8 --- M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/ratio_to_report_01/ratio_to_report_01.6.query.sqlpp R asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/ratio_to_report_01/ratio_to_report_01.7.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.2.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/window/ratio_to_report_01/ratio_to_report_01.6.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/window/ratio_to_report_01/ratio_to_report_01.7.adm M asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java 8 files changed, 37 insertions(+), 15 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/42/3442/1 diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java index 988723f..1c5750c 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java @@ -1228,6 +1228,11 @@ createOperatorExpr(fargs.get(1), OperatorType.MINUS, new IntegerLiteral(1), sourceLoc); } else if (BuiltinFunctions.RATIO_TO_REPORT_IMPL.equals(fi)) { // ratio_to_report(x) over (...) --> x / sum(x) over (...) +winFrameMode = WindowExpression.FrameMode.RANGE; +winFrameStartKind = WindowExpression.FrameBoundaryKind.UNBOUNDED_PRECEDING; +winFrameEndKind = WindowExpression.FrameBoundaryKind.CURRENT_ROW; +winFrameExclusionKind = WindowExpression.FrameExclusionKind.NO_OTHERS; + nestedAggFunc = BuiltinFunctions.SCALAR_SQL_SUM; postWinResultFunc = BuiltinFunctions.NUMERIC_DIVIDE; postWinExpr = fargs.get(1); diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.9.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/ratio_to_report_01/ratio_to_report_01.6.query.sqlpp similarity index 71% copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.9.query.sqlpp copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/ratio_to_report_01/ratio_to_report_01.6.query.sqlpp index c03e763..537d373 100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.9.query.sqlpp +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/ratio_to_report_01/ratio_to_report_01.6.query.sqlpp @@ -17,9 +17,12 @@ * under the License. */ /* - * Description : Function that doesn't support FROM FIRST/LAST - * Expected Res : FAILURE + * Description : Test RATIO_TO_REPORT() with ORDER BY (and with PARTITION BY) + * Expected Res : SUCCESS */ -from range(1, 4) x -select value first_value(x) from last over (order by x) \ No newline at end of file +FROM range(1, 2) x, range(1, 4) y +SELECT x, y, + round_half_to_even(ratio_to_report(y) over (partition by x), 2) rr, + round_half_to_even(ratio_to_report(y) over (partition by x order by y), 2) rr_oby +ORDER BY x, y diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.9.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/ratio_to_report_01/ratio_to_report_01.7.query.sqlpp similarity index 74% rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.9.query.sqlpp rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/ratio_to_report_01/ratio_to_report_01.7.query.sqlpp index c03e763..3c98f01 100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.9.query.sqlpp +++
Change in asterixdb[master]: [NO ISSUE] Fix error message thrown by ATypeHierarchy
Dmitry Lychagin has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/3441 Change subject: [NO ISSUE] Fix error message thrown by ATypeHierarchy .. [NO ISSUE] Fix error message thrown by ATypeHierarchy - user model changes: no - storage format changes: no - interface changes: no Details: - Align type mismatch error message thrown by ATypeHierarchy with the one produced by TypeMismatchException Change-Id: I830e93056d18123610b933a0e36fd1b54c6e140b --- M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/exceptions/ExceptionUtil.java M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/hierachy/ATypeHierarchy.java 2 files changed, 18 insertions(+), 17 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/41/3441/1 diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/exceptions/ExceptionUtil.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/exceptions/ExceptionUtil.java index 9a115c8..bdcb201 100644 --- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/exceptions/ExceptionUtil.java +++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/exceptions/ExceptionUtil.java @@ -24,7 +24,7 @@ private ExceptionUtil() { } -static String toExpectedTypeString(Object... expectedItems) { +public static String toExpectedTypeString(Object... expectedItems) { StringBuilder expectedTypes = new StringBuilder(); int numCandidateTypes = expectedItems.length; for (int index = 0; index < numCandidateTypes; ++index) { @@ -40,7 +40,7 @@ return expectedTypes.toString(); } -static String indexToPosition(int index) { +public static String indexToPosition(int index) { int i = index + 1; switch (i % 100) { case 11: diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/hierachy/ATypeHierarchy.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/hierachy/ATypeHierarchy.java index f182370..e5b1c62 100644 --- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/hierachy/ATypeHierarchy.java +++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/hierachy/ATypeHierarchy.java @@ -20,7 +20,6 @@ import java.io.DataOutput; import java.io.IOException; -import java.util.Arrays; import java.util.BitSet; import java.util.EnumMap; import java.util.HashMap; @@ -32,6 +31,7 @@ import org.apache.asterix.om.base.AFloat; import org.apache.asterix.om.base.IAObject; import org.apache.asterix.om.constants.AsterixConstantValue; +import org.apache.asterix.om.exceptions.ExceptionUtil; import org.apache.asterix.om.types.ATypeTag; import org.apache.asterix.om.types.EnumDeserializer; import org.apache.commons.lang3.tuple.Pair; @@ -315,10 +315,8 @@ case DOUBLE: return DoubleToInt32TypeConvertComputer.getInstance(strictDemote).convertType(bytes, offset); default: -throw new RuntimeDataException(ErrorCode.TYPE_MISMATCH_FUNCTION, name, argIndex, -Arrays.toString(new Object[] { ATypeTag.TINYINT, ATypeTag.SMALLINT, ATypeTag.INTEGER, -ATypeTag.BIGINT, ATypeTag.FLOAT, ATypeTag.DOUBLE }), -sourceTypeTag); +throw createTypeMismatchException(name, argIndex, sourceTypeTag, ATypeTag.TINYINT, ATypeTag.SMALLINT, +ATypeTag.INTEGER, ATypeTag.BIGINT, ATypeTag.FLOAT, ATypeTag.DOUBLE); } } @@ -354,10 +352,8 @@ case DOUBLE: return DoubleToInt64TypeConvertComputer.getInstance(strictDemote).convertType(bytes, offset); default: -throw new RuntimeDataException(ErrorCode.TYPE_MISMATCH_FUNCTION, name, argIndex, -Arrays.toString(new Object[] { ATypeTag.TINYINT, ATypeTag.SMALLINT, ATypeTag.INTEGER, -ATypeTag.BIGINT, ATypeTag.FLOAT, ATypeTag.DOUBLE }), -sourceTypeTag); +throw createTypeMismatchException(name, argIndex, sourceTypeTag, ATypeTag.TINYINT, ATypeTag.SMALLINT, +ATypeTag.INTEGER, ATypeTag.BIGINT, ATypeTag.FLOAT, ATypeTag.DOUBLE); } } @@ -385,18 +381,16 @@ case BIGINT: return IntegerToDoubleTypeConvertComputer.getInstance().convertType(bytes, offset, sourceTypeTag); default: -throw new RuntimeDataException(ErrorCode.TYPE_MISMATCH_FUNCTION, name, argIndex, -Arrays.toString(new ATypeTag[] { ATypeTag.TINYINT, ATypeTag.SMALLINT, ATypeTag.INTEGER, -ATypeTag.BIGINT, ATypeTag.FLOAT, ATypeTag.DOUBLE }), -sourceTypeTag); +throw createTypeMismatchException(name,
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3436 ) Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses .. Patch Set 2: Verified+1 -- To view, visit https://asterix-gerrit.ics.uci.edu/3436 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553 Gerrit-Change-Number: 3436 Gerrit-PatchSet: 2 Gerrit-Owner: Dmitry Lychagin Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Comment-Date: Thu, 13 Jun 2019 23:45:41 + Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Hello Anon. E. Moose (1000171), Jenkins, I'd like you to reexamine a change. Please visit https://asterix-gerrit.ics.uci.edu/3436 to look at the new patch set (#2). Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses .. [NO ISSUE][COMP] Do not inline non-functional LET clauses - user model changes: no - storage format changes: no - interface changes: no Details: - When inlining LET clauses in LET ... SELECT ... skip those that contain non-functional expressions Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553 --- M asterixdb/asterix-app/src/test/resources/optimizerts/results/query-issue562_ps.plan A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/random/random.2.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/misc/random/random.2.adm M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/base/AbstractQueryExpressionVisitor.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppQueryRewriter.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/InlineWithExpressionVisitor.java A asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/CheckNonFunctionalExpressionVisitor.java A asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/base/AbstractSqlppContainsExpressionVisitor.java M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/ExternalFunctionInfo.java 10 files changed, 454 insertions(+), 25 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/36/3436/2 -- To view, visit https://asterix-gerrit.ics.uci.edu/3436 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553 Gerrit-Change-Number: 3436 Gerrit-PatchSet: 2 Gerrit-Owner: Dmitry Lychagin Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Jenkins
Change in asterixdb[master]: [NO ISSUE][FUN] round() remove unnecessary Math.abs()
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3438 ) Change subject: [NO ISSUE][FUN] round() remove unnecessary Math.abs() .. Patch Set 1: Code-Review+2 -- To view, visit https://asterix-gerrit.ics.uci.edu/3438 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib7409faa9b3b172124f5e283c668027d52ae63d4 Gerrit-Change-Number: 3438 Gerrit-PatchSet: 1 Gerrit-Owner: Hussain Towaileb Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Hussain Towaileb Gerrit-Reviewer: Jenkins Gerrit-Comment-Date: Thu, 13 Jun 2019 16:36:49 + Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Do not inline non-functional LET clauses
Dmitry Lychagin has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/3436 Change subject: [NO ISSUE][COMP] Do not inline non-functional LET clauses .. [NO ISSUE][COMP] Do not inline non-functional LET clauses - user model changes: no - storage format changes: no - interface changes: no Details: - When inlining LET clauses in LET ... SELECT ... skip those that contain non-functional expressions Change-Id: I3740745e2e8c8a0bb11aa7908e68c682dd9a5553 --- A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/random/random.2.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/misc/random/random.2.adm M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/base/AbstractQueryExpressionVisitor.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppQueryRewriter.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/InlineWithExpressionVisitor.java A asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/CheckNonFunctionalExpressionVisitor.java A asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/base/AbstractSqlppContainsExpressionVisitor.java M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/ExternalFunctionInfo.java 9 files changed, 430 insertions(+), 7 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/36/3436/1 diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/random/random.2.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/random/random.2.query.sqlpp new file mode 100644 index 000..c23f43b --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/random/random.2.query.sqlpp @@ -0,0 +1,27 @@ +/* + * 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: Test that a LET clause containing random() is not inlined + * Success: Yes + */ + +LET x = random(), y = tostring(x) +FROM range(1, 1) r +SELECT VALUE string(x) = y diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/random/random.2.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/random/random.2.adm new file mode 100644 index 000..f32a580 --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/misc/random/random.2.adm @@ -0,0 +1 @@ +true \ No newline at end of file diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java index 6752f77..24384f2 100644 --- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java +++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java @@ -58,6 +58,15 @@ return getFunctionInfo(new FunctionIdentifier(fs.getNamespace(), fs.getName(), fs.getArity())); } +public static IFunctionInfo getBuiltinFunctionInfo(String functionName, int arity) { +IFunctionInfo fi = +getFunctionInfo(new FunctionIdentifier(AlgebricksBuiltinFunctions.ALGEBRICKS_NS, functionName, arity)); +if (fi == null) { +fi = getFunctionInfo(new FunctionIdentifier(FunctionConstants.ASTERIX_NS, functionName, arity)); +} +return fi; +} + @FunctionalInterface public interface IFunctionCollector { Set getFunctionCalls(Expression expression) throws CompilationException; diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/base/AbstractQueryExpressionVisitor.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/base/AbstractQueryExpressionVisitor.java index 117fa77..28533e1 100644 ---
Change in asterixdb[master]: [ASTERIXDB-2584][FUN] Support rounding digit for round()
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3433 ) Change subject: [ASTERIXDB-2584][FUN] Support rounding digit for round() .. Patch Set 9: Code-Review+2 -- To view, visit https://asterix-gerrit.ics.uci.edu/3433 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ibdde2745e8bc440556e45ed07262eb33327f842b Gerrit-Change-Number: 3433 Gerrit-PatchSet: 9 Gerrit-Owner: Hussain Towaileb Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Hussain Towaileb Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Wed, 12 Jun 2019 21:35:24 + Gerrit-HasComments: No
Change in asterixdb[master]: [ASTERIXDB-2584][FUN] Support rounding digit for round()
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3433 ) Change subject: [ASTERIXDB-2584][FUN] Support rounding digit for round() .. Patch Set 9: (4 comments) https://asterix-gerrit.ics.uci.edu/#/c/3433/9//COMMIT_MSG Commit Message: https://asterix-gerrit.ics.uci.edu/#/c/3433/9//COMMIT_MSG@10 PS9, Line 10: - user can pass optional 2nd argument to round() function minor. fix indentation https://asterix-gerrit.ics.uci.edu/#/c/3433/9/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/NumericRoundFunctionTypeComputer.java File asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/NumericRoundFunctionTypeComputer.java: https://asterix-gerrit.ics.uci.edu/#/c/3433/9/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/NumericRoundFunctionTypeComputer.java@83 PS9, Line 83: case ANY: ANY could be FLOAT or DOUBLE at runtime, so we should also return nullable type for it (AUnionType.createNullableType()). We just need to move "case ANY" next to FLOAT/DOUBLE https://asterix-gerrit.ics.uci.edu/#/c/3433/9/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/NumericRoundEvaluator.java File asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/NumericRoundEvaluator.java: https://asterix-gerrit.ics.uci.edu/#/c/3433/9/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/NumericRoundEvaluator.java@175 PS9, Line 175: double multiplier = Math.pow(10, Math.abs(roundingDigit)); minor. Math.abs() is redundant here because roundingDigit >= 0 at this point. https://asterix-gerrit.ics.uci.edu/#/c/3433/9/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/NumericRoundEvaluator.java@213 PS9, Line 213: double multiplier = Math.pow(10, Math.abs(roundingDigit)); minor. You know that roundingDigit is < 0 at this point, so could just do -roundingDigit instead of Math.abs() -- To view, visit https://asterix-gerrit.ics.uci.edu/3433 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ibdde2745e8bc440556e45ed07262eb33327f842b Gerrit-Change-Number: 3433 Gerrit-PatchSet: 9 Gerrit-Owner: Hussain Towaileb Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Hussain Towaileb Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Wed, 12 Jun 2019 21:19:22 + Gerrit-HasComments: Yes
Change in asterixdb[master]: [NO ISSUE][FUN] Remove unused scalar aggregates
Dmitry Lychagin has submitted this change and it was merged. ( https://asterix-gerrit.ics.uci.edu/3429 ) Change subject: [NO ISSUE][FUN] Remove unused scalar aggregates .. [NO ISSUE][FUN] Remove unused scalar aggregates - user model changes: no - storage format changes: no - interface changes: no Details: - Remove unused function definitions for scalar global/local aggregate functions - Cleanup testcases for avg function - Removed unused testcases Change-Id: I2c1274876c884f16bcbee0e3f7aaba4d91b271ce Reviewed-on: https://asterix-gerrit.ics.uci.edu/3429 Contrib: Jenkins Sonar-Qube: Jenkins Tested-by: Jenkins Integration-Tests: Jenkins Tested-by: Dmitry Lychagin Reviewed-by: Ali Alsuliman --- M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double/avg_double.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double/avg_double.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double/avg_double.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double/avg_double.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double_null/avg_double_null.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double_null/avg_double_null.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double_null/avg_double_null.3.query.sqlpp R asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double_null/avg_double_null.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_empty_01/avg_empty_01.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_empty_01/avg_empty_01.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_empty_01/avg_empty_01.3.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_empty_02/avg_empty_02.3.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float/avg_float.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float/avg_float.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float/avg_float.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float/avg_float.4.query.sqlpp D asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float_null/avg_float_nu.2.update.sqlpp R asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float_null/avg_float_null.1.ddl.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float_null/avg_float_null.2.update.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float_null/avg_float_null.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float_null/avg_float_null.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16/avg_int16.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16/avg_int16.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16/avg_int16.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16/avg_int16.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16_null/avg_int16_null.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16_null/avg_int16_null.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16_null/avg_int16_null.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16_null/avg_int16_null.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32/avg_int32.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32/avg_int32.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32/avg_int32.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32/avg_int32.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32_null/avg_int32_null.1.ddl.sqlpp M
Change in asterixdb[master]: [NO ISSUE][FUN] Remove unused scalar aggregates
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3429 ) Change subject: [NO ISSUE][FUN] Remove unused scalar aggregates .. Patch Set 5: Verified+1 -- To view, visit https://asterix-gerrit.ics.uci.edu/3429 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2c1274876c884f16bcbee0e3f7aaba4d91b271ce Gerrit-Change-Number: 3429 Gerrit-PatchSet: 5 Gerrit-Owner: Dmitry Lychagin Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Comment-Date: Tue, 11 Jun 2019 21:03:55 + Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][FUN] Remove unused scalar aggregates
Hello Anon. E. Moose (1000171), Jenkins, I'd like you to reexamine a change. Please visit https://asterix-gerrit.ics.uci.edu/3429 to look at the new patch set (#5). Change subject: [NO ISSUE][FUN] Remove unused scalar aggregates .. [NO ISSUE][FUN] Remove unused scalar aggregates - user model changes: no - storage format changes: no - interface changes: no Details: - Remove unused function definitions for scalar global/local aggregate functions - Cleanup testcases for avg function - Removed unused testcases Change-Id: I2c1274876c884f16bcbee0e3f7aaba4d91b271ce --- M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double/avg_double.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double/avg_double.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double/avg_double.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double/avg_double.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double_null/avg_double_null.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double_null/avg_double_null.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double_null/avg_double_null.3.query.sqlpp R asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double_null/avg_double_null.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_empty_01/avg_empty_01.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_empty_01/avg_empty_01.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_empty_01/avg_empty_01.3.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_empty_02/avg_empty_02.3.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float/avg_float.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float/avg_float.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float/avg_float.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float/avg_float.4.query.sqlpp D asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float_null/avg_float_nu.2.update.sqlpp R asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float_null/avg_float_null.1.ddl.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float_null/avg_float_null.2.update.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float_null/avg_float_null.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float_null/avg_float_null.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16/avg_int16.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16/avg_int16.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16/avg_int16.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16/avg_int16.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16_null/avg_int16_null.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16_null/avg_int16_null.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16_null/avg_int16_null.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16_null/avg_int16_null.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32/avg_int32.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32/avg_int32.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32/avg_int32.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32/avg_int32.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32_null/avg_int32_null.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32_null/avg_int32_null.2.update.sqlpp M
Change in asterixdb[master]: [NO ISSUE][FUN] Remove unused scalar aggregates
Hello Anon. E. Moose (1000171), Jenkins, I'd like you to reexamine a change. Please visit https://asterix-gerrit.ics.uci.edu/3429 to look at the new patch set (#4). Change subject: [NO ISSUE][FUN] Remove unused scalar aggregates .. [NO ISSUE][FUN] Remove unused scalar aggregates - user model changes: no - storage format changes: no - interface changes: no Details: - Remove unused function definitions for scalar global/local aggregate functions - Cleanup testcases for avg function - Removed unused testcases Change-Id: I2c1274876c884f16bcbee0e3f7aaba4d91b271ce --- M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double/avg_double.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double/avg_double.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double/avg_double.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double/avg_double.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double_null/avg_double_null.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double_null/avg_double_null.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double_null/avg_double_null.3.query.sqlpp R asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double_null/avg_double_null.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_empty_01/avg_empty_01.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_empty_01/avg_empty_01.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_empty_01/avg_empty_01.3.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_empty_02/avg_empty_02.3.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float/avg_float.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float/avg_float.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float/avg_float.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float/avg_float.4.query.sqlpp D asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float_null/avg_float_nu.2.update.sqlpp R asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float_null/avg_float_null.1.ddl.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float_null/avg_float_null.2.update.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float_null/avg_float_null.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float_null/avg_float_null.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16/avg_int16.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16/avg_int16.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16/avg_int16.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16/avg_int16.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16_null/avg_int16_null.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16_null/avg_int16_null.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16_null/avg_int16_null.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16_null/avg_int16_null.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32/avg_int32.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32/avg_int32.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32/avg_int32.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32/avg_int32.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32_null/avg_int32_null.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32_null/avg_int32_null.2.update.sqlpp M
Change in asterixdb[master]: [NO ISSUE][FUN] Remove unused scalar aggregates
Hello Anon. E. Moose (1000171), Jenkins, I'd like you to reexamine a change. Please visit https://asterix-gerrit.ics.uci.edu/3429 to look at the new patch set (#3). Change subject: [NO ISSUE][FUN] Remove unused scalar aggregates .. [NO ISSUE][FUN] Remove unused scalar aggregates - user model changes: no - storage format changes: no - interface changes: no Details: - Remove unused function definitions for scalar global/local aggregate functions - Cleanup testcases for avg function - Removed unused testcases Change-Id: I2c1274876c884f16bcbee0e3f7aaba4d91b271ce --- M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double/avg_double.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double/avg_double.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double/avg_double.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double/avg_double.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double_null/avg_double_null.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double_null/avg_double_null.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double_null/avg_double_null.3.query.sqlpp R asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double_null/avg_double_null.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_empty_01/avg_empty_01.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_empty_01/avg_empty_01.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_empty_01/avg_empty_01.3.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_empty_02/avg_empty_02.3.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float/avg_float.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float/avg_float.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float/avg_float.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float/avg_float.4.query.sqlpp D asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float_null/avg_float_nu.2.update.sqlpp R asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float_null/avg_float_null.1.ddl.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float_null/avg_float_null.2.update.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float_null/avg_float_null.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float_null/avg_float_null.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16/avg_int16.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16/avg_int16.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16/avg_int16.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16/avg_int16.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16_null/avg_int16_null.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16_null/avg_int16_null.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16_null/avg_int16_null.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16_null/avg_int16_null.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32/avg_int32.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32/avg_int32.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32/avg_int32.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32/avg_int32.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32_null/avg_int32_null.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32_null/avg_int32_null.2.update.sqlpp M
Change in asterixdb[master]: [NO ISSUE][FUN] Remove unused scalar global/local functions
Hello Anon. E. Moose (1000171), Jenkins, I'd like you to reexamine a change. Please visit https://asterix-gerrit.ics.uci.edu/3429 to look at the new patch set (#2). Change subject: [NO ISSUE][FUN] Remove unused scalar global/local functions .. [NO ISSUE][FUN] Remove unused scalar global/local functions - user model changes: no - storage format changes: no - interface changes: no Details: - Remove unused function definitions for scalar global/local aggregate functions - Cleanup testcases for avg function - Removed unused testcases Change-Id: I2c1274876c884f16bcbee0e3f7aaba4d91b271ce --- M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double/avg_double.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double/avg_double.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double/avg_double.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double/avg_double.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double_null/avg_double_null.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double_null/avg_double_null.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double_null/avg_double_null.3.query.sqlpp R asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_double_null/avg_double_null.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_empty_01/avg_empty_01.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_empty_01/avg_empty_01.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_empty_01/avg_empty_01.3.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_empty_02/avg_empty_02.3.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float/avg_float.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float/avg_float.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float/avg_float.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float/avg_float.4.query.sqlpp D asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float_null/avg_float_nu.2.update.sqlpp R asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float_null/avg_float_null.1.ddl.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float_null/avg_float_null.2.update.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float_null/avg_float_null.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_float_null/avg_float_null.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16/avg_int16.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16/avg_int16.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16/avg_int16.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16/avg_int16.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16_null/avg_int16_null.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16_null/avg_int16_null.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16_null/avg_int16_null.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int16_null/avg_int16_null.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32/avg_int32.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32/avg_int32.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32/avg_int32.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32/avg_int32.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32_null/avg_int32_null.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_int32_null/avg_int32_null.2.update.sqlpp M
Change in asterixdb[master]: [ASTERIXDB-2458][COMP] Fix min/max functions with group by
Dmitry Lychagin has submitted this change and it was merged. ( https://asterix-gerrit.ics.uci.edu/3434 ) Change subject: [ASTERIXDB-2458][COMP] Fix min/max functions with group by .. [ASTERIXDB-2458][COMP] Fix min/max functions with group by - user model changes: no - storage format changes: no - interface changes: no Details: In a sort-group-by operator, an aggregate function has a merging aggregate function that will be used when merging the run files if they were generated. The merging aggregate function of the local min/max aggregate function should be different from the merging aggregate function of the global min/max. For local min/max, the merging aggregate function should propagate system_null if the aggregation is system_null. Also, the global min/max should handle finishPartial() different from finish(). finishPartial() should not output NULL if the aggregation is system_null since the aggregation is still going on. - added functions to be intermediate steps for local aggregation. - implemented logic for finishPartial() - added test cases for strict_min/max with group by Change-Id: Ie0551b091b9adbbbd51158dbd36124a7184bdce0 Reviewed-on: https://asterix-gerrit.ics.uci.edu/3434 Contrib: Jenkins Sonar-Qube: Jenkins Tested-by: Jenkins Integration-Tests: Jenkins Reviewed-by: Ali Alsuliman Reviewed-by: Dmitry Lychagin --- M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/min_max_arrays/min_max_arrays.01.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/min_max_arrays/min_max_arrays.02.update.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/min_max_arrays/min_max_arrays.31.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/min_max_arrays/min_max_arrays.32.query.sqlpp R asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/min_max_arrays/min_max_arrays.33.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.01.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.02.update.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.23.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.24.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.25.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.26.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.27.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.28.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.29.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.30.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.31.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.32.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.33.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.34.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.35.query.sqlpp R asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.36.ddl.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/min_max_arrays/min_max_arrays.31.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/min_max_arrays/min_max_arrays.32.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/min_max_arrays/min_max_arrays.23.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/min_max_arrays/min_max_arrays.24.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/min_max_arrays/min_max_arrays.25.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/min_max_arrays/min_max_arrays.26.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/min_max_arrays/min_max_arrays.27.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/min_max_arrays/min_max_arrays.28.adm A
Change in asterixdb[master]: [ASTERIXDB-2458][COMP] Fix min/max functions with group by
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3434 ) Change subject: [ASTERIXDB-2458][COMP] Fix min/max functions with group by .. Patch Set 2: Code-Review+2 -- To view, visit https://asterix-gerrit.ics.uci.edu/3434 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie0551b091b9adbbbd51158dbd36124a7184bdce0 Gerrit-Change-Number: 3434 Gerrit-PatchSet: 2 Gerrit-Owner: Ali Alsuliman Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Mon, 10 Jun 2019 23:09:01 + Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][SQLPP] Support SELECT LET
Dmitry Lychagin has submitted this change and it was merged. ( https://asterix-gerrit.ics.uci.edu/3428 ) Change subject: [NO ISSUE][SQLPP] Support SELECT LET .. [NO ISSUE][SQLPP] Support SELECT LET - user model changes: yes - storage format changes: no - interface changes: no Details: - Support SELECT ... LET ... (no FROM clause) - Add CancelUnnestSingletonListRule to the optimizer - Add negative testcase for unnamed field value expressions in object constructor Change-Id: I1226dca83e756075608232c642851f646a9bee3b Reviewed-on: https://asterix-gerrit.ics.uci.edu/3428 Sonar-Qube: Jenkins Tested-by: Jenkins Integration-Tests: Jenkins Reviewed-by: Dmitry Lychagin --- M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java A asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/CancelUnnestSingletonListRule.java A asterixdb/asterix-app/src/test/resources/optimizerts/queries/flwr/select-let-1.sqlpp A asterixdb/asterix-app/src/test/resources/optimizerts/results/flwr/select-let-1.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/query-ASTERIXDB-1572.plan A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/flwor/select-let/select-let.1.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/ObjectsQueries.xml A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/no_fieldname_constr_negative/no_fieldname_constr_negative.2.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/flwor/select-let/select-let.1.adm M asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml M asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj 11 files changed, 256 insertions(+), 70 deletions(-) Approvals: Jenkins: Verified; No violations found; Verified Anon. E. Moose (1000171): Dmitry Lychagin: Looks good to me, approved diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java index f9aecab..d5f2e00 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java @@ -32,6 +32,7 @@ import org.apache.asterix.optimizer.rules.AsterixIntroduceGroupByCombinerRule; import org.apache.asterix.optimizer.rules.AsterixPushAssignBelowUnionAllRule; import org.apache.asterix.optimizer.rules.ByNameToByIndexFieldAccessRule; +import org.apache.asterix.optimizer.rules.CancelUnnestSingletonListRule; import org.apache.asterix.optimizer.rules.CancelUnnestWithNestedListifyRule; import org.apache.asterix.optimizer.rules.CheckFilterExpressionTypeRule; import org.apache.asterix.optimizer.rules.CheckFullParallelSortRule; @@ -203,6 +204,7 @@ normalization.add(new PushAggFuncIntoStandaloneAggregateRule()); normalization.add(new ListifyUnnestingFunctionRule()); normalization.add(new RemoveRedundantSelectRule()); +normalization.add(new CancelUnnestSingletonListRule()); normalization.add(new UnnestToDataScanRule()); normalization.add(new MetaFunctionToMetaVariableRule()); normalization.add(new FuzzyEqRule()); diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/CancelUnnestSingletonListRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/CancelUnnestSingletonListRule.java new file mode 100644 index 000..ab7abdf --- /dev/null +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/CancelUnnestSingletonListRule.java @@ -0,0 +1,124 @@ +/* + * 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. + */ + +package org.apache.asterix.optimizer.rules; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.asterix.om.base.IACollection; +import org.apache.asterix.om.base.IACursor; +import org.apache.asterix.om.base.IAObject; +import
Change in asterixdb[master]: [NO ISSUE][SQLPP] Support SELECT LET
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3428 ) Change subject: [NO ISSUE][SQLPP] Support SELECT LET .. Patch Set 3: Code-Review+2 Forwarding Ali's +2 -- To view, visit https://asterix-gerrit.ics.uci.edu/3428 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1226dca83e756075608232c642851f646a9bee3b Gerrit-Change-Number: 3428 Gerrit-PatchSet: 3 Gerrit-Owner: Dmitry Lychagin Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Thu, 06 Jun 2019 23:56:29 + Gerrit-HasComments: No
Change in asterixdb[master]: [ASTERIXDB-2574][COMP] Fix min/max functions
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3427 ) Change subject: [ASTERIXDB-2574][COMP] Fix min/max functions .. Patch Set 2: Code-Review+2 (2 comments) https://asterix-gerrit.ics.uci.edu/#/c/3427/2/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AbstractCollectionType.java File asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AbstractCollectionType.java: https://asterix-gerrit.ics.uci.edu/#/c/3427/2/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AbstractCollectionType.java@42 PS2, Line 42: // TODO(ali): this should be removed. itemType is already enforced to be NonNull I think we need to investigate the intent of this method. May be we should do "return itemType != ANY" here https://asterix-gerrit.ics.uci.edu/#/c/3427/2/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarArrayAggAggregateDescriptor.java File asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarArrayAggAggregateDescriptor.java: https://asterix-gerrit.ics.uci.edu/#/c/3427/2/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarArrayAggAggregateDescriptor.java@47 PS2, Line 47: itemType); > check this just to make sure. aggFuncDesc is LISTIFY, so this is correct -- To view, visit https://asterix-gerrit.ics.uci.edu/3427 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1231cfe558099d167bae0b2fa7fc4879b756baf0 Gerrit-Change-Number: 3427 Gerrit-PatchSet: 2 Gerrit-Owner: Ali Alsuliman Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Thu, 06 Jun 2019 21:02:23 + Gerrit-HasComments: Yes
Change in asterixdb[master]: [NO ISSUE][SQLPP] Support SELECT LET
Hello Anon. E. Moose (1000171), Jenkins, I'd like you to reexamine a change. Please visit https://asterix-gerrit.ics.uci.edu/3428 to look at the new patch set (#2). Change subject: [NO ISSUE][SQLPP] Support SELECT LET .. [NO ISSUE][SQLPP] Support SELECT LET - user model changes: yes - storage format changes: no - interface changes: no Details: - Support SELECT ... LET ... (no FROM clause) - Add CancelUnnestSingletonListRule to the optimizer - Add negative testcase for unnamed field value expressions in object constructor Change-Id: I1226dca83e756075608232c642851f646a9bee3b --- M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java A asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/CancelUnnestSingletonListRule.java A asterixdb/asterix-app/src/test/resources/optimizerts/queries/flwr/select-let-1.sqlpp A asterixdb/asterix-app/src/test/resources/optimizerts/results/flwr/select-let-1.plan M asterixdb/asterix-app/src/test/resources/optimizerts/results/subquery/query-ASTERIXDB-1572.plan A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/flwor/select-let/select-let.1.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/ObjectsQueries.xml A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/no_fieldname_constr_negative/no_fieldname_constr_negative.2.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/flwor/select-let/select-let.1.adm M asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml M asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj 11 files changed, 256 insertions(+), 70 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/28/3428/2 -- To view, visit https://asterix-gerrit.ics.uci.edu/3428 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I1226dca83e756075608232c642851f646a9bee3b Gerrit-Change-Number: 3428 Gerrit-PatchSet: 2 Gerrit-Owner: Dmitry Lychagin Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Jenkins
Change in asterixdb[master]: [NO ISSUE][SQLPP] Support SELECT LET
Dmitry Lychagin has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/3428 Change subject: [NO ISSUE][SQLPP] Support SELECT LET .. [NO ISSUE][SQLPP] Support SELECT LET - user model changes: yes - storage format changes: no - interface changes: no Details: - Support SELECT ... LET ... (no FROM clause) - Add CancelUnnestSingletonListRule to the optimizer - Add negative testcase for unnamed field value expressions in object constructor Change-Id: I1226dca83e756075608232c642851f646a9bee3b --- M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java A asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/CancelUnnestSingletonListRule.java A asterixdb/asterix-app/src/test/resources/optimizerts/queries/flwr/select-let-1.sqlpp A asterixdb/asterix-app/src/test/resources/optimizerts/results/flwr/select-let-1.plan A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/flwor/select-let/select-let.1.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/ObjectsQueries.xml A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/no_fieldname_constr_negative/no_fieldname_constr_negative.2.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/flwor/select-let/select-let.1.adm M asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml M asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj 10 files changed, 240 insertions(+), 7 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/28/3428/1 diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java index f9aecab..d5f2e00 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java @@ -32,6 +32,7 @@ import org.apache.asterix.optimizer.rules.AsterixIntroduceGroupByCombinerRule; import org.apache.asterix.optimizer.rules.AsterixPushAssignBelowUnionAllRule; import org.apache.asterix.optimizer.rules.ByNameToByIndexFieldAccessRule; +import org.apache.asterix.optimizer.rules.CancelUnnestSingletonListRule; import org.apache.asterix.optimizer.rules.CancelUnnestWithNestedListifyRule; import org.apache.asterix.optimizer.rules.CheckFilterExpressionTypeRule; import org.apache.asterix.optimizer.rules.CheckFullParallelSortRule; @@ -203,6 +204,7 @@ normalization.add(new PushAggFuncIntoStandaloneAggregateRule()); normalization.add(new ListifyUnnestingFunctionRule()); normalization.add(new RemoveRedundantSelectRule()); +normalization.add(new CancelUnnestSingletonListRule()); normalization.add(new UnnestToDataScanRule()); normalization.add(new MetaFunctionToMetaVariableRule()); normalization.add(new FuzzyEqRule()); diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/CancelUnnestSingletonListRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/CancelUnnestSingletonListRule.java new file mode 100644 index 000..ab7abdf --- /dev/null +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/CancelUnnestSingletonListRule.java @@ -0,0 +1,124 @@ +/* + * 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. + */ + +package org.apache.asterix.optimizer.rules; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.asterix.om.base.IACollection; +import org.apache.asterix.om.base.IACursor; +import org.apache.asterix.om.base.IAObject; +import org.apache.asterix.om.constants.AsterixConstantValue; +import org.apache.asterix.om.functions.BuiltinFunctions; +import org.apache.commons.lang3.mutable.Mutable; +import org.apache.commons.lang3.mutable.MutableObject; +import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException; +import
Change in asterixdb[master]: [NO ISSUE][RT][COMP] Use more components to identify a datasource
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3426 ) Change subject: [NO ISSUE][RT][COMP] Use more components to identify a datasource .. Patch Set 1: Code-Review+2 -- To view, visit https://asterix-gerrit.ics.uci.edu/3426 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If371a6c7f8302ee7a83ddba0f1c6aeecdea4d5ef Gerrit-Change-Number: 3426 Gerrit-PatchSet: 1 Gerrit-Owner: Till Westmann Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Murtadha Hubail Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Wed, 05 Jun 2019 19:37:23 + Gerrit-HasComments: No
Change in asterixdb[master]: [ASTERIXDB-2574][COMP] Fix min/max functions
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3427 ) Change subject: [ASTERIXDB-2574][COMP] Fix min/max functions .. Patch Set 1: (6 comments) https://asterix-gerrit.ics.uci.edu/#/c/3427/1/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/TypeHelper.java File asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/TypeHelper.java: https://asterix-gerrit.ics.uci.edu/#/c/3427/1/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/TypeHelper.java@75 PS1, Line 75: return ((ARecordType) actualType).getFieldNames().length == 0; && ARecordType.isOpen() https://asterix-gerrit.ics.uci.edu/#/c/3427/1/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/TypeHelper.java@80 PS1, Line 80: default: add case for: ANY: return true https://asterix-gerrit.ics.uci.edu/#/c/3427/1/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractMinMaxAggregateFunction.java File asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractMinMaxAggregateFunction.java: https://asterix-gerrit.ics.uci.edu/#/c/3427/1/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractMinMaxAggregateFunction.java@118 PS1, Line 118: compareAndUpdate(cmp, inputVal, outputVal, typeTag); cast to the wider type as before, then do comparison https://asterix-gerrit.ics.uci.edu/#/c/3427/1/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractMinMaxAggregateFunction.java@132 PS1, Line 132: systemNullFinish.perform(); isLocal then call local else call global. no need for method references https://asterix-gerrit.ics.uci.edu/#/c/3427/1/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/SqlMinMaxAggregateFunction.java File asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/SqlMinMaxAggregateFunction.java: https://asterix-gerrit.ics.uci.edu/#/c/3427/1/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/SqlMinMaxAggregateFunction.java@41 PS1, Line 41: private final boolean isIgnoringNull; enum or rename this field to avoid confusion https://asterix-gerrit.ics.uci.edu/#/c/3427/1/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/DescriptorFactoryUtil.java File asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/DescriptorFactoryUtil.java: https://asterix-gerrit.ics.uci.edu/#/c/3427/1/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/DescriptorFactoryUtil.java@33 PS1, Line 33: public static IFunctionDescriptorFactory createFactory(Supplier descriptorSupplier) { move to abstract aggregate dynamic descriptor -- To view, visit https://asterix-gerrit.ics.uci.edu/3427 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1231cfe558099d167bae0b2fa7fc4879b756baf0 Gerrit-Change-Number: 3427 Gerrit-PatchSet: 1 Gerrit-Owner: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Wed, 05 Jun 2019 19:24:15 + Gerrit-HasComments: Yes
Change in asterixdb[master]: [NO ISSUE][SQLPP] Optional field name in object constructor
Dmitry Lychagin has submitted this change and it was merged. ( https://asterix-gerrit.ics.uci.edu/3424 ) Change subject: [NO ISSUE][SQLPP] Optional field name in object constructor .. [NO ISSUE][SQLPP] Optional field name in object constructor - user model changes: yes - storage format changes: no - interface changes: no Details: - Allow field name to be optional in object constructors. If missing then it will be inferred from a field value expression in a manner similar to unnamed projections. - Add documentation and testcases Change-Id: I0dfba8f8137f88d934a5be8ffb5fbc1c1db0bb58 Reviewed-on: https://asterix-gerrit.ics.uci.edu/3424 Sonar-Qube: Jenkins Tested-by: Jenkins Integration-Tests: Jenkins Reviewed-by: Ali Alsuliman --- M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/ObjectsQueries.xml A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/no_fieldname_constr/no_fieldname_constr.1.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/no_fieldname_constr/no_fieldname_constr.2.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/no_fieldname_constr_negative/no_fieldname_constr_negative.1.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/objects/no_fieldname_constr/no_fieldname_constr.1.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/objects/no_fieldname_constr/no_fieldname_constr.2.adm M asterixdb/asterix-doc/src/main/markdown/sqlpp/2_expr.md M asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj 8 files changed, 132 insertions(+), 4 deletions(-) Approvals: Jenkins: Verified; No violations found; Verified Anon. E. Moose (1000171): Ali Alsuliman: Looks good to me, approved diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/ObjectsQueries.xml b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/ObjectsQueries.xml index b91a5ef..e0114fc 100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/ObjectsQueries.xml +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/ObjectsQueries.xml @@ -103,6 +103,17 @@ + + no_fieldname_constr + + + + + no_fieldname_constr + ASX1001: Syntax error: Cannot infer field name + + + object_concat diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/no_fieldname_constr/no_fieldname_constr.1.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/no_fieldname_constr/no_fieldname_constr.1.query.sqlpp new file mode 100644 index 000..13d9fff --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/no_fieldname_constr/no_fieldname_constr.1.query.sqlpp @@ -0,0 +1,27 @@ +/* + * 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 : Testing object constructor without field names + * Expected Res : Success + */ + + from range(1, 2) x, range(3, 4) y + select value { x, y } + order by x, y \ No newline at end of file diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/no_fieldname_constr/no_fieldname_constr.2.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/no_fieldname_constr/no_fieldname_constr.2.query.sqlpp new file mode 100644 index 000..7ffab82 --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/no_fieldname_constr/no_fieldname_constr.2.query.sqlpp @@ -0,0 +1,27 @@ +/* + * 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 + * + *
Change in asterixdb[master]: [NO ISSUE][SQLPP] Improve error message for unsupported EXPLAIN
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3420 ) Change subject: [NO ISSUE][SQLPP] Improve error message for unsupported EXPLAIN .. Patch Set 3: Code-Review+2 Forwarding Ali's +2 -- To view, visit https://asterix-gerrit.ics.uci.edu/3420 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Idd7844ca3d9e3c2c0de0b070e4a76282cb96e278 Gerrit-Change-Number: 3420 Gerrit-PatchSet: 3 Gerrit-Owner: Dmitry Lychagin Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Tue, 04 Jun 2019 20:10:09 + Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][SQLPP] Improve error message for unsupported EXPLAIN
Dmitry Lychagin has submitted this change and it was merged. ( https://asterix-gerrit.ics.uci.edu/3420 ) Change subject: [NO ISSUE][SQLPP] Improve error message for unsupported EXPLAIN .. [NO ISSUE][SQLPP] Improve error message for unsupported EXPLAIN - user model changes: no - storage format changes: no - interface changes: no Details: - Improve error message raised when EXPLAIN is not supported for a given statement Change-Id: Idd7844ca3d9e3c2c0de0b070e4a76282cb96e278 Reviewed-on: https://asterix-gerrit.ics.uci.edu/3420 Sonar-Qube: Jenkins Tested-by: Jenkins Integration-Tests: Jenkins Reviewed-by: Dmitry Lychagin --- A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.1.ddl.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.2.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.3.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/Query.java M asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj 7 files changed, 153 insertions(+), 19 deletions(-) Approvals: Jenkins: Verified; No violations found; Verified Anon. E. Moose (1000171): Dmitry Lychagin: Looks good to me, approved diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.1.ddl.sqlpp new file mode 100644 index 000..741c9be --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.1.ddl.sqlpp @@ -0,0 +1,33 @@ +/* + * 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: EXPLAIN not supported for statement kind + */ + +DROP DATAVERSE dvExplain IF EXISTS; +CREATE DATAVERSE dvExplain; + +USE dvExplain; + +CREATE TYPE EmployeeType AS { + id : string, + x : string +}; + +CREATE DATASET Employee(EmployeeType) PRIMARY KEY id; diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.2.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.2.query.sqlpp new file mode 100644 index 000..a309a92 --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.2.query.sqlpp @@ -0,0 +1,24 @@ +/* + * 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 : EXPLAIN not supported for CREATE DATAVERSE + * Expected Res : Failure + */ + +EXPLAIN CREATE DATAVERSE dvExplain2; \ No newline at end of file diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.3.query.sqlpp new file mode 100644 index 000..11fe3d2 --- /dev/null +++
Change in asterixdb[master]: [NO ISSUE][FUN] Support FROM LAST in NTH_VALUE()
Dmitry Lychagin has submitted this change and it was merged. ( https://asterix-gerrit.ics.uci.edu/3419 ) Change subject: [NO ISSUE][FUN] Support FROM LAST in NTH_VALUE() .. [NO ISSUE][FUN] Support FROM LAST in NTH_VALUE() - user model changes: yes - storage format changes: no - interface changes: no Details: - Support FROM FIRST / FROM LAST modifiers in window function NTH_VALUE() with FROM FIRST being the default - Minor cleanup of SQL++ grammar - Update JavaCC version to 6.1.2 Change-Id: Iceac579bd5a3e651bcd7707e324148690e020cf5 Reviewed-on: https://asterix-gerrit.ics.uci.edu/3419 Contrib: Jenkins Tested-by: Jenkins Integration-Tests: Jenkins Reviewed-by: Ali Alsuliman --- M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/nth_value_01/nth_value_01.2.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/nth_value_01/nth_value_01.3.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/nth_value_01/nth_value_01.4.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/nth_value_01/nth_value_01.5.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.8.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.9.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/window/nth_value_01/nth_value_01.2.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/window/nth_value_01/nth_value_01.3.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/window/nth_value_01/nth_value_01.4.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/window/nth_value_01/nth_value_01.5.adm M asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/expression/WindowExpression.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/DeepCopyVisitor.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/SqlppCloneAndSubstituteVariablesVisitor.java M asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java M asterixdb/pom.xml 18 files changed, 341 insertions(+), 28 deletions(-) Approvals: Jenkins: Verified; ; Verified Anon. E. Moose (1000171): Ali Alsuliman: Looks good to me, approved Objections: Jenkins: Violations found diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java index 9ba6d2c..988723f 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java @@ -1058,6 +1058,8 @@ BuiltinFunctions.WindowFunctionProperty.NO_FRAME_CLAUSE); boolean allowRespectIgnoreNulls = isWin && BuiltinFunctions.builtinFunctionHasProperty(fi, BuiltinFunctions.WindowFunctionProperty.ALLOW_RESPECT_IGNORE_NULLS); +boolean allowFromFirstLast = isWin && BuiltinFunctions.builtinFunctionHasProperty(fi, +BuiltinFunctions.WindowFunctionProperty.ALLOW_FROM_FIRST_LAST); Mutable currentOpRef = tupSource; @@ -1138,6 +1140,8 @@ boolean respectNulls = !getBooleanModifier(winExpr.getIgnoreNulls(), false, allowRespectIgnoreNulls, sourceLoc, "RESPECT/IGNORE NULLS", fs.getName()); +boolean fromLast = getBooleanModifier(winExpr.getFromLast(), false, allowFromFirstLast, sourceLoc, +"FROM FIRST/LAST", fs.getName()); boolean makeRunningAgg = false, makeNestedAgg = false; FunctionIdentifier runningAggFunc = null, nestedAggFunc = null, winResultFunc = null, postWinResultFunc = null; @@ -1174,9 +1178,7 @@ // IGNORE NULLS if (isLag) { // reverse order for LAG() -for (Pair> orderExprPair : orderExprListOut) { - orderExprPair.setFirst(reverseOrder(orderExprPair.getFirst())); -} +reverseOrder(orderExprListOut); } winFrameStartKind = WindowExpression.FrameBoundaryKind.BOUNDED_FOLLOWING; winFrameStartExpr = new LiteralExpr(new IntegerLiteral(1)); @@ -1212,6 +1214,10 @@ } } else if
Change in asterixdb[master]: [NO ISSUE][SQLPP] Optional field name in object constructor
Dmitry Lychagin has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/3424 Change subject: [NO ISSUE][SQLPP] Optional field name in object constructor .. [NO ISSUE][SQLPP] Optional field name in object constructor - user model changes: yes - storage format changes: no - interface changes: no Details: - Allow field name to be optional in object constructors. If missing then it will be inferred from a field value expression in a manner similar to unnamed projections. - Add documentation and testcases Change-Id: I0dfba8f8137f88d934a5be8ffb5fbc1c1db0bb58 --- M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/ObjectsQueries.xml A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/no_fieldname_constr/no_fieldname_constr.1.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/no_fieldname_constr/no_fieldname_constr.2.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/no_fieldname_constr_negative/no_fieldname_constr_negative.1.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/objects/no_fieldname_constr/no_fieldname_constr.1.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/objects/no_fieldname_constr/no_fieldname_constr.2.adm M asterixdb/asterix-doc/src/main/markdown/sqlpp/2_expr.md M asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj 8 files changed, 132 insertions(+), 4 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/24/3424/1 diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/ObjectsQueries.xml b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/ObjectsQueries.xml index b91a5ef..e0114fc 100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/ObjectsQueries.xml +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/ObjectsQueries.xml @@ -103,6 +103,17 @@ + + no_fieldname_constr + + + + + no_fieldname_constr + ASX1001: Syntax error: Cannot infer field name + + + object_concat diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/no_fieldname_constr/no_fieldname_constr.1.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/no_fieldname_constr/no_fieldname_constr.1.query.sqlpp new file mode 100644 index 000..13d9fff --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/no_fieldname_constr/no_fieldname_constr.1.query.sqlpp @@ -0,0 +1,27 @@ +/* + * 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 : Testing object constructor without field names + * Expected Res : Success + */ + + from range(1, 2) x, range(3, 4) y + select value { x, y } + order by x, y \ No newline at end of file diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/no_fieldname_constr/no_fieldname_constr.2.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/no_fieldname_constr/no_fieldname_constr.2.query.sqlpp new file mode 100644 index 000..7ffab82 --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/no_fieldname_constr/no_fieldname_constr.2.query.sqlpp @@ -0,0 +1,27 @@ +/* + * 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
Change in asterixdb[master]: [NO ISSUE][SQLPP] Improve error message for unsupported EXPLAIN
Hello Anon. E. Moose (1000171), Till Westmann, Jenkins, I'd like you to reexamine a change. Please visit https://asterix-gerrit.ics.uci.edu/3420 to look at the new patch set (#2). Change subject: [NO ISSUE][SQLPP] Improve error message for unsupported EXPLAIN .. [NO ISSUE][SQLPP] Improve error message for unsupported EXPLAIN - user model changes: no - storage format changes: no - interface changes: no Details: - Improve error message raised when EXPLAIN is not supported for a given statement Change-Id: Idd7844ca3d9e3c2c0de0b070e4a76282cb96e278 --- A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.1.ddl.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.2.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.3.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/Query.java M asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj 7 files changed, 153 insertions(+), 19 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/20/3420/2 -- To view, visit https://asterix-gerrit.ics.uci.edu/3420 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Idd7844ca3d9e3c2c0de0b070e4a76282cb96e278 Gerrit-Change-Number: 3420 Gerrit-PatchSet: 2 Gerrit-Owner: Dmitry Lychagin Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Till Westmann
Change in asterixdb[master]: [NO ISSUE][SQLPP] Improve error message for unsupported EXPLAIN
Dmitry Lychagin has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/3420 Change subject: [NO ISSUE][SQLPP] Improve error message for unsupported EXPLAIN .. [NO ISSUE][SQLPP] Improve error message for unsupported EXPLAIN - user model changes: no - storage format changes: no - interface changes: no Details: - Improve error message raised when EXPLAIN is not supported for a given statement Change-Id: Idd7844ca3d9e3c2c0de0b070e4a76282cb96e278 --- A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.1.ddl.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.2.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.3.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.4.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml M asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj 6 files changed, 124 insertions(+), 13 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/20/3420/1 diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.1.ddl.sqlpp new file mode 100644 index 000..741c9be --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.1.ddl.sqlpp @@ -0,0 +1,33 @@ +/* + * 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: EXPLAIN not supported for statement kind + */ + +DROP DATAVERSE dvExplain IF EXISTS; +CREATE DATAVERSE dvExplain; + +USE dvExplain; + +CREATE TYPE EmployeeType AS { + id : string, + x : string +}; + +CREATE DATASET Employee(EmployeeType) PRIMARY KEY id; diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.2.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.2.query.sqlpp new file mode 100644 index 000..a309a92 --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.2.query.sqlpp @@ -0,0 +1,24 @@ +/* + * 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 : EXPLAIN not supported for CREATE DATAVERSE + * Expected Res : Failure + */ + +EXPLAIN CREATE DATAVERSE dvExplain2; \ No newline at end of file diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.3.query.sqlpp new file mode 100644 index 000..11fe3d2 --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/explain/explain_negative/explain_negative.3.query.sqlpp @@ -0,0 +1,26 @@ +/* + * 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
Change in asterixdb[master]: [NO ISSUE][FUN] Support FROM LAST in NTH_VALUE()
Hello Anon. E. Moose (1000171), Jenkins, I'd like you to reexamine a change. Please visit https://asterix-gerrit.ics.uci.edu/3419 to look at the new patch set (#2). Change subject: [NO ISSUE][FUN] Support FROM LAST in NTH_VALUE() .. [NO ISSUE][FUN] Support FROM LAST in NTH_VALUE() - user model changes: yes - storage format changes: no - interface changes: no Details: - Support FROM FIRST / FROM LAST modifiers in window function NTH_VALUE() with FROM FIRST being the default - Minor cleanup of SQL++ grammar - Update JavaCC version to 6.1.2 Change-Id: Iceac579bd5a3e651bcd7707e324148690e020cf5 --- M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/nth_value_01/nth_value_01.2.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/nth_value_01/nth_value_01.3.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/nth_value_01/nth_value_01.4.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/nth_value_01/nth_value_01.5.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.8.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.9.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/window/nth_value_01/nth_value_01.2.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/window/nth_value_01/nth_value_01.3.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/window/nth_value_01/nth_value_01.4.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/window/nth_value_01/nth_value_01.5.adm M asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/expression/WindowExpression.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/DeepCopyVisitor.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/SqlppCloneAndSubstituteVariablesVisitor.java M asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java M asterixdb/pom.xml 18 files changed, 341 insertions(+), 28 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/19/3419/2 -- To view, visit https://asterix-gerrit.ics.uci.edu/3419 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Iceac579bd5a3e651bcd7707e324148690e020cf5 Gerrit-Change-Number: 3419 Gerrit-PatchSet: 2 Gerrit-Owner: Dmitry Lychagin Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Jenkins
Change in asterixdb[master]: [NO ISSUE][FUN] Support FROM LAST in NTH_VALUE()
Dmitry Lychagin has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/3419 Change subject: [NO ISSUE][FUN] Support FROM LAST in NTH_VALUE() .. [NO ISSUE][FUN] Support FROM LAST in NTH_VALUE() - user model changes: yes - storage format changes: no - interface changes: no Details: - Support FROM FIRST / FROM LAST modifiers in window function NTH_VALUE() with FROM FIRST being the default - Minor cleanup of SQL++ grammar - Update JavaCC version to 6.1.2 Change-Id: Iceac579bd5a3e651bcd7707e324148690e020cf5 --- M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/nth_value_01/nth_value_01.2.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/nth_value_01/nth_value_01.3.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/nth_value_01/nth_value_01.4.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/window/nth_value_01/nth_value_01.2.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/window/nth_value_01/nth_value_01.3.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/window/nth_value_01/nth_value_01.4.adm M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/expression/WindowExpression.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/DeepCopyVisitor.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/SqlppCloneAndSubstituteVariablesVisitor.java M asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java M asterixdb/pom.xml 13 files changed, 259 insertions(+), 28 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/19/3419/1 diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java index 9ba6d2c..988723f 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java @@ -1058,6 +1058,8 @@ BuiltinFunctions.WindowFunctionProperty.NO_FRAME_CLAUSE); boolean allowRespectIgnoreNulls = isWin && BuiltinFunctions.builtinFunctionHasProperty(fi, BuiltinFunctions.WindowFunctionProperty.ALLOW_RESPECT_IGNORE_NULLS); +boolean allowFromFirstLast = isWin && BuiltinFunctions.builtinFunctionHasProperty(fi, +BuiltinFunctions.WindowFunctionProperty.ALLOW_FROM_FIRST_LAST); Mutable currentOpRef = tupSource; @@ -1138,6 +1140,8 @@ boolean respectNulls = !getBooleanModifier(winExpr.getIgnoreNulls(), false, allowRespectIgnoreNulls, sourceLoc, "RESPECT/IGNORE NULLS", fs.getName()); +boolean fromLast = getBooleanModifier(winExpr.getFromLast(), false, allowFromFirstLast, sourceLoc, +"FROM FIRST/LAST", fs.getName()); boolean makeRunningAgg = false, makeNestedAgg = false; FunctionIdentifier runningAggFunc = null, nestedAggFunc = null, winResultFunc = null, postWinResultFunc = null; @@ -1174,9 +1178,7 @@ // IGNORE NULLS if (isLag) { // reverse order for LAG() -for (Pair> orderExprPair : orderExprListOut) { - orderExprPair.setFirst(reverseOrder(orderExprPair.getFirst())); -} +reverseOrder(orderExprListOut); } winFrameStartKind = WindowExpression.FrameBoundaryKind.BOUNDED_FOLLOWING; winFrameStartExpr = new LiteralExpr(new IntegerLiteral(1)); @@ -1212,6 +1214,10 @@ } } else if (BuiltinFunctions.NTH_VALUE_IMPL.equals(fi)) { nestedAggFunc = BuiltinFunctions.SCALAR_FIRST_ELEMENT; +if (fromLast) { +// reverse order if FROM LAST modifier is present +reverseOrder(orderExprListOut); +} if (respectNulls) { winFrameMaxOjbects = 1; } else { @@ -1690,6 +1696,13 @@ return opExpr; } +private static void reverseOrder(List>> orderExprList) +throws CompilationException { +for (Pair> orderExprPair : orderExprList) { +orderExprPair.setFirst(reverseOrder(orderExprPair.getFirst())); +} +} + private static OrderOperator.IOrder
Change in asterixdb[master]: [NO ISSUE][FUN] Bitwise - adjust type "any" behavior
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3409 ) Change subject: [NO ISSUE][FUN] Bitwise - adjust type "any" behavior .. Patch Set 2: Code-Review+2 -- To view, visit https://asterix-gerrit.ics.uci.edu/3409 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I93e002531812ac26fe70e573db1467ea52b9920a Gerrit-Change-Number: 3409 Gerrit-PatchSet: 2 Gerrit-Owner: Hussain Towaileb Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Hussain Towaileb Gerrit-Reviewer: Jenkins Gerrit-Comment-Date: Wed, 29 May 2019 15:25:55 + Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][FUN] Bitwise - use unknowable instead of nullable
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3409 ) Change subject: [NO ISSUE][FUN] Bitwise - use unknowable instead of nullable .. Patch Set 1: (1 comment) https://asterix-gerrit.ics.uci.edu/#/c/3409/1/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/BitMultipleValuesTypeComputer.java File asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/BitMultipleValuesTypeComputer.java: https://asterix-gerrit.ics.uci.edu/#/c/3409/1/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/BitMultipleValuesTypeComputer.java@67 PS1, Line 67: boolean isReturnUnknowable = false; why this change though? Do you ever return missing for invalid arguments? What was wrong with returning just nullable type? -- To view, visit https://asterix-gerrit.ics.uci.edu/3409 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I93e002531812ac26fe70e573db1467ea52b9920a Gerrit-Change-Number: 3409 Gerrit-PatchSet: 1 Gerrit-Owner: Hussain Towaileb Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Comment-Date: Wed, 29 May 2019 00:59:03 + Gerrit-HasComments: Yes
Change in asterixdb[master]: [NO ISSUE][FUN] Bitwise - use unknowable instead of nullable
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3409 ) Change subject: [NO ISSUE][FUN] Bitwise - use unknowable instead of nullable .. Patch Set 1: (1 comment) https://asterix-gerrit.ics.uci.edu/#/c/3409/1/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/BitMultipleValuesTypeComputer.java File asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/BitMultipleValuesTypeComputer.java: https://asterix-gerrit.ics.uci.edu/#/c/3409/1/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/BitMultipleValuesTypeComputer.java@67 PS1, Line 67: boolean isReturnUnknowable = false; > why this change though? Do you ever return missing for invalid arguments? W I mean that the case of argument being ANY is supposed to be handled by AbstractResultTypeComputer (see TypeComputeUtils.resolveResultType()). If it's not happening there in your case then we need to investigate why. -- To view, visit https://asterix-gerrit.ics.uci.edu/3409 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I93e002531812ac26fe70e573db1467ea52b9920a Gerrit-Change-Number: 3409 Gerrit-PatchSet: 1 Gerrit-Owner: Hussain Towaileb Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Comment-Date: Wed, 29 May 2019 01:14:22 + Gerrit-HasComments: Yes
Change in asterixdb[master]: [ASTERIXDB-2547][COMP] Disallow passing UNION tag to get comparator
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3404 ) Change subject: [ASTERIXDB-2547][COMP] Disallow passing UNION tag to get comparator .. Patch Set 3: Code-Review+2 -- To view, visit https://asterix-gerrit.ics.uci.edu/3404 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id8816a0dc5584f0a27410c512f3a44ccfc6c3151 Gerrit-Change-Number: 3404 Gerrit-PatchSet: 3 Gerrit-Owner: Ali Alsuliman Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Wed, 29 May 2019 01:03:45 + Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][FUN] Support IGNORE NULLS in window functions
Hello Anon. E. Moose (1000171), Jenkins, I'd like you to reexamine a change. Please visit https://asterix-gerrit.ics.uci.edu/3407 to look at the new patch set (#2). Change subject: [NO ISSUE][FUN] Support IGNORE NULLS in window functions .. [NO ISSUE][FUN] Support IGNORE NULLS in window functions - user model changes: yes - storage format changes: no - interface changes: no Details: - Support IGNORE NULLS / RESPECT NULLS modifiers in window functions LEAD(), LAG(), FIRST_VALUE(), LAST_VALUE(), NTH_VALUE() (RESPECT NULLS is the default) - Add testcases for each function - Fix CollectionMemberResultType and PushAggregateIntoNestedSubplanRule to handle remaining non-list arguments Change-Id: I400c9c95bac9159efa17fca4e97047fd089eb931 --- M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/PushAggregateIntoNestedSubplanRule.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SweepIllegalNonfunctionalFunctions.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/first_value_01/first_value_01.1.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/lag_01/lag_01.1.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/lag_01/lag_01.2.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/lag_01/lag_01.3.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/last_value_01/last_value_01.1.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/lead_01/lead_01.1.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/lead_01/lead_01.2.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/lead_01/lead_01.3.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/nth_value_01/nth_value_01.1.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.6.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.7.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/window/first_value_01/first_value_01.1.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/window/lag_01/lag_01.1.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/window/lag_01/lag_01.2.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/window/lag_01/lag_01.3.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/window/last_value_01/last_value_01.1.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/window/lead_01/lead_01.1.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/window/lead_01/lead_01.2.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/window/lead_01/lead_01.3.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/window/nth_value_01/nth_value_01.1.adm M asterixdb/asterix-app/src/test/resources/runtimets/results/window/win_null_missing/win_null_missing.2.adm M asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml M asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ErrorCode.java M asterixdb/asterix-common/src/main/resources/asx_errormsg/en.properties M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/expression/WindowExpression.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppWindowRewriteVisitor.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/DeepCopyVisitor.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/SqlppCloneAndSubstituteVariablesVisitor.java M asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/CollectionMemberResultType.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/WindowOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/IsomorphismOperatorVisitor.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalOperatorDeepCopyWithNewVariablesVisitor.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/OperatorDeepCopyVisitor.java M
Change in asterixdb[master]: [NO ISSUE] Fix type inference for ANY in UDFs
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3405 ) Change subject: [NO ISSUE] Fix type inference for ANY in UDFs .. Patch Set 2: (1 comment) https://asterix-gerrit.ics.uci.edu/#/c/3405/2/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/upperCase/upperCase.3.query.sqlpp File asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/upperCase/upperCase.3.query.sqlpp: https://asterix-gerrit.ics.uci.edu/#/c/3405/2/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/upperCase/upperCase.3.query.sqlpp@21 PS2, Line 21: let i={"id":1, "text_list": [{"text":"lower text1"}, {"text":"lower text2"}], "another_list" : ["string_1", "string_2"]} the expected result did not change. why is that? -- To view, visit https://asterix-gerrit.ics.uci.edu/3405 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6a03749fe041ec6f43de230d3e784122f7664545 Gerrit-Change-Number: 3405 Gerrit-PatchSet: 2 Gerrit-Owner: Xikui Wang Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Comment-Date: Tue, 28 May 2019 18:41:45 + Gerrit-HasComments: Yes
Change in asterixdb[master]: [ASTERIXDB-2458][COMP] Fix InjectTypeCastForFunctionArgumentsRule
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3406 ) Change subject: [ASTERIXDB-2458][COMP] Fix InjectTypeCastForFunctionArgumentsRule .. Patch Set 3: Code-Review+2 -- To view, visit https://asterix-gerrit.ics.uci.edu/3406 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2fee234d883b59319e4ec4df58d61ecd498373fd Gerrit-Change-Number: 3406 Gerrit-PatchSet: 3 Gerrit-Owner: Ali Alsuliman Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Fri, 24 May 2019 20:48:45 + Gerrit-HasComments: No
Change in asterixdb[master]: [ASTERIXDB-2458][COMP] Fix InjectTypeCastForFunctionArgumentsRule
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3406 ) Change subject: [ASTERIXDB-2458][COMP] Fix InjectTypeCastForFunctionArgumentsRule .. Patch Set 2: (1 comment) https://asterix-gerrit.ics.uci.edu/#/c/3406/2/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/common/TypeResolverUtil.java File asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/common/TypeResolverUtil.java: https://asterix-gerrit.ics.uci.edu/#/c/3406/2/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/common/TypeResolverUtil.java@98 PS2, Line 98: public static boolean castable(ATypeTag tag) { This method's name can be confusing. Primitive types are in general castable to other primitive types, but this method implies that they're not. I'd remove this method and would just use ATypeTag.isDerivedType() here and in InjectTypeCastForFunctionArgumentsRule. Both callers get actual type (from union) before calling this method, so isDerivedType() should work fine. -- To view, visit https://asterix-gerrit.ics.uci.edu/3406 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2fee234d883b59319e4ec4df58d61ecd498373fd Gerrit-Change-Number: 3406 Gerrit-PatchSet: 2 Gerrit-Owner: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Fri, 24 May 2019 18:42:44 + Gerrit-HasComments: Yes
Change in asterixdb[master]: [NO ISSUE][FUN] Remove unnecessary inner classes
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3403 ) Change subject: [NO ISSUE][FUN] Remove unnecessary inner classes .. Patch Set 1: Code-Review+2 -- To view, visit https://asterix-gerrit.ics.uci.edu/3403 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5cc8c57888e62b26684082dd07a4314b45f9fa7f Gerrit-Change-Number: 3403 Gerrit-PatchSet: 1 Gerrit-Owner: Hussain Towaileb Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Comment-Date: Thu, 23 May 2019 17:49:07 + Gerrit-HasComments: No
Change in asterixdb[master]: [WIP] Convert docs from markdown to asciidoc
Dmitry Lychagin has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/3402 Change subject: [WIP] Convert docs from markdown to asciidoc .. [WIP] Convert docs from markdown to asciidoc Change-Id: Iaea656cdd446cf0c2868c35c557b8a2488ceffd7 --- M asterixdb/asterix-doc/pom.xml A asterixdb/asterix-doc/src/main/asciidoc/builtins/0_toc.adoc A asterixdb/asterix-doc/src/main/asciidoc/builtins/10_comparison.adoc A asterixdb/asterix-doc/src/main/asciidoc/builtins/11_type.adoc A asterixdb/asterix-doc/src/main/asciidoc/builtins/12_misc.adoc A asterixdb/asterix-doc/src/main/asciidoc/builtins/13_conditional.adoc A asterixdb/asterix-doc/src/main/asciidoc/builtins/1_numeric_common.adoc A asterixdb/asterix-doc/src/main/asciidoc/builtins/1_numeric_delta.adoc A asterixdb/asterix-doc/src/main/asciidoc/builtins/2_string_common.adoc A asterixdb/asterix-doc/src/main/asciidoc/builtins/2_string_delta.adoc A asterixdb/asterix-doc/src/main/asciidoc/builtins/3_binary.adoc A asterixdb/asterix-doc/src/main/asciidoc/builtins/4_spatial.adoc A asterixdb/asterix-doc/src/main/asciidoc/builtins/5_similarity.adoc A asterixdb/asterix-doc/src/main/asciidoc/builtins/6_tokenizing.adoc A asterixdb/asterix-doc/src/main/asciidoc/builtins/7_allens.adoc A asterixdb/asterix-doc/src/main/asciidoc/builtins/7_temporal.adoc A asterixdb/asterix-doc/src/main/asciidoc/builtins/8_record.adoc A asterixdb/asterix-doc/src/main/asciidoc/builtins/9_aggregate_aql.adoc A asterixdb/asterix-doc/src/main/asciidoc/builtins/9_aggregate_sql.adoc A asterixdb/asterix-doc/src/main/asciidoc/datamodel/datamodel_composite.adoc A asterixdb/asterix-doc/src/main/asciidoc/datamodel/datamodel_header.adoc A asterixdb/asterix-doc/src/main/asciidoc/datamodel/datamodel_incomplete.adoc A asterixdb/asterix-doc/src/main/asciidoc/datamodel/datamodel_primitive_common.adoc A asterixdb/asterix-doc/src/main/asciidoc/datamodel/datamodel_primitive_delta.adoc A asterixdb/asterix-doc/src/main/asciidoc/sqlpp/0_toc.adoc A asterixdb/asterix-doc/src/main/asciidoc/sqlpp/1_intro.adoc A asterixdb/asterix-doc/src/main/asciidoc/sqlpp/2_expr.adoc A asterixdb/asterix-doc/src/main/asciidoc/sqlpp/2_expr_title.adoc A asterixdb/asterix-doc/src/main/asciidoc/sqlpp/3_declare_dataverse.adoc A asterixdb/asterix-doc/src/main/asciidoc/sqlpp/3_declare_function.adoc A asterixdb/asterix-doc/src/main/asciidoc/sqlpp/3_query.adoc A asterixdb/asterix-doc/src/main/asciidoc/sqlpp/3_query_title.adoc A asterixdb/asterix-doc/src/main/asciidoc/sqlpp/4_error.adoc A asterixdb/asterix-doc/src/main/asciidoc/sqlpp/4_error_title.adoc A asterixdb/asterix-doc/src/main/asciidoc/sqlpp/5_ddl_dataset_index.adoc A asterixdb/asterix-doc/src/main/asciidoc/sqlpp/5_ddl_dml.adoc A asterixdb/asterix-doc/src/main/asciidoc/sqlpp/5_ddl_function_removal.adoc A asterixdb/asterix-doc/src/main/asciidoc/sqlpp/5_ddl_head.adoc A asterixdb/asterix-doc/src/main/asciidoc/sqlpp/appendix_1_keywords.adoc A asterixdb/asterix-doc/src/main/asciidoc/sqlpp/appendix_1_title.adoc A asterixdb/asterix-doc/src/main/asciidoc/sqlpp/appendix_2_index_only.adoc A asterixdb/asterix-doc/src/main/asciidoc/sqlpp/appendix_2_parameters.adoc A asterixdb/asterix-doc/src/main/asciidoc/sqlpp/appendix_2_title.adoc A asterixdb/asterix-doc/src/main/asciidoc/sqlpp/appendix_3_resolution.adoc A asterixdb/asterix-doc/src/main/asciidoc/sqlpp/appendix_3_title.adoc A asterixdb/asterix-doc/src/main/data_ingestion/feeds.adoc D asterixdb/asterix-doc/src/main/data_ingestion/feeds.md A asterixdb/asterix-doc/src/main/data_ingestion/feeds_title.adoc D asterixdb/asterix-doc/src/main/data_ingestion/feeds_title.md A asterixdb/asterix-doc/src/main/installation/ansible.adoc D asterixdb/asterix-doc/src/main/installation/ansible.md A asterixdb/asterix-doc/src/main/installation/ansible_title.adoc D asterixdb/asterix-doc/src/main/installation/ansible_title.md A asterixdb/asterix-doc/src/main/installation/aws.adoc D asterixdb/asterix-doc/src/main/installation/aws.md A asterixdb/asterix-doc/src/main/installation/aws_title.adoc D asterixdb/asterix-doc/src/main/installation/aws_title.md D asterixdb/asterix-doc/src/main/markdown/builtins/0_toc.md D asterixdb/asterix-doc/src/main/markdown/builtins/10_comparison.md D asterixdb/asterix-doc/src/main/markdown/builtins/11_type.md D asterixdb/asterix-doc/src/main/markdown/builtins/12_misc.md D asterixdb/asterix-doc/src/main/markdown/builtins/13_conditional.md D asterixdb/asterix-doc/src/main/markdown/builtins/1_numeric_common.md D asterixdb/asterix-doc/src/main/markdown/builtins/1_numeric_delta.md D asterixdb/asterix-doc/src/main/markdown/builtins/2_string_common.md D asterixdb/asterix-doc/src/main/markdown/builtins/2_string_delta.md D asterixdb/asterix-doc/src/main/markdown/builtins/3_binary.md D asterixdb/asterix-doc/src/main/markdown/builtins/4_spatial.md D asterixdb/asterix-doc/src/main/markdown/builtins/5_similarity.md D
Change in asterixdb[master]: [ASTERIXDB-2562][FUN] Add support for bitwise functions
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3377 ) Change subject: [ASTERIXDB-2562][FUN] Add support for bitwise functions .. Patch Set 14: Code-Review+2 (2 comments) I think we can merge it, but there's one thing we should improve. 1. We need to add tests where each function is called multiple times. something like. FROM range(0, 10) i SELECT VALUE bitset(i , ..) . The purpose is to test how each function runtime performs on subsequent invocations. (we can do this in a separate change) 2. (minor) You're using the following pattern in test queries. "t1" : (SELECT VALUE f(...))[0] It works but is equivalent to just "t1": f(...) We can keep existing tests as is because they work fine. This is just for future reference. https://asterix-gerrit.ics.uci.edu/#/c/3377/13/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/AbstractBitValuePositionFlagEvaluator.java File asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/AbstractBitValuePositionFlagEvaluator.java: https://asterix-gerrit.ics.uci.edu/#/c/3377/13/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/AbstractBitValuePositionFlagEvaluator.java@123 PS13, Line 123: > checkAndSetMissingOrNull() only assumes the first 2 arguments are not null, I think it's fine. flagPointable was never null in your previous code, that's why I made this comment. but if it's always null if there's no flag, then passing it to checkAndSetMissingOrNull is ok. Regarding assuming that first 2 arguments are not null. I think it's ok to do. Those two should alway be present, otherwise there's no point in calling checkAndSetMissingOrNull method. https://asterix-gerrit.ics.uci.edu/#/c/3377/13/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitClearDescriptor.java File asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitClearDescriptor.java: https://asterix-gerrit.ics.uci.edu/#/c/3377/13/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/BitClearDescriptor.java@130 PS13, Line 130: > It seems in both cases, the item gets written eventually to the provided po Yes, you're right. So we don't need to look at the result value -- To view, visit https://asterix-gerrit.ics.uci.edu/3377 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I70a6376d6ca12da55eeff88fa0b1c85f970ef8e6 Gerrit-Change-Number: 3377 Gerrit-PatchSet: 14 Gerrit-Owner: Hussain Towaileb Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Hussain Towaileb Gerrit-Reviewer: Hussain Towaileb Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Wed, 22 May 2019 19:10:15 + Gerrit-HasComments: Yes
Change in asterixdb[master]: [ASTERIXDB-2569][TEST] Refactor type computer tests
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3393 ) Change subject: [ASTERIXDB-2569][TEST] Refactor type computer tests .. Patch Set 5: Code-Review+2 -- To view, visit https://asterix-gerrit.ics.uci.edu/3393 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4426efcc9e825ebb00e04e3783d18bb1cbb63a90 Gerrit-Change-Number: 3393 Gerrit-PatchSet: 5 Gerrit-Owner: Hussain Towaileb Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Hussain Towaileb Gerrit-Reviewer: Hussain Towaileb Gerrit-Reviewer: Jenkins Gerrit-Comment-Date: Wed, 22 May 2019 04:29:42 + Gerrit-HasComments: No
Change in asterixdb[master]: [ASTERIXDB-2569][TEST] Refactor type computer tests
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3393 ) Change subject: [ASTERIXDB-2569][TEST] Refactor type computer tests .. Patch Set 4: (4 comments) https://asterix-gerrit.ics.uci.edu/#/c/3393/4/asterixdb/asterix-om/src/test/java/org/apache/asterix/test/om/typecomputer/ExceptionTest.java File asterixdb/asterix-om/src/test/java/org/apache/asterix/test/om/typecomputer/ExceptionTest.java: https://asterix-gerrit.ics.uci.edu/#/c/3393/4/asterixdb/asterix-om/src/test/java/org/apache/asterix/test/om/typecomputer/ExceptionTest.java@89 PS4, Line 89: System.out.println("\n--"); remove this println() (or switch to use logger)? https://asterix-gerrit.ics.uci.edu/#/c/3393/4/asterixdb/asterix-om/src/test/java/org/apache/asterix/test/om/typecomputer/ExceptionTest.java@107 PS4, Line 107: System.out.println("--\n"); remove this println() (or switch to use logger)? https://asterix-gerrit.ics.uci.edu/#/c/3393/4/asterixdb/asterix-om/src/test/java/org/apache/asterix/test/om/typecomputer/TypeComputerTest.java File asterixdb/asterix-om/src/test/java/org/apache/asterix/test/om/typecomputer/TypeComputerTest.java: https://asterix-gerrit.ics.uci.edu/#/c/3393/4/asterixdb/asterix-om/src/test/java/org/apache/asterix/test/om/typecomputer/TypeComputerTest.java@94 PS4, Line 94: System.out.println("\n--"); remove this println() (or switch to use logger)? https://asterix-gerrit.ics.uci.edu/#/c/3393/4/asterixdb/asterix-om/src/test/java/org/apache/asterix/test/om/typecomputer/TypeComputerTest.java@120 PS4, Line 120: System.out.println("--\n"); remove this println() (or switch to use logger)? -- To view, visit https://asterix-gerrit.ics.uci.edu/3393 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4426efcc9e825ebb00e04e3783d18bb1cbb63a90 Gerrit-Change-Number: 3393 Gerrit-PatchSet: 4 Gerrit-Owner: Hussain Towaileb Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Hussain Towaileb Gerrit-Reviewer: Hussain Towaileb Gerrit-Reviewer: Jenkins Gerrit-Comment-Date: Tue, 21 May 2019 20:57:43 + Gerrit-HasComments: Yes
Change in asterixdb[master]: [ASTERIXDB-2562][FUN] Add support for bitwise functions
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3377 ) Change subject: [ASTERIXDB-2562][FUN] Add support for bitwise functions .. Patch Set 13: (2 comments) https://asterix-gerrit.ics.uci.edu/#/c/3377/13/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/IsBitSetWithoutAllFlagDescriptor.java File asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/IsBitSetWithoutAllFlagDescriptor.java: https://asterix-gerrit.ics.uci.edu/#/c/3377/13/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/IsBitSetWithoutAllFlagDescriptor.java@82 PS13, Line 82: if (flagEvaluator != null) { is flagEvaluator always 'null' here? This is 'WithoutAllFlag' function. Is it possible to have one evaluator for both 'with' and 'without' flag functions? Seems like there's a lot of code that can be shared between the two. https://asterix-gerrit.ics.uci.edu/#/c/3377/13/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/TypeMismatchException.java File asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/TypeMismatchException.java: https://asterix-gerrit.ics.uci.edu/#/c/3377/13/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/TypeMismatchException.java@74 PS13, Line 74: public TypeMismatchException(byte actualTypeTag, byte... expectedTypeTags) { This new constructor is only used by the newly added PointableHelper.getLongValue(), right? If we remove that method and use ATypeHierarchy, then we'll no longer need this new constructor. -- To view, visit https://asterix-gerrit.ics.uci.edu/3377 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I70a6376d6ca12da55eeff88fa0b1c85f970ef8e6 Gerrit-Change-Number: 3377 Gerrit-PatchSet: 13 Gerrit-Owner: Hussain Towaileb Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Hussain Towaileb Gerrit-Reviewer: Hussain Towaileb Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Tue, 21 May 2019 17:59:16 + Gerrit-HasComments: Yes
Change in asterixdb[master]: [ASTERIXDB-2569][TEST] Refactor type computer tests
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3393 ) Change subject: [ASTERIXDB-2569][TEST] Refactor type computer tests .. Patch Set 3: (2 comments) https://asterix-gerrit.ics.uci.edu/#/c/3393/3/asterixdb/asterix-om/pom.xml File asterixdb/asterix-om/pom.xml: https://asterix-gerrit.ics.uci.edu/#/c/3393/3/asterixdb/asterix-om/pom.xml@135 PS3, Line 135: add test . it's a test-only dependency, right? https://asterix-gerrit.ics.uci.edu/#/c/3393/3/asterixdb/asterix-om/src/test/java/org/apache/asterix/test/om/typecomputer/ExceptionTest.java File asterixdb/asterix-om/src/test/java/org/apache/asterix/test/om/typecomputer/ExceptionTest.java: https://asterix-gerrit.ics.uci.edu/#/c/3393/3/asterixdb/asterix-om/src/test/java/org/apache/asterix/test/om/typecomputer/ExceptionTest.java@20 PS3, Line 20: package org.apache.asterix.test.om.typecomputer; can you explain why these tests were moved to the "test" package? The usual convention is to keep tests in the same package but in a different "test" source folder. your commit comment says that it had something to do with log4j. can you elaborate? -- To view, visit https://asterix-gerrit.ics.uci.edu/3393 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4426efcc9e825ebb00e04e3783d18bb1cbb63a90 Gerrit-Change-Number: 3393 Gerrit-PatchSet: 3 Gerrit-Owner: Hussain Towaileb Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Hussain Towaileb Gerrit-Reviewer: Jenkins Gerrit-Comment-Date: Tue, 21 May 2019 17:35:00 + Gerrit-HasComments: Yes
Change in asterixdb[master]: [ASTERIXDB-2288][COMP] Fix field access with UNION
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3400 ) Change subject: [ASTERIXDB-2288][COMP] Fix field access with UNION .. Patch Set 10: Code-Review+2 -- To view, visit https://asterix-gerrit.ics.uci.edu/3400 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4d65374aca6959fd5e70279fac8f7f0a6c7c64c5 Gerrit-Change-Number: 3400 Gerrit-PatchSet: 10 Gerrit-Owner: Ali Alsuliman Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Tue, 21 May 2019 17:20:05 + Gerrit-HasComments: No
Change in asterixdb[master]: [ASTERIXDB-2562][FUN] Add support for bitwise functions
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3377 ) Change subject: [ASTERIXDB-2562][FUN] Add support for bitwise functions .. Patch Set 13: (12 comments) Not done yet, but here's the first batch of comments. https://asterix-gerrit.ics.uci.edu/#/c/3377/13/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/PointableHelper.java File asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/PointableHelper.java: https://asterix-gerrit.ics.uci.edu/#/c/3377/13/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/PointableHelper.java@317 PS13, Line 317: if (value > Long.MAX_VALUE || value < Long.MIN_VALUE || value > Math.floor(value)) { Do we need to handle NaN here? https://asterix-gerrit.ics.uci.edu/#/c/3377/13/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/PointableHelper.java@327 PS13, Line 327: if (value > Long.MAX_VALUE || value < Long.MIN_VALUE || value > Math.floor(value)) { Do we need to handle NaN here? https://asterix-gerrit.ics.uci.edu/#/c/3377/13/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/PointableHelper.java@351 PS13, Line 351: public static long getLongValue(byte[] bytes, int startOffset, ATypeTag typeTag) throws HyracksDataException { We already have ATypeHierarchy.getLongValue(). Can we use that instead of creating a new method? https://asterix-gerrit.ics.uci.edu/#/c/3377/13/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/AbstractBitMultipleValuesEvaluator.java File asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/AbstractBitMultipleValuesEvaluator.java: https://asterix-gerrit.ics.uci.edu/#/c/3377/13/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/AbstractBitMultipleValuesEvaluator.java@150 PS13, Line 150: applyBitwiseOperation(resultMutableInt64.getLongValue(), nextValue); there's no need to use resultMutableInt64 at all in this loop. If you change applyBitWiseOperation() to return 'long' instead of 'void', then we can avoid writing/reading to/from resultMutableInt64 while looping. We'll only need to write the value there to serialize the result https://asterix-gerrit.ics.uci.edu/#/c/3377/13/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/AbstractBitSingleValueEvaluator.java File asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/AbstractBitSingleValueEvaluator.java: https://asterix-gerrit.ics.uci.edu/#/c/3377/13/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/AbstractBitSingleValueEvaluator.java@58 PS13, Line 58: final AMutableInt32 resultMutableInt32 = new AMutableInt32(0); bitnot() only uses int64 mutable/serde, but bitcount() only uses int32 mutable/serde, but this abstract evaluator always creates both pairs. Should we create move those mutable/serdes to each subclass, so only one pair is created? https://asterix-gerrit.ics.uci.edu/#/c/3377/13/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/AbstractBitSingleValueEvaluator.java@103 PS13, Line 103: resultMutableInt64.setValue(PointableHelper.getLongValue(bytes, startOffset + 1, typeTag)); why do we need to write the value to resultMutableInt64 and then immediately read it from there in line 111? just pass the long value we got from getLongValue() to applyBitwiseOperation() https://asterix-gerrit.ics.uci.edu/#/c/3377/13/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/AbstractBitValuePositionFlagEvaluator.java File asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/AbstractBitValuePositionFlagEvaluator.java: https://asterix-gerrit.ics.uci.edu/#/c/3377/13/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/AbstractBitValuePositionFlagEvaluator.java@85 PS13, Line 85: final IPointable flagPointable = new VoidPointable(); We don't need to create this object if there's no flagEvaluator available. https://asterix-gerrit.ics.uci.edu/#/c/3377/13/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/bitwise/AbstractBitValuePositionFlagEvaluator.java@104 PS13, Line 104: flagEvaluator = hasFlagArgument ? argEvaluatorFactories[2].createScalarEvaluator(context) : null; do you need hasFlagArgument at all? Check the length of argEvaluatorFactories and if it's more than 2 then we have it, otherwise not.
Change in asterixdb[master]: [ASTERIXDB-2288][COMP] Fix field access with UNION
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3400 ) Change subject: [ASTERIXDB-2288][COMP] Fix field access with UNION .. Patch Set 8: (2 comments) https://asterix-gerrit.ics.uci.edu/#/c/3400/8/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/PushAssignBelowUnionAllRule.java File asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/PushAssignBelowUnionAllRule.java: https://asterix-gerrit.ics.uci.edu/#/c/3400/8/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/PushAssignBelowUnionAllRule.java@196 PS8, Line 196: if (!functionCall.getFunctionIdentifier().equals(BuiltinFunctions.FIELD_ACCESS_BY_INDEX)) { I'd move this 'if' outside of this method into modifyExpression loop. So line 190 would be: if (functionCall.getFunctionIdentifier().equals(BuiltinFunctions.FIELD_ACCESS_BY_INDEX)) { mapFieldIndex(...) } https://asterix-gerrit.ics.uci.edu/#/c/3400/8/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/PushAssignBelowUnionAllRule.java@220 PS8, Line 220: fieldIndex = inputType.getFieldIndex(fieldName); what if it returns -1 (not found)? -- To view, visit https://asterix-gerrit.ics.uci.edu/3400 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4d65374aca6959fd5e70279fac8f7f0a6c7c64c5 Gerrit-Change-Number: 3400 Gerrit-PatchSet: 8 Gerrit-Owner: Ali Alsuliman Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Mon, 20 May 2019 22:33:58 + Gerrit-HasComments: Yes
Change in asterixdb[master]: [ASTERIXDB-2289][COMP] Fix field access with CASE
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3399 ) Change subject: [ASTERIXDB-2289][COMP] Fix field access with CASE .. Patch Set 4: Code-Review+2 (1 comment) https://asterix-gerrit.ics.uci.edu/#/c/3399/4/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/PushFieldAccessRule.java File asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/PushFieldAccessRule.java: https://asterix-gerrit.ics.uci.edu/#/c/3399/4/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/PushFieldAccessRule.java@202 PS4, Line 202: HashSet usedInAccess = new HashSet<>(); minor. use interface in variable declaration (Set usedInAccess = new HashSet<>()) here and below -- To view, visit https://asterix-gerrit.ics.uci.edu/3399 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I911e4e9018c15e8f226e46fa610d222eb2301fcd Gerrit-Change-Number: 3399 Gerrit-PatchSet: 4 Gerrit-Owner: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Michael Blow Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Thu, 16 May 2019 23:12:04 + Gerrit-HasComments: Yes
Change in asterixdb[master]: [NO ISSUE][COMP] Change plan printing for window operators
Dmitry Lychagin has submitted this change and it was merged. ( https://asterix-gerrit.ics.uci.edu/3397 ) Change subject: [NO ISSUE][COMP] Change plan printing for window operators .. [NO ISSUE][COMP] Change plan printing for window operators - user model changes: no - storage format changes: no - interface changes: no Details: - Print window operators as 'window-aggregate' in the query plan - Add testcase for a window function call used in WHERE clause, and a negative testcase - Implement reset() for LogicalOperatorPrettyPrintVisitorJson - Make IOptimizationContext.getPrettyPrintVisitor() return AbstractLogicalOperatorPrettyPrintVisitor Change-Id: I1446238a7c550abf618a72650c2a811fbc4dd710 Reviewed-on: https://asterix-gerrit.ics.uci.edu/3397 Tested-by: Jenkins Integration-Tests: Jenkins Reviewed-by: Ali Alsuliman --- A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/misc_01/misc_01.9.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.5.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/window/misc_01/misc_01.9.adm A asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.9.ast M asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/IOptimizationContext.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/AbstractLogicalOperatorPrettyPrintVisitor.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitor.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitorJson.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/AbstractRuleController.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/AlgebricksOptimizationContext.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/HeuristicOptimizer.java 12 files changed, 129 insertions(+), 13 deletions(-) Approvals: Jenkins: Verified; Verified Anon. E. Moose (1000171): Ali Alsuliman: Looks good to me, approved Objections: Jenkins: Violations found diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/misc_01/misc_01.9.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/misc_01/misc_01.9.query.sqlpp new file mode 100644 index 000..b8db547 --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/misc_01/misc_01.9.query.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 : Window function call in a complex WHERE clause + * Expected Res : SUCCESS + */ + +from range(1, 10) x +where to_bigint(to_double(x)) > 1 + and sum(x) over () = 55 + and x < 4 + and count(x) over () = 10 +select value x; diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.5.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.5.query.sqlpp new file mode 100644 index 000..be98876 --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.5.query.sqlpp @@ -0,0 +1,26 @@ +/* + * 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 + * + *
Change in asterixdb[master]: [ASTERIXDB-2567][RT] Fix serializing nullable record fields
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3398 ) Change subject: [ASTERIXDB-2567][RT] Fix serializing nullable record fields .. Patch Set 2: Code-Review+2 -- To view, visit https://asterix-gerrit.ics.uci.edu/3398 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I42105965e69c60bc4b123337296476b4d75f0ad8 Gerrit-Change-Number: 3398 Gerrit-PatchSet: 2 Gerrit-Owner: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Michael Blow Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Wed, 15 May 2019 16:03:28 + Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Change plan printing for window operators
Dmitry Lychagin has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/3397 Change subject: [NO ISSUE][COMP] Change plan printing for window operators .. [NO ISSUE][COMP] Change plan printing for window operators - user model changes: no - storage format changes: no - interface changes: no Details: - Print window operators as 'window-aggregate' in the query plan - Add testcase for a window function call used in WHERE clause, and a negative testcase - Implement reset() for LogicalOperatorPrettyPrintVisitorJson - Make IOptimizationContext.getPrettyPrintVisitor() return AbstractLogicalOperatorPrettyPrintVisitor Change-Id: I1446238a7c550abf618a72650c2a811fbc4dd710 --- A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/misc_01/misc_01.9.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.5.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/window/misc_01/misc_01.9.adm A asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/window/misc_01/misc_01.9.ast M asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/IOptimizationContext.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/AbstractLogicalOperatorPrettyPrintVisitor.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitor.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitorJson.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/AbstractRuleController.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/AlgebricksOptimizationContext.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/HeuristicOptimizer.java 12 files changed, 129 insertions(+), 13 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/97/3397/1 diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/misc_01/misc_01.9.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/misc_01/misc_01.9.query.sqlpp new file mode 100644 index 000..b8db547 --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/misc_01/misc_01.9.query.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 : Window function call in a complex WHERE clause + * Expected Res : SUCCESS + */ + +from range(1, 10) x +where to_bigint(to_double(x)) > 1 + and sum(x) over () = 55 + and x < 4 + and count(x) over () = 10 +select value x; diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.5.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.5.query.sqlpp new file mode 100644 index 000..be98876 --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/window/win_negative/win_negative.5.query.sqlpp @@ -0,0 +1,26 @@ +/* + * 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
Change in asterixdb[master]: [ASTERIXDB-2564][RT] Too many objects created in min() and max()
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3391 ) Change subject: [ASTERIXDB-2564][RT] Too many objects created in min() and max() .. Patch Set 2: Code-Review+2 -- To view, visit https://asterix-gerrit.ics.uci.edu/3391 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0bb9f0715985ae555de00bbf3173c80371d8968b Gerrit-Change-Number: 3391 Gerrit-PatchSet: 2 Gerrit-Owner: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Michael Blow Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Mon, 13 May 2019 17:00:48 + Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][FUN] Add ARRAY_AGG() SQL aggregate function
Hello Anon. E. Moose (1000171), Jenkins, I'd like you to reexamine a change. Please visit https://asterix-gerrit.ics.uci.edu/3390 to look at the new patch set (#4). Change subject: [NO ISSUE][FUN] Add ARRAY_AGG() SQL aggregate function .. [NO ISSUE][FUN] Add ARRAY_AGG() SQL aggregate function - user model changes: yes - storage format changes: no - interface changes: no Details: - Implement support for ARRAY_AGG() aggregate function. - Add new testcases and update documentation - Add AbstractScalarDistinctAggregateDescriptor.createDescriptorFactory() to uniformly set required type inferer for all distinct scalar aggregates - Propagate correct item type to GenericScalarDistinctAggregateFunction Change-Id: I704e031a1252493e83ad8d45c38b75e0b15c1896 --- A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql-sugar/array_agg/array_agg.1.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql-sugar/array_agg/array_agg.2.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql-sugar/array_agg/array_agg.3.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql-sugar/array_agg/array_agg.4.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql-sugar/array_agg/array_agg.5.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql-sugar/array_agg/array_agg.6.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql-sugar/array_agg_negative/array_agg_negative.1.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql-sugar/array_agg/array_agg.1.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql-sugar/array_agg/array_agg.2.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql-sugar/array_agg/array_agg.3.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql-sugar/array_agg/array_agg.4.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql-sugar/array_agg/array_agg.5.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql-sugar/array_agg/array_agg.6.adm M asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml M asterixdb/asterix-doc/src/main/markdown/sqlpp/3_query.md M asterixdb/asterix-geo/src/main/java/org/apache/asterix/geo/aggregates/ScalarSTUnionDistinctAggregateDescriptor.java M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/CommonFunctionMapUtil.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/util/FunctionMapUtil.java M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java A asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/ScalarArrayAggTypeComputer.java M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/TypeComputeUtils.java M asterixdb/asterix-om/src/test/java/org/apache/asterix/om/typecomputer/TypeComputerTest.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/AbstractScalarAggregateDescriptor.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/AbstractScalarDistinctAggregateDescriptor.java A asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarArrayAggAggregateDescriptor.java A asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarArrayAggDistinctAggregateDescriptor.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarAvgDistinctAggregateDescriptor.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarCountDistinctAggregateDescriptor.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarKurtosisDistinctAggregateDescriptor.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarMaxDistinctAggregateDescriptor.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarMinDistinctAggregateDescriptor.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarSkewnessDistinctAggregateDescriptor.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarSqlAvgDistinctAggregateDescriptor.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarSqlCountDistinctAggregateDescriptor.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarSqlKurtosisDistinctAggregateDescriptor.java M
Change in asterixdb[master]: [ASTERIXDB-2555][RT][COMP] Make hash join use logical comparison
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3387 ) Change subject: [ASTERIXDB-2555][RT][COMP] Make hash join use logical comparison .. Patch Set 4: Code-Review+1 -- To view, visit https://asterix-gerrit.ics.uci.edu/3387 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If1834967fdd913fdc76003f09636b2450d07cd5e Gerrit-Change-Number: 3387 Gerrit-PatchSet: 4 Gerrit-Owner: Ali Alsuliman Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Michael Blow Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Fri, 10 May 2019 18:28:24 + Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Reduce memory requirements for metadata only queries
Dmitry Lychagin has submitted this change and it was merged. ( https://asterix-gerrit.ics.uci.edu/3385 ) Change subject: [NO ISSUE][COMP] Reduce memory requirements for metadata only queries .. [NO ISSUE][COMP] Reduce memory requirements for metadata only queries - user model changes: no - storage format changes: no - interface changes: no Details: - Queries over metadata datasets should run with minimal memory requirements - Introduce AsterixOptimizationContext which extends AlgebricksOptimizationContext and contains information required by Asterix optimizer rules - Implement equals()/hashCode() for DataSourceId - Add "plans" testcase type Change-Id: I0d8902f88f61953e839e2fa0b06a77c324edbc57 Reviewed-on: https://asterix-gerrit.ics.uci.edu/3385 Contrib: Jenkins Tested-by: Jenkins Integration-Tests: Jenkins Reviewed-by: Ali Alsuliman Reviewed-by: Till Westmann --- M asterixdb/asterix-algebra/pom.xml A asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/AsterixOptimizationContext.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java A asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/FindDataSourcesRule.java A asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetAsterixMemoryRequirementsRule.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/ResultExtractor.java M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/metadata_only_01/metadata_only_01.1.plans.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/misc/metadata_only_01/metadata_only_01.1.regex M asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml M asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DataSourceId.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/AlgebricksOptimizationContext.java M hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/SetMemoryRequirementsRule.java M hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/job/JobSpecification.java M hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/job/resource/ClusterCapacity.java M hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/job/resource/IReadOnlyClusterCapacity.java 17 files changed, 285 insertions(+), 24 deletions(-) Approvals: Jenkins: Verified; ; Verified Anon. E. Moose (1000171): Ali Alsuliman: Looks good to me, but someone else must approve Till Westmann: Looks good to me, approved Objections: Jenkins: Violations found diff --git a/asterixdb/asterix-algebra/pom.xml b/asterixdb/asterix-algebra/pom.xml index ee0bb5e..180e0b5 100644 --- a/asterixdb/asterix-algebra/pom.xml +++ b/asterixdb/asterix-algebra/pom.xml @@ -254,5 +254,9 @@ org.apache.hyracks hyracks-http + + it.unimi.dsi + fastutil + diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/AsterixOptimizationContext.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/AsterixOptimizationContext.java new file mode 100644 index 000..82ab296 --- /dev/null +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/AsterixOptimizationContext.java @@ -0,0 +1,67 @@ +/* + * 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. + */ + +package org.apache.asterix.optimizer.base; + +import java.util.HashSet; +import java.util.Set; + +import org.apache.asterix.metadata.declared.DataSource; +import org.apache.asterix.metadata.declared.DataSourceId; +import org.apache.hyracks.algebricks.common.constraints.AlgebricksPartitionConstraint; +import org.apache.hyracks.algebricks.core.algebra.expressions.IConflictingTypeResolver; +import
Change in asterixdb[master]: [NO ISSUE][COMP] Reduce memory requirements for metadata only queries
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3385 ) Change subject: [NO ISSUE][COMP] Reduce memory requirements for metadata only queries .. Patch Set 2: (1 comment) https://asterix-gerrit.ics.uci.edu/#/c/3385/2/asterixdb/asterix-algebra/pom.xml File asterixdb/asterix-algebra/pom.xml: https://asterix-gerrit.ics.uci.edu/#/c/3385/2/asterixdb/asterix-algebra/pom.xml@258 PS2, Line 258: it.unimi.dsi > Do we need to do something to the LICENSE/NOTICE? We're already using this library: https://github.com/apache/asterixdb/blob/master/asterixdb/asterix-runtime/pom.xml#L151 It's Apache licensed (see http://fastutil.di.unimi.it/) , so I guess there's nothing to add to LICENSE/NOTICE -- To view, visit https://asterix-gerrit.ics.uci.edu/3385 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0d8902f88f61953e839e2fa0b06a77c324edbc57 Gerrit-Change-Number: 3385 Gerrit-PatchSet: 2 Gerrit-Owner: Dmitry Lychagin Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Thu, 09 May 2019 21:59:39 + Gerrit-HasComments: Yes
Change in asterixdb[master]: [NO ISSUE][FUN] Add ARRAY_AGG() SQL aggregate function
Hello Jenkins, I'd like you to reexamine a change. Please visit https://asterix-gerrit.ics.uci.edu/3390 to look at the new patch set (#2). Change subject: [NO ISSUE][FUN] Add ARRAY_AGG() SQL aggregate function .. [NO ISSUE][FUN] Add ARRAY_AGG() SQL aggregate function - user model changes: yes - storage format changes: no - interface changes: no Details: - Implement support for ARRAY_AGG() aggregate function. - Add new testcases and update documentation - Add AbstractScalarDistinctAggregateDescriptor.createDescriptorFactory() to uniformly set required type inferer for all distinct scalar aggregates - Propagate correct item type to GenericScalarDistinctAggregateFunction Change-Id: I704e031a1252493e83ad8d45c38b75e0b15c1896 --- A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql-sugar/array_agg/array_agg.1.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql-sugar/array_agg/array_agg.2.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql-sugar/array_agg/array_agg.3.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql-sugar/array_agg/array_agg.4.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql-sugar/array_agg/array_agg.5.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql-sugar/array_agg/array_agg.6.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql-sugar/array_agg_negative/array_agg_negative.1.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql-sugar/array_agg/array_agg.1.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql-sugar/array_agg/array_agg.2.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql-sugar/array_agg/array_agg.3.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql-sugar/array_agg/array_agg.4.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql-sugar/array_agg/array_agg.5.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql-sugar/array_agg/array_agg.6.adm M asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml M asterixdb/asterix-doc/src/main/markdown/sqlpp/3_query.md M asterixdb/asterix-geo/src/main/java/org/apache/asterix/geo/aggregates/ScalarSTUnionDistinctAggregateDescriptor.java M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/CommonFunctionMapUtil.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/util/FunctionMapUtil.java M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java A asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/ScalarArrayAggTypeComputer.java M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/TypeComputeUtils.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/AbstractScalarAggregateDescriptor.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/AbstractScalarDistinctAggregateDescriptor.java A asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarArrayAggAggregateDescriptor.java A asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarArrayAggDistinctAggregateDescriptor.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarAvgDistinctAggregateDescriptor.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarCountDistinctAggregateDescriptor.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarKurtosisDistinctAggregateDescriptor.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarMaxDistinctAggregateDescriptor.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarMinDistinctAggregateDescriptor.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarSkewnessDistinctAggregateDescriptor.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarSqlAvgDistinctAggregateDescriptor.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarSqlCountDistinctAggregateDescriptor.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarSqlKurtosisDistinctAggregateDescriptor.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/scalar/ScalarSqlMaxDistinctAggregateDescriptor.java M
Change in asterixdb[master]: [ASTERIXDB-2555][RT][COMP] Make hash join use logical comparison
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3387 ) Change subject: [ASTERIXDB-2555][RT][COMP] Make hash join use logical comparison .. Patch Set 2: (2 comments) https://asterix-gerrit.ics.uci.edu/#/c/3387/2/asterixdb/asterix-app/src/test/resources/runtimets/results/join/hash_join_record/hash_join_record.03.adm File asterixdb/asterix-app/src/test/resources/runtimets/results/join/hash_join_record/hash_join_record.03.adm: https://asterix-gerrit.ics.uci.edu/#/c/3387/2/asterixdb/asterix-app/src/test/resources/runtimets/results/join/hash_join_record/hash_join_record.03.adm@a16 PS2, Line 16: > it's because of the "apt" field being null. Logical comparison will render right, makes sense https://asterix-gerrit.ics.uci.edu/#/c/3387/2/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/util/JoinUtil.java File hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/util/JoinUtil.java: https://asterix-gerrit.ics.uci.edu/#/c/3387/2/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/util/JoinUtil.java@36 PS2, Line 36: public String printPartitionInfo(BitSet spilledStatus, OptimizedHybridHashJoin.SIDE whichSide, int numOfPartitions, > it's a debugging print which is not used in OptimizedHybridHashJoin. Having ok. let's move it to the "join" package and may be rename to HybridHashJoinUtil because we already have org.apache.hyracks.algebricks.rewriter.util.JoinUtils -- To view, visit https://asterix-gerrit.ics.uci.edu/3387 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If1834967fdd913fdc76003f09636b2450d07cd5e Gerrit-Change-Number: 3387 Gerrit-PatchSet: 2 Gerrit-Owner: Ali Alsuliman Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Michael Blow Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Thu, 09 May 2019 18:41:11 + Gerrit-HasComments: Yes
Change in asterixdb[master]: [ASTERIXDB-2555][RT][COMP] Make hash join use logical comparison
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3387 ) Change subject: [ASTERIXDB-2555][RT][COMP] Make hash join use logical comparison .. Patch Set 2: (3 comments) https://asterix-gerrit.ics.uci.edu/#/c/3387/2/asterixdb/asterix-app/src/test/resources/runtimets/results/join/hash_join_record/hash_join_record.03.adm File asterixdb/asterix-app/src/test/resources/runtimets/results/join/hash_join_record/hash_join_record.03.adm: https://asterix-gerrit.ics.uci.edu/#/c/3387/2/asterixdb/asterix-app/src/test/resources/runtimets/results/join/hash_join_record/hash_join_record.03.adm@a16 PS2, Line 16: why these records no longer join? "address" values seem to be the same on both sides https://asterix-gerrit.ics.uci.edu/#/c/3387/2/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/evaluators/TuplePairEvaluatorFactory.java File hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/evaluators/TuplePairEvaluatorFactory.java: https://asterix-gerrit.ics.uci.edu/#/c/3387/2/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/evaluators/TuplePairEvaluatorFactory.java@52 PS2, Line 52: synchronized > not sure why the old code needed this to be synchronized. agreed, I think synchronization is not required here https://asterix-gerrit.ics.uci.edu/#/c/3387/2/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/util/JoinUtil.java File hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/util/JoinUtil.java: https://asterix-gerrit.ics.uci.edu/#/c/3387/2/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/util/JoinUtil.java@36 PS2, Line 36: public String printPartitionInfo(BitSet spilledStatus, OptimizedHybridHashJoin.SIDE whichSide, int numOfPartitions, This method is specific to OptimizedHybridHashJoin, so why did we move into a generic "dataflow.std.util" package? Why not leave it where it was? -- To view, visit https://asterix-gerrit.ics.uci.edu/3387 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If1834967fdd913fdc76003f09636b2450d07cd5e Gerrit-Change-Number: 3387 Gerrit-PatchSet: 2 Gerrit-Owner: Ali Alsuliman Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Michael Blow Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Thu, 09 May 2019 17:59:42 + Gerrit-HasComments: Yes
Change in asterixdb[master]: [NO ISSUE][OTH] Ensure HttpServer Channel is Initialized
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3389 ) Change subject: [NO ISSUE][OTH] Ensure HttpServer Channel is Initialized .. Patch Set 1: Code-Review+2 -- To view, visit https://asterix-gerrit.ics.uci.edu/3389 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5b7403e80f6118f99be46d166c6cfbee8d4305ac Gerrit-Change-Number: 3389 Gerrit-PatchSet: 1 Gerrit-Owner: Murtadha Hubail Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Hussain Towaileb Gerrit-Reviewer: Ian Maxon Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Michael Blow Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Thu, 09 May 2019 17:18:21 + Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][COMP] Reduce memory requirements for metadata only queries
Hello Anon. E. Moose (1000171), Jenkins, I'd like you to reexamine a change. Please visit https://asterix-gerrit.ics.uci.edu/3385 to look at the new patch set (#2). Change subject: [NO ISSUE][COMP] Reduce memory requirements for metadata only queries .. [NO ISSUE][COMP] Reduce memory requirements for metadata only queries - user model changes: no - storage format changes: no - interface changes: no Details: - Queries over metadata datasets should run with minimal memory requirements - Introduce AsterixOptimizationContext which extends AlgebricksOptimizationContext and contains information required by Asterix optimizer rules - Implement equals()/hashCode() for DataSourceId - Add "plans" testcase type Change-Id: I0d8902f88f61953e839e2fa0b06a77c324edbc57 --- M asterixdb/asterix-algebra/pom.xml A asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/AsterixOptimizationContext.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java A asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/FindDataSourcesRule.java A asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetAsterixMemoryRequirementsRule.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/ResultExtractor.java M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/metadata_only_01/metadata_only_01.1.plans.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/misc/metadata_only_01/metadata_only_01.1.regex M asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml M asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DataSourceId.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/AlgebricksOptimizationContext.java M hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/SetMemoryRequirementsRule.java M hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/job/JobSpecification.java M hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/job/resource/ClusterCapacity.java M hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/job/resource/IReadOnlyClusterCapacity.java 17 files changed, 285 insertions(+), 24 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/85/3385/2 -- To view, visit https://asterix-gerrit.ics.uci.edu/3385 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I0d8902f88f61953e839e2fa0b06a77c324edbc57 Gerrit-Change-Number: 3385 Gerrit-PatchSet: 2 Gerrit-Owner: Dmitry Lychagin Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Jenkins
Change in asterixdb[master]: [NO ISSUE][COMP] Reduce memory requirements for metadata only queries
Dmitry Lychagin has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/3385 Change subject: [NO ISSUE][COMP] Reduce memory requirements for metadata only queries .. [NO ISSUE][COMP] Reduce memory requirements for metadata only queries - user model changes: no - storage format changes: no - interface changes: no Details: - Queries over metadata datasets should run with minimal memory requirements - Introduce AsterixOptimizationContext which extends AlgebricksOptimizationContext and contains information required by Asterix optimizer rules - Implement equals()/hashCode() for DataSourceId - Add "plans" testcase type Change-Id: I0d8902f88f61953e839e2fa0b06a77c324edbc57 --- A asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/AsterixOptimizationContext.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java A asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/FindDataSourcesRule.java A asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetAsterixMemoryRequirementsRule.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/ResultExtractor.java M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/misc/metadata_only_01/metadata_only_01.1.plans.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/misc/metadata_only_01/metadata_only_01.1.regex M asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml M asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DataSourceId.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/rewriter/base/AlgebricksOptimizationContext.java M hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/SetMemoryRequirementsRule.java M hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/job/JobSpecification.java M hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/job/resource/ClusterCapacity.java M hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/job/resource/IReadOnlyClusterCapacity.java 16 files changed, 281 insertions(+), 24 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/85/3385/1 diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/AsterixOptimizationContext.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/AsterixOptimizationContext.java new file mode 100644 index 000..82ab296 --- /dev/null +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/AsterixOptimizationContext.java @@ -0,0 +1,67 @@ +/* + * 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. + */ + +package org.apache.asterix.optimizer.base; + +import java.util.HashSet; +import java.util.Set; + +import org.apache.asterix.metadata.declared.DataSource; +import org.apache.asterix.metadata.declared.DataSourceId; +import org.apache.hyracks.algebricks.common.constraints.AlgebricksPartitionConstraint; +import org.apache.hyracks.algebricks.core.algebra.expressions.IConflictingTypeResolver; +import org.apache.hyracks.algebricks.core.algebra.expressions.IExpressionEvalSizeComputer; +import org.apache.hyracks.algebricks.core.algebra.expressions.IExpressionTypeComputer; +import org.apache.hyracks.algebricks.core.algebra.expressions.IMergeAggregationExpressionFactory; +import org.apache.hyracks.algebricks.core.algebra.expressions.IMissableTypeComputer; +import org.apache.hyracks.algebricks.core.algebra.prettyprint.LogicalOperatorPrettyPrintVisitor; +import org.apache.hyracks.algebricks.core.rewriter.base.AlgebricksOptimizationContext; +import org.apache.hyracks.algebricks.core.rewriter.base.PhysicalOptimizationConfig; + +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; +import
Change in asterixdb[master]: [NO ISSUE][COMP] Make memory requirements an operator property
Hello Anon. E. Moose (1000171), Till Westmann, Ali Alsuliman, Jenkins, I'd like you to reexamine a change. Please visit https://asterix-gerrit.ics.uci.edu/3374 to look at the new patch set (#3). Change subject: [NO ISSUE][COMP] Make memory requirements an operator property .. [NO ISSUE][COMP] Make memory requirements an operator property - user model changes: no - storage format changes: no - interface changes: no Details: - Refactor how memory requirements are maintained in a query plan - Introduce LocalMemoryRequirements class. Its instances are held by each physical operator and could be altered by the optimizer. - Introduce optimizer rule SetMemoryRequirementsRule that initializes and configures memory requirements for each operator Change-Id: I3481ddfe163c6ce786290c540cbd05db16a7f64f --- M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/InvertedIndexPOperator.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/PushLimitIntoOrderByRule.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetAsterixPhysicalOperatorsRule.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/resource/OperatorResourcesComputer.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/ResourceUtils.java M asterixdb/asterix-app/src/test/java/org/apache/asterix/app/resource/PlanStagesGeneratorTest.java M asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/OptimizationConfUtil.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/IPhysicalOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractGroupByPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractJoinPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractPhysicalOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractPreclusteredGroupByPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractStableSortPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/ExternalGroupByPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/HybridHashJoinPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/InMemoryHashJoinPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/MicroPreclusteredGroupByPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/MicroStableSortPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/NestedLoopJoinPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/PreclusteredGroupByPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/SortGroupByPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/StableSortPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/WindowPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/WindowStreamPOperator.java A hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/LocalMemoryRequirements.java M hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/EnforceStructuralPropertiesRule.java A hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/HybridToInMemoryHashJoinRule.java M hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/PushGroupByIntoSortRule.java M
Change in asterixdb[master]: [NO ISSUE][CONF] Add compilation provider to NC application context
Dmitry Lychagin has submitted this change and it was merged. ( https://asterix-gerrit.ics.uci.edu/3378 ) Change subject: [NO ISSUE][CONF] Add compilation provider to NC application context .. [NO ISSUE][CONF] Add compilation provider to NC application context - user model changes: no - storage format changes: no - interface changes: no Details: - Create NCExtensionManager in NCApplication instead of NCAppRuntimeContext (aligned with how CCApplication creates CCExtensionManager) - Pass extension manager to application context via constructor instead of setter method (for both CC and NC contexts) - Move getExtensionManager() from ICcApplicationContext to IApplicationContext, so it's available in NC application context - Add compilation provider to NC application context (NCExtensionManager.getCompilationProvider()) - Add compilation provider to NCQueryServiceServlet constructor Change-Id: Ibb4dc6d8dbc00c8a701fddb1a3205d1070078cb4 Reviewed-on: https://asterix-gerrit.ics.uci.edu/3378 Contrib: Jenkins Integration-Tests: Jenkins Tested-by: Jenkins Reviewed-by: Till Westmann --- M asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCAppRuntimeContext.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCExtensionManager.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java M asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/IApplicationContext.java M asterixdb/asterix-common/src/main/java/org/apache/asterix/common/dataflow/ICcApplicationContext.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/CcApplicationContext.java 8 files changed, 61 insertions(+), 50 deletions(-) Approvals: Jenkins: Verified; ; Verified Till Westmann: Looks good to me, approved Objections: Jenkins: Violations found diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java index 5a6bdd7..8923ae8 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java @@ -39,6 +39,7 @@ import org.apache.asterix.common.exceptions.RuntimeDataException; import org.apache.asterix.common.messaging.api.INCMessageBroker; import org.apache.asterix.common.messaging.api.MessageFuture; +import org.apache.asterix.compiler.provider.ILangCompilationProvider; import org.apache.asterix.om.types.ARecordType; import org.apache.asterix.translator.IStatementExecutor; import org.apache.asterix.translator.ResultProperties; @@ -63,9 +64,9 @@ public class NCQueryServiceServlet extends QueryServiceServlet { public NCQueryServiceServlet(ConcurrentMap ctx, String[] paths, IApplicationContext appCtx, -ILangExtension.Language queryLanguage, +ILangExtension.Language queryLanguage, ILangCompilationProvider compilationProvider, Function> optionalParamProvider) { -super(ctx, paths, appCtx, queryLanguage, null, null, null, optionalParamProvider); +super(ctx, paths, appCtx, queryLanguage, compilationProvider, null, null, optionalParamProvider); } @Override diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCAppRuntimeContext.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCAppRuntimeContext.java index 182f982..e11302b 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCAppRuntimeContext.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCAppRuntimeContext.java @@ -21,9 +21,7 @@ import java.io.IOException; import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; -import java.util.ArrayList; import java.util.Arrays; -import java.util.List; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; @@ -42,21 +40,18 @@ import org.apache.asterix.common.api.IReceptionistFactory; import org.apache.asterix.common.cluster.ClusterPartition; import org.apache.asterix.common.config.ActiveProperties; -import org.apache.asterix.common.config.AsterixExtension; import org.apache.asterix.common.config.BuildProperties; import org.apache.asterix.common.config.CompilerProperties; import org.apache.asterix.common.config.ExternalProperties; import org.apache.asterix.common.config.MessagingProperties; import org.apache.asterix.common.config.MetadataProperties; import org.apache.asterix.common.config.NodeProperties; -import
Change in asterixdb[master]: [NO ISSUE][CONF] Add compilation provider to NC application context
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3378 ) Change subject: [NO ISSUE][CONF] Add compilation provider to NC application context .. Patch Set 2: (2 comments) https://asterix-gerrit.ics.uci.edu/#/c/3378/2/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java File asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java: https://asterix-gerrit.ics.uci.edu/#/c/3378/2/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java@206 PS2, Line 206: IOException, AsterixException > Just stick with "Exception" like most other methods in this class? done https://asterix-gerrit.ics.uci.edu/#/c/3378/2/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java File asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java: https://asterix-gerrit.ics.uci.edu/#/c/3378/2/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java@195 PS2, Line 195: IOException, AsterixException > Just stick with "Exception" like most other methods in this class? done -- To view, visit https://asterix-gerrit.ics.uci.edu/3378 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ibb4dc6d8dbc00c8a701fddb1a3205d1070078cb4 Gerrit-Change-Number: 3378 Gerrit-PatchSet: 2 Gerrit-Owner: Dmitry Lychagin Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Anon. E. Moose Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Ian Maxon Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Michael Blow Gerrit-Reviewer: Murtadha Hubail Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Mon, 06 May 2019 17:20:37 + Gerrit-HasComments: Yes
Change in asterixdb[master]: [NO ISSUE][CONF] Add compilation provider to NC application context
Hello sandeep.gu...@couchbase.com, Anon. E. Moose (1000171), Till Westmann, Ali Alsuliman, Jenkins, Michael Blow, Murtadha Hubail, Ian Maxon, I'd like you to reexamine a change. Please visit https://asterix-gerrit.ics.uci.edu/3378 to look at the new patch set (#3). Change subject: [NO ISSUE][CONF] Add compilation provider to NC application context .. [NO ISSUE][CONF] Add compilation provider to NC application context - user model changes: no - storage format changes: no - interface changes: no Details: - Create NCExtensionManager in NCApplication instead of NCAppRuntimeContext (aligned with how CCApplication creates CCExtensionManager) - Pass extension manager to application context via constructor instead of setter method (for both CC and NC contexts) - Move getExtensionManager() from ICcApplicationContext to IApplicationContext, so it's available in NC application context - Add compilation provider to NC application context (NCExtensionManager.getCompilationProvider()) - Add compilation provider to NCQueryServiceServlet constructor Change-Id: Ibb4dc6d8dbc00c8a701fddb1a3205d1070078cb4 --- M asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCAppRuntimeContext.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCExtensionManager.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java M asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/IApplicationContext.java M asterixdb/asterix-common/src/main/java/org/apache/asterix/common/dataflow/ICcApplicationContext.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/CcApplicationContext.java 8 files changed, 61 insertions(+), 50 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/78/3378/3 -- To view, visit https://asterix-gerrit.ics.uci.edu/3378 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ibb4dc6d8dbc00c8a701fddb1a3205d1070078cb4 Gerrit-Change-Number: 3378 Gerrit-PatchSet: 3 Gerrit-Owner: Dmitry Lychagin Gerrit-Reviewer: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Anon. E. Moose Gerrit-Reviewer: Ian Maxon Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Michael Blow Gerrit-Reviewer: Murtadha Hubail Gerrit-Reviewer: Till Westmann
Change in asterixdb[master]: [NO ISSUE][COMP] Make memory requirements an operator property
Hello Anon. E. Moose (1000171), Jenkins, I'd like you to reexamine a change. Please visit https://asterix-gerrit.ics.uci.edu/3374 to look at the new patch set (#2). Change subject: [NO ISSUE][COMP] Make memory requirements an operator property .. [NO ISSUE][COMP] Make memory requirements an operator property - user model changes: no - storage format changes: no - interface changes: no Details: - Refactor how memory requirements are maintained in a query plan - Introduce LocalMemoryRequirements class. Its instances are held by each physical operator and could be altered by the optimizer. - Introduce optimizer rule SetMemoryRequirementsRule that initializes and configures memory requirements for each operator Change-Id: I3481ddfe163c6ce786290c540cbd05db16a7f64f --- M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/InvertedIndexPOperator.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/PushLimitIntoOrderByRule.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetAsterixPhysicalOperatorsRule.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/resource/OperatorResourcesComputer.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/ResourceUtils.java M asterixdb/asterix-app/src/test/java/org/apache/asterix/app/resource/PlanStagesGeneratorTest.java M asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/OptimizationConfUtil.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/IPhysicalOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractGroupByPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractJoinPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractPhysicalOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractPreclusteredGroupByPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/AbstractStableSortPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/ExternalGroupByPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/HybridHashJoinPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/InMemoryHashJoinPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/MicroPreclusteredGroupByPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/MicroStableSortPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/NestedLoopJoinPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/PreclusteredGroupByPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/SortGroupByPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/StableSortPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/WindowPOperator.java M hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/WindowStreamPOperator.java A hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/properties/LocalMemoryRequirements.java M hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/EnforceStructuralPropertiesRule.java A hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/HybridToInMemoryHashJoinRule.java M hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/PushGroupByIntoSortRule.java M
Change in asterixdb[master]: [ASTERIXDB-2552][RT] Reuse objects on reseting buffer manager
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3372 ) Change subject: [ASTERIXDB-2552][RT] Reuse objects on reseting buffer manager .. Patch Set 2: Code-Review+1 -- To view, visit https://asterix-gerrit.ics.uci.edu/3372 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I88bea27e5024c621412ef609475e2a7ba1913afa Gerrit-Change-Number: 3372 Gerrit-PatchSet: 2 Gerrit-Owner: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Michael Blow Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Fri, 03 May 2019 17:30:39 + Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][CONF] Add compilation provider to NC application context
Dmitry Lychagin has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/3378 Change subject: [NO ISSUE][CONF] Add compilation provider to NC application context .. [NO ISSUE][CONF] Add compilation provider to NC application context - user model changes: no - storage format changes: no - interface changes: no Details: - Create NCExtensionManager in NCApplication instead of NCAppRuntimeContext (aligned with how CCApplication creates CCExtensionManager) - Pass extension manager to application context via constructor instead of setter method (for both CC and NC contexts) - Move getExtensionManager() from ICcApplicationContext to IApplicationContext, so it's available in NC application context - Add compilation provider to NC application context (NCExtensionManager.getCompilationProvider()) - Add compilation provider to NCQueryServiceServlet constructor Change-Id: Ibb4dc6d8dbc00c8a701fddb1a3205d1070078cb4 --- M asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCAppRuntimeContext.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCExtensionManager.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java M asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/IApplicationContext.java M asterixdb/asterix-common/src/main/java/org/apache/asterix/common/dataflow/ICcApplicationContext.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/CcApplicationContext.java 8 files changed, 63 insertions(+), 51 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/78/3378/1 diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java index 5a6bdd7..8923ae8 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java @@ -39,6 +39,7 @@ import org.apache.asterix.common.exceptions.RuntimeDataException; import org.apache.asterix.common.messaging.api.INCMessageBroker; import org.apache.asterix.common.messaging.api.MessageFuture; +import org.apache.asterix.compiler.provider.ILangCompilationProvider; import org.apache.asterix.om.types.ARecordType; import org.apache.asterix.translator.IStatementExecutor; import org.apache.asterix.translator.ResultProperties; @@ -63,9 +64,9 @@ public class NCQueryServiceServlet extends QueryServiceServlet { public NCQueryServiceServlet(ConcurrentMap ctx, String[] paths, IApplicationContext appCtx, -ILangExtension.Language queryLanguage, +ILangExtension.Language queryLanguage, ILangCompilationProvider compilationProvider, Function> optionalParamProvider) { -super(ctx, paths, appCtx, queryLanguage, null, null, null, optionalParamProvider); +super(ctx, paths, appCtx, queryLanguage, compilationProvider, null, null, optionalParamProvider); } @Override diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCAppRuntimeContext.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCAppRuntimeContext.java index 182f982..e11302b 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCAppRuntimeContext.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCAppRuntimeContext.java @@ -21,9 +21,7 @@ import java.io.IOException; import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; -import java.util.ArrayList; import java.util.Arrays; -import java.util.List; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; @@ -42,21 +40,18 @@ import org.apache.asterix.common.api.IReceptionistFactory; import org.apache.asterix.common.cluster.ClusterPartition; import org.apache.asterix.common.config.ActiveProperties; -import org.apache.asterix.common.config.AsterixExtension; import org.apache.asterix.common.config.BuildProperties; import org.apache.asterix.common.config.CompilerProperties; import org.apache.asterix.common.config.ExternalProperties; import org.apache.asterix.common.config.MessagingProperties; import org.apache.asterix.common.config.MetadataProperties; import org.apache.asterix.common.config.NodeProperties; -import org.apache.asterix.common.config.PropertiesAccessor; import org.apache.asterix.common.config.ReplicationProperties; import org.apache.asterix.common.config.StorageProperties; import
Change in asterixdb[master]: [NO ISSUE][FUN] Move negative tests to seperate test unit
Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/3371 ) Change subject: [NO ISSUE][FUN] Move negative tests to seperate test unit .. Patch Set 1: Code-Review+2 -- To view, visit https://asterix-gerrit.ics.uci.edu/3371 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0a3bfce402e4b7091c40483b5802db7b27afa717 Gerrit-Change-Number: 3371 Gerrit-PatchSet: 1 Gerrit-Owner: Ali Alsuliman Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Dmitry Lychagin Gerrit-Reviewer: Jenkins Gerrit-Reviewer: Michael Blow Gerrit-Reviewer: Till Westmann Gerrit-Comment-Date: Thu, 02 May 2019 17:18:31 + Gerrit-HasComments: No