mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge mysqldev@production.mysql.com:my/mysql-5.1-release
into mysql.com:/home/cps/mysql/trees/5.1/5.1-virgin-no-debug mysql-test/mysql-test-run.pl: Auto merged sql/log.cc: Auto merged sql/log.h: Auto merged sql/mysql_priv.h: Auto merged sql/mysqld.cc: Auto merged
This commit is contained in:
@ -1836,7 +1836,7 @@ EOF
|
|||||||
;
|
;
|
||||||
|
|
||||||
print OUT "nonguarded\n" if $instance->{'nonguarded'};
|
print OUT "nonguarded\n" if $instance->{'nonguarded'};
|
||||||
print OUT "old-log-format\n" if $instance->{'old_log_format'};
|
print OUT "log-output=FILE\n" if $instance->{'old_log_format'};
|
||||||
print OUT "\n";
|
print OUT "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ skip-stack-trace VALUE
|
|||||||
skip-innodb VALUE
|
skip-innodb VALUE
|
||||||
skip-bdb VALUE
|
skip-bdb VALUE
|
||||||
skip-ndbcluster VALUE
|
skip-ndbcluster VALUE
|
||||||
old-log-format VALUE
|
log-output VALUE
|
||||||
SHOW INSTANCE OPTIONS mysqld2;
|
SHOW INSTANCE OPTIONS mysqld2;
|
||||||
option_name value
|
option_name value
|
||||||
instance_name VALUE
|
instance_name VALUE
|
||||||
@ -42,7 +42,7 @@ skip-stack-trace VALUE
|
|||||||
skip-innodb VALUE
|
skip-innodb VALUE
|
||||||
skip-bdb VALUE
|
skip-bdb VALUE
|
||||||
skip-ndbcluster VALUE
|
skip-ndbcluster VALUE
|
||||||
old-log-format VALUE
|
log-output VALUE
|
||||||
START INSTANCE mysqld2;
|
START INSTANCE mysqld2;
|
||||||
STOP INSTANCE mysqld2;
|
STOP INSTANCE mysqld2;
|
||||||
SHOW mysqld1 LOG FILES;
|
SHOW mysqld1 LOG FILES;
|
||||||
|
67
sql/log.cc
67
sql/log.cc
@ -608,7 +608,7 @@ void LOGGER::init_base()
|
|||||||
file_log_handler= new Log_to_file_event_handler;
|
file_log_handler= new Log_to_file_event_handler;
|
||||||
|
|
||||||
/* by default we use traditional error log */
|
/* by default we use traditional error log */
|
||||||
init_error_log(LEGACY);
|
init_error_log(LOG_FILE);
|
||||||
|
|
||||||
file_log_handler->init_pthread_objects();
|
file_log_handler->init_pthread_objects();
|
||||||
(void) pthread_mutex_init(&LOCK_logger, MY_MUTEX_INIT_SLOW);
|
(void) pthread_mutex_init(&LOCK_logger, MY_MUTEX_INIT_SLOW);
|
||||||
@ -816,41 +816,47 @@ bool LOGGER::general_log_print(THD *thd, enum enum_server_command command,
|
|||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
void LOGGER::init_error_log(enum enum_printer error_log_printer)
|
void LOGGER::init_error_log(uint error_log_printer)
|
||||||
{
|
{
|
||||||
switch (error_log_printer) {
|
if (error_log_printer & LOG_NONE)
|
||||||
case NONE:
|
{
|
||||||
error_log_handler_list[0]= 0;
|
error_log_handler_list[0]= 0;
|
||||||
break;
|
return;
|
||||||
case LEGACY:
|
}
|
||||||
|
|
||||||
|
switch (error_log_printer) {
|
||||||
|
case LOG_FILE:
|
||||||
error_log_handler_list[0]= file_log_handler;
|
error_log_handler_list[0]= file_log_handler;
|
||||||
error_log_handler_list[1]= 0;
|
error_log_handler_list[1]= 0;
|
||||||
break;
|
break;
|
||||||
/* these two are disabled for now */
|
/* these two are disabled for now */
|
||||||
case CSV:
|
case LOG_TABLE:
|
||||||
DBUG_ASSERT(0);
|
DBUG_ASSERT(0);
|
||||||
break;
|
break;
|
||||||
case LEGACY_AND_CSV:
|
case LOG_TABLE|LOG_FILE:
|
||||||
DBUG_ASSERT(0);
|
DBUG_ASSERT(0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LOGGER::init_slow_log(enum enum_printer slow_log_printer)
|
void LOGGER::init_slow_log(uint slow_log_printer)
|
||||||
{
|
{
|
||||||
switch (slow_log_printer) {
|
if (slow_log_printer & LOG_NONE)
|
||||||
case NONE:
|
{
|
||||||
slow_log_handler_list[0]= 0;
|
slow_log_handler_list[0]= 0;
|
||||||
break;
|
return;
|
||||||
case LEGACY:
|
}
|
||||||
|
|
||||||
|
switch (slow_log_printer) {
|
||||||
|
case LOG_FILE:
|
||||||
slow_log_handler_list[0]= file_log_handler;
|
slow_log_handler_list[0]= file_log_handler;
|
||||||
slow_log_handler_list[1]= 0;
|
slow_log_handler_list[1]= 0;
|
||||||
break;
|
break;
|
||||||
case CSV:
|
case LOG_TABLE:
|
||||||
slow_log_handler_list[0]= table_log_handler;
|
slow_log_handler_list[0]= table_log_handler;
|
||||||
slow_log_handler_list[1]= 0;
|
slow_log_handler_list[1]= 0;
|
||||||
break;
|
break;
|
||||||
case LEGACY_AND_CSV:
|
case LOG_TABLE|LOG_FILE:
|
||||||
slow_log_handler_list[0]= file_log_handler;
|
slow_log_handler_list[0]= file_log_handler;
|
||||||
slow_log_handler_list[1]= table_log_handler;
|
slow_log_handler_list[1]= table_log_handler;
|
||||||
slow_log_handler_list[2]= 0;
|
slow_log_handler_list[2]= 0;
|
||||||
@ -858,21 +864,24 @@ void LOGGER::init_slow_log(enum enum_printer slow_log_printer)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LOGGER::init_general_log(enum enum_printer general_log_printer)
|
void LOGGER::init_general_log(uint general_log_printer)
|
||||||
{
|
{
|
||||||
switch (general_log_printer) {
|
if (general_log_printer & LOG_NONE)
|
||||||
case NONE:
|
{
|
||||||
general_log_handler_list[0]= 0;
|
general_log_handler_list[0]= 0;
|
||||||
break;
|
return;
|
||||||
case LEGACY:
|
}
|
||||||
|
|
||||||
|
switch (general_log_printer) {
|
||||||
|
case LOG_FILE:
|
||||||
general_log_handler_list[0]= file_log_handler;
|
general_log_handler_list[0]= file_log_handler;
|
||||||
general_log_handler_list[1]= 0;
|
general_log_handler_list[1]= 0;
|
||||||
break;
|
break;
|
||||||
case CSV:
|
case LOG_TABLE:
|
||||||
general_log_handler_list[0]= table_log_handler;
|
general_log_handler_list[0]= table_log_handler;
|
||||||
general_log_handler_list[1]= 0;
|
general_log_handler_list[1]= 0;
|
||||||
break;
|
break;
|
||||||
case LEGACY_AND_CSV:
|
case LOG_TABLE|LOG_FILE:
|
||||||
general_log_handler_list[0]= file_log_handler;
|
general_log_handler_list[0]= file_log_handler;
|
||||||
general_log_handler_list[1]= table_log_handler;
|
general_log_handler_list[1]= table_log_handler;
|
||||||
general_log_handler_list[2]= 0;
|
general_log_handler_list[2]= 0;
|
||||||
@ -903,20 +912,20 @@ bool Log_to_csv_event_handler::init()
|
|||||||
return (open_log_table(QUERY_LOG_GENERAL) || open_log_table(QUERY_LOG_SLOW));
|
return (open_log_table(QUERY_LOG_GENERAL) || open_log_table(QUERY_LOG_SLOW));
|
||||||
}
|
}
|
||||||
|
|
||||||
int LOGGER::set_handlers(enum enum_printer error_log_printer,
|
int LOGGER::set_handlers(uint error_log_printer,
|
||||||
enum enum_printer slow_log_printer,
|
uint slow_log_printer,
|
||||||
enum enum_printer general_log_printer)
|
uint general_log_printer)
|
||||||
{
|
{
|
||||||
/* error log table is not supported yet */
|
/* error log table is not supported yet */
|
||||||
DBUG_ASSERT(error_log_printer < CSV);
|
DBUG_ASSERT(error_log_printer < LOG_TABLE);
|
||||||
|
|
||||||
lock();
|
lock();
|
||||||
|
|
||||||
if ((slow_log_printer >= CSV || general_log_printer >= CSV) &&
|
if ((slow_log_printer & LOG_TABLE || general_log_printer & LOG_TABLE) &&
|
||||||
!is_log_tables_initialized)
|
!is_log_tables_initialized)
|
||||||
{
|
{
|
||||||
slow_log_printer= LEGACY;
|
slow_log_printer= (slow_log_printer & ~LOG_TABLE) | LOG_FILE;
|
||||||
general_log_printer= LEGACY;
|
general_log_printer= (general_log_printer & ~LOG_TABLE) | LOG_FILE;
|
||||||
|
|
||||||
sql_print_error("Failed to initialize log tables. "
|
sql_print_error("Failed to initialize log tables. "
|
||||||
"Falling back to the old-fashioned logs");
|
"Falling back to the old-fashioned logs");
|
||||||
|
24
sql/log.h
24
sql/log.h
@ -138,14 +138,10 @@ typedef struct st_log_info
|
|||||||
*/
|
*/
|
||||||
#define MAX_LOG_HANDLERS_NUM 3
|
#define MAX_LOG_HANDLERS_NUM 3
|
||||||
|
|
||||||
enum enum_printer
|
/* log event handler flags */
|
||||||
{
|
#define LOG_NONE 1
|
||||||
NONE,
|
#define LOG_FILE 2
|
||||||
LEGACY,
|
#define LOG_TABLE 4
|
||||||
CSV,
|
|
||||||
LEGACY_AND_CSV
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
class Log_event;
|
class Log_event;
|
||||||
class Rows_log_event;
|
class Rows_log_event;
|
||||||
@ -500,12 +496,12 @@ public:
|
|||||||
bool reopen_log_table(uint log_type);
|
bool reopen_log_table(uint log_type);
|
||||||
|
|
||||||
/* we use this function to setup all enabled log event handlers */
|
/* we use this function to setup all enabled log event handlers */
|
||||||
int set_handlers(enum enum_printer error_log_printer,
|
int set_handlers(uint error_log_printer,
|
||||||
enum enum_printer slow_log_printer,
|
uint slow_log_printer,
|
||||||
enum enum_printer general_log_printer);
|
uint general_log_printer);
|
||||||
void init_error_log(enum enum_printer error_log_printer);
|
void init_error_log(uint error_log_printer);
|
||||||
void init_slow_log(enum enum_printer slow_log_printer);
|
void init_slow_log(uint slow_log_printer);
|
||||||
void init_general_log(enum enum_printer general_log_printer);
|
void init_general_log(uint general_log_printer);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* LOG_H */
|
#endif /* LOG_H */
|
||||||
|
@ -1305,7 +1305,6 @@ extern my_bool locked_in_memory;
|
|||||||
extern bool opt_using_transactions, mysqld_embedded;
|
extern bool opt_using_transactions, mysqld_embedded;
|
||||||
extern bool using_update_log, opt_large_files, server_id_supplied;
|
extern bool using_update_log, opt_large_files, server_id_supplied;
|
||||||
extern bool opt_log, opt_update_log, opt_bin_log, opt_slow_log, opt_error_log;
|
extern bool opt_log, opt_update_log, opt_bin_log, opt_slow_log, opt_error_log;
|
||||||
extern bool opt_old_log_format;
|
|
||||||
extern bool opt_disable_networking, opt_skip_show_db;
|
extern bool opt_disable_networking, opt_skip_show_db;
|
||||||
extern my_bool opt_character_set_client_handshake;
|
extern my_bool opt_character_set_client_handshake;
|
||||||
extern bool volatile abort_loop, shutdown_in_progress, grant_option;
|
extern bool volatile abort_loop, shutdown_in_progress, grant_option;
|
||||||
|
105
sql/mysqld.cc
105
sql/mysqld.cc
@ -297,8 +297,16 @@ arg_cmp_func Arg_comparator::comparator_matrix[5][2] =
|
|||||||
{&Arg_comparator::compare_row, &Arg_comparator::compare_e_row},
|
{&Arg_comparator::compare_row, &Arg_comparator::compare_e_row},
|
||||||
{&Arg_comparator::compare_decimal, &Arg_comparator::compare_e_decimal}};
|
{&Arg_comparator::compare_decimal, &Arg_comparator::compare_e_decimal}};
|
||||||
|
|
||||||
|
const char *log_output_names[] =
|
||||||
|
{ "NONE", "FILE", "TABLE", NullS};
|
||||||
|
TYPELIB log_output_typelib= {array_elements(log_output_names)-1,"",
|
||||||
|
log_output_names, NULL};
|
||||||
|
|
||||||
/* static variables */
|
/* static variables */
|
||||||
|
|
||||||
|
/* the default log output is log tables */
|
||||||
|
static const char *log_output_str= "TABLE";
|
||||||
|
static ulong log_output_options= LOG_TABLE;
|
||||||
static bool lower_case_table_names_used= 0;
|
static bool lower_case_table_names_used= 0;
|
||||||
static bool volatile select_thread_in_use, signal_thread_in_use;
|
static bool volatile select_thread_in_use, signal_thread_in_use;
|
||||||
static bool volatile ready_to_exit;
|
static bool volatile ready_to_exit;
|
||||||
@ -332,9 +340,6 @@ static my_bool opt_sync_bdb_logs;
|
|||||||
|
|
||||||
bool opt_log, opt_update_log, opt_bin_log, opt_slow_log;
|
bool opt_log, opt_update_log, opt_bin_log, opt_slow_log;
|
||||||
bool opt_error_log= IF_WIN(1,0);
|
bool opt_error_log= IF_WIN(1,0);
|
||||||
#ifdef WITH_CSV_STORAGE_ENGINE
|
|
||||||
bool opt_old_log_format, opt_both_log_formats;
|
|
||||||
#endif
|
|
||||||
bool opt_disable_networking=0, opt_skip_show_db=0;
|
bool opt_disable_networking=0, opt_skip_show_db=0;
|
||||||
my_bool opt_character_set_client_handshake= 1;
|
my_bool opt_character_set_client_handshake= 1;
|
||||||
bool server_id_supplied = 0;
|
bool server_id_supplied = 0;
|
||||||
@ -2398,8 +2403,8 @@ pthread_handler_t signal_hand(void *arg __attribute__((unused)))
|
|||||||
sql_print_information("Got signal %d to shutdown mysqld",sig);
|
sql_print_information("Got signal %d to shutdown mysqld",sig);
|
||||||
#endif
|
#endif
|
||||||
/* switch to the old log message processing */
|
/* switch to the old log message processing */
|
||||||
logger.set_handlers(LEGACY, opt_slow_log ? LEGACY:NONE,
|
logger.set_handlers(LOG_FILE, opt_slow_log ? LOG_FILE:LOG_NONE,
|
||||||
opt_log ? LEGACY:NONE);
|
opt_log ? LOG_FILE:LOG_NONE);
|
||||||
DBUG_PRINT("info",("Got signal: %d abort_loop: %d",sig,abort_loop));
|
DBUG_PRINT("info",("Got signal: %d abort_loop: %d",sig,abort_loop));
|
||||||
if (!abort_loop)
|
if (!abort_loop)
|
||||||
{
|
{
|
||||||
@ -2428,8 +2433,8 @@ pthread_handler_t signal_hand(void *arg __attribute__((unused)))
|
|||||||
(TABLE_LIST*) 0, ¬_used); // Flush logs
|
(TABLE_LIST*) 0, ¬_used); // Flush logs
|
||||||
}
|
}
|
||||||
/* reenable logs after the options were reloaded */
|
/* reenable logs after the options were reloaded */
|
||||||
logger.set_handlers(LEGACY, opt_slow_log ? CSV:NONE,
|
logger.set_handlers(LOG_FILE, opt_slow_log ? LOG_TABLE:LOG_NONE,
|
||||||
opt_log ? CSV:NONE);
|
opt_log ? LOG_TABLE:LOG_NONE);
|
||||||
break;
|
break;
|
||||||
#ifdef USE_ONE_SIGNAL_HAND
|
#ifdef USE_ONE_SIGNAL_HAND
|
||||||
case THR_SERVER_ALARM:
|
case THR_SERVER_ALARM:
|
||||||
@ -3091,21 +3096,34 @@ static int init_server_components()
|
|||||||
else
|
else
|
||||||
logger.init_log_tables();
|
logger.init_log_tables();
|
||||||
|
|
||||||
if (opt_old_log_format || (have_csv_db != SHOW_OPTION_YES))
|
if (log_output_options & LOG_NONE)
|
||||||
logger.set_handlers(LEGACY, opt_slow_log ? LEGACY:NONE,
|
{
|
||||||
opt_log ? LEGACY:NONE);
|
/*
|
||||||
|
Issue a warining if there were specified additional options to the
|
||||||
|
log-output along with NONE. Probably this wasn't what user wanted.
|
||||||
|
*/
|
||||||
|
if ((log_output_options & LOG_NONE) && (log_output_options & ~LOG_NONE))
|
||||||
|
sql_print_warning("There were other values specified to "
|
||||||
|
"log-output besides NONE. Disabling slow "
|
||||||
|
"and general logs anyway.");
|
||||||
|
logger.set_handlers(LOG_FILE, LOG_NONE, LOG_NONE);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
if (opt_both_log_formats)
|
{
|
||||||
logger.set_handlers(LEGACY,
|
/* fall back to the log files if tables are not present */
|
||||||
opt_slow_log ? LEGACY_AND_CSV:NONE,
|
if (have_csv_db == SHOW_OPTION_NO)
|
||||||
opt_log ? LEGACY_AND_CSV:NONE);
|
{
|
||||||
else
|
sql_print_error("CSV engine is not present, falling back to the "
|
||||||
/* the default is CSV log tables */
|
"log files");
|
||||||
logger.set_handlers(LEGACY, opt_slow_log ? CSV:NONE,
|
log_output_options= log_output_options & ~LOG_TABLE | LOG_FILE;
|
||||||
opt_log ? CSV:NONE);
|
}
|
||||||
|
|
||||||
|
logger.set_handlers(LOG_FILE, opt_slow_log ? log_output_options:LOG_NONE,
|
||||||
|
opt_log ? log_output_options:LOG_NONE);
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
logger.set_handlers(LEGACY, opt_slow_log ? LEGACY:NONE,
|
logger.set_handlers(LOG_FILE, opt_slow_log ? LOG_FILE:LOG_NONE,
|
||||||
opt_log ? LEGACY:NONE);
|
opt_log ? LOG_FILE:LOG_NONE);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (opt_update_log)
|
if (opt_update_log)
|
||||||
@ -4682,7 +4700,7 @@ enum options_mysqld
|
|||||||
OPT_REPLICATE_IGNORE_TABLE, OPT_REPLICATE_WILD_DO_TABLE,
|
OPT_REPLICATE_IGNORE_TABLE, OPT_REPLICATE_WILD_DO_TABLE,
|
||||||
OPT_REPLICATE_WILD_IGNORE_TABLE, OPT_REPLICATE_SAME_SERVER_ID,
|
OPT_REPLICATE_WILD_IGNORE_TABLE, OPT_REPLICATE_SAME_SERVER_ID,
|
||||||
OPT_DISCONNECT_SLAVE_EVENT_COUNT, OPT_TC_HEURISTIC_RECOVER,
|
OPT_DISCONNECT_SLAVE_EVENT_COUNT, OPT_TC_HEURISTIC_RECOVER,
|
||||||
OPT_ABORT_SLAVE_EVENT_COUNT, OPT_OLD_LOG_FORMAT, OPT_BOTH_LOG_FORMATS,
|
OPT_ABORT_SLAVE_EVENT_COUNT,
|
||||||
OPT_INNODB_DATA_HOME_DIR,
|
OPT_INNODB_DATA_HOME_DIR,
|
||||||
OPT_INNODB_DATA_FILE_PATH,
|
OPT_INNODB_DATA_FILE_PATH,
|
||||||
OPT_INNODB_LOG_GROUP_HOME_DIR,
|
OPT_INNODB_LOG_GROUP_HOME_DIR,
|
||||||
@ -4825,6 +4843,7 @@ enum options_mysqld
|
|||||||
OPT_LOG_SLOW_ADMIN_STATEMENTS,
|
OPT_LOG_SLOW_ADMIN_STATEMENTS,
|
||||||
OPT_TABLE_LOCK_WAIT_TIMEOUT,
|
OPT_TABLE_LOCK_WAIT_TIMEOUT,
|
||||||
OPT_PLUGIN_DIR,
|
OPT_PLUGIN_DIR,
|
||||||
|
OPT_LOG_OUTPUT,
|
||||||
OPT_PORT_OPEN_TIMEOUT
|
OPT_PORT_OPEN_TIMEOUT
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -5223,6 +5242,13 @@ Disable with --skip-innodb-doublewrite.", (gptr*) &innobase_use_doublewrite,
|
|||||||
{"log-long-format", '0',
|
{"log-long-format", '0',
|
||||||
"Log some extra information to update log. Please note that this option is deprecated; see --log-short-format option.",
|
"Log some extra information to update log. Please note that this option is deprecated; see --log-short-format option.",
|
||||||
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
|
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
|
#ifdef WITH_CSV_STORAGE_ENGINE
|
||||||
|
{"log-output", OPT_LOG_OUTPUT,
|
||||||
|
"Syntax: log-output[=value[,value...]], where \"value\" could be TABLE, "
|
||||||
|
"FILE or NONE.",
|
||||||
|
(gptr*) &log_output_str, (gptr*) &log_output_str, 0,
|
||||||
|
GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
|
#endif
|
||||||
{"log-queries-not-using-indexes", OPT_LOG_QUERIES_NOT_USING_INDEXES,
|
{"log-queries-not-using-indexes", OPT_LOG_QUERIES_NOT_USING_INDEXES,
|
||||||
"Log queries that are executed without benefit of any index to the slow log if it is open.",
|
"Log queries that are executed without benefit of any index to the slow log if it is open.",
|
||||||
(gptr*) &opt_log_queries_not_using_indexes, (gptr*) &opt_log_queries_not_using_indexes,
|
(gptr*) &opt_log_queries_not_using_indexes, (gptr*) &opt_log_queries_not_using_indexes,
|
||||||
@ -5244,16 +5270,6 @@ Disable with --skip-innodb-doublewrite.", (gptr*) &innobase_use_doublewrite,
|
|||||||
"Log slow queries to this log file. Defaults logging to hostname-slow.log file. Must be enabled to activate other slow log options.",
|
"Log slow queries to this log file. Defaults logging to hostname-slow.log file. Must be enabled to activate other slow log options.",
|
||||||
(gptr*) &opt_slow_logname, (gptr*) &opt_slow_logname, 0, GET_STR, OPT_ARG,
|
(gptr*) &opt_slow_logname, (gptr*) &opt_slow_logname, 0, GET_STR, OPT_ARG,
|
||||||
0, 0, 0, 0, 0, 0},
|
0, 0, 0, 0, 0, 0},
|
||||||
#ifdef WITH_CSV_STORAGE_ENGINE
|
|
||||||
{"old-log-format", OPT_OLD_LOG_FORMAT,
|
|
||||||
"Enable old log file format. (No SELECT * FROM logs)",
|
|
||||||
(gptr*) &opt_old_log_format, 0, 0, GET_BOOL, OPT_ARG,
|
|
||||||
0, 0, 0, 0, 0, 0},
|
|
||||||
{"both-log-formats", OPT_BOTH_LOG_FORMATS,
|
|
||||||
"Enable old log file format along with log tables",
|
|
||||||
(gptr*) &opt_both_log_formats, 0, 0, GET_BOOL, OPT_ARG,
|
|
||||||
0, 0, 0, 0, 0, 0},
|
|
||||||
#endif
|
|
||||||
{"log-tc", OPT_LOG_TC,
|
{"log-tc", OPT_LOG_TC,
|
||||||
"Path to transaction coordinator log (used for transactions that affect "
|
"Path to transaction coordinator log (used for transactions that affect "
|
||||||
"more than one storage engine, when binary log is disabled)",
|
"more than one storage engine, when binary log is disabled)",
|
||||||
@ -6947,10 +6963,6 @@ static void mysql_init_variables(void)
|
|||||||
opt_skip_slave_start= opt_reckless_slave = 0;
|
opt_skip_slave_start= opt_reckless_slave = 0;
|
||||||
mysql_home[0]= pidfile_name[0]= log_error_file[0]= 0;
|
mysql_home[0]= pidfile_name[0]= log_error_file[0]= 0;
|
||||||
opt_log= opt_update_log= opt_slow_log= 0;
|
opt_log= opt_update_log= opt_slow_log= 0;
|
||||||
#ifdef WITH_CSV_STORAGE_ENGINE
|
|
||||||
opt_old_log_format= 0;
|
|
||||||
opt_both_log_formats= 0;
|
|
||||||
#endif
|
|
||||||
opt_bin_log= 0;
|
opt_bin_log= 0;
|
||||||
opt_disable_networking= opt_skip_show_db=0;
|
opt_disable_networking= opt_skip_show_db=0;
|
||||||
opt_logname= opt_update_logname= opt_binlog_index_name= opt_slow_logname= 0;
|
opt_logname= opt_update_logname= opt_binlog_index_name= opt_slow_logname= 0;
|
||||||
@ -7364,12 +7376,25 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
|||||||
opt_slow_log= 1;
|
opt_slow_log= 1;
|
||||||
break;
|
break;
|
||||||
#ifdef WITH_CSV_STORAGE_ENGINE
|
#ifdef WITH_CSV_STORAGE_ENGINE
|
||||||
case (int) OPT_OLD_LOG_FORMAT:
|
case OPT_LOG_OUTPUT:
|
||||||
opt_old_log_format= 1;
|
{
|
||||||
break;
|
if (!argument || !argument[0])
|
||||||
case (int) OPT_BOTH_LOG_FORMATS:
|
{
|
||||||
opt_both_log_formats= 1;
|
log_output_options= LOG_TABLE;
|
||||||
|
log_output_str= log_output_typelib.type_names[1];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
log_output_str= argument;
|
||||||
|
if ((log_output_options=
|
||||||
|
find_bit_type(argument, &log_output_typelib)) == ~(ulong) 0)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Unknown option to log-output: %s\n", argument);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
case (int) OPT_SKIP_NEW:
|
case (int) OPT_SKIP_NEW:
|
||||||
opt_specialflag|= SPECIAL_NO_NEW_FUNC;
|
opt_specialflag|= SPECIAL_NO_NEW_FUNC;
|
||||||
|
Reference in New Issue
Block a user