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

Reply via email to