Lists: | pgsql-sql |
---|
From: | Terry Yapt <pgsql(at)technovell(dot)com> |
---|---|
To: | pgsql-sql(at)postgresql(dot)org |
Subject: | Comparing Numeric and Double Precision (float8).. |
Date: | 2002-11-04 08:11:30 |
Message-ID: | 3DC62BB2.72FC66C8@technovell.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-sql |
Hello all,
i DON'T know what is the proper forum to throw this question and I must
to insist in this "feature". Sorry.
I have a lot of tables from Oracle 8i Databases with a lot of columns
with numeric(x,0) definition.
Ok.. I am traslating my oracle tables to PostgreSQL tables. But I am
having a serious problem with my client aplications.
When I compare a numeric(x,0) field with a float8 field I have an error
on PostgreSQL what I didn't have with Oracle. I mean:
CREATE test (one numeric(2,0));
SELECT * FROM test WHERE one = 1.00000;
This runs fine on my Oracle Systems.. but I have problems with my
PostgreSQL system. I have tried to create an operator to workaround
this inconvenience:
numeric '=' float8
with CREATE OPERATOR command and calling to a function to return a
boolean.
Ok.. great.. It is running now. But when it runs.. I have another
problems comparing numeric with integers and so on. So I must to DROP
OPERATOR......
I don't understand what is the problem and what options I have to
workaround it (without re-write a lot of client applications).
I have a lot of code I don't want to modify. The question is:
Why we cannot compare numeric with double precision ? And why Oracle or
SQL can do it without problems ?
Thanks a lot.
From: | Bruno Wolff III <bruno(at)wolff(dot)to> |
---|---|
To: | Terry Yapt <pgsql(at)technovell(dot)com> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Comparing Numeric and Double Precision (float8).. |
Date: | 2002-11-04 13:45:15 |
Message-ID: | 20021104134515.GA5617@wolff.to |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-sql |
On Mon, Nov 04, 2002 at 09:11:30 +0100,
Terry Yapt <pgsql(at)technovell(dot)com> wrote:
>
> When I compare a numeric(x,0) field with a float8 field I have an error
> on PostgreSQL what I didn't have with Oracle. I mean:
>
> CREATE test (one numeric(2,0));
>
> SELECT * FROM test WHERE one = 1.00000;
With 7.3b3 the above works after correcting the create statement.
bruno=> create table test (one numeric(2,0));
CREATE TABLE
bruno=> SELECT * FROM test WHERE one = 1.00000;
one
-----
(0 rows)
From: | Terry Yapt <pgsql(at)technovell(dot)com> |
---|---|
To: | Bruno Wolff III <bruno(at)wolff(dot)to> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Comparing Numeric and Double Precision (float8).. |
Date: | 2002-11-04 14:35:28 |
Message-ID: | 3DC685B0.D92E88E3@technovell.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-sql |
Great....
I don't know if my customers can wait until 7.3 official release, but
I'll try to distract them a bit... :-\
Thanks a lot Bruno...
Bruno Wolff III wrote:
>
> On Mon, Nov 04, 2002 at 09:11:30 +0100,
> Terry Yapt <pgsql(at)technovell(dot)com> wrote:
> >
> > When I compare a numeric(x,0) field with a float8 field I have an error
> > on PostgreSQL what I didn't have with Oracle. I mean:
> >
> > CREATE test (one numeric(2,0));
> >
> > SELECT * FROM test WHERE one = 1.00000;
>
> With 7.3b3 the above works after correcting the create statement.
> bruno=> create table test (one numeric(2,0));
> CREATE TABLE
> bruno=> SELECT * FROM test WHERE one = 1.00000;
> one
> -----
> (0 rows)