summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <serg@serg.mylan>2004-08-19 12:00:03 +0200
committerunknown <serg@serg.mylan>2004-08-19 12:00:03 +0200
commit283ebce11ab5d0123d0178a52b9e773448bfa932 (patch)
treee2cba882e2e3efe9bf2feed69fa149d5e0399886 /sql
parent8001a7db2b516069289db041bdac9cede64892ce (diff)
parentf758ada4bcfdf9b22b1603bc273b5e2a6436037b (diff)
downloadmariadb-git-283ebce11ab5d0123d0178a52b9e773448bfa932.tar.gz
Merge bk-internal:/home/bk/mysql-4.0/
into serg.mylan:/usr/home/serg/Abk/mysql-4.0
Diffstat (limited to 'sql')
-rw-r--r--sql/sql_class.h2
-rw-r--r--sql/sql_table.cc18
2 files changed, 10 insertions, 10 deletions
diff --git a/sql/sql_class.h b/sql/sql_class.h
index 8284cd23b9e..3c968c6a8ae 100644
--- a/sql/sql_class.h
+++ b/sql/sql_class.h
@@ -647,7 +647,7 @@ public:
so we internally disable it temporarily by creating the Disable_binlog
object and reset the state by destroying the object (don't forget that! or
write code so that the object gets automatically destroyed when leaving a
- function...).
+ block, see example in sql_table.cc).
*/
class Disable_binlog {
private:
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index c09892ac48b..96eebd98ac3 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -1762,7 +1762,6 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name,
List_iterator<Key> key_it(keys);
List_iterator<create_field> field_it(create_list);
List<key_part_spec> key_parts;
- Disable_binlog *disable_binlog;
KEY *key_info=table->key_info;
for (uint i=0 ; i < table->keys ; i++,key_info++)
@@ -1925,16 +1924,17 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name,
}
else
create_info->data_file_name=create_info->index_file_name=0;
- /* We don't log the statement, it will be logged later */
- disable_binlog= new Disable_binlog(thd);
- if ((error=mysql_create_table(thd, new_db, tmp_name,
- create_info,
- create_list,key_list,1)))
{
- delete disable_binlog;
- DBUG_RETURN(error);
+ /*
+ We don't log the statement, it will be logged later. Using a block so
+ that disable_binlog is deleted when we leave it in either way.
+ */
+ Disable_binlog disable_binlog(thd);
+ if ((error=mysql_create_table(thd, new_db, tmp_name,
+ create_info,
+ create_list,key_list,1)))
+ DBUG_RETURN(error);
}
- delete disable_binlog; // reset binlogging properties for next code lines
if (table->tmp_table)
new_table=open_table(thd,new_db,tmp_name,tmp_name,0);
else