# HG changeset patch # User Pedro Ferreira <pedro.ferreira@monetdbsolutions.com> # Date 1525796310 -7200 # Node ID e938bb2c587f71ea859583d1f42e6659e4bcf5e6 # Parent ff90492596026e00abab9ccf5089d2271cb16109 Use the system's timezone by default as well when retrieving times and timezones. diff --git a/build.properties b/build.properties --- a/build.properties +++ b/build.properties @@ -19,7 +19,7 @@ MCL_MINOR=14 # major release number JDBC_MAJOR=2 # minor release number -JDBC_MINOR=35 +JDBC_MINOR=36 # an additional identifying string JDBC_VER_SUFFIX=Liberica # the default port to connect on, if no port given when using SQL diff --git a/src/main/java/nl/cwi/monetdb/jdbc/MonetResultSet.java b/src/main/java/nl/cwi/monetdb/jdbc/MonetResultSet.java --- a/src/main/java/nl/cwi/monetdb/jdbc/MonetResultSet.java +++ b/src/main/java/nl/cwi/monetdb/jdbc/MonetResultSet.java @@ -2629,7 +2629,10 @@ public class MonetResultSet extends Mone if(res == null) { return null; } - millis = res.getTimeInMillis() - res.getTimeZone().getRawOffset() + cal.getTimeZone().getRawOffset(); + millis = res.getTimeInMillis() - res.getTimeZone().getRawOffset(); + if(cal != null) { + millis += cal.getTimeZone().getRawOffset(); + } break; case 2013: //Types.TIME_WITH_TIMEZONE: case 2014: //Types.TIMESTAMP_WITH_TIMEZONE: @@ -2649,11 +2652,16 @@ public class MonetResultSet extends Mone if(res == null) { return null; } - millis = res.getTimeInMillis() - res.getTimeZone().getRawOffset() + cal.getTimeZone().getRawOffset(); + millis = res.getTimeInMillis() - res.getTimeZone().getRawOffset(); + if(cal != null) { + millis += cal.getTimeZone().getRawOffset(); + } break; default: this.addWarning("unsupported data type", "01M03"); - cal.clear(); + if(cal != null) { + cal.clear(); + } millis = 0; } return new Date(millis); @@ -2707,7 +2715,7 @@ public class MonetResultSet extends Mone */ @Override public Time getTime(int columnIndex) throws SQLException { - return getTime(columnIndex, null); + return getTime(columnIndex, Calendar.getInstance()); } /** @@ -2735,8 +2743,11 @@ public class MonetResultSet extends Mone res = (Calendar) currentBlock.getValueAsObject(columnIndex - 1); if(res == null) { return null; + } + millis = res.getTimeInMillis() - res.getTimeZone().getRawOffset(); + if(cal != null) { + millis += cal.getTimeZone().getRawOffset(); } - millis = res.getTimeInMillis() - res.getTimeZone().getRawOffset() + cal.getTimeZone().getRawOffset(); break; case 2013: //Types.TIME_WITH_TIMEZONE: case 2014: //Types.TIMESTAMP_WITH_TIMEZONE: @@ -2756,11 +2767,16 @@ public class MonetResultSet extends Mone if(res == null) { return null; } - millis = res.getTimeInMillis() - res.getTimeZone().getRawOffset() + cal.getTimeZone().getRawOffset(); + millis = res.getTimeInMillis() - res.getTimeZone().getRawOffset(); + if(cal != null) { + millis += cal.getTimeZone().getRawOffset(); + } break; default: this.addWarning("unsupported data type", "01M03"); - cal.clear(); + if(cal != null) { + cal.clear(); + } millis = 0; } return new Time(millis); @@ -2783,7 +2799,7 @@ public class MonetResultSet extends Mone */ @Override public Time getTime(String columnLabel) throws SQLException { - return getTime(findColumn(columnLabel), null); + return getTime(findColumn(columnLabel), Calendar.getInstance()); } /** @@ -2813,7 +2829,7 @@ public class MonetResultSet extends Mone */ @Override public Timestamp getTimestamp(int columnIndex) throws SQLException { - return getTimestamp(columnIndex, null); + return getTimestamp(columnIndex, Calendar.getInstance()); } /** @@ -2842,7 +2858,10 @@ public class MonetResultSet extends Mone if(res == null) { return null; } - millis = res.getTimeInMillis() - res.getTimeZone().getRawOffset() + cal.getTimeZone().getRawOffset(); + millis = res.getTimeInMillis() - res.getTimeZone().getRawOffset(); + if(cal != null) { + millis += cal.getTimeZone().getRawOffset(); + } break; case 2013: //Types.TIME_WITH_TIMEZONE: res = (Calendar) currentBlock.getValueAsObject(columnIndex - 1); @@ -2857,7 +2876,10 @@ public class MonetResultSet extends Mone return null; } nanos = currentBlock.getLastNanos(); - millis = res.getTimeInMillis() - res.getTimeZone().getRawOffset() + cal.getTimeZone().getRawOffset(); + millis = res.getTimeInMillis() - res.getTimeZone().getRawOffset(); + if(cal != null) { + millis += cal.getTimeZone().getRawOffset(); + } break; case 2014: //Types.TIMESTAMP_WITH_TIMEZONE: res = (Calendar) currentBlock.getValueAsObject(columnIndex - 1); @@ -2877,11 +2899,16 @@ public class MonetResultSet extends Mone if(res == null) { return null; } - millis = res.getTimeInMillis() - res.getTimeZone().getRawOffset() + cal.getTimeZone().getRawOffset(); + millis = res.getTimeInMillis() - res.getTimeZone().getRawOffset(); + if(cal != null) { + millis += cal.getTimeZone().getRawOffset(); + } break; default: this.addWarning("unsupported data type", "01M03"); - cal.clear(); + if(cal != null) { + cal.clear(); + } millis = 0; } Timestamp result = new Timestamp(millis); @@ -2906,7 +2933,7 @@ public class MonetResultSet extends Mone */ @Override public Timestamp getTimestamp(String columnLabel) throws SQLException { - return getTimestamp(findColumn(columnLabel), null); + return getTimestamp(findColumn(columnLabel), Calendar.getInstance()); } /**