Re: [sqlite] SQL Syntax fault on UPDATE statement

2016-08-17 Thread flo
Effectively, Sorry about my mistake. 2016-08-17 10:33 GMT+02:00 Richard Hipp : > On 8/17/16, flo wrote: > > > > $ sqlite3 test.db "UPDATE test SET id=0 AND name='new_name' AND age=30 > > WHERE id=1;" > > The above is parsed like this: > > UPDATE test

Re: [sqlite] SQL Syntax fault on UPDATE statement

2016-08-17 Thread R Smith
On 2016/08/17 11:04 AM, Simon Davies wrote: On 17 August 2016 at 09:39, R Smith wrote: On 2016/08/17 9:05 AM, flo wrote: Hi everyone, . . . Well, it is perfectly valid to give boolean operations as an expression. If I said " id = 3 AND 6 then the resulting value would

Re: [sqlite] SQL Syntax fault on UPDATE statement

2016-08-17 Thread Simon Davies
On 17 August 2016 at 09:39, R Smith wrote: > > > On 2016/08/17 9:05 AM, flo wrote: >> >> Hi everyone, . . . > Well, it is perfectly valid to give boolean operations as an expression. > If I said " id = 3 AND 6 then the resulting value would be 2 (If you are > unsure why that

Re: [sqlite] SQL Syntax fault on UPDATE statement

2016-08-17 Thread R Smith
On 2016/08/17 9:05 AM, flo wrote: Hi everyone, I found a reproducible bug on the SQL UPDATE statement parsing. Here is the details. I 've try to update some data on a SQLite database with a outlandish syntax with "AND" between the columns to be update. The SQL didn't fail but the data

Re: [sqlite] SQL Syntax fault on UPDATE statement

2016-08-17 Thread Hick Gunter
Your UPDATE statement does not mean what you think it means. UPDATE test SET id=0 AND name='new_name' AND age=30 WHERE id=1; Is parsed as: UPDATE test SET id = (0 AND name='new_name' AND age=30) WHERE id=1; The expression (0 AND ...) will always evaluate to 0. -Ursprüngliche

Re: [sqlite] SQL Syntax fault on UPDATE statement

2016-08-17 Thread Richard Hipp
On 8/17/16, flo wrote: > > $ sqlite3 test.db "UPDATE test SET id=0 AND name='new_name' AND age=30 > WHERE id=1;" The above is parsed like this: UPDATE test SET id = (0 AND name='new_name' AND age=30) WHERE id=1; And since the expression in parentheses always evaluates