diff options
author | unknown <kostja@dipika.(none)> | 2008-02-08 18:55:07 +0300 |
---|---|---|
committer | unknown <kostja@dipika.(none)> | 2008-02-08 18:55:07 +0300 |
commit | 81ac684b0677a8116db8bfef719b0e8ae8b7f394 (patch) | |
tree | 3a57c4b096fb93cacd1a7a226b7cf5ffc4d1c8fc /sql/sql_acl.cc | |
parent | df2cf8c78dc022472dd22584a140f579ad8cfe03 (diff) | |
parent | d157f5fd43949d9927ec4683b5e66e32a945e13d (diff) | |
download | mariadb-git-81ac684b0677a8116db8bfef719b0e8ae8b7f394.tar.gz |
Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into dipika.(none):/opt/local/work/mysql-5.1-runtime
include/my_sys.h:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/suite/binlog/r/binlog_row_binlog.result:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/log.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/set_var.h:
Auto merged
sql/sql_acl.cc:
Auto merged
sql-common/client.c:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_view.cc:
Auto merged
Diffstat (limited to 'sql/sql_acl.cc')
-rw-r--r-- | sql/sql_acl.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index 0d563ab9051..b04f624f746 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -3041,6 +3041,12 @@ bool mysql_table_grant(THD *thd, TABLE_LIST *table_list, } #endif + /* + The lock api is depending on the thd->lex variable which needs to be + re-initialized. + */ + Query_tables_list backup; + thd->lex->reset_n_backup_query_tables_list(&backup); if (simple_open_n_lock_tables(thd,tables)) { // Should never happen close_thread_tables(thd); /* purecov: deadcode */ @@ -3173,6 +3179,7 @@ bool mysql_table_grant(THD *thd, TABLE_LIST *table_list, send_ok(thd); /* Tables are automatically closed */ + thd->lex->restore_backup_query_tables_list(&backup); DBUG_RETURN(result); } @@ -3862,7 +3869,7 @@ bool check_grant(THD *thd, ulong want_access, TABLE_LIST *tables, of other queries). For simple queries first_not_own_table is 0. */ for (i= 0, table= tables; - table != first_not_own_table && i < number; + i < number && table != first_not_own_table; table= table->next_global, i++) { /* Remove SHOW_VIEW_ACL, because it will be checked during making view */ |