Re: Overwriting Operator for numeric and float8 fails - Mailing list pgsql-general

From Mitch Vincent
Subject Re: Overwriting Operator for numeric and float8 fails
Date
Msg-id 004601c12990$907969b0$1251000a@mitch
Whole thread Raw
In response to Overwriting Operator for numeric and float8 fails  ("Johann Zuschlag" <zuschlag@online.de>)
List pgsql-general
Just cast 00000034.70  to numeric...

SELECT t6.* FROM RECHNUNG  t6 WHERE t6.bruttosumm = 00000034.70::numeric
ORDER BY t6.nummer DESC

Note that if that column is numeric, it's going to knock off any leading
zeros..

> Hi,
>
> I've got a really stupid question. My application does queries like this:
>
> SELECT t6.* FROM RECHNUNG  t6 WHERE t6.bruttosumm = 00000034.70 ORDER BY
t6.nummer DESC
>
> I get the following error: Unable to identify an operator '=' for types
'numeric' and 'float8'...
> and of course the same for the operator '<>'. Ok, quotes missing.
>
> Before I just let the ODBC-driver patch the quotes. Not so smart.
> Now I tried the smarter way by overwriting the operator:
>
> create function numeric_eq(numeric,float8)
> returns bool
> as ''
> language 'internal';
>
> create operator = (
> leftarg=numeric,
> rightarg=float8,
> procedure=numeric_eq,
> commutator='=',
> negator='<>',
> restrict=eqsel,
> join=eqjoinsel
> );
>
> The Problem is: It doesn't work and the backend process crashes and get's
restarted.
> I tried it with 7.03 and I guess 7.1.2 behaves the same.
> What am I doing wrong? Can somebody give me a hint?
>
> Thanks in advance
>
>
>
> Johann Zuschlag
> zuschlag@online.de
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
>


pgsql-general by date:

Previous
From: Evan Zane Macosko
Date:
Subject: Re: Real newbie question.
Next
From: "Brent R. Matzelle"
Date:
Subject: PostgreSQL Diagram creation tool