You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by td...@apache.org on 2015/04/22 21:46:29 UTC

phoenix git commit: PHOENIX-1769 Exception thrown when TO_DATE function used as LHS in WHERE-clause

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 <so...@users.noreply.github.com>
Authored: Tue Apr 14 14:56:45 2015 -0700
Committer: Thomas <td...@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());
+    }
 }