Mercurial > hg > monetdb-java
diff src/main/java/org/monetdb/jdbc/MonetResultSet.java @ 415:50e43af49d47
Improved DatabaseMetaData.getTypeInfo() output for temporal data types: sec_interval, day_interval, month_interval, date, time, timetz, timestamp and timestamptz.
author | Martin van Dinther <martin.van.dinther@monetdbsolutions.com> |
---|---|
date | Fri, 15 Jan 2021 00:50:29 +0100 (2021-01-14) |
parents | 1e278695fe54 |
children | b3c876a0d61f |
line wrap: on
line diff
--- a/src/main/java/org/monetdb/jdbc/MonetResultSet.java +++ b/src/main/java/org/monetdb/jdbc/MonetResultSet.java @@ -1636,7 +1636,16 @@ public class MonetResultSet switch (getColumnType(column)) { case Types.DECIMAL: case Types.NUMERIC: - // these data types may have a scale, max scale is 38 + { + // special handling for: day_interval and sec_interval as these are mapped to these result types (see MonetDriver typemap) + // they appear to have a fixed scale (tested against Oct2020) + final String monettype = getColumnTypeName(column); + if ("day_interval".equals(monettype)) + return 0; + if ("sec_interval".equals(monettype)) + return 3; + + // these data types may have a variable scale, max scale is 38 try { if (_is_fetched[column] != true) { fetchColumnInfo(column); @@ -1645,6 +1654,7 @@ public class MonetResultSet } catch (IndexOutOfBoundsException e) { throw MonetResultSet.newSQLInvalidColumnIndexException(column); } + } case Types.TIME: case Types.TIME_WITH_TIMEZONE: case Types.TIMESTAMP: