diff --git a/pom.xml b/pom.xml
index 4c4f67e..a319ead 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
com.aliyun.odps
odps-jdbc
- 3.2.25
+ 3.2.26
odps-jdbc
Aliyun ODPS JDBC driver
http://odps.aliyun.com
@@ -49,7 +49,7 @@
- 0.37.10-public
+ 0.38.4-public
4.11
UTF-8
1.8
diff --git a/src/main/java/com/aliyun/odps/jdbc/OdpsStatement.java b/src/main/java/com/aliyun/odps/jdbc/OdpsStatement.java
index cad1db9..533fa2a 100644
--- a/src/main/java/com/aliyun/odps/jdbc/OdpsStatement.java
+++ b/src/main/java/com/aliyun/odps/jdbc/OdpsStatement.java
@@ -925,6 +925,7 @@ private void runSQLInSession(String sql, Map settings)
settings.put("odps.sql.select.auto.limit", autoSelectLimit.toString());
}
executor.run(sql, settings);
+ executeInstance = executor.getInstance();
try {
sessionResultSet = executor.getResultSet(0L, resultCountLimit, resultSizeLimit, enableLimit);
List exeLog = executor.getExecutionLog();
@@ -945,8 +946,6 @@ private void runSQLInSession(String sql, Map settings)
long end = System.currentTimeMillis();
connHandle.log.info("It took me " + (end - begin) + " ms to run sql");
- executeInstance = executor.getInstance();
-
String logView = executor.getLogView();
connHandle.log.info("Run SQL: " + sql + ", LogView:" + logView);
warningChain = new SQLWarning(executor.getSummary());
diff --git a/src/main/java/com/aliyun/odps/jdbc/utils/transformer/to/jdbc/ToJdbcStringTransformer.java b/src/main/java/com/aliyun/odps/jdbc/utils/transformer/to/jdbc/ToJdbcStringTransformer.java
index 8de324f..2d256ef 100644
--- a/src/main/java/com/aliyun/odps/jdbc/utils/transformer/to/jdbc/ToJdbcStringTransformer.java
+++ b/src/main/java/com/aliyun/odps/jdbc/utils/transformer/to/jdbc/ToJdbcStringTransformer.java
@@ -74,20 +74,20 @@ public Object transform(
return null;
}
- Builder calendarBuilder = new Calendar.Builder()
- .setCalendarType("iso8601")
- .setLenient(true);
- if (timeZone != null) {
- calendarBuilder.setTimeZone(timeZone);
+ if (o instanceof byte[]) {
+ return encodeBytes((byte[]) o, charset);
}
- Calendar calendar = calendarBuilder.build();
-
// The argument cal should always be ignored since MaxCompute stores timezone information.
try {
- if (o instanceof byte[]) {
- return encodeBytes((byte[]) o, charset);
- } else if (java.util.Date.class.isInstance(o)) {
+ if (java.util.Date.class.isInstance(o)) {
+ Builder calendarBuilder = new Calendar.Builder()
+ .setCalendarType("iso8601")
+ .setLenient(true);
+ if (timeZone != null) {
+ calendarBuilder.setTimeZone(timeZone);
+ }
+ Calendar calendar = calendarBuilder.build();
if (java.sql.Timestamp.class.isInstance(o)) {
// MaxCompute TIMESTAMP
@@ -104,6 +104,13 @@ public Object transform(
}
} else {
if (odpsType != null) {
+ Builder calendarBuilder = new Calendar.Builder()
+ .setCalendarType("iso8601")
+ .setLenient(true);
+ if (timeZone != null) {
+ calendarBuilder.setTimeZone(timeZone);
+ }
+ Calendar calendar = calendarBuilder.build();
DATETIME_FORMAT.get().setCalendar(calendar);
switch (odpsType.getOdpsType()) {