You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by ja...@apache.org on 2014/05/12 01:08:55 UTC

[8/8] git commit: DRILL-688: Fix timestamp constant serialization

DRILL-688: Fix timestamp constant serialization


Project: http://git-wip-us.apache.org/repos/asf/incubator-drill/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-drill/commit/45e14df5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-drill/tree/45e14df5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-drill/diff/45e14df5

Branch: refs/heads/master
Commit: 45e14df5a83196d6c042a92a9de3f6bb893fa6e1
Parents: 0493582
Author: Mehant Baid <me...@gmail.com>
Authored: Sun May 11 00:58:24 2014 -0700
Committer: Jacques Nadeau <ja...@apache.org>
Committed: Sun May 11 15:44:36 2014 -0700

----------------------------------------------------------------------
 .../expression/ExpressionStringBuilder.java      | 19 ++-----------------
 .../drill/jdbc/test/TestFunctionsQuery.java      | 14 ++++++++++++++
 2 files changed, 16 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/45e14df5/common/src/main/java/org/apache/drill/common/expression/ExpressionStringBuilder.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/drill/common/expression/ExpressionStringBuilder.java b/common/src/main/java/org/apache/drill/common/expression/ExpressionStringBuilder.java
index 2ec4fca..9588863 100644
--- a/common/src/main/java/org/apache/drill/common/expression/ExpressionStringBuilder.java
+++ b/common/src/main/java/org/apache/drill/common/expression/ExpressionStringBuilder.java
@@ -151,26 +151,11 @@ public class ExpressionStringBuilder extends AbstractExprVisitor<Void, StringBui
     return null;
   }
 
-  static final DateTimeFormatter TIMESTAMP_FORMAT;
-  static {
-    DateTimeFormatter dateFormatter = DateTimeFormat.forPattern("yyyy-MM-dd");
-    DateTimeParser optionalTime = DateTimeFormat.forPattern(" HH:mm:ss").getParser();
-    DateTimeParser optionalSec = DateTimeFormat.forPattern(".SSS").getParser();
-
-    TIMESTAMP_FORMAT = new DateTimeFormatterBuilder().append(dateFormatter).appendOptional(optionalTime).appendOptional(optionalSec).toFormatter();
-
-  }
-
   @Override
   public Void visitTimeStampConstant(TimeStampExpression lExpr, StringBuilder sb) throws RuntimeException {
-    sb.append("cast( '");
-    try {
-      TIMESTAMP_FORMAT.printTo(sb, lExpr.getTimeStamp());
-    } catch (IOException e) {
-      throw new RuntimeException(e);
-    }
+    sb.append("cast( ");
     sb.append(lExpr.getTimeStamp());
-    sb.append(" ' as TIMESTAMP)");
+    sb.append(" as TIMESTAMP)");
     return null;
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/45e14df5/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/TestFunctionsQuery.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/TestFunctionsQuery.java b/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/TestFunctionsQuery.java
index 5ef25dc..1212e9f 100644
--- a/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/TestFunctionsQuery.java
+++ b/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/TestFunctionsQuery.java
@@ -401,4 +401,18 @@ public class TestFunctionsQuery {
             "STR_1=1234 COL_VALUE 0 - STRING\n"
         );
   }
+
+  @Test
+  public void testTimeStampConstant() throws Exception {
+    String query = String.format("SELECT " +
+        "timestamp '2008-2-23 12:23:23' as TS " +
+        "FROM dfs.`%s/../../sample-data/region.parquet` limit 1", WORKING_PATH);
+
+    JdbcAssert.withNoDefaultSchema()
+        .sql(query)
+        .returns(
+            "TS=2008-02-23 12:23:23.0\n"
+        );
+  }
+
 }