Commit 83f48596 authored by unknown's avatar unknown
Browse files

API change: mysql_shutdown() now requires a 2nd argument, the shutdown level.

mysqld >=4.1.3 will however understand shutdown requests sent by clients <4.1.3.
And mysqld <4.1.3 will understand shutdown requests sent by clients >=4.1.3
(it will ignore the level). Those shutdown level are just PLACEHOLDERS now.
So this change is just to make the 4.1 API suitable before it is frozen. Later
we will actually implement the shutdown levels.


VC++Files/winmysqladmin/main.cpp:
  2nd argument to mysql_shutdown()
VC++Files/winmysqladmin/mysql.h:
  2nd argument to mysql_shutdown()
VC++Files/winmysqladmin/mysql_com.h:
  Several types of shutdown now.
include/mysql_com.h:
  SHUTDOWN_DEFAULT is now 0 instead of 255, this saves one test in sql_parse.cc
libmysql/libmysql.c:
  correcting mistake (how come that my tests still all worked with this? - should recheck, for curiosity).
sql/sql_parse.cc:
  with SHUTDOWN_DEFAULT==0, no need for testing packet_length.
parent 408dad07
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1196,7 +1196,7 @@ bool __fastcall TForm1::Shutd()
  if (IsConnect)
   {
     mysql_kill(MySQL,mysql_thread_id(MySQL));
     mysql_shutdown(MySQL);
     mysql_shutdown(MySQL, SHUTDOWN_DEFAULT);
     StatusLine->SimpleText = "";

   }
+3 −1
Original line number Diff line number Diff line
@@ -229,7 +229,9 @@ int STDCALL mysql_real_query(MYSQL *mysql, const char *q,
					unsigned int length);
int		STDCALL mysql_create_db(MYSQL *mysql, const char *DB);
int		STDCALL mysql_drop_db(MYSQL *mysql, const char *DB);
int		STDCALL mysql_shutdown(MYSQL *mysql);
int		STDCALL mysql_shutdown(MYSQL *mysql,
                                       enum enum_shutdown_level
                                       shutdown_level);
int		STDCALL mysql_dump_debug_info(MYSQL *mysql);
int		STDCALL mysql_refresh(MYSQL *mysql,
				     unsigned int refresh_options);
+21 −0
Original line number Diff line number Diff line
@@ -155,6 +155,27 @@ enum enum_field_types { FIELD_TYPE_DECIMAL, FIELD_TYPE_TINY,
#define FIELD_TYPE_CHAR FIELD_TYPE_TINY		/* For compability */
#define FIELD_TYPE_INTERVAL FIELD_TYPE_ENUM	/* For compability */

enum enum_shutdown_level {
  /*
    We want levels to be in growing order of gracefulness. So we leave room
    for future intermediate levels. For now, escalating one level is += 10;
    later if we insert new levels in between we will need a function
    next_shutdown_level(level). Note that DEFAULT does not respect the
    growing property.
  */
  SHUTDOWN_DEFAULT= 0, /* mapped to WAIT_ALL_BUFFERS for now */
  /*
    Here is the list in growing order (the next does the previous plus
    something). WAIT_ALL_BUFFERS is what we have now. Others are "this MySQL
    server does not support this shutdown level yet".
  */
  SHUTDOWN_WAIT_CRITICAL_BUFFERS= 10, /* flush MyISAM buffs (no corruption) */
  SHUTDOWN_WAIT_ALL_BUFFERS= 20, /* flush InnoDB buffers */
  SHUTDOWN_WAIT_STATEMENTS= 30, /* wait for existing updating stmts to finish */
  SHUTDOWN_WAIT_TRANSACTIONS= 40, /* wait for existing trans to finish */
  SHUTDOWN_WAIT_CONNECTIONS= 50 /* wait for existing connections to finish */
};

extern unsigned long max_allowed_packet;
extern unsigned long net_buffer_length;

+2 −2
Original line number Diff line number Diff line
@@ -231,7 +231,7 @@ enum enum_shutdown_level {
    next_shutdown_level(level). Note that DEFAULT does not respect the
    growing property.
  */
  SHUTDOWN_DEFAULT= 255, /* mapped to WAIT_ALL_BUFFERS for now */
  SHUTDOWN_DEFAULT= 0, /* mapped to WAIT_ALL_BUFFERS for now */
  /*
    Here is the list in growing order (the next does the previous plus
    something). WAIT_ALL_BUFFERS is what we have now. Others are "this MySQL
@@ -239,7 +239,7 @@ enum enum_shutdown_level {
  */
  SHUTDOWN_WAIT_CRITICAL_BUFFERS= 10, /* flush MyISAM buffs (no corruption) */
  SHUTDOWN_WAIT_ALL_BUFFERS= 20, /* flush InnoDB buffers */
  SHUTDOWN_WAIT_STATEMENTS= 30,
  SHUTDOWN_WAIT_STATEMENTS= 30, /* wait for existing updating stmts to finish */
  SHUTDOWN_WAIT_TRANSACTIONS= 40, /* wait for existing trans to finish */
  SHUTDOWN_WAIT_CONNECTIONS= 50 /* wait for existing connections to finish */
};
+1 −2
Original line number Diff line number Diff line
@@ -1290,8 +1290,7 @@ mysql_shutdown(MYSQL *mysql, enum enum_shutdown_level shutdown_level)
  uchar level[1];
  level[0]= (uchar) shutdown_level;
  DBUG_ENTER("mysql_shutdown");
  DBUG_RETURN(simple_command(mysql, COM_SHUTDOWN,
                             &level, 1, 0));
  DBUG_RETURN(simple_command(mysql, COM_SHUTDOWN, (char *)level, 1, 0));
}


Loading