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);
}