You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by el...@apache.org on 2016/06/22 01:36:40 UTC
[2/4] phoenix git commit: PHOENIX-3013 TO_CHAR fails to handle
indexed null value (Junegunn Choi)
PHOENIX-3013 TO_CHAR fails to handle indexed null value (Junegunn Choi)
Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/847e90c4
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/847e90c4
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/847e90c4
Branch: refs/heads/4.x-HBase-1.1
Commit: 847e90c4b15c9307cd0a480e80c0a98de0e968f2
Parents: dcda00c
Author: Josh Elser <el...@apache.org>
Authored: Tue Jun 21 18:50:47 2016 -0400
Committer: Josh Elser <el...@apache.org>
Committed: Tue Jun 21 21:23:55 2016 -0400
----------------------------------------------------------------------
.../apache/phoenix/end2end/ToCharFunctionIT.java | 19 +++++++++++++++++++
.../expression/function/ToCharFunction.java | 3 +++
2 files changed, 22 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/phoenix/blob/847e90c4/phoenix-core/src/it/java/org/apache/phoenix/end2end/ToCharFunctionIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ToCharFunctionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ToCharFunctionIT.java
index 7cb4b54..72544f2 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ToCharFunctionIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ToCharFunctionIT.java
@@ -255,4 +255,23 @@ public class ToCharFunctionIT extends BaseHBaseManagedTimeTableReuseIT {
assertEquals("Unexpected value for date ", String.valueOf(1234), rs.getString(1));
assertFalse(rs.next());
}
+
+ @Test
+ public void testIndexedNull() throws SQLException {
+ final String tableName = generateRandomString();
+ Connection conn = DriverManager.getConnection(getUrl());
+ conn.createStatement().execute("create table " + tableName +
+ " (id integer primary key, ts1 timestamp, ts2 timestamp)");
+ conn.createStatement().execute("create index t_ts2_idx on " + tableName + " (ts2)");
+ conn.createStatement().execute("upsert into " + tableName + " values (1, null, null)");
+ conn.commit();
+ for (String columnName : new String[]{"ts1", "ts2"}) {
+ try (ResultSet rs = conn.createStatement().executeQuery(
+ String.format("select to_char(%s) from %s", columnName, tableName))) {
+ assertTrue(rs.next());
+ assertEquals(null, rs.getString(1));
+ }
+ }
+ conn.close();
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/phoenix/blob/847e90c4/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ToCharFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ToCharFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ToCharFunction.java
index d284e25..be40723 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ToCharFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ToCharFunction.java
@@ -102,6 +102,9 @@ public class ToCharFunction extends ScalarFunction {
if (!expression.evaluate(tuple, ptr)) {
return false;
}
+ if (ptr.getLength() == 0) {
+ return true;
+ }
PDataType type = expression.getDataType();
Object value = formatter.format(type.toObject(ptr, expression.getSortOrder()));
byte[] b = getDataType().toBytes(value);