diff options
author | unknown <andrey@example.com> | 2006-12-07 13:57:39 +0100 |
---|---|---|
committer | unknown <andrey@example.com> | 2006-12-07 13:57:39 +0100 |
commit | 0a22a1b915519a02c0c3264d585cbb53c5569207 (patch) | |
tree | 2e1bb320b790ae94b1d0dfa730f9afc265414c4c | |
parent | 1963159f70ccbb250fa6aa705111ec33a5cb20fd (diff) | |
download | mariadb-git-0a22a1b915519a02c0c3264d585cbb53c5569207.tar.gz |
Additional fix for bug#22369
mysql-test/t/events_bugs.test:
let events_bugs not fail because of timing
sql/sql_table.cc:
if the db or name has been changed ALTER_RENAME,
then fix table_list
Solution by having the second table added in the parser to the
list of used tables, won't work because checking of rights of merge
tables goes over table_list->next_local and checks the rights, so
we will fail there.
sql/sql_yacc.yy:
fix name - prevents ddd from correct working
-rw-r--r-- | mysql-test/t/events_bugs.test | 2 | ||||
-rw-r--r-- | sql/sql_table.cc | 9 | ||||
-rw-r--r-- | sql/sql_yacc.yy | 2 |
3 files changed, 11 insertions, 2 deletions
diff --git a/mysql-test/t/events_bugs.test b/mysql-test/t/events_bugs.test index 605eaa431d0..e9751608a46 100644 --- a/mysql-test/t/events_bugs.test +++ b/mysql-test/t/events_bugs.test @@ -280,7 +280,7 @@ create event e22830_3 on schedule every 1 hour do alter event e22830_3 on schedu create event e22830_4 on schedule every 1 hour do alter event e22830_4 on schedule every (select f22830() from dual) hour; select event_name, event_definition, interval_value, interval_field from information_schema.events order by event_name; set global event_scheduler=on; ---sleep 2.4 +--sleep 4 set global event_scheduler=off; select event_name, event_definition, interval_value, interval_field from information_schema.events order by event_name; drop function f22830; diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 0fd7683a983..c8f6e09fecb 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -6527,6 +6527,15 @@ view_err: { if (! table) { + if (new_name != table_name || new_db != db) + { + table_list->alias= new_name; + table_list->table_name= new_name; + table_list->table_name_length= strlen(new_name); + table_list->db= new_db; + table_list->db_length= strlen(new_db); + } + VOID(pthread_mutex_unlock(&LOCK_open)); if (! (table= open_ltable(thd, table_list, TL_WRITE_ALLOW_READ))) goto err; diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 434cd0e4cd5..704c505ded9 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -4868,7 +4868,7 @@ alter_commands: | remove_partitioning | partitioning /* - This part was added for release 5.1 by Mikael Ronström. + This part was added for release 5.1 by Mikael Ronström. From here we insert a number of commands to manage the partitions of a partitioned table such as adding partitions, dropping partitions, reorganising partitions in various manners. In future releases the list |