You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by ji...@apache.org on 2016/02/16 09:43:20 UTC

incubator-asterixdb git commit: Fix ASTERIXDB-1292

Repository: incubator-asterixdb
Updated Branches:
  refs/heads/master aa9879fb0 -> bcfd410d6


Fix ASTERIXDB-1292

Change-Id: Iee8e9b87145d9b3511874cd11d61ae87acdc94c7
Reviewed-on: https://asterix-gerrit.ics.uci.edu/636
Reviewed-by: Till Westmann <ti...@apache.org>
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: Yingyi Bu <bu...@gmail.com>


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

Branch: refs/heads/master
Commit: bcfd410d61fa84fd5828d7ca41f336bb82f60746
Parents: aa9879f
Author: Jianfeng Jia <ji...@gmail.com>
Authored: Mon Feb 15 22:31:09 2016 -0800
Committer: Jianfeng Jia <ji...@gmail.com>
Committed: Tue Feb 16 00:38:28 2016 -0800

----------------------------------------------------------------------
 .../queries/temporal/parse_02/parse_02.3.query.aql  |  6 ++++--
 .../temporal/parse_02/parse_02.3.query.sqlpp        |  2 +-
 .../results/temporal/parse_02/parse_02.1.adm        |  2 +-
 .../temporal/parse_02/parse_02.3.ast                | 10 ++++++++++
 .../om/base/temporal/DateTimeFormatUtils.java       | 16 ++++++++--------
 5 files changed, 24 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/bcfd410d/asterix-app/src/test/resources/runtimets/queries/temporal/parse_02/parse_02.3.query.aql
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/runtimets/queries/temporal/parse_02/parse_02.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/temporal/parse_02/parse_02.3.query.aql
index dd1a2a5..318c4fe 100644
--- a/asterix-app/src/test/resources/runtimets/queries/temporal/parse_02/parse_02.3.query.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/temporal/parse_02/parse_02.3.query.aql
@@ -26,7 +26,8 @@ use dataverse test;
 let $date := date("-0123-01-30")
 let $time := time("08:07:29.030Z")
 let $datetime := datetime("0137-12-31T23:59:59.999+08:00")
