Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-30 Thread Dmitry Lychagin (Code Review)
Dmitry Lychagin has submitted this change and it was merged.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


[ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, if_null functions

- user model changes: no
- storage format changes: no
- interface changes: no

Details:
- Introduce cast operation for parameters of if_missing, if_null functions
  (as performed for parameters of the switch_case function)
- Fix union type handling in TypeResolverUtil.generalizeTypes()

Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Reviewed-on: https://asterix-gerrit.ics.uci.edu/2935
Tested-by: Jenkins 
Integration-Tests: Jenkins 
Reviewed-by: Till Westmann 
---
M 
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/InjectTypeCastForSwitchCaseRule.java
M 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/null-missing/ifmissing/ifmissing.1.query.sqlpp
M 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/null-missing/ifmissingornull/ifmissingornull.1.query.sqlpp
M 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/null-missing/ifnull/ifnull.1.query.sqlpp
M 
asterixdb/asterix-app/src/test/resources/runtimets/results/null-missing/ifmissing/ifmissing.1.adm
M 
asterixdb/asterix-app/src/test/resources/runtimets/results/null-missing/ifmissingornull/ifmissingornull.1.adm
M 
asterixdb/asterix-app/src/test/resources/runtimets/results/null-missing/ifnull/ifnull.1.adm
M 
asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/common/TypeResolverUtil.java
8 files changed, 81 insertions(+), 19 deletions(-)

Approvals:
  Anon. E. Moose #1000171: 
  Till Westmann: Looks good to me, approved
  Jenkins: Verified; Verified

Objections:
  Jenkins: Violations found



diff --git 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/InjectTypeCastForSwitchCaseRule.java
 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/InjectTypeCastForSwitchCaseRule.java
index fa9385a..683d29f 100644
--- 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/InjectTypeCastForSwitchCaseRule.java
+++ 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/InjectTypeCastForSwitchCaseRule.java
@@ -22,6 +22,7 @@
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.Set;
 
 import org.apache.asterix.dataflow.data.common.TypeResolverUtil;
 import org.apache.asterix.lang.common.util.FunctionUtil;
@@ -38,13 +39,22 @@
 import 
org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression;
 import 
org.apache.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
 import 
org.apache.hyracks.algebricks.core.algebra.expressions.ScalarFunctionCallExpression;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
 import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
 
+import com.google.common.collect.ImmutableSet;
+
 /**
- * This rule injects cast functions for "THEN" and "ELSE" branches of a 
switch-case function if
- * different "THEN" and "ELSE" branches have heterogeneous return types.
+ * This rule injects casts for function parameters if they have heterogeneous 
return types:
+ * 
+ * for "THEN" and "ELSE" branches of a switch-case function
+ * for parameters of "if missing/null" functions  (if-missing(), 
if-null(), if-missing-or-null())
+ * 
  */
 public class InjectTypeCastForSwitchCaseRule implements IAlgebraicRewriteRule {
+
+private static final Set IF_FUNCTIONS =
+ImmutableSet.of(BuiltinFunctions.IF_MISSING, 
BuiltinFunctions.IF_NULL, BuiltinFunctions.IF_MISSING_OR_NULL);
 
 @Override
 public boolean rewritePost(Mutable opRef, 
IOptimizationContext context)
@@ -80,10 +90,17 @@
 rewritten = true;
 }
 }
-if 
(!func.getFunctionIdentifier().equals(BuiltinFunctions.SWITCH_CASE)) {
-return rewritten;
+FunctionIdentifier funcId = func.getFunctionIdentifier();
+if (funcId.equals(BuiltinFunctions.SWITCH_CASE)) {
+if (rewriteSwitchCase(op, func, context)) {
+rewritten = true;
+}
+} else if (IF_FUNCTIONS.contains(funcId)) {
+if (rewriteFunction(op, func, context)) {
+rewritten = true;
+}
 }
-return rewriteSwitchCase(op, func, context);
+return rewritten;
 }
 
 // Injects casts that cast types for different "THEN" and "ELSE" branches.
