Mercurial > hg > monetdb-java
changeset 885:e1f00e0e3598
Improve isSigned() information on result columns and parameters of Types.DATE, Types.TIMESTAMP and Types.TIMESTAMP_WITH_TIMEZONE. These can have a negative year.
author | Martin van Dinther <martin.van.dinther@monetdbsolutions.com> |
---|---|
date | Wed, 03 Apr 2024 15:02:24 +0200 (12 months ago) |
parents | 1956d8ba5ad3 |
children | 4f50019b2cf8 |
files | src/main/java/org/monetdb/jdbc/MonetParameterMetaData.java src/main/java/org/monetdb/jdbc/MonetResultSetMetaData.java |
diffstat | 2 files changed, 12 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- a/src/main/java/org/monetdb/jdbc/MonetParameterMetaData.java +++ b/src/main/java/org/monetdb/jdbc/MonetParameterMetaData.java @@ -143,23 +143,19 @@ final class MonetParameterMetaData case Types.DOUBLE: case Types.DECIMAL: case Types.NUMERIC: + case Types.DATE: // year can be negative + case Types.TIMESTAMP: // year can be negative + case Types.TIMESTAMP_WITH_TIMEZONE: return true; case Types.BIGINT: + { final String monettype = getParameterTypeName(param); - if (monettype != null && monettype.length() == 3) { - // data of type oid or ptr is not signed - if ("oid".equals(monettype) - || "ptr".equals(monettype)) - return false; - } + // data of type oid or ptr is not signed + if ("oid".equals(monettype) + || "ptr".equals(monettype)) + return false; return true; - // All other types should return false - // case Types.BOOLEAN: - // case Types.DATE: // can year be negative? - // case Types.TIME: // can time be negative? - // case Types.TIME_WITH_TIMEZONE: - // case Types.TIMESTAMP: // can year be negative? - // case Types.TIMESTAMP_WITH_TIMEZONE: + } default: return false; }
--- a/src/main/java/org/monetdb/jdbc/MonetResultSetMetaData.java +++ b/src/main/java/org/monetdb/jdbc/MonetResultSetMetaData.java @@ -362,6 +362,9 @@ final class MonetResultSetMetaData case Types.DOUBLE: case Types.DECIMAL: case Types.NUMERIC: + case Types.DATE: // year can be negative + case Types.TIMESTAMP: // year can be negative + case Types.TIMESTAMP_WITH_TIMEZONE: return true; case Types.BIGINT: try { @@ -374,13 +377,6 @@ final class MonetResultSetMetaData throw MonetResultSet.newSQLInvalidColumnIndexException(column); } return true; - // All other types should return false - // case Types.BOOLEAN: - // case Types.DATE: // can year be negative? - // case Types.TIME: // can time be negative? - // case Types.TIME_WITH_TIMEZONE: - // case Types.TIMESTAMP: // can year be negative? - // case Types.TIMESTAMP_WITH_TIMEZONE: default: return false; }