On Tue, Jul 11, 2006 at 13:11:16 -0400,
Paul Tilles <Paul.Tilles@noaa.gov> wrote:
> Version postgres 7.4.7:
>
> Following sql
>
> UPDATE tablename SET value = 0.0 where value!=-9.4;
>
> results in the error message
>
> ERROR: operator does not exist: smallint !=- integer
> HINT: No operator matches the given name and argument type(s). You may
> need to add explicit type casts.
>
> Seems that postgres has a problem parsing a "not equal negative value".
>
> Anybody know if this is fixed in later versions?
I don't think this is a bug. Postgres allows for user defined operators and
!=- looks like one operator rather than two. Putting a space between = and -
will fix the problem. For example:
bruno=> select 1 != -1;
?column?
----------
t
(1 row)
bruno=> select 1 !=-1;
ERROR: operator does not exist: integer !=- integer
HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts.