From: | Heikki Linnakangas <heikki(at)enterprisedb(dot)com> |
---|---|
To: | ismo(dot)tuononen(at)solenovo(dot)fi |
Cc: | pgsql-jdbc(at)postgresql(dot)org |
Subject: | Re: 7.4 driver vs 8.2 driver |
Date: | 2007-04-12 08:03:19 |
Message-ID: | 461DE7C7.3070707@enterprisedb.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
ismo(dot)tuononen(at)solenovo(dot)fi wrote:
> select trunc($1,2);
> and that $1 is binded to double precision
>
> works with pg74.216.jdbc3.jar driver but with postgresql-8.2-504.jdbc4.jar
> we get error:
>
> ERROR: function round(double precision, integer) does not exist at
> character 26
> HINT: No function matches the given name and argument types. You may need
> to add explicit type casts.
>
> to change all queries to:
> select
> trunc(to_number(to_char($1,'99999999999999.999999),'99999999999999.999999');
>
> is just stupid and takes very long time, because it must be done manually
> (queries are in reality much more complex)
>
> any ideas what to do?
You can use a cast: select trunc(($1)::numeric).
> I just don't understand why postgresql dont have trunc(double
> precision,int) when it have trunc(double precision),trunc(numeric) and
> trunc(numeric,int)
trunc(double precision, int) wouldn't make much sense. The value would
be given in base 2 floating point format, while the precision would be
given as a number of *decimal* places, IOW base 10. If you find that you
need to do that, you should reconsider the data types you use.
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com
From | Date | Subject | |
---|---|---|---|
Next Message | Konstantinos Agouros | 2007-04-12 08:24:47 | PGInterval.getSeconds |
Previous Message | Kris Jurka | 2007-04-12 07:49:55 | Re: scrollable result sets performance problems |