-return { 
+let $datetime2 := datetime("1000-10-10T10:10:10.100+00:00")
+return {
   "date-string-1": print-date($date, "YY/M/D"),
   "date-string-2": print-date($date, "MMM DD, YYYY"),
   "date-string-3": print-date($date, "YYYY/MM/DD"),
@@ -34,5 +35,6 @@ return {
   "time-string-2": print-time($time, "hh.mm.ss.nnn a z"),
   "datetime-string-1": print-datetime($datetime, "MMM DD h:m:s.nnn a YY z"),
   "datetime-string-2": print-datetime($datetime, "YYYY/MMM/DD h:m:s.nnnz a"),
-  "datetime-string-3": print-datetime($datetime, "YYYY-MM-DDThh:mm:ss.nnnz")
+  "datetime-string-3": print-datetime($datetime, "YYYY-MM-DDThh:mm:ss.nnnz"),
+  "datetime-string-4": print-datetime($datetime2, "YYYY-MM-DDThh:mm:ss.nnnz")
  }

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/bcfd410d/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/parse_02/parse_02.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/parse_02/parse_02.3.query.sqlpp b/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/parse_02/parse_02.3.query.sqlpp
index a6f8354..5b7df2e 100644
--- a/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/parse_02/parse_02.3.query.sqlpp
+++ b/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/parse_02/parse_02.3.query.sqlpp
@@ -24,4 +24,4 @@
 use test;
 
 
-{'date-string-1':test."print-date"(test.date('-0123-01-30'),'YY/M/D'),'date-string-2':test."print-date"(test.date('-0123-01-30'),'MMM DD, YYYY'),'date-string-3':test."print-date"(test.date('-0123-01-30'),'YYYY/MM/DD'),'time-string-1':test."print-time"(test.time('08:07:29.030Z'),'h.m.s.nn a z'),'time-string-2':test."print-time"(test.time('08:07:29.030Z'),'hh.mm.ss.nnn a z'),'datetime-string-1':test."print-datetime"(test.datetime('0137-12-31T23:59:59.999+08:00'),'MMM DD h:m:s.nnn a YY z'),'datetime-string-2':test."print-datetime"(test.datetime('0137-12-31T23:59:59.999+08:00'),'YYYY/MMM/DD h:m:s.nnnz a'),'datetime-string-3':test."print-datetime"(test.datetime('0137-12-31T23:59:59.999+08:00'),'YYYY-MM-DDThh:mm:ss.nnnz')};
+{'date-string-1':test."print-date"(test.date('-0123-01-30'),'YY/M/D'),'date-string-2':test."print-date"(test.date('-0123-01-30'),'MMM DD, YYYY'),'date-string-3':test."print-date"(test.date('-0123-01-30'),'YYYY/MM/DD'),'time-string-1':test."print-time"(test.time('08:07:29.030Z'),'h.m.s.nn a z'),'time-string-2':test."print-time"(test.time('08:07:29.030Z'),'hh.mm.ss.nnn a z'),'datetime-string-1':test."print-datetime"(test.datetime('0137-12-31T23:59:59.999+08:00'),'MMM DD h:m:s.nnn a YY z'),'datetime-string-2':test."print-datetime"(test.datetime('0137-12-31T23:59:59.999+08:00'),'YYYY/MMM/DD h:m:s.nnnz a'),'datetime-string-3':test."print-datetime"(test.datetime('0137-12-31T23:59:59.999+08:00'),'YYYY-MM-DDThh:mm:ss.nnnz'),'datetime-string-4':test."print-datetime"(test.datetime('1000-10-10T10:10:10.100+00:00'),'YYYY-MM-DDThh:mm:ss.nnnz')};

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/bcfd410d/asterix-app/src/test/resources/runtimets/results/temporal/parse_02/parse_02.1.adm
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/runtimets/results/temporal/parse_02/parse_02.1.adm b/asterix-app/src/test/resources/runtimets/results/temporal/parse_02/parse_02.1.adm
index 53035aa..68f22cc 100644
--- a/asterix-app/src/test/resources/runtimets/results/temporal/parse_02/parse_02.1.adm
+++ b/asterix-app/src/test/resources/runtimets/results/temporal/parse_02/parse_02.1.adm
@@ -1 +1 @@
-{ "date-string-1": "-123/1/30", "date-string-2": "JAN 30, -0123", "date-string-3": "-0123/01/30", "time-string-1": "8.7.29.03 AM Z", "time-string-2": "08.07.29.030 AM Z", "datetime-string-1": "DEC 31 3:59:59.999 PM 137 Z", "datetime-string-2": "0137/DEC/31 3:59:59.999Z PM", "datetime-string-3": "0137-12-31T15:59:59.999Z" }
+{ "date-string-1": "-123/1/30", "date-string-2": "JAN 30, -0123", "date-string-3": "-0123/01/30", "time-string-1": "8.7.29.03 AM Z", "time-string-2": "08.07.29.030 AM Z", "datetime-string-1": "DEC 31 3:59:59.999 PM 137 Z", "datetime-string-2": "0137/DEC/31 3:59:59.999Z PM", "datetime-string-3": "0137-12-31T15:59:59.999Z", "datetime-string-4": "1000-10-10T10:10:10.100Z" }

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/bcfd410d/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/parse_02/parse_02.3.ast
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/parse_02/parse_02.3.ast b/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/parse_02/parse_02.3.ast
index 1fe2ac2..5ff0efc 100644
--- a/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/parse_02/parse_02.3.ast
+++ b/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/parse_02/parse_02.3.ast
@@ -81,4 +81,14 @@ RecordConstructor [
       LiteralExpr [STRING] [YYYY-MM-DDThh:mm:ss.nnnz]
     ]
   )
+  (
+    LiteralExpr [STRING] [datetime-string-4]
+    :
+    FunctionCall test.print-datetime@2[
+      FunctionCall test.datetime@1[
+        LiteralExpr [STRING] [1000-10-10T10:10:10.100+00:00]
+      ]
+      LiteralExpr [STRING] [YYYY-MM-DDThh:mm:ss.nnnz]
+    ]
+  )
 ]

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/bcfd410d/asterix-om/src/main/java/org/apache/asterix/om/base/temporal/DateTimeFormatUtils.java
----------------------------------------------------------------------
diff --git a/asterix-om/src/main/java/org/apache/asterix/om/base/temporal/DateTimeFormatUtils.java b/asterix-om/src/main/java/org/apache/asterix/om/base/temporal/DateTimeFormatUtils.java
index 30ff44d..8e33d44 100644
--- a/asterix-om/src/main/java/org/apache/asterix/om/base/temporal/DateTimeFormatUtils.java
+++ b/asterix-om/src/main/java/org/apache/asterix/om/base/temporal/DateTimeFormatUtils.java
@@ -875,14 +875,12 @@ public class DateTimeFormatUtils {
                         } else {
                             val = day;
                         }
-                        int valFieldCount = (int) Math.ceil(Math.log10(val));
-                        if (val == 1 || val == 0) {
-                            valFieldCount = 1;
-                        }
+                        String strVal = String.valueOf(val);
+                        int valFieldCount = strVal.length();
                         for (int i = 0; i < formatCharCopies - valFieldCount; i++) {
                             appender.append('0');
                         }
-                        appender.append(String.valueOf(val));
+                        appender.append(strVal);
                         break;
                     case HOUR:
                     case MINUTE:
@@ -904,7 +902,8 @@ public class DateTimeFormatUtils {
                         appender.append(String.valueOf(val));
                         break;
                     case MILLISECOND:
-                        int msFieldCount = (int) Math.ceil(Math.log10(ms));
+                        String strMS = String.valueOf(ms);
+                        int msFieldCount = strMS.length();
                         for (int i = 0; i < 3 - msFieldCount; i++) {
                             appender.append('0');
                         }
@@ -924,9 +923,10 @@ public class DateTimeFormatUtils {
                                     ms = ms / 10;
                                 }
                             }
-
+                            appender.append(String.valueOf(ms));
+                        } else {
+                            appender.append(strMS);
                         }
-                        appender.append(String.valueOf(ms));
                         break;
                     case TIMEZONE:
                         if (timezone == 0) {