Обсуждение: [BUGS] BUG #14748: Invalid statement should raise parse error,but ignores invalid part instead

Поиск
Список
Период
Сортировка

[BUGS] BUG #14748: Invalid statement should raise parse error,but ignores invalid part instead

От
johnthuss@gmail.com
Дата:
The following bug has been logged on the website:

Bug reference:      14748
Logged by:          John Huss
Email address:      johnthuss@gmail.com
PostgreSQL version: 9.6.1
Operating system:   Linux
Description:

This statement is invalid because the 'AND' should be a WHERE or a comma:

update mytable set active = false and foreign_ID = 18984

But when executed it doesn't raise a parse error and simply ignores the
'and' and everything after it.

The result of the statement is that every row in the table is updated with
active=false.

I would expect this to throw a parse error.


--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

On 2017-07-17 14:51:26 +0000, johnthuss@gmail.com wrote:
> The following bug has been logged on the website:
> 
> Bug reference:      14748
> Logged by:          John Huss
> Email address:      johnthuss@gmail.com
> PostgreSQL version: 9.6.1
> Operating system:   Linux
> Description:        
> 
> This statement is invalid because the 'AND' should be a WHERE or a comma:
> 
> update mytable set active = false and foreign_ID = 18984
> 
> But when executed it doesn't raise a parse error and simply ignores the
> 'and' and everything after it.
> 
> The result of the statement is that every row in the table is updated with
> active=false.
> 
> I would expect this to throw a parse error.

What happens is that you're assigning the result of the expression
'false and foreign_ID = 18984'.

- Andres


-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs