summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <andrey@example.com>2006-12-07 13:57:39 +0100
committerunknown <andrey@example.com>2006-12-07 13:57:39 +0100
commit0a22a1b915519a02c0c3264d585cbb53c5569207 (patch)
tree2e1bb320b790ae94b1d0dfa730f9afc265414c4c
parent1963159f70ccbb250fa6aa705111ec33a5cb20fd (diff)
downloadmariadb-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.test2
-rw-r--r--sql/sql_table.cc9
-rw-r--r--sql/sql_yacc.yy2
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