Repository: phoenix Updated Branches: refs/heads/4.x-HBase-0.98 4d957ee3c -> c00c03700
PHOENIX-1769 Exception thrown when TO_DATE function used as LHS in WHERE-clause Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/c00c0370 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/c00c0370 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/c00c0370 Branch: refs/heads/4.x-HBase-0.98 Commit: c00c03700f8e8cba085d79d23c3595e358784faf Parents: 4d957ee Author: Soumen <soume...@users.noreply.github.com> Authored: Tue Apr 14 14:56:45 2015 -0700 Committer: Thomas <tdsi...@salesforce.com> Committed: Wed Apr 22 12:46:19 2015 -0700 ---------------------------------------------------------------------- .../phoenix/end2end/ToDateFunctionIT.java | 46 ++++++++++++++------ 1 file changed, 32 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/c00c0370/phoenix-core/src/it/java/org/apache/phoenix/end2end/ToDateFunctionIT.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ToDateFunctionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ToDateFunctionIT.java index 8de39b7..dbe47ca 100644 --- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ToDateFunctionIT.java +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ToDateFunctionIT.java @@ -18,26 +18,17 @@ package org.apache.phoenix.end2end; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - -import java.sql.Connection; -import java.sql.Date; -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; -import java.sql.Time; -import java.sql.Timestamp; -import java.util.Properties; - import org.apache.phoenix.query.QueryServices; import org.apache.phoenix.schema.TypeMismatchException; import org.junit.After; import org.junit.Before; import org.junit.Test; +import java.sql.*; +import java.util.Properties; + +import static org.junit.Assert.*; + public class ToDateFunctionIT extends BaseHBaseManagedTimeIT { @@ -233,4 +224,31 @@ public class ToDateFunctionIT extends BaseHBaseManagedTimeIT { conn.close(); } } + + @Test + public void testVarcharToDateComparision() throws SQLException { + final String dateString1 = "1900-01-02"; + final String dateString2 = "2100-01-01"; + + conn.prepareStatement( + "CREATE TABLE SB(" + + "DATE_STRING VARCHAR(50) NOT NULL " + + "CONSTRAINT PK PRIMARY KEY (DATE_STRING))").execute(); + conn.commit(); + + String upsertSql = String.format("upsert into SB values (?)"); + PreparedStatement stmt = conn.prepareStatement(upsertSql); + stmt.setString(1, dateString1); + stmt.execute(); + stmt.setString(1, dateString2); + stmt.execute(); + conn.commit(); + + String selectSql = "SELECT DATE_STRING FROM SB WHERE TO_DATE(DATE_STRING) > TO_DATE('2001-01-01')"; + ResultSet rs = conn.prepareStatement(selectSql).executeQuery(); + assertTrue(rs.next()); + String obtainedString = rs.getString("DATE_STRING"); + assertEquals("Did not get value that was inserted!!", dateString2, obtainedString); + assertFalse("No more rows expected!!", rs.next()); + } }