Overwriting Operator for numeric and float8 fails
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
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.
Show quoted text
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)