Change in asterixdb[master]: [NO ISSUE][COMP] Option to disable DisjunctivePredicateToJoinRule

2019-06-28 Thread Dmitry Lychagin (Code Review)
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

2019-06-27 Thread Dmitry Lychagin (Code Review)
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

2019-06-27 Thread Dmitry Lychagin (Code Review)
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

2019-06-26 Thread Dmitry Lychagin (Code Review)
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

2019-06-26 Thread Dmitry Lychagin (Code Review)
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

2019-06-26 Thread Dmitry Lychagin (Code Review)
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

2019-06-25 Thread Dmitry Lychagin (Code Review)
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

2019-06-25 Thread Dmitry Lychagin (Code Review)
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

2019-06-25 Thread Dmitry Lychagin (Code Review)
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

2019-06-24 Thread Dmitry Lychagin (Code Review)
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

2019-06-21 Thread Dmitry Lychagin (Code Review)
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

2019-06-21 Thread Dmitry Lychagin (Code Review)
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

2019-06-21 Thread Dmitry Lychagin (Code Review)
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

2019-06-21 Thread Dmitry Lychagin (Code Review)
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

2019-06-20 Thread Dmitry Lychagin (Code Review)
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

2019-06-19 Thread Dmitry Lychagin (Code Review)
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.

2019-06-19 Thread Dmitry Lychagin (Code Review)
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

2019-06-18 Thread Dmitry Lychagin (Code Review)
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

2019-06-18 Thread Dmitry Lychagin (Code Review)
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()

2019-06-18 Thread Dmitry Lychagin (Code Review)
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()

2019-06-17 Thread Dmitry Lychagin (Code Review)
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()

2019-06-17 Thread Dmitry Lychagin (Code Review)
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

2019-06-17 Thread Dmitry Lychagin (Code Review)
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.

2019-06-17 Thread Dmitry Lychagin (Code Review)
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

2019-06-17 Thread Dmitry Lychagin (Code Review)
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()

2019-06-17 Thread Dmitry Lychagin (Code Review)
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()

2019-06-14 Thread Dmitry Lychagin (Code Review)
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()

2019-06-14 Thread Dmitry Lychagin (Code Review)
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

2019-06-13 Thread Dmitry Lychagin (Code Review)
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

2019-06-13 Thread Dmitry Lychagin (Code Review)
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

2019-06-13 Thread Dmitry Lychagin (Code Review)
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()

2019-06-13 Thread Dmitry Lychagin (Code Review)
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

2019-06-12 Thread Dmitry Lychagin (Code Review)
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()

2019-06-12 Thread Dmitry Lychagin (Code Review)
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()

2019-06-12 Thread Dmitry Lychagin (Code Review)
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

2019-06-11 Thread Dmitry Lychagin (Code Review)
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

2019-06-11 Thread Dmitry Lychagin (Code Review)
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

2019-06-11 Thread Dmitry Lychagin (Code Review)
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

2019-06-10 Thread Dmitry Lychagin (Code Review)
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

2019-06-10 Thread Dmitry Lychagin (Code Review)
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

2019-06-10 Thread Dmitry Lychagin (Code Review)
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

2019-06-10 Thread Dmitry Lychagin (Code Review)
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

2019-06-10 Thread Dmitry Lychagin (Code Review)
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

2019-06-06 Thread Dmitry Lychagin (Code Review)
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

2019-06-06 Thread Dmitry Lychagin (Code Review)
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

2019-06-06 Thread Dmitry Lychagin (Code Review)
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

2019-06-06 Thread Dmitry Lychagin (Code Review)
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

2019-06-05 Thread Dmitry Lychagin (Code Review)
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

2019-06-05 Thread Dmitry Lychagin (Code Review)
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

2019-06-05 Thread Dmitry Lychagin (Code Review)
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

2019-06-05 Thread Dmitry Lychagin (Code Review)
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

2019-06-04 Thread Dmitry Lychagin (Code Review)
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

2019-06-04 Thread Dmitry Lychagin (Code Review)
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()

2019-06-04 Thread Dmitry Lychagin (Code Review)
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

2019-06-03 Thread Dmitry Lychagin (Code Review)
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

2019-06-03 Thread Dmitry Lychagin (Code Review)
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

2019-05-31 Thread Dmitry Lychagin (Code Review)
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()

2019-05-31 Thread Dmitry Lychagin (Code Review)
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()

2019-05-30 Thread Dmitry Lychagin (Code Review)
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

2019-05-29 Thread Dmitry Lychagin (Code Review)
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

2019-05-28 Thread Dmitry Lychagin (Code Review)
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

2019-05-28 Thread Dmitry Lychagin (Code Review)
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

2019-05-28 Thread Dmitry Lychagin (Code Review)
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

2019-05-28 Thread Dmitry Lychagin (Code Review)
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

2019-05-28 Thread Dmitry Lychagin (Code Review)
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

2019-05-24 Thread Dmitry Lychagin (Code Review)
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

2019-05-24 Thread Dmitry Lychagin (Code Review)
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

2019-05-23 Thread Dmitry Lychagin (Code Review)
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

2019-05-22 Thread Dmitry Lychagin (Code Review)
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

2019-05-22 Thread Dmitry Lychagin (Code Review)
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

2019-05-21 Thread Dmitry Lychagin (Code Review)
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

2019-05-21 Thread Dmitry Lychagin (Code Review)
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

2019-05-21 Thread Dmitry Lychagin (Code Review)
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

2019-05-21 Thread Dmitry Lychagin (Code Review)
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

2019-05-21 Thread Dmitry Lychagin (Code Review)
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

2019-05-20 Thread Dmitry Lychagin (Code Review)
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

2019-05-20 Thread Dmitry Lychagin (Code Review)
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

2019-05-16 Thread Dmitry Lychagin (Code Review)
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

2019-05-15 Thread Dmitry Lychagin (Code Review)
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

2019-05-15 Thread Dmitry Lychagin (Code Review)
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

2019-05-14 Thread Dmitry Lychagin (Code Review)
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()

2019-05-13 Thread Dmitry Lychagin (Code Review)
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

2019-05-10 Thread Dmitry Lychagin (Code Review)
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

2019-05-10 Thread Dmitry Lychagin (Code Review)
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

2019-05-09 Thread Dmitry Lychagin (Code Review)
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

2019-05-09 Thread Dmitry Lychagin (Code Review)
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

2019-05-09 Thread Dmitry Lychagin (Code Review)
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

2019-05-09 Thread Dmitry Lychagin (Code Review)
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

2019-05-09 Thread Dmitry Lychagin (Code Review)
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

2019-05-09 Thread Dmitry Lychagin (Code Review)
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

2019-05-08 Thread Dmitry Lychagin (Code Review)
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

2019-05-08 Thread Dmitry Lychagin (Code Review)
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

2019-05-07 Thread Dmitry Lychagin (Code Review)
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

2019-05-07 Thread Dmitry Lychagin (Code Review)
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

2019-05-06 Thread Dmitry Lychagin (Code Review)
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

2019-05-06 Thread Dmitry Lychagin (Code Review)
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

2019-05-06 Thread Dmitry Lychagin (Code Review)
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

2019-05-03 Thread Dmitry Lychagin (Code Review)
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

2019-05-02 Thread Dmitry Lychagin (Code Review)
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

2019-05-02 Thread Dmitry Lychagin (Code Review)
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


  1   2   3   4   5   6   7   8   9   >