Commit eb968344 authored by kent@mysql.com's avatar kent@mysql.com

Merge

parents 38108ee6 6c464815
......@@ -1905,7 +1905,7 @@ EOF
;
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";
}
......
......@@ -21,7 +21,7 @@ skip-stack-trace VALUE
skip-innodb VALUE
skip-bdb VALUE
skip-ndbcluster VALUE
old-log-format VALUE
log-output VALUE
SHOW INSTANCE OPTIONS mysqld2;
option_name value
instance_name VALUE
......@@ -42,7 +42,7 @@ skip-stack-trace VALUE
skip-innodb VALUE
skip-bdb VALUE
skip-ndbcluster VALUE
old-log-format VALUE
log-output VALUE
START INSTANCE mysqld2;
STOP INSTANCE mysqld2;
SHOW mysqld1 LOG FILES;
......
......@@ -10,14 +10,14 @@
# 5. check that the slave and master BANK databases are the same
#
# kill any trailing processes
--system killall lt-bankTransactionMaker lt-bankTimer lt-bankMakeGL || true
--source include/have_ndb.inc
--source include/have_ndb_extra.inc
--source include/have_binlog_format_row.inc
--source include/master-slave.inc
# kill any trailing processes
--system killall lt-bankTransactionMaker lt-bankTimer lt-bankMakeGL || true
--disable_warnings
# initialize master
--connection master
......
......@@ -131,7 +131,7 @@ BIN_FILES="extra/comp_err$BS extra/replace$BS extra/perror$BS \
extra/resolve_stack_dump$BS extra/mysql_waitpid$BS \
storage/myisam/myisamchk$BS storage/myisam/myisampack$BS \
storage/myisam/myisamlog$BS storage/myisam/myisam_ftdump$BS \
sql/mysqld$BS sql/mysql_tzinfo_to_sql$BS \
sql/mysqld$BS sql/mysqld-debug$BS sql/mysql_tzinfo_to_sql$BS \
server-tools/instance-manager/mysqlmanager$BS \
client/mysql$BS client/mysqlshow$BS client/mysqladmin$BS \
client/mysqlslap$BS \
......@@ -173,8 +173,9 @@ if [ x$STRIP = x1 ] ; then
strip $BASE/bin/*
fi
# Copy not binary files
copyfileto $BASE/bin sql/mysqld.sym.gz
# Obsolete, starting from 5.1.6-beta
# # Copy not binary files
# copyfileto $BASE/bin sql/mysqld.sym.gz
if [ $BASE_SYSTEM = "netware" ] ; then
$CP netware/*.pl $BASE/scripts
......@@ -304,11 +305,12 @@ else
rm -f $BASE/README.NW
fi
# Make safe_mysqld a symlink to mysqld_safe for backwards portability
# To be removed in MySQL 4.1
if [ $BASE_SYSTEM != "netware" ] ; then
(cd $BASE/bin ; ln -s mysqld_safe safe_mysqld )
fi
# Dropped with 5.1.6-beta
# # Make safe_mysqld a symlink to mysqld_safe for backwards portability
# # To be removed in MySQL 4.1
# if [ $BASE_SYSTEM != "netware" ] ; then
# (cd $BASE/bin ; ln -s mysqld_safe safe_mysqld )
# fi
# Clean up if we did this from a bk tree
if [ -d $BASE/sql-bench/SCCS ] ; then
......
......@@ -77,7 +77,8 @@ mysqlmanager_SOURCES= command.cc command.h mysqlmanager.cc \
mysql_manager_error.h \
portability.h
mysqlmanager_LDADD= liboptions.a \
mysqlmanager_LDADD= @CLIENT_EXTRA_LDFLAGS@ \
liboptions.a \
libnet.a \
$(top_builddir)/vio/libvio.a \
$(top_builddir)/mysys/libmysys.a \
......
......@@ -610,7 +610,7 @@ void LOGGER::init_base()
file_log_handler= new Log_to_file_event_handler;
/* by default we use traditional error log */
init_error_log(LEGACY);
init_error_log(LOG_FILE);
file_log_handler->init_pthread_objects();
(void) pthread_mutex_init(&LOCK_logger, MY_MUTEX_INIT_SLOW);
......@@ -819,41 +819,47 @@ bool LOGGER::general_log_print(THD *thd, enum enum_server_command command,
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) {
case NONE:
if (error_log_printer & LOG_NONE)
{
error_log_handler_list[0]= 0;
break;
case LEGACY:
return;
}
switch (error_log_printer) {
case LOG_FILE:
error_log_handler_list[0]= file_log_handler;
error_log_handler_list[1]= 0;
break;
/* these two are disabled for now */
case CSV:
case LOG_TABLE:
DBUG_ASSERT(0);
break;
case LEGACY_AND_CSV:
case LOG_TABLE|LOG_FILE:
DBUG_ASSERT(0);
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) {
case NONE:
if (slow_log_printer & LOG_NONE)
{
slow_log_handler_list[0]= 0;
break;
case LEGACY:
return;
}
switch (slow_log_printer) {
case LOG_FILE:
slow_log_handler_list[0]= file_log_handler;
slow_log_handler_list[1]= 0;
break;
case CSV:
case LOG_TABLE:
slow_log_handler_list[0]= table_log_handler;
slow_log_handler_list[1]= 0;
break;
case LEGACY_AND_CSV:
case LOG_TABLE|LOG_FILE:
slow_log_handler_list[0]= file_log_handler;
slow_log_handler_list[1]= table_log_handler;
slow_log_handler_list[2]= 0;
......@@ -861,21 +867,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) {
case NONE:
if (general_log_printer & LOG_NONE)
{
general_log_handler_list[0]= 0;
break;
case LEGACY:
return;
}
switch (general_log_printer) {
case LOG_FILE:
general_log_handler_list[0]= file_log_handler;
general_log_handler_list[1]= 0;
break;
case CSV:
case LOG_TABLE:
general_log_handler_list[0]= table_log_handler;
general_log_handler_list[1]= 0;
break;
case LEGACY_AND_CSV:
case LOG_TABLE|LOG_FILE:
general_log_handler_list[0]= file_log_handler;
general_log_handler_list[1]= table_log_handler;
general_log_handler_list[2]= 0;
......@@ -906,20 +915,20 @@ bool Log_to_csv_event_handler::init()
return (open_log_table(QUERY_LOG_GENERAL) || open_log_table(QUERY_LOG_SLOW));
}
int LOGGER::set_handlers(enum enum_printer error_log_printer,
enum enum_printer slow_log_printer,
enum enum_printer general_log_printer)
int LOGGER::set_handlers(uint error_log_printer,
uint slow_log_printer,
uint general_log_printer)
{
/* error log table is not supported yet */
DBUG_ASSERT(error_log_printer < CSV);
DBUG_ASSERT(error_log_printer < LOG_TABLE);
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)
{
slow_log_printer= LEGACY;
general_log_printer= LEGACY;
slow_log_printer= (slow_log_printer & ~LOG_TABLE) | LOG_FILE;
general_log_printer= (general_log_printer & ~LOG_TABLE) | LOG_FILE;
sql_print_error("Failed to initialize log tables. "
"Falling back to the old-fashioned logs");
......
......@@ -138,14 +138,10 @@ typedef struct st_log_info
*/
#define MAX_LOG_HANDLERS_NUM 3
enum enum_printer
{
NONE,
LEGACY,
CSV,
LEGACY_AND_CSV
};
/* log event handler flags */
#define LOG_NONE 1
#define LOG_FILE 2
#define LOG_TABLE 4
class Log_event;
class Rows_log_event;
......@@ -503,12 +499,12 @@ class LOGGER
bool reopen_log_table(uint log_type);
/* we use this function to setup all enabled log event handlers */
int set_handlers(enum enum_printer error_log_printer,
enum enum_printer slow_log_printer,
enum enum_printer general_log_printer);
void init_error_log(enum enum_printer error_log_printer);
void init_slow_log(enum enum_printer slow_log_printer);
void init_general_log(enum enum_printer general_log_printer);
int set_handlers(uint error_log_printer,
uint slow_log_printer,
uint general_log_printer);
void init_error_log(uint error_log_printer);
void init_slow_log(uint slow_log_printer);
void init_general_log(uint general_log_printer);
};
#endif /* LOG_H */
......@@ -1305,7 +1305,6 @@ extern my_bool locked_in_memory;
extern bool opt_using_transactions, mysqld_embedded;
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_old_log_format;
extern bool opt_disable_networking, opt_skip_show_db;
extern my_bool opt_character_set_client_handshake;
extern bool volatile abort_loop, shutdown_in_progress, grant_option;
......
......@@ -304,8 +304,16 @@ arg_cmp_func Arg_comparator::comparator_matrix[5][2] =
{&Arg_comparator::compare_row, &Arg_comparator::compare_e_row},
{&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 */
/* 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 volatile select_thread_in_use, signal_thread_in_use;
static bool volatile ready_to_exit;
......@@ -339,9 +347,6 @@ static my_bool opt_sync_bdb_logs;
bool opt_log, opt_update_log, opt_bin_log, opt_slow_log;
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;
my_bool opt_character_set_client_handshake= 1;
bool server_id_supplied = 0;
......@@ -2402,8 +2407,8 @@ pthread_handler_t signal_hand(void *arg __attribute__((unused)))
sql_print_information("Got signal %d to shutdown mysqld",sig);
#endif
/* switch to the old log message processing */
logger.set_handlers(LEGACY, opt_slow_log ? LEGACY:NONE,
opt_log ? LEGACY:NONE);
logger.set_handlers(LOG_FILE, opt_slow_log ? LOG_FILE:LOG_NONE,
opt_log ? LOG_FILE:LOG_NONE);
DBUG_PRINT("info",("Got signal: %d abort_loop: %d",sig,abort_loop));
if (!abort_loop)
{
......@@ -2432,8 +2437,8 @@ pthread_handler_t signal_hand(void *arg __attribute__((unused)))
(TABLE_LIST*) 0, &not_used); // Flush logs
}
/* reenable logs after the options were reloaded */
logger.set_handlers(LEGACY, opt_slow_log ? CSV:NONE,
opt_log ? CSV:NONE);
logger.set_handlers(LOG_FILE, opt_slow_log ? LOG_TABLE:LOG_NONE,
opt_log ? LOG_TABLE:LOG_NONE);
break;
#ifdef USE_ONE_SIGNAL_HAND
case THR_SERVER_ALARM:
......@@ -3091,25 +3096,38 @@ static int init_server_components()
#ifdef WITH_CSV_STORAGE_ENGINE
if (opt_bootstrap)
opt_old_log_format= TRUE;
log_output_options= LOG_FILE;
else
logger.init_log_tables();
if (opt_old_log_format || (have_csv_db != SHOW_OPTION_YES))
logger.set_handlers(LEGACY, opt_slow_log ? LEGACY:NONE,
opt_log ? LEGACY:NONE);
else
if (opt_both_log_formats)
logger.set_handlers(LEGACY,
opt_slow_log ? LEGACY_AND_CSV:NONE,
opt_log ? LEGACY_AND_CSV:NONE);
if (log_output_options & LOG_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
/* the default is CSV log tables */
logger.set_handlers(LEGACY, opt_slow_log ? CSV:NONE,
opt_log ? CSV:NONE);
{
/* fall back to the log files if tables are not present */
if (have_csv_db == SHOW_OPTION_NO)
{
sql_print_error("CSV engine is not present, falling back to the "
"log files");
log_output_options= log_output_options & ~LOG_TABLE | LOG_FILE;
}
logger.set_handlers(LOG_FILE, opt_slow_log ? log_output_options:LOG_NONE,
opt_log ? log_output_options:LOG_NONE);
}
#else
logger.set_handlers(LEGACY, opt_slow_log ? LEGACY:NONE,
opt_log ? LEGACY:NONE);
logger.set_handlers(LOG_FILE, opt_slow_log ? LOG_FILE:LOG_NONE,
opt_log ? LOG_FILE:LOG_NONE);
#endif
if (opt_update_log)
......@@ -4689,7 +4707,7 @@ enum options_mysqld
OPT_REPLICATE_IGNORE_TABLE, OPT_REPLICATE_WILD_DO_TABLE,
OPT_REPLICATE_WILD_IGNORE_TABLE, OPT_REPLICATE_SAME_SERVER_ID,
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_FILE_PATH,
OPT_INNODB_LOG_GROUP_HOME_DIR,
......@@ -4832,6 +4850,7 @@ enum options_mysqld
OPT_LOG_SLOW_ADMIN_STATEMENTS,
OPT_TABLE_LOCK_WAIT_TIMEOUT,
OPT_PLUGIN_DIR,
OPT_LOG_OUTPUT,
OPT_PORT_OPEN_TIMEOUT
};
......@@ -5230,6 +5249,13 @@ Disable with --skip-innodb-doublewrite.", (gptr*) &innobase_use_doublewrite,
{"log-long-format", '0',
"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},
#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 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,
......@@ -5251,16 +5277,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.",
(gptr*) &opt_slow_logname, (gptr*) &opt_slow_logname, 0, GET_STR, OPT_ARG,
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,
"Path to transaction coordinator log (used for transactions that affect "
"more than one storage engine, when binary log is disabled)",
......@@ -6954,10 +6970,6 @@ static void mysql_init_variables(void)
opt_skip_slave_start= opt_reckless_slave = 0;
mysql_home[0]= pidfile_name[0]= log_error_file[0]= 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_disable_networking= opt_skip_show_db=0;
opt_logname= opt_update_logname= opt_binlog_index_name= opt_slow_logname= 0;
......@@ -7366,12 +7378,25 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
opt_slow_log= 1;
break;
#ifdef WITH_CSV_STORAGE_ENGINE
case (int) OPT_OLD_LOG_FORMAT:
opt_old_log_format= 1;
break;
case (int) OPT_BOTH_LOG_FORMATS:
opt_both_log_formats= 1;
case OPT_LOG_OUTPUT:
{
if (!argument || !argument[0])
{
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;
}
#endif
case (int) OPT_SKIP_NEW:
opt_specialflag|= SPECIAL_NO_NEW_FUNC;
......
......@@ -345,7 +345,7 @@ struct st_plugin_int *plugin_lock(LEX_STRING *name, int type)
rw_wrlock(&THR_LOCK_plugin);
if ((rc= plugin_find_internal(name, type)))
{
if (rc->state == PLUGIN_IS_READY)
if (rc->state == PLUGIN_IS_READY || rc->state == PLUGIN_IS_UNINITIALIZED)
rc->ref_count++;
else
rc= 0;
......
......@@ -126,14 +126,8 @@ by one. */
#ifdef __WIN__
#define UNIV_INLINE __inline
#else
/* config.h contains the right def for 'inline' for the current compiler */
#if (__GNUC__ == 2)
#define UNIV_INLINE extern inline
#else
/* extern inline doesn't work with gcc 3.0.2 */
#define UNIV_INLINE static inline
#endif
#endif
#else
/* If we want to compile a noninlined version we use the following macro
......
......@@ -38,7 +38,7 @@ libblocks_a_SOURCES = tsman.cpp lgman.cpp pgman.cpp diskpage.cpp restore.cpp\
dbtux/DbtuxSearch.cpp dbtux/DbtuxCmp.cpp dbtux/DbtuxStat.cpp \
dbtux/DbtuxDebug.cpp
ndbtools_PROGRAMS = ndb_print_file
EXTRA_PROGRAMS = ndb_print_file
ndb_print_file_SOURCES = print_file.cpp diskpage.cpp dbtup/tuppage.cpp
ndb_print_file_LDFLAGS = @ndb_bin_am_ldflags@ \
$(top_builddir)/storage/ndb/src/libndbclient.la \
......
......@@ -5,7 +5,7 @@ include $(top_srcdir)/storage/ndb/config/type_kernel.mk.am
# Don't update the files from bitkeeper
%::SCCS/s.%
ndbtest_PROGRAMS = test_varpage
EXTRA_PROGRAMS = test_varpage
test_varpage_SOURCES = test_varpage.cpp tuppage.cpp
test_varpage_LDFLAGS = @ndb_bin_am_ldflags@ \
$(top_builddir)/storage/ndb/src/libndbclient.la \
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment