Repository: calcite
Updated Branches:
  refs/heads/master c8462e1ac -> f22a9965a


[CALCITE-1807] Upgrade to Avatica 1.10.0

Includes fix to [CALCITE-1664] CAST('<string>' as TIMESTAMP) adds part of 
sub-second fraction to the value

Replace uses of DateTimeUtils.GMT_Zone with UTC_ZONE.


Project: http://git-wip-us.apache.org/repos/asf/calcite/repo
Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/915c218b
Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/915c218b
Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/915c218b

Branch: refs/heads/master
Commit: 915c218b0fcbff26652071d267903d97875c7b9e
Parents: c8462e1
Author: Julian Hyde <[email protected]>
Authored: Tue May 30 11:18:38 2017 -0700
Committer: Julian Hyde <[email protected]>
Committed: Wed May 31 08:17:27 2017 -0700

----------------------------------------------------------------------
 core/src/main/codegen/templates/Parser.jj                   | 6 +++---
 core/src/main/java/org/apache/calcite/rex/RexLiteral.java   | 4 ++--
 core/src/main/java/org/apache/calcite/sql/SqlDialect.java   | 4 ++--
 core/src/main/java/org/apache/calcite/util/Util.java        | 2 +-
 .../java/org/apache/calcite/sql/parser/SqlParserTest.java   | 9 ++++++---
 .../test/java/org/apache/calcite/test/CalciteAssert.java    | 2 +-
 core/src/test/java/org/apache/calcite/test/JdbcTest.java    | 2 +-
 .../test/java/org/apache/calcite/test/SqlLimitsTest.java    | 2 +-
 core/src/test/resources/sql/misc.iq                         | 4 +---
 .../apache/calcite/adapter/druid/DruidConnectionImpl.java   | 2 +-
 .../org/apache/calcite/adapter/file/FileRowConverter.java   | 2 +-
 pom.xml                                                     | 2 +-
 12 files changed, 21 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/calcite/blob/915c218b/core/src/main/codegen/templates/Parser.jj
