diff --git a/jOOQ-test/src/org/jooq/test/_/testcases/FetchTests.java b/jOOQ-test/src/org/jooq/test/_/testcases/FetchTests.java index aa96d81970..3b48ceea26 100644 --- a/jOOQ-test/src/org/jooq/test/_/testcases/FetchTests.java +++ b/jOOQ-test/src/org/jooq/test/_/testcases/FetchTests.java @@ -865,8 +865,7 @@ extends BaseTest user = trim(lower(currentUser())); Record record = create().select(user).fetchOne(); - assertTrue(Arrays.asList("test", "db2admin", "sa", "root@localhost", "postgres", "dbo", "dba") + assertTrue(Arrays.asList("test", "db2admin", "sa", "root@localhost", "postgres", "dbo", "dba", "dba@lukas-hp") .contains(record.getValue(user))); } diff --git a/jOOQ-test/src/org/jooq/test/_/testcases/SchemaAndMappingTests.java b/jOOQ-test/src/org/jooq/test/_/testcases/SchemaAndMappingTests.java index e1c4465212..afe073f6b7 100644 --- a/jOOQ-test/src/org/jooq/test/_/testcases/SchemaAndMappingTests.java +++ b/jOOQ-test/src/org/jooq/test/_/testcases/SchemaAndMappingTests.java @@ -193,6 +193,7 @@ extends BaseTest T639_BYTE() { - return T_639NumbersTable.BYTE; + return null; } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/FieldTypeHelper.java b/jOOQ/src/main/java/org/jooq/impl/FieldTypeHelper.java index 99f5f6277c..1ba886ea22 100644 --- a/jOOQ/src/main/java/org/jooq/impl/FieldTypeHelper.java +++ b/jOOQ/src/main/java/org/jooq/impl/FieldTypeHelper.java @@ -57,6 +57,7 @@ import java.sql.Types; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Calendar; import java.util.List; import java.util.Map; @@ -512,7 +513,10 @@ public final class FieldTypeHelper { Date date = rs.getDate(index); if (date != null) { - date = new Date((rs.getDate(index).getTime() / 1000) * 1000); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(date.getTime()); + cal.set(Calendar.MILLISECOND, 0); + date = new Date(cal.getTimeInMillis()); } return date; @@ -534,7 +538,25 @@ public final class FieldTypeHelper { } return null; - } else { + } + + // Cubrid SQL dates are incorrectly fetched. Reset milliseconds... + // See http://jira.cubrid.org/browse/APIS-159 + // See https://sourceforge.net/apps/trac/cubridinterface/ticket/140 + else if (dialect == CUBRID) { + Time time = rs.getTime(index); + + if (time != null) { + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(time.getTime()); + cal.set(Calendar.MILLISECOND, 0); + time = new Time(cal.getTimeInMillis()); + } + + return time; + } + + else { return rs.getTime(index); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/Val.java b/jOOQ/src/main/java/org/jooq/impl/Val.java index 7ed65394b1..57bc2335d2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Val.java +++ b/jOOQ/src/main/java/org/jooq/impl/Val.java @@ -147,7 +147,6 @@ class Val extends AbstractField implements Param, BindingProvider { case DERBY: // These dialects have some trouble, when they mostly get it right. - case CUBRID: case H2: case HSQLDB: