1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Very small API change: changing the values in enum enum_shutdown_level;

as this enum is not really usable yet (as MySQL server supports only one
shutdown level), and as SHUTDOWN_DEFAULT is still left to 0, this change
should disturb no user. Later (in 4.1.4 or 4.1.5) code will be pushed to
implement graceful shutdown using this enum.


VC++Files/winmysqladmin/mysql_com.h:
  changing the values in the enumeration enum_shutdown_level.
include/mysql_com.h:
  changing the values in the enum enum_shutdown_level.
  The main one, SHUTDOWN_DEFAULT, is unchanged.
This commit is contained in:
unknown
2004-08-19 01:03:43 +02:00
parent ead6df77e2
commit bcfb79c844
2 changed files with 54 additions and 32 deletions

View File

@ -155,25 +155,32 @@ enum enum_field_types { FIELD_TYPE_DECIMAL, FIELD_TYPE_TINY,
#define FIELD_TYPE_CHAR FIELD_TYPE_TINY /* For compability */ #define FIELD_TYPE_CHAR FIELD_TYPE_TINY /* For compability */
#define FIELD_TYPE_INTERVAL FIELD_TYPE_ENUM /* For compability */ #define FIELD_TYPE_INTERVAL FIELD_TYPE_ENUM /* For compability */
/* Shutdown/kill enums and constants */
/* Bits for THD::killable. */
#define KILLABLE_CONNECT (unsigned char)(1 << 0)
#define KILLABLE_TRANS (unsigned char)(1 << 1)
#define KILLABLE_LOCK_TABLE (unsigned char)(1 << 2)
#define KILLABLE_UPDATE (unsigned char)(1 << 3)
enum enum_shutdown_level { enum enum_shutdown_level {
/* /*
We want levels to be in growing order of hardness. So we leave room We want levels to be in growing order of hardness (because we use number
for future intermediate levels. For now, escalating one level is += 10; comparisons). Note that DEFAULT does not respect the growing property, but
later if we insert new levels in between we will need a function it's ok.
next_shutdown_level(level). Note that DEFAULT does not respect the
growing property.
*/ */
SHUTDOWN_DEFAULT= 0, /* mapped to WAIT_ALL_BUFFERS for now */ SHUTDOWN_DEFAULT= 0,
/* /* wait for existing connections to finish */
Here is the list in growing order (the next does the previous plus SHUTDOWN_WAIT_CONNECTIONS= KILLABLE_CONNECT,
something). WAIT_ALL_BUFFERS is what we have now. Others are "this MySQL /* wait for existing trans to finish */
server does not support this shutdown level yet". SHUTDOWN_WAIT_TRANSACTIONS= KILLABLE_TRANS,
*/ /* wait for existing updates to finish (=> no partial MyISAM update) */
SHUTDOWN_WAIT_CONNECTIONS= 10, /* wait for existing connections to finish */ SHUTDOWN_WAIT_UPDATES= KILLABLE_UPDATE,
SHUTDOWN_WAIT_TRANSACTIONS= 20, /* wait for existing trans to finish */ /* flush InnoDB buffers and other storage engines' buffers*/
SHUTDOWN_WAIT_STATEMENTS= 30, /* wait for existing updating stmts to finish */ SHUTDOWN_WAIT_ALL_BUFFERS= (KILLABLE_UPDATE << 1),
SHUTDOWN_WAIT_ALL_BUFFERS= 40, /* flush InnoDB buffers */ /* don't flush InnoDB buffers, flush other storage engines' buffers*/
SHUTDOWN_WAIT_CRITICAL_BUFFERS= 50, /* flush MyISAM buffs (no corruption) */ SHUTDOWN_WAIT_CRITICAL_BUFFERS= (KILLABLE_UPDATE << 1) + 1,
/* Now the 2 levels of the KILL command */ /* Now the 2 levels of the KILL command */
#if MYSQL_VERSION_ID >= 50000 #if MYSQL_VERSION_ID >= 50000
KILL_QUERY= 254, KILL_QUERY= 254,
@ -181,6 +188,10 @@ enum enum_shutdown_level {
KILL_CONNECTION= 255 KILL_CONNECTION= 255
}; };
/* Same value and type (0, enum_shutdown_level) but not same meaning */
#define NOT_KILLED SHUTDOWN_DEFAULT
extern unsigned long max_allowed_packet; extern unsigned long max_allowed_packet;
extern unsigned long net_buffer_length; extern unsigned long net_buffer_length;

View File

@ -223,25 +223,32 @@ enum enum_field_types { MYSQL_TYPE_DECIMAL, MYSQL_TYPE_TINY,
#define FIELD_TYPE_INTERVAL MYSQL_TYPE_ENUM #define FIELD_TYPE_INTERVAL MYSQL_TYPE_ENUM
#define FIELD_TYPE_GEOMETRY MYSQL_TYPE_GEOMETRY #define FIELD_TYPE_GEOMETRY MYSQL_TYPE_GEOMETRY
/* Shutdown/kill enums and constants */
/* Bits for THD::killable. */
#define KILLABLE_CONNECT (unsigned char)(1 << 0)
#define KILLABLE_TRANS (unsigned char)(1 << 1)
#define KILLABLE_LOCK_TABLE (unsigned char)(1 << 2)
#define KILLABLE_UPDATE (unsigned char)(1 << 3)
enum enum_shutdown_level { enum enum_shutdown_level {
/* /*
We want levels to be in growing order of hardness. So we leave room We want levels to be in growing order of hardness (because we use number
for future intermediate levels. For now, escalating one level is += 10; comparisons). Note that DEFAULT does not respect the growing property, but
later if we insert new levels in between we will need a function it's ok.
next_shutdown_level(level). Note that DEFAULT does not respect the
growing property.
*/ */
SHUTDOWN_DEFAULT= 0, /* mapped to WAIT_ALL_BUFFERS for now */ SHUTDOWN_DEFAULT= 0,
/* /* wait for existing connections to finish */
Here is the list in growing order (the next does the previous plus SHUTDOWN_WAIT_CONNECTIONS= KILLABLE_CONNECT,
something). WAIT_ALL_BUFFERS is what we have now. Others are "this MySQL /* wait for existing trans to finish */
server does not support this shutdown level yet". SHUTDOWN_WAIT_TRANSACTIONS= KILLABLE_TRANS,
*/ /* wait for existing updates to finish (=> no partial MyISAM update) */
SHUTDOWN_WAIT_CONNECTIONS= 10, /* wait for existing connections to finish */ SHUTDOWN_WAIT_UPDATES= KILLABLE_UPDATE,
SHUTDOWN_WAIT_TRANSACTIONS= 20, /* wait for existing trans to finish */ /* flush InnoDB buffers and other storage engines' buffers*/
SHUTDOWN_WAIT_STATEMENTS= 30, /* wait for existing updating stmts to finish */ SHUTDOWN_WAIT_ALL_BUFFERS= (KILLABLE_UPDATE << 1),
SHUTDOWN_WAIT_ALL_BUFFERS= 40, /* flush InnoDB buffers */ /* don't flush InnoDB buffers, flush other storage engines' buffers*/
SHUTDOWN_WAIT_CRITICAL_BUFFERS= 50, /* flush MyISAM buffs (no corruption) */ SHUTDOWN_WAIT_CRITICAL_BUFFERS= (KILLABLE_UPDATE << 1) + 1,
/* Now the 2 levels of the KILL command */ /* Now the 2 levels of the KILL command */
#if MYSQL_VERSION_ID >= 50000 #if MYSQL_VERSION_ID >= 50000
KILL_QUERY= 254, KILL_QUERY= 254,
@ -249,6 +256,10 @@ enum enum_shutdown_level {
KILL_CONNECTION= 255 KILL_CONNECTION= 255
}; };
/* Same value and type (0, enum_shutdown_level) but not same meaning */
#define NOT_KILLED SHUTDOWN_DEFAULT
/* options for mysql_set_option */ /* options for mysql_set_option */
enum enum_mysql_set_option enum enum_mysql_set_option
{ {