Thread: BUG #2003: Bug with SQL UPDATE on a NUMERIC

BUG #2003: Bug with SQL UPDATE on a NUMERIC

From
"David Pujol"
Date:
The following bug has been logged online:

Bug reference:      2003
Logged by:          David Pujol
Email address:      dpujol@toulouse.inra.fr
PostgreSQL version: 8.0 and 7.4
Operating system:   Windows and linux
Description:        Bug with SQL UPDATE  on a NUMERIC
Details:

Hello, I've noticed a bug when I modify a quantity with an INSERT and a
minus operator.
My request is:
UPDATE products SET pr_stock=pr_stock--1 WHERE pr_code=600;

I haven't SQL error but 'pr_stock' value (numeric(5,1)) is unchanged : no
increment or decrement.

I've made tests:
- 'pr_stock=pr_stock +- 1' is OK (substraction -1)
- 'pr_stock=pr_stock ++ 1' is OK ( +1)
- 'pr_stock=pr_stock -+ 1' is OK ( -1)
- 'pr_stock=pr_stock -- 1' is not OK (no change, no error)

Same things with brackets :
- 'pr_stock=pr_stock +(- 1)' is OK (substraction -1)
- 'pr_stock=pr_stock +(+ 1)' is OK ( +1)
- 'pr_stock=pr_stock -(+ 1)' is OK ( -1)
- 'pr_stock=pr_stock -(- 1)' is not OK (no change, no error)

This bug report is for Windows XP + Postresql 8.0 and for Linux + Postgresql
7.4


PS : Sorry for my english ; I'm french!

Re: BUG #2003: Bug with SQL UPDATE on a NUMERIC

From
Stephan Szabo
Date:
On Thu, 27 Oct 2005, David Pujol wrote:

> Hello, I've noticed a bug when I modify a quantity with an INSERT and a
> minus operator.
> My request is:
> UPDATE products SET pr_stock=pr_stock--1 WHERE pr_code=600;
>
> I haven't SQL error but 'pr_stock' value (numeric(5,1)) is unchanged : no
> increment or decrement.
>
> I've made tests:
> - 'pr_stock=pr_stock +- 1' is OK (substraction -1)
> - 'pr_stock=pr_stock ++ 1' is OK ( +1)
> - 'pr_stock=pr_stock -+ 1' is OK ( -1)
> - 'pr_stock=pr_stock -- 1' is not OK (no change, no error)
>
> Same things with brackets :
> - 'pr_stock=pr_stock +(- 1)' is OK (substraction -1)
> - 'pr_stock=pr_stock +(+ 1)' is OK ( +1)
> - 'pr_stock=pr_stock -(+ 1)' is OK ( -1)
> - 'pr_stock=pr_stock -(- 1)' is not OK (no change, no error)

I cannot reproduce the second case here on 8.0.x + Linux.  I get an
addition of 1.  The first case is user error I think because I believe --
is the comment beginning marker.