[
https://issues.apache.org/cayenne/browse/CAY-1052?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrus Adamchik updated CAY-1052:
---------------------------------
Affects Version/s: (was: 3.0)
Just realized that this is another consequence of CAY-672 issue that has been
fixed in 3.0 for some time. It still remains an issue in 2.0 and 1.2. Let me
apply the fix to those.
> Invalid cast on NUMERICs with scale of 0 using Postgres JDBC 8.2+
> -----------------------------------------------------------------
>
> Key: CAY-1052
> URL: https://issues.apache.org/cayenne/browse/CAY-1052
> Project: Cayenne
> Issue Type: Bug
> Components: Cayenne Core Library
> Affects Versions: 1.2 [STABLE], 2.0 [STABLE]
> Environment: All
> Reporter: Dave Dombrosky
> Assignee: Andrus Adamchik
>
> A change was recently made in the Postgres JDBC driver, versions 8.2 and up,
> that makes some of the Cayenne code do the wrong thing now.
> In the TypesMapping class, there is the following code:
> if (type == Types.NUMERIC && precision == 0) {
> type = Types.INTEGER;
> }
> This code no longer works right on the newer drivers because the behavior of
> the ResultSetMetaData.getScale() method was changed. It used to return "-1"
> for NUMERICs where it could not determine the scale, but now it returns "0".
> So values with decimal information are being truncated to integers. Please
> reference the following thread for more detail on the return value change:
> http://groups.google.com/group/pgsql.interfaces.jdbc/browse_thread/thread/ee82d41155147672
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.