DatabaseManager.process() unnecessarily limits range of DECIMAL or NUMERIC
--------------------------------------------------------------------------
Key: DS-494
URL: http://jira.dspace.org/jira/browse/DS-494
Project: DSpace 1.x
Issue Type: Bug
Components: DSpace API
Environment: PostgreSQL
Reporter: Mark Wood
Assignee: Mark Wood
Priority: Minor
Fix For: 1.6.0, 1.5.2
Attachments: DatabaseManager.patch
INTEGER, DECIMAL, and NUMERIC are lumped together. In the case we are using
Oracle, the code will set the column to an int or a long depending on the size
of the value. (I would like to know why we bother.) Otherwise the value is
assumed to be within the range of int. But DECIMAL and NUMERIC can be far
larger than int, and are returned by e.g. sum(BIGINT).
The attached patch widens the result, in the non-Oracle case, to long for all
three SQL datatypes. Strictly speaking, DECIMAL and NUMERIC should be mapped
to java.math.BigDecimal, but that requires the introduction of new methods to
TableRow as well. Widening from int to long probably covers most of the
real-world cases. The patch is against 1.5.2 but also applies to 1.6.0-rc2.
I would appreciate comments on how this widening may affect other code. The
patch is in test on a live system, but in a locally-developed webapp rather
than any of the main DSpace UIs.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.dspace.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
_______________________________________________
Dspace-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dspace-devel