Skip site navigation (1) Skip section navigation (2)

Default numeric scale of zero in JDBC?

From: Todd Shoemaker <jtshoe11(at)yahoo(dot)com>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Default numeric scale of zero in JDBC?
Date: 2007-01-18 14:05:42
Message-ID: 20070118140542.61505.qmail@web53601.mail.yahoo.com (view raw or flat)
Thread:
Lists: pgsql-jdbc
Hello,

I have discovered that the jdbc driver apparently uses a default scale of zero decimal places for SQL numeric operators, including the sum() aggregate operator.  For example, this query:

select (1.5 + 2);

This returns 4 from jdbc, but it returns 3.5 when run from within PGAdmin.  The only way I can coerce the value to return decimal places is to explicity cast the value to a numeric with scale:

select cast(1.5 + 2 as numeric(10,2)) as value

This returns 3.5.  

Also, queries like "select sum(value) from table" returns a rounded value, even though the column 'value' is numeric(16,2).  Is there a magic vmparam or setting to default the precision at the jdbc driver level?  I am trying to run a large existing system on PostgreSQL and it is not feasible to hunt down all numeric operations in thousands of classes to explicitly cast them.   Have others have encountered this issue?

Thanks,

-Todd






pgsql-jdbc by date

Next:From: Guillaume SmetDate: 2007-01-18 14:46:26
Subject: Re: Memory leaks using refcursors
Previous:From: Dave CramerDate: 2007-01-18 01:25:42
Subject: Re: Memory leaks using refcursors

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group