diff options
author | Kristofer Pettersson <kristofer.pettersson@sun.com> | 2009-03-05 15:22:33 +0100 |
---|---|---|
committer | Kristofer Pettersson <kristofer.pettersson@sun.com> | 2009-03-05 15:22:33 +0100 |
commit | ddaede8087c66bfd28a5a9e74d26143254deb63a (patch) | |
tree | 37053e7724481a2dcfeeb3ddd6925d1003ecadff /mysql-test/r/mysql_comments.result | |
parent | d61f114f7f753e8443d48190826f121662066967 (diff) | |
download | mariadb-git-ddaede8087c66bfd28a5a9e74d26143254deb63a.tar.gz |
Bug#39843 DELETE requires write access to table in subquery in where clause
An unnecessarily restrictive lock were taken on sub-SELECTs during DELETE.
During parsing, a global structure is reused for sub-SELECTs and the attribute
keeping track of lock options were not reset properly.
This patch introduces a new attribute to keep track on the syntactical lock
option elements found in a sub-SELECT and then sets the lock options accordingly.
Now the sub-SELECTs will try to acquire a READ lock if possible
instead of a WRITE lock as inherited from the outer DELETE statement.
mysql-test/r/lock.result:
Added test case for bug39843
mysql-test/t/lock.test:
Added test case for bug39843
sql/sql_lex.cc:
* Reset member variable lock_option on each new query.
sql/sql_lex.h:
* Introduced new member variable 'lock_option' which is keeping track
of the syntactical lock option of a (sub-)select query.
sql/sql_parse.cc:
* Wrote comments to functions.
sql/sql_yacc.yy:
* Introduced an attribute to keep track of syntactical lock options
in sub-selects.
* Made sure that the default value TL_READ_DEFAULT is at the begining
of each subselect-rule.
Diffstat (limited to 'mysql-test/r/mysql_comments.result')
0 files changed, 0 insertions, 0 deletions