summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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