Commit 557ab6ad authored by unknown's avatar unknown
Browse files

Merge jbruehe@bk-internal.mysql.com:/home/bk/mysql-5.1-new

into debian.(none):/M51/mysql-5.1

parents e0c6ebb8 ed6de56f
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -140,3 +140,5 @@ t1 CREATE TABLE `t1` (
  `a` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PARTITION BY KEY (a) PARTITIONS 2 
DROP TABLE t1;
CREATE TABLE t1 (a INT) PARTITION BY HASH(a);
ALTER TABLE t1 ADD PARTITION PARTITIONS 4;
+6 −0
Original line number Diff line number Diff line
@@ -210,3 +210,9 @@ SHOW CREATE TABLE t1;
ALTER TABLE t1 PARTITION BY KEY(a) PARTITIONS 2;
SHOW CREATE TABLE t1;
DROP TABLE t1;

#
#BUG 15820 create table with 1 partition, doing ALTER TABLE ADD PARTITION fails
#
CREATE TABLE t1 (a INT) PARTITION BY HASH(a);
ALTER TABLE t1 ADD PARTITION PARTITIONS 4;
+12 −1
Original line number Diff line number Diff line
@@ -561,17 +561,28 @@ bool LOGGER::error_log_print(enum loglevel level, const char *format,
}


void LOGGER::cleanup()
void LOGGER::cleanup_base()
{
  DBUG_ASSERT(inited == 1);
  (void) pthread_mutex_destroy(&LOCK_logger);
  if (table_log_handler)
  {
    table_log_handler->cleanup();
    delete table_log_handler;
  }
  if (file_log_handler)
    file_log_handler->cleanup();
}


void LOGGER::cleanup_end()
{
  DBUG_ASSERT(inited == 1);
  if (file_log_handler)
    delete file_log_handler;
}


void LOGGER::close_log_table(uint log_type, bool lock_in_use)
{
  table_log_handler->close_log_table(log_type, lock_in_use);
+4 −1
Original line number Diff line number Diff line
@@ -479,7 +479,10 @@ class LOGGER
  {
    return (THD *) table_log_handler->slow_log_thd;
  }
  void cleanup();
  /* Perform basic logger cleanup. this will leave e.g. error log open. */
  void cleanup_base();
  /* Free memory. Nothing could be logged after this function is called */
  void cleanup_end();
  bool error_log_print(enum loglevel level, const char *format,
                      va_list args);
  bool slow_log_print(THD *thd, const char *query, uint query_length,
+4 −1
Original line number Diff line number Diff line
@@ -1144,7 +1144,8 @@ void clean_up(bool print_message)
  if (cleanup_done++)
    return; /* purecov: inspected */

  logger.cleanup();
  logger.cleanup_base();

  /*
    make sure that handlers finish up
    what they have that is dependent on the binlog
@@ -1237,6 +1238,8 @@ void clean_up(bool print_message)
  /* do the broadcast inside the lock to ensure that my_end() is not called */
  (void) pthread_cond_broadcast(&COND_thread_count);
  (void) pthread_mutex_unlock(&LOCK_thread_count);
  logger.cleanup_end();

  /*
    The following lines may never be executed as the main thread may have
    killed us