You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by ma...@apache.org on 2017/03/17 18:11:24 UTC

phoenix git commit: PHOENIX-3743 Add Row-Value-Constructor support

Repository: phoenix
Updated Branches:
  refs/heads/calcite db78bd6fd -> cc9115cb0


PHOENIX-3743 Add Row-Value-Constructor support


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/cc9115cb
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/cc9115cb
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/cc9115cb

Branch: refs/heads/calcite
Commit: cc9115cb07e35a7f7587a17715e77a12efffe984
Parents: db78bd6
Author: maryannxue <ma...@gmail.com>
Authored: Fri Mar 17 11:11:18 2017 -0700
Committer: maryannxue <ma...@gmail.com>
Committed: Fri Mar 17 11:11:18 2017 -0700

----------------------------------------------------------------------
 .../org/apache/phoenix/calcite/CalciteUtils.java   | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/cc9115cb/phoenix-core/src/main/java/org/apache/phoenix/calcite/CalciteUtils.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/calcite/CalciteUtils.java b/phoenix-core/src/main/java/org/apache/phoenix/calcite/CalciteUtils.java
index d37306a..0b098f0 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/calcite/CalciteUtils.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/calcite/CalciteUtils.java
@@ -88,6 +88,7 @@ import org.apache.phoenix.expression.ModulusExpression;
 import org.apache.phoenix.expression.NotExpression;
 import org.apache.phoenix.expression.OrExpression;
 import org.apache.phoenix.expression.ReinterpretCastExpression;
+import org.apache.phoenix.expression.RowValueConstructorExpression;
 import org.apache.phoenix.expression.StringBasedLikeExpression;
 import org.apache.phoenix.expression.TimestampAddExpression;
 import org.apache.phoenix.expression.TimestampSubtractExpression;
@@ -719,6 +720,22 @@ public class CalciteUtils {
 			}
 			
 		});
+        EXPRESSION_MAP.put(SqlKind.ROW, new ExpressionFactory() {
+
+            @Override
+            public Expression newExpression(RexNode node, PhoenixRelImplementor implementor) {
+                List<Expression> children = convertChildren((RexCall) node, implementor);
+                boolean isConstant = true;
+                for (Expression child : children) {
+                    if (!child.isStateless()) {
+                        isConstant = false;
+                        break;
+                    }
+                }
+                return new RowValueConstructorExpression(children, isConstant);
+            }
+            
+        });
 		EXPRESSION_MAP.put(SqlKind.INPUT_REF, new ExpressionFactory() {
 
 			@Override