Thread: Type casting bug in 8.1.[67]?

Type casting bug in 8.1.[67]?

From
Michael Paesold
Date:
Hello all,

after upgrading from 8.1.5 to 8.1.7, I got errors in the server log when 
updating decimal values using string constants. I tried the same using 
psql (pasted the query from below) and it fails, too. Downgrading to 
8.1.5 resolved the issue.

ERROR:  attribute 4 has wrong type
DETAIL:  Table has type numeric, but query expects numeric.
STATEMENT:  UPDATE reminder SET reminder_charges='0' WHERE reminder_id=29362

reminder_charges is defined as:
reminder_charges       | numeric(5,2)                   | not null

I guess this is a bug.

Best Regards
Michael Paesold



Re: Type casting bug in 8.1.[67]?

From
Martijn van Oosterhout
Date:
On Tue, Feb 06, 2007 at 12:34:50PM +0100, Michael Paesold wrote:
> Hello all,
>
> after upgrading from 8.1.5 to 8.1.7, I got errors in the server log when
> updating decimal values using string constants. I tried the same using
> psql (pasted the query from below) and it fails, too. Downgrading to
> 8.1.5 resolved the issue.

Someone on -general just posted exactly the same problem for 8.1.7. I
wonder if the recent security update broke something else?

Have a nice day,
--
Martijn van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
> From each according to his ability. To each according to his ability to litigate.

Re: Type casting bug in 8.1.[67]?

From
Tom Lane
Date:
Michael Paesold <mpaesold@gmx.at> writes:
> after upgrading from 8.1.5 to 8.1.7, I got errors in the server log when 
> updating decimal values using string constants.

Have you got a constraint or functional index on that column?
        regards, tom lane


Re: Type casting bug in 8.1.[67]?

From
Michael Paesold
Date:
Tom Lane wrote:
> Michael Paesold <mpaesold@gmx.at> writes:
>> after upgrading from 8.1.5 to 8.1.7, I got errors in the server log when 
>> updating decimal values using string constants.
> 
> Have you got a constraint or functional index on that column?

Yes.

Check constraints:    "tc_reminder_charges" CHECK (reminder_charges >= 0::numeric)

As I read from your other post, you already figured that the issue is 
related to check constraints (or functional indexes).

Best Regards,
Michael Paesold