Thread: BUG #2003: Bug with SQL UPDATE on a NUMERIC
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!
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.