Changeset: e938bb2c587f for monetdb-java
URL: https://dev.monetdb.org/hg/monetdb-java?cmd=changeset;node=e938bb2c587f
Modified Files:
build.properties
src/main/java/nl/cwi/monetdb/jdbc/MonetResultSet.java
Branch: embedded
Log Message:
Use the system's timezone by default as well when retrieving times and
timezones.
diffs (157 lines):
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());
}
/**
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list