@@ -96,20 +113,44 @@
 boolean rewritten = false;
 for (int argIndex = 2; argIndex < argSize; argIndex += (argIndex + 2 
== argSize) ? 1 : 2) {
 Mutable argRef = argRefs.get(argIndex);
-IAType type = (IAType) 

Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-30 Thread Till Westmann (Code Review)
Till Westmann has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 3: Code-Review+2

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Dmitry Lychagin 
Gerrit-Reviewer: Jenkins 
Gerrit-Reviewer: Michael Blow 
Gerrit-Reviewer: Till Westmann 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-30 Thread Dmitry Lychagin (Code Review)
Dmitry Lychagin has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 3:

(1 comment)

https://asterix-gerrit.ics.uci.edu/#/c/2935/3/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/InjectTypeCastForSwitchCaseRule.java
File 
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/InjectTypeCastForSwitchCaseRule.java:

Line 99: if (rewriteFunction(op, func, context)) {
> consider this?
I'd keep it as is. It looks aligned with the previous block (lines 94-97) and 
we cannot merge 2 ifs in that one.


-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Dmitry Lychagin 
Gerrit-Reviewer: Jenkins 
Gerrit-Reviewer: Michael Blow 
Gerrit-Reviewer: Till Westmann 
Gerrit-HasComments: Yes


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-30 Thread Michael Blow (Code Review)
Michael Blow has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 3:

(1 comment)

https://asterix-gerrit.ics.uci.edu/#/c/2935/3/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/InjectTypeCastForSwitchCaseRule.java
File 
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/InjectTypeCastForSwitchCaseRule.java:

Line 99: if (rewriteFunction(op, func, context)) {
> MAJOR SonarQube violation:
consider this?


-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-Reviewer: Michael Blow 
Gerrit-Reviewer: Till Westmann 
Gerrit-HasComments: Yes


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Anon. E. Moose (Code Review)
Anon. E. Moose #1000171 has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 3: Contrib+1

Analytics Compatibility Tests Successful
https://goo.gl/syHZ3A : SUCCESS

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 3: Integration-Tests+1

Integration Tests Successful

https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/7252/ 
: SUCCESS

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Anon. E. Moose (Code Review)
Anon. E. Moose #1000171 has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 3:

Analytics Compatibility Compilation Successful
https://goo.gl/zo5eBp : SUCCESS

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 3:

Integration Tests Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/7252/

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 3:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-asterix-app-sql-execution/4428/
 (11/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 3:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-verify-no-installer-app/4779/
 (6/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 3:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-cancellation-test/4427/ 
(8/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 3:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-sonar/8365/ (3/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 3:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-source-assemblies/4647/ 
(5/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 3:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-verify-asterix-app/4817/ 
(7/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 3:

Build Started https://asterix-jenkins.ics.uci.edu/job/hyracks-gerrit/4338/ 
(2/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 3:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-notopic/9904/ (9/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 3:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-source-format/4393/ 
(10/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 3:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-verify-storage/4985/ (1/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 3:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-ensure-ancestor/2439/ 
(4/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 2:

Integration Tests Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/7251/

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Anon. E. Moose (Code Review)
Anon. E. Moose #1000171 has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 2: Contrib-2

Analytics Compatibility Compilation Failed
https://goo.gl/9VsX2e : UNSTABLE

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 2:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-verify-asterix-app/4816/ 
(6/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Dmitry Lychagin (Code Review)
Hello Jenkins,

I'd like you to reexamine a change.  Please visit

https://asterix-gerrit.ics.uci.edu/2935

to look at the new patch set (#2).

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..

[ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, if_null functions

- user model changes: no
- storage format changes: no
- interface changes: no

Details:
- Introduce cast operation for parameters of if_missing, if_null functions
  (as performed for parameters of the switch_case function)
- Fix union type handling in TypeResolverUtil.generalizeTypes()

Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
---
M 
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/InjectTypeCastForSwitchCaseRule.java
M 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/null-missing/ifmissing/ifmissing.1.query.sqlpp
M 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/null-missing/ifmissingornull/ifmissingornull.1.query.sqlpp
M 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/null-missing/ifnull/ifnull.1.query.sqlpp
M 
asterixdb/asterix-app/src/test/resources/runtimets/results/null-missing/ifmissing/ifmissing.1.adm
M 
asterixdb/asterix-app/src/test/resources/runtimets/results/null-missing/ifmissingornull/ifmissingornull.1.adm
M 
asterixdb/asterix-app/src/test/resources/runtimets/results/null-missing/ifnull/ifnull.1.adm
M 
asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/common/TypeResolverUtil.java
8 files changed, 81 insertions(+), 19 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/35/2935/2
-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 2:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-verify-no-installer-app/4778/
 (3/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 2:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-notopic/9903/ (10/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 2:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-verify-storage/4984/ (1/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 2:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-source-format/4392/ 
(9/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 2:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-sonar/8364/ (8/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 2:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-ensure-ancestor/2438/ 
(2/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 2:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-source-assemblies/4646/ 
(4/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 2:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-asterix-app-sql-execution/4427/
 (11/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 2:

Build Started https://asterix-jenkins.ics.uci.edu/job/hyracks-gerrit/4337/ 
(7/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 2:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-cancellation-test/4426/ 
(5/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 1: Integration-Tests+1

Integration Tests Successful

https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/7250/ 
: SUCCESS

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 1:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-verify-no-installer-app/4777/
 (11/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 1:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-verify-asterix-app/4815/ 
(10/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Anon. E. Moose (Code Review)
Anon. E. Moose #1000171 has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 1:

Analytics Compatibility Compilation Successful
https://goo.gl/9UUsQV : SUCCESS

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 1:

Integration Tests Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/7250/

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Dmitry Lychagin (Code Review)
Dmitry Lychagin has uploaded a new change for review.

  https://asterix-gerrit.ics.uci.edu/2935

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..

[ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, if_null functions

- user model changes: no
- storage format changes: no
- interface changes: no

Details:
- Introduce cast operation for parameters of if_missing, if_null functions
  (as performed for parameters of the switch_case function)
- Fix union type handling in TypeResolverUtil.generalizeTypes()

Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
---
M 
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/InjectTypeCastForSwitchCaseRule.java
M 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/null-missing/ifmissing/ifmissing.1.query.sqlpp
M 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/null-missing/ifmissingornull/ifmissingornull.1.query.sqlpp
M 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/null-missing/ifnull/ifnull.1.query.sqlpp
M 
asterixdb/asterix-app/src/test/resources/runtimets/results/null-missing/ifmissing/ifmissing.1.adm
M 
asterixdb/asterix-app/src/test/resources/runtimets/results/null-missing/ifmissingornull/ifmissingornull.1.adm
M 
asterixdb/asterix-app/src/test/resources/runtimets/results/null-missing/ifnull/ifnull.1.adm
M 
asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/common/TypeResolverUtil.java
8 files changed, 77 insertions(+), 18 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/35/2935/1

diff --git 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/InjectTypeCastForSwitchCaseRule.java
 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/InjectTypeCastForSwitchCaseRule.java
index fa9385a..3da835b 100644
--- 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/InjectTypeCastForSwitchCaseRule.java
+++ 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/InjectTypeCastForSwitchCaseRule.java
@@ -22,6 +22,7 @@
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.Set;
 
 import org.apache.asterix.dataflow.data.common.TypeResolverUtil;
 import org.apache.asterix.lang.common.util.FunctionUtil;
@@ -38,13 +39,22 @@
 import 
org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression;
 import 
org.apache.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
 import 
org.apache.hyracks.algebricks.core.algebra.expressions.ScalarFunctionCallExpression;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
 import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
 
+import com.google.common.collect.ImmutableSet;
+
 /**
- * This rule injects cast functions for "THEN" and "ELSE" branches of a 
switch-case function if
- * different "THEN" and "ELSE" branches have heterogeneous return types.
+ * This rule injects casts for function parameters if they have heterogeneous 
return types:
+ * 
+ * for "THEN" and "ELSE" branches of a switch-case function
+ * for parameters of "if missing/null" functions  (if-missing(), 
if-null(), if-missing-or-null())
+ * 
  */
 public class InjectTypeCastForSwitchCaseRule implements IAlgebraicRewriteRule {
+
+private static final Set IF_FUNCTIONS =
+ImmutableSet.of(BuiltinFunctions.IF_MISSING, 
BuiltinFunctions.IF_NULL, BuiltinFunctions.IF_MISSING_OR_NULL);
 
 @Override
 public boolean rewritePost(Mutable opRef, 
IOptimizationContext context)
@@ -80,10 +90,14 @@
 rewritten = true;
 }
 }
-if 
(!func.getFunctionIdentifier().equals(BuiltinFunctions.SWITCH_CASE)) {
+FunctionIdentifier funcId = func.getFunctionIdentifier();
+if (funcId.equals(BuiltinFunctions.SWITCH_CASE)) {
+return rewriteSwitchCase(op, func, context);
+} else if (IF_FUNCTIONS.contains(funcId)) {
+return rewriteFunction(op, func, context);
+} else {
 return rewritten;
 }
-return rewriteSwitchCase(op, func, context);
 }
 
 // Injects casts that cast types for different "THEN" and "ELSE" branches.
@@ -96,20 +110,44 @@
 boolean rewritten = false;
 for (int argIndex = 2; argIndex < argSize; argIndex += (argIndex + 2 
== argSize) ? 1 : 2) {
 Mutable argRef = argRefs.get(argIndex);
-IAType type = (IAType) 
env.getType(argRefs.get(argIndex).getValue());
-if (TypeResolverUtil.needsCast(producedType, type)) {
-ILogicalExpression argExpr = argRef.getValue();
-// Injects a cast call to cast the data type to the produced 
type of the switch-case function call.
-   

Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 1:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-sonar/8363/ (2/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 1:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-notopic/9902/ (8/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 1:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-ensure-ancestor/2437/ 
(6/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 1:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-cancellation-test/4425/ 
(3/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 1:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-verify-storage/4983/ (5/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 1:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-source-assemblies/4645/ 
(4/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 1:

Build Started https://asterix-jenkins.ics.uci.edu/job/hyracks-gerrit/4336/ 
(7/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 1:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-asterix-app-sql-execution/4426/
 (1/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[stabilization-f69489]: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, i...

2018-08-28 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2447][COMP] Parameter rewriting for if_missing, 
if_null functions
..


Patch Set 1:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-source-format/4391/ 
(9/11)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2935
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I768d8236f5b0ccb9a850304ffedd3686d911702d
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: stabilization-f69489
Gerrit-Owner: Dmitry Lychagin 
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No