You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by ja...@apache.org on 2018/09/24 15:28:28 UTC

[23/50] [abbrv] phoenix git commit: PHOENIX-4647 Column header doesn't handle optional arguments correctly

PHOENIX-4647 Column header doesn't handle optional arguments correctly


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

Branch: refs/heads/omid2
Commit: 913a85576aa9d0d7903b584d46c41af16dcee3af
Parents: 58570bb
Author: Xu Cang <xc...@salesforce.com>
Authored: Mon Aug 6 23:56:00 2018 -0700
Committer: Thomas D'Silva <td...@apache.org>
Committed: Wed Aug 8 16:33:18 2018 -0700

----------------------------------------------------------------------
 .../expression/function/SubstrFunction.java     | 20 ++++++++++++++++++++
 .../phoenix/compile/WhereOptimizerTest.java     | 12 ++++++++++++
 .../java/org/apache/phoenix/util/TestUtil.java  |  5 +++++
 3 files changed, 37 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/913a8557/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SubstrFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SubstrFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SubstrFunction.java
index feaa07a..0d6d1c9 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SubstrFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SubstrFunction.java
@@ -211,5 +211,25 @@ public class SubstrFunction extends PrefixFunction {
     public String getName() {
         return NAME;
     }
+
+    @Override
+    public String toString() {
+        StringBuilder buf = new StringBuilder(getName() + "(");
+        if (children.size()==0)
+            return buf.append(")").toString();
+        if (hasLengthExpression) {
+            buf.append(getStrExpression());
+            buf.append(", ");
+            buf.append(getOffsetExpression());
+            buf.append(", ");
+            buf.append(getLengthExpression());
+         } else {
+            buf.append(getStrExpression());
+            buf.append(", ");
+            buf.append(getOffsetExpression());
+        }
+        buf.append(")");
+        return buf.toString();
+    }
     
 }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/913a8557/phoenix-core/src/test/java/org/apache/phoenix/compile/WhereOptimizerTest.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/test/java/org/apache/phoenix/compile/WhereOptimizerTest.java b/phoenix-core/src/test/java/org/apache/phoenix/compile/WhereOptimizerTest.java
index e5555d6..cc6f55a 100644
--- a/phoenix-core/src/test/java/org/apache/phoenix/compile/WhereOptimizerTest.java
+++ b/phoenix-core/src/test/java/org/apache/phoenix/compile/WhereOptimizerTest.java
@@ -29,6 +29,7 @@ import static org.apache.phoenix.util.TestUtil.like;
 import static org.apache.phoenix.util.TestUtil.not;
 import static org.apache.phoenix.util.TestUtil.rowKeyFilter;
 import static org.apache.phoenix.util.TestUtil.substr;
+import static org.apache.phoenix.util.TestUtil.substr2;
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -62,6 +63,7 @@ import org.apache.phoenix.compile.WhereOptimizer.KeyExpressionVisitor.SingleKeyS
 import org.apache.phoenix.compile.WhereOptimizer.KeyExpressionVisitor.SlotsIterator;
 import org.apache.phoenix.compile.WhereOptimizer.KeyExpressionVisitor.TrailingRangeIterator;
 import org.apache.phoenix.expression.Expression;
+import org.apache.phoenix.expression.function.SubstrFunction;
 import org.apache.phoenix.filter.BooleanExpressionFilter;
 import org.apache.phoenix.filter.RowKeyComparisonFilter;
 import org.apache.phoenix.filter.SingleCQKeyValueComparisonFilter;
@@ -590,6 +592,16 @@ public class WhereOptimizerTest extends BaseConnectionlessQueryTest {
     }
 
     @Test
+    public void testSubstrExpressionWithoutLengthVariable() {
+        assertEquals("SUBSTR(ENTITY_ID, 1)",((SubstrFunction)substr2(ENTITY_ID,1)).toString());
+    }
+
+    @Test
+    public void testSubstrExpressionWithLengthVariable() {
+        assertEquals("SUBSTR(ENTITY_ID, 1, 10)",((SubstrFunction)substr(ENTITY_ID,1, 10)).toString());
+    }
+
+    @Test
     public void testTrailingSubstrExpression() throws SQLException {
         String tenantId = "0xD000000000001";
         String entityId = "002333333333333";

http://git-wip-us.apache.org/repos/asf/phoenix/blob/913a8557/phoenix-core/src/test/java/org/apache/phoenix/util/TestUtil.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/test/java/org/apache/phoenix/util/TestUtil.java b/phoenix-core/src/test/java/org/apache/phoenix/util/TestUtil.java
index 1683a13..0def76f 100644
--- a/phoenix-core/src/test/java/org/apache/phoenix/util/TestUtil.java
+++ b/phoenix-core/src/test/java/org/apache/phoenix/util/TestUtil.java
@@ -352,6 +352,11 @@ public class TestUtil {
         return  new SubstrFunction(Arrays.asList(e, LiteralExpression.newConstant(offset), LiteralExpression.newConstant(length)));
     }
 
+    public static Expression substr2(Expression e, Object offset) {
+
+        return  new SubstrFunction(Arrays.asList(e, LiteralExpression.newConstant(offset), LiteralExpression.newConstant(null)));
+    }
+
     public static Expression columnComparison(CompareOp op, Expression c1, Expression c2) {
         return  new ComparisonExpression(Arrays.<Expression>asList(c1, c2), op);
     }