----------------------------------------------------------------------
diff --git a/core/src/main/codegen/templates/Parser.jj 
b/core/src/main/codegen/templates/Parser.jj
index c84ebe6..b776e92 100644
--- a/core/src/main/codegen/templates/Parser.jj
+++ b/core/src/main/codegen/templates/Parser.jj
@@ -418,7 +418,7 @@ JAVACODE void checkNonQueryExpression(ExprContext 
exprContext)
 JAVACODE SqlDateLiteral parseDateLiteral(String s, SqlParserPos pos) {
     String dateStr = SqlParserUtil.parseString(s);
     Calendar cal = DateTimeUtils.parseDateFormat(
-        dateStr, DateTimeUtils.DATE_FORMAT_STRING, DateTimeUtils.GMT_ZONE);
+        dateStr, DateTimeUtils.DATE_FORMAT_STRING, DateTimeUtils.UTC_ZONE);
     if (null == cal) {
         throw SqlUtil.newContextException(pos,
             RESOURCE.illegalLiteral("DATE", s,
@@ -431,7 +431,7 @@ JAVACODE SqlTimeLiteral parseTimeLiteral(String s, 
SqlParserPos pos) {
     String dateStr = SqlParserUtil.parseString(s);
     DateTimeUtils.PrecisionTime pt =
     DateTimeUtils.parsePrecisionDateTimeLiteral(
-        dateStr, DateTimeUtils.TIME_FORMAT_STRING, DateTimeUtils.GMT_ZONE);
+        dateStr, DateTimeUtils.TIME_FORMAT_STRING, DateTimeUtils.UTC_ZONE);
     if (null == pt) {
         throw SqlUtil.newContextException(pos,
             RESOURCE.illegalLiteral("TIME", s,
@@ -444,7 +444,7 @@ JAVACODE SqlTimestampLiteral parseTimestampLiteral(String 
s, SqlParserPos pos) {
     String dateStr = SqlParserUtil.parseString(s);
     DateTimeUtils.PrecisionTime pt =
     DateTimeUtils.parsePrecisionDateTimeLiteral(
-        dateStr, DateTimeUtils.TIMESTAMP_FORMAT_STRING, 
DateTimeUtils.GMT_ZONE);
+        dateStr, DateTimeUtils.TIMESTAMP_FORMAT_STRING, 
DateTimeUtils.UTC_ZONE);
     if (null == pt) {
         throw SqlUtil.newContextException(pos,
             RESOURCE.illegalLiteral("TIMESTAMP", s,

http://git-wip-us.apache.org/repos/asf/calcite/blob/915c218b/core/src/main/java/org/apache/calcite/rex/RexLiteral.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexLiteral.java 
b/core/src/main/java/org/apache/calcite/rex/RexLiteral.java
index 5bfd08e..f9be2bb 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexLiteral.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexLiteral.java
@@ -216,7 +216,7 @@ public class RexLiteral extends RexNode {
     case TIME:
     case TIMESTAMP:
       return value instanceof Calendar
-          && ((Calendar) value).getTimeZone().equals(DateTimeUtils.GMT_ZONE);
+          && ((Calendar) value).getTimeZone().equals(DateTimeUtils.UTC_ZONE);
     case INTERVAL_YEAR:
     case INTERVAL_YEAR_MONTH:
     case INTERVAL_MONTH:
@@ -520,7 +520,7 @@ public class RexLiteral extends RexNode {
     case TIME:
     case TIMESTAMP:
       String format = getCalendarFormat(typeName);
-      TimeZone tz = DateTimeUtils.GMT_ZONE;
+      TimeZone tz = DateTimeUtils.UTC_ZONE;
       Calendar cal = null;
       if (typeName == SqlTypeName.DATE) {
         cal =

http://git-wip-us.apache.org/repos/asf/calcite/blob/915c218b/core/src/main/java/org/apache/calcite/sql/SqlDialect.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql/SqlDialect.java 
b/core/src/main/java/org/apache/calcite/sql/SqlDialect.java
index 3f9e6b0..27691fb 100644
--- a/core/src/main/java/org/apache/calcite/sql/SqlDialect.java
+++ b/core/src/main/java/org/apache/calcite/sql/SqlDialect.java
@@ -463,7 +463,7 @@ public class SqlDialect {
    * <blockquote><code>quoteTimestampLiteral(new Timestamp(0));</code>
    * </blockquote>
    *
-   * returns {@code TIMESTAMP '1970-01-01 00:00:00'}, regardless of the JVM's
+   * <p>returns {@code TIMESTAMP '1970-01-01 00:00:00'}, regardless of the 
JVM's
    * time zone.
    *
    * @param timestamp Timestamp
@@ -474,7 +474,7 @@ public class SqlDialect {
         new SimpleDateFormat(
             "'TIMESTAMP' ''yyyy-MM-DD HH:mm:SS''",
             Locale.ROOT);
-    format.setTimeZone(DateTimeUtils.GMT_ZONE);
+    format.setTimeZone(DateTimeUtils.UTC_ZONE);
     return format.format(timestamp);
   }
 

http://git-wip-us.apache.org/repos/asf/calcite/blob/915c218b/core/src/main/java/org/apache/calcite/util/Util.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/util/Util.java 
b/core/src/main/java/org/apache/calcite/util/Util.java
index 24d9ab5..5e26fd7 100644
--- a/core/src/main/java/org/apache/calcite/util/Util.java
+++ b/core/src/main/java/org/apache/calcite/util/Util.java
@@ -2417,7 +2417,7 @@ public class Util {
   /** Creates a {@link Calendar} in the GMT time zone and root locale.
    * Does not use the time zone or locale. */
   public static Calendar calendar() {
-    return Calendar.getInstance(DateTimeUtils.GMT_ZONE, Locale.ROOT);
+    return Calendar.getInstance(DateTimeUtils.UTC_ZONE, Locale.ROOT);
   }
 
   //~ Inner Classes ----------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/calcite/blob/915c218b/core/src/test/java/org/apache/calcite/sql/parser/SqlParserTest.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/calcite/sql/parser/SqlParserTest.java 
b/core/src/test/java/org/apache/calcite/sql/parser/SqlParserTest.java
index bb74daa..f4baa86 100644
--- a/core/src/test/java/org/apache/calcite/sql/parser/SqlParserTest.java
+++ b/core/src/test/java/org/apache/calcite/sql/parser/SqlParserTest.java
@@ -2233,10 +2233,10 @@ public class SqlParserTest {
         "TIMESTAMP '2004-06-01 15:55:55.123'");
     checkExp(
         "TIMESTAMP '2004-06-01 15:55:55.1236'",
-        "TIMESTAMP '2004-06-01 15:55:55.124'");
+        "TIMESTAMP '2004-06-01 15:55:55.123'");
     checkExp(
         "TIMESTAMP '2004-06-01 15:55:55.9999'",
-        "TIMESTAMP '2004-06-01 15:55:56.000'");
+        "TIMESTAMP '2004-06-01 15:55:55.999'");
     checkExpSame("NULL");
   }
 
@@ -3684,10 +3684,14 @@ public class SqlParserTest {
 
     // Date literals
     checkExp("DATE '2004-12-01'", "DATE '2004-12-01'");
+
+    // Time literals
     checkExp("TIME '12:01:01'", "TIME '12:01:01'");
     checkExp("TIME '12:01:01.'", "TIME '12:01:01'");
     checkExp("TIME '12:01:01.000'", "TIME '12:01:01.000'");
     checkExp("TIME '12:01:01.001'", "TIME '12:01:01.001'");
+
+    // Timestamp literals
     checkExp(
         "TIMESTAMP '2004-12-01 12:01:01'",
         "TIMESTAMP '2004-12-01 12:01:01'");
@@ -3697,7 +3701,6 @@ public class SqlParserTest {
     checkExp(
         "TIMESTAMP '2004-12-01 12:01:01.'",
         "TIMESTAMP '2004-12-01 12:01:01'");
-    checkExpSame("TIMESTAMP '2004-12-01 12:01:01.1'");
 
     // Failures.
     checkFails("^DATE '12/21/99'^", "(?s).*Illegal DATE literal.*");

http://git-wip-us.apache.org/repos/asf/calcite/blob/915c218b/core/src/test/java/org/apache/calcite/test/CalciteAssert.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/test/CalciteAssert.java 
b/core/src/test/java/org/apache/calcite/test/CalciteAssert.java
index 370ba99..9829997 100644
--- a/core/src/test/java/org/apache/calcite/test/CalciteAssert.java
+++ b/core/src/test/java/org/apache/calcite/test/CalciteAssert.java
@@ -131,7 +131,7 @@ public class CalciteAssert {
   private static final DateFormat UTC_TIME_FORMAT;
   private static final DateFormat UTC_TIMESTAMP_FORMAT;
   static {
-    final TimeZone utc = DateTimeUtils.GMT_ZONE;
+    final TimeZone utc = DateTimeUtils.UTC_ZONE;
     UTC_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd", Locale.ROOT);
     UTC_DATE_FORMAT.setTimeZone(utc);
     UTC_TIME_FORMAT = new SimpleDateFormat("HH:mm:ss", Locale.ROOT);

http://git-wip-us.apache.org/repos/asf/calcite/blob/915c218b/core/src/test/java/org/apache/calcite/test/JdbcTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/test/JdbcTest.java 
b/core/src/test/java/org/apache/calcite/test/JdbcTest.java
index d97035d..825babe 100644
--- a/core/src/test/java/org/apache/calcite/test/JdbcTest.java
+++ b/core/src/test/java/org/apache/calcite/test/JdbcTest.java
@@ -5017,7 +5017,7 @@ public class JdbcTest {
                     fail("expected error, got " + resultSet);
                   } catch (SQLException e) {
                     assertThat(e.getMessage(),
-                        equalTo(
+                        containsString(
                             "exception while executing query: unbound 
parameter"));
                   }
 

http://git-wip-us.apache.org/repos/asf/calcite/blob/915c218b/core/src/test/java/org/apache/calcite/test/SqlLimitsTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/test/SqlLimitsTest.java 
b/core/src/test/java/org/apache/calcite/test/SqlLimitsTest.java
index 298830b..86c55f0 100644
--- a/core/src/test/java/org/apache/calcite/test/SqlLimitsTest.java
+++ b/core/src/test/java/org/apache/calcite/test/SqlLimitsTest.java
@@ -195,7 +195,7 @@ public class SqlLimitsTest {
     } else if (o instanceof Calendar) {
       Calendar calendar = (Calendar) o;
       DateFormat dateFormat = getDateFormat(type.getSqlTypeName());
-      dateFormat.setTimeZone(DateTimeUtils.GMT_ZONE);
+      dateFormat.setTimeZone(DateTimeUtils.UTC_ZONE);
       s = dateFormat.format(calendar.getTime());
     } else {
       s = o.toString();

http://git-wip-us.apache.org/repos/asf/calcite/blob/915c218b/core/src/test/resources/sql/misc.iq
----------------------------------------------------------------------
diff --git a/core/src/test/resources/sql/misc.iq 
b/core/src/test/resources/sql/misc.iq
index 0ba3335..cbf12fe 100644
--- a/core/src/test/resources/sql/misc.iq
+++ b/core/src/test/resources/sql/misc.iq
@@ -1915,8 +1915,6 @@ EnumerableCalc(expr#0=[{inputs}], expr#1=[2016-02-26 
19:06:00.123], expr#2=[2016
 !plan
 
 # [CALCITE-1664] CAST('<string>' as TIMESTAMP) adds part of sub-second 
fraction to the value
-# The following output is incorrect (i.e. demonstrates the bug), but will 
become
-# correct when we upgrade to Avatica-1.10 (where the bug is fixed).
 select
   TIMESTAMP '2016-02-26 19:06:00.12345678',
   CAST('2016-02-26 19:06:00.12345678' as TIMESTAMP),
@@ -1926,7 +1924,7 @@ select
 +---------------------+---------------------+--------+
 | EXPR$0              | EXPR$1              | EXPR$2 |
 +---------------------+---------------------+--------+
-| 2016-02-26 19:06:00 | 2016-02-26 22:31:46 | 123456 |
+| 2016-02-26 19:06:00 | 2016-02-26 19:06:00 |      0 |
 +---------------------+---------------------+--------+
 (1 row)
 

http://git-wip-us.apache.org/repos/asf/calcite/blob/915c218b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidConnectionImpl.java
----------------------------------------------------------------------
diff --git 
a/druid/src/main/java/org/apache/calcite/adapter/druid/DruidConnectionImpl.java 
b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidConnectionImpl.java
index a1975eb..2e278e8 100644
--- 
a/druid/src/main/java/org/apache/calcite/adapter/druid/DruidConnectionImpl.java
+++ 
b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidConnectionImpl.java
@@ -72,7 +72,7 @@ class DruidConnectionImpl implements DruidConnection {
   private static final SimpleDateFormat UTC_TIMESTAMP_FORMAT;
 
   static {
-    final TimeZone utc = DateTimeUtils.GMT_ZONE;
+    final TimeZone utc = DateTimeUtils.UTC_ZONE;
     UTC_TIMESTAMP_FORMAT =
         new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.ROOT);
     UTC_TIMESTAMP_FORMAT.setTimeZone(utc);

http://git-wip-us.apache.org/repos/asf/calcite/blob/915c218b/file/src/main/java/org/apache/calcite/adapter/file/FileRowConverter.java
----------------------------------------------------------------------
diff --git 
a/file/src/main/java/org/apache/calcite/adapter/file/FileRowConverter.java 
b/file/src/main/java/org/apache/calcite/adapter/file/FileRowConverter.java
index 827bf59..3a635e4 100644
--- a/file/src/main/java/org/apache/calcite/adapter/file/FileRowConverter.java
+++ b/file/src/main/java/org/apache/calcite/adapter/file/FileRowConverter.java
@@ -324,7 +324,7 @@ class FileRowConverter {
     }
 
     private java.util.Date parseDate(String string) {
-      Parser parser = new Parser(DateTimeUtils.GMT_ZONE);
+      Parser parser = new Parser(DateTimeUtils.UTC_ZONE);
       List<DateGroup> groups = parser.parse(string);
       DateGroup group = groups.get(0);
       return group.getDates().get(0);

http://git-wip-us.apache.org/repos/asf/calcite/blob/915c218b/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index ff04980..1a9d420 100644
--- a/pom.xml
+++ b/pom.xml
@@ -53,7 +53,7 @@ limitations under the License.
 
     <!-- This list is in alphabetical order. -->
     <airlift-tpch.version>0.1</airlift-tpch.version>
-    <avatica.version>1.9.0</avatica.version>
+    <avatica.version>1.10.0</avatica.version>
     <build-helper-maven-plugin.version>1.9</build-helper-maven-plugin.version>
     <cassandra-driver-core.version>3.1.4</cassandra-driver-core.version>
     <checksum-maven-plugin.version>1.2</checksum-maven-plugin.version>

Reply via email to