merge 5.1-> 5.2
This commit is contained in:
commit
08e4635fba
@ -1922,3 +1922,5 @@ libmysqld/examples/mysqltest.cc
|
||||
extra/libevent/event-config.h
|
||||
libmysqld/opt_table_elimination.cc
|
||||
libmysqld/ha_federatedx.cc
|
||||
tmp
|
||||
libmysqld/debug_sync.cc
|
||||
|
@ -4,7 +4,7 @@ path=`dirname $0`
|
||||
. "$path/SETUP.sh"
|
||||
|
||||
extra_flags="$pentium_cflags $fast_cflags"
|
||||
extra_configs="$pentium_configs $static_link"
|
||||
extra_configs="$pentium_configs"
|
||||
strip=yes
|
||||
|
||||
. "$path/FINISH.sh"
|
||||
|
@ -66,6 +66,12 @@ IF(EXTRA_DEBUG)
|
||||
ADD_DEFINITIONS(-D EXTRA_DEBUG)
|
||||
ENDIF(EXTRA_DEBUG)
|
||||
|
||||
IF(ENABLED_DEBUG_SYNC)
|
||||
ADD_DEFINITIONS(-D ENABLED_DEBUG_SYNC)
|
||||
ENDIF(ENABLED_DEBUG_SYNC)
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DENABLED_DEBUG_SYNC")
|
||||
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DENABLED_DEBUG_SYNC")
|
||||
|
||||
# in some places we use DBUG_OFF
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DDBUG_OFF")
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DDBUG_OFF")
|
||||
@ -211,12 +217,16 @@ ENDIF(WITHOUT_DYNAMIC_PLUGINS)
|
||||
FILE(GLOB STORAGE_SUBDIRS storage/*)
|
||||
FOREACH(SUBDIR ${STORAGE_SUBDIRS})
|
||||
FILE(RELATIVE_PATH DIRNAME ${PROJECT_SOURCE_DIR}/storage ${SUBDIR})
|
||||
STRING(TOUPPER ${DIRNAME} ENGINE)
|
||||
STRING(TOLOWER ${DIRNAME} ENGINE_LOWER)
|
||||
IF (EXISTS ${SUBDIR}/CMakeLists.txt)
|
||||
# Check MYSQL_STORAGE_ENGINE macro is present
|
||||
FILE(STRINGS ${SUBDIR}/CMakeLists.txt HAVE_STORAGE_ENGINE REGEX MYSQL_STORAGE_ENGINE)
|
||||
IF(HAVE_STORAGE_ENGINE)
|
||||
# Extract name of engine from HAVE_STORAGE_ENGINE
|
||||
STRING(REGEX REPLACE ".*MYSQL_STORAGE_ENGINE\\((.*\)\\).*"
|
||||
"\\1" ENGINE_NAME ${HAVE_STORAGE_ENGINE})
|
||||
STRING(TOUPPER ${ENGINE_NAME} ENGINE)
|
||||
STRING(TOLOWER ${ENGINE_NAME} ENGINE_LOWER)
|
||||
|
||||
SET(ENGINE_BUILD_TYPE "DYNAMIC")
|
||||
# Read plug.in to find out if a plugin is mandatory and whether it supports
|
||||
# build as shared library (dynamic).
|
||||
@ -254,6 +264,7 @@ FOREACH(SUBDIR ${STORAGE_SUBDIRS})
|
||||
SET (MYSQLD_STATIC_ENGINE_LIBS ${MYSQLD_STATIC_ENGINE_LIBS} ${PLUGIN_NAME})
|
||||
SET (STORAGE_ENGINE_DEFS "${STORAGE_ENGINE_DEFS} -DWITH_${ENGINE}_STORAGE_ENGINE")
|
||||
SET (WITH_${ENGINE}_STORAGE_ENGINE TRUE)
|
||||
SET (${ENGINE}_DIR ${DIRNAME})
|
||||
ENDIF (ENGINE_BUILD_TYPE STREQUAL "STATIC")
|
||||
ENDIF(EXISTS ${SUBDIR}/plug.in)
|
||||
|
||||
|
@ -3,7 +3,7 @@ describe how to install MariaDB; However all documentation at www.mysql.com
|
||||
also applies.
|
||||
|
||||
|
||||
2.9. Installing MariaDB from tar.gz Packages on Other Unix-Like Systems
|
||||
2.2. Installing MariaDB from Generic Binaries on Unix/Linux
|
||||
|
||||
This section covers the installation of MariaDB binary distributions
|
||||
that are provided for various platforms in the form of compressed
|
||||
@ -22,11 +22,13 @@ also applies.
|
||||
* A reasonable tar to unpack the distribution. GNU tar is known
|
||||
to work. Some operating systems come with a preinstalled
|
||||
version of tar that is known to have problems. For example,
|
||||
the tar provided with early versions of Mac OS X, SunOS 4.x
|
||||
and Solaris 8 and earlier are known to have problems with long
|
||||
file names. On Mac OS X, you can use the preinstalled gnutar
|
||||
program. On other systems with a deficient tar, you should
|
||||
install GNU tar first.
|
||||
the tar provided with early versions of Mac OS X, SunOS 4.x,
|
||||
Solaris 8, Solaris 9, Solaris 10 and OpenSolaris, and HP-UX
|
||||
are known to have problems with long file names. On Mac OS X,
|
||||
you can use the preinstalled gnutar program. On Solaris 10 and
|
||||
OpenSolaris you can use the preinstalled gtar. On other
|
||||
systems with a deficient tar, you should install GNU tar
|
||||
first.
|
||||
|
||||
If you run into problems and need to file a bug report,
|
||||
please report them to: http://bugs.launchpad.net/maria
|
||||
@ -52,7 +54,7 @@ shell> bin/mysqld_safe --user=mysql &
|
||||
Note
|
||||
|
||||
This procedure does not set up any passwords for MariaDB accounts.
|
||||
After following the procedure, proceed to Section 2.11,
|
||||
After following the procedure, proceed to Section 2.13,
|
||||
"Post-Installation Setup and Testing."
|
||||
|
||||
A more detailed version of the preceding description for
|
||||
@ -147,7 +149,7 @@ shell> chown -R mysql data
|
||||
machine, you can copy support-files/mysql.server to the
|
||||
location where your system has its startup files. More
|
||||
information can be found in the support-files/mysql.server
|
||||
script itself and in Section 2.11.2.2, "Starting and Stopping
|
||||
script itself and in Section 2.13.1.2, "Starting and Stopping
|
||||
MariaDB Automatically."
|
||||
10. You can set up new accounts using the bin/mysql_setpermission
|
||||
script if you install the DBI and DBD::mysql Perl modules. See
|
||||
@ -186,5 +188,5 @@ Note
|
||||
|
||||
The accounts that are listed in the MariaDB grant tables initially
|
||||
have no passwords. After starting the server, you should set up
|
||||
passwords for them using the instructions in Section 2.11,
|
||||
passwords for them using the instructions in Section 2.13,
|
||||
"Post-Installation Setup and Testing."
|
||||
|
10609
INSTALL-SOURCE
10609
INSTALL-SOURCE
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
||||
|
||||
2.10.6. Installing MySQL from Source on Windows
|
||||
2.5.10. Installing MySQL from Source on Windows
|
||||
|
||||
These instructions describe how to build binaries from source for
|
||||
MySQL 5.1 on Windows. Instructions are provided for building
|
||||
@ -15,7 +15,7 @@ Note
|
||||
to use precompiled binary distributions of MySQL that are built
|
||||
specifically for optimal performance on Windows by Sun
|
||||
Microsystems, Inc. Instructions for installing binary
|
||||
distributions are available in Section 2.3, "Installing MySQL on
|
||||
distributions are available in Section 2.5, "Installing MySQL on
|
||||
Windows."
|
||||
|
||||
To build MySQL on Windows from source, you must satisfy the
|
||||
@ -68,7 +68,7 @@ Note
|
||||
|
||||
* 3GB to 5GB of disk space.
|
||||
|
||||
The exact system requirements can be found here:
|
||||
The exact system requirements for Visual Studio can be found here:
|
||||
http://msdn.microsoft.com/vstudio/Previous/2003/sysreqs/default.as
|
||||
px and
|
||||
http://msdn.microsoft.com/vstudio/products/sysreqs/default.aspx
|
||||
@ -81,7 +81,7 @@ Note
|
||||
|
||||
* Package a source distribution yourself from the latest Bazaar
|
||||
developer source tree. For instructions on pulling the latest
|
||||
source files, see Section 2.10.3, "Installing from the
|
||||
source files, see Section 2.3.3, "Installing from the
|
||||
Development Source Tree."
|
||||
|
||||
If you find something not working as expected, or you have
|
||||
@ -89,7 +89,7 @@ Note
|
||||
Windows, please send a message to the win32 mailing list. See
|
||||
Section 1.5.1, "MySQL Mailing Lists."
|
||||
|
||||
2.10.6.1. Building MySQL from Source Using CMake and Visual Studio
|
||||
2.5.10.1. Building MySQL from Source Using CMake and Visual Studio
|
||||
|
||||
You can build MySQL on Windows by using a combination of cmake and
|
||||
Microsoft Visual Studio .NET 2003 (7.1), Microsoft Visual Studio
|
||||
@ -99,7 +99,7 @@ Note
|
||||
Note
|
||||
|
||||
To compile from the source code on Windows you must use the
|
||||
standard source distribution (for example, mysql-5.0.45.tar.gz).
|
||||
standard source distribution (for example, mysql-5.1.41.tar.gz).
|
||||
You build from the same distribution as used to build MySQL on
|
||||
Unix, Linux and other platforms. Do not use the Windows Source
|
||||
distributions as they do not contain the necessary configuration
|
||||
@ -264,5 +264,5 @@ C:\workdir> copy libmysql\libmysql.def C:\mysql\include
|
||||
C:\workdir> xcopy sql-bench\*.* C:\mysql\bench /E
|
||||
|
||||
After installation, set up and start the server in the same way as
|
||||
for binary Windows distributions. See Section 2.3, "Installing
|
||||
for binary Windows distributions. See Section 2.5, "Installing
|
||||
MySQL on Windows."
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
|
||||
# Copyright 2000-2008 MySQL AB, 2009 Sun Microsystems, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -26,7 +26,7 @@ EXTRA_DIST = INSTALL-SOURCE INSTALL-WIN-SOURCE \
|
||||
SUBDIRS = . include @docs_dirs@ @zlib_dir@ \
|
||||
@readline_topdir@ sql-common scripts \
|
||||
@pstack_dir@ \
|
||||
@sql_union_dirs@ unittest storage plugin \
|
||||
@sql_union_dirs@ storage \
|
||||
@sql_server@ @man_dirs@ tests \
|
||||
netware @libmysqld_dirs@ \
|
||||
mysql-test support-files sql-bench @tools_dirs@ \
|
||||
@ -208,6 +208,10 @@ test-bt-fast:
|
||||
-cd mysql-test ; MTR_BUILD_THREAD=auto \
|
||||
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) --force --comment=stress --suite=stress
|
||||
|
||||
test-bt-fast2:
|
||||
-cd mysql-test ; MTR_BUILD_THREAD=auto \
|
||||
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) --force --comment=ps --ps-protocol --report-features
|
||||
|
||||
test-bt-debug:
|
||||
-cd mysql-test ; MTR_BUILD_THREAD=auto \
|
||||
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) --comment=debug --force --timer \
|
||||
|
71
README
71
README
@ -1,60 +1,57 @@
|
||||
This is a release of MariaDB, a branch of MySQL.
|
||||
This is a release of MariaDB.
|
||||
|
||||
MariaDB is a drop-in replacement of MySQL, with more features, less
|
||||
bugs and better performance.
|
||||
MariaDB is designed as a drop-in replacement of MySQL(R) with more
|
||||
features, new storage engines, fewer bugs, and better performance.
|
||||
|
||||
MariaDB is brought to you by many of the original developers of MySQL,
|
||||
that now work for Monty Program Ab, and by many people in the
|
||||
MariaDB is brought to you by many of the original developers of MySQL
|
||||
who now work for Monty Program Ab, and by many people in the
|
||||
community.
|
||||
|
||||
MySQL, which is the base of MariaDB, is brought to you by Sun.
|
||||
MySQL, which is the base of MariaDB, is a product and trademark of Sun
|
||||
Microsystems, Inc. For a list of developers and other contributors,
|
||||
see the Credits appendix. You can also do 'SHOW authors' to get a
|
||||
list of active contributors.
|
||||
|
||||
License information can be found in these files:
|
||||
- For GPL (free) distributions, see the COPYING file and
|
||||
the EXCEPTIONS-CLIENT file.
|
||||
|
||||
A description of the MariaDB project can be found at:
|
||||
A description of the MariaDB project and a manual can be found at:
|
||||
http://askmonty.org/wiki/index.php/MariaDB
|
||||
|
||||
GPLv2 Disclaimer
|
||||
For the avoidance of doubt, except that if any license choice
|
||||
other than GPL or LGPL is available it will apply instead, Sun
|
||||
elects to use only the General Public License version 2 (GPLv2)
|
||||
at this time for any software where a choice of GPL license versions
|
||||
is made available with the language indicating that GPLv2 or any
|
||||
later version may be used, or where a choice of which version of
|
||||
the GPL is applied is otherwise unspecified.
|
||||
|
||||
The differences between MariaDB and MySQL can be found at:
|
||||
http://askmonty.org/wiki/index.php/MariaDB_versus_MySQL
|
||||
http://askmonty.org/wiki/index.php/Manual:Contents
|
||||
|
||||
Documentation about MySQL can be found at:
|
||||
http://dev.mysql.com/doc
|
||||
As MariaDB is a full replacement of MySQL, the MySQL manual at
|
||||
http://dev.mysql.com/doc is generally applicable.
|
||||
|
||||
For further information about MySQL documentation, see:
|
||||
- The current MySQL documentation:
|
||||
More help is available from the Maria Discuss mailing list
|
||||
https://launchpad.net/~maria-discuss
|
||||
and the #maria IRC channel on Freenode.
|
||||
|
||||
Some manual sections of special interest:
|
||||
***************************************************************************
|
||||
|
||||
NOTE:
|
||||
|
||||
MariaDB is specifically available only under version 2 of the GNU
|
||||
General Public License (GPLv2). (I.e. Without the "any later version"
|
||||
clause.) This is inherited from MySQL. Please see the README file in
|
||||
the MySQL distribution for more information.
|
||||
|
||||
- For a list of developers and other contributors, see the Credits
|
||||
appendix.
|
||||
License information can be found in the COPYING file and the
|
||||
EXCEPTIONS-CLIENT file.
|
||||
|
||||
A local copy of the MySQL Reference Manual can be found in the Docs
|
||||
directory in GNU Info format. You can also browse the manual online or
|
||||
download it in any of several formats from
|
||||
http://dev.mysql.com/doc
|
||||
|
||||
************************************************************
|
||||
***************************************************************************
|
||||
|
||||
IMPORTANT:
|
||||
|
||||
Bug or error reports regarding MariaDB should be sent to
|
||||
Bug and/or error reports regarding MariaDB should be submitted at
|
||||
https://bugs.launchpad.net/maria
|
||||
Bugs in the MySQL code can also be sent to http://bugs.mysql.com
|
||||
|
||||
Bugs in the MySQL code can also be submitted at http://bugs.mysql.com
|
||||
|
||||
***************************************************************************
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
***************************************************************************
|
||||
%%The following software may be included in this product:
|
||||
Fred Fish's Dbug Library
|
||||
|
||||
|
@ -83,7 +83,7 @@ extern "C" {
|
||||
#include <term.h>
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif /* defined(HAVE_CURSES_H) && defined(HAVE_TERM_H) */
|
||||
|
||||
#undef bcmp // Fix problem with new readline
|
||||
#if defined(__WIN__)
|
||||
@ -92,7 +92,6 @@ extern "C" {
|
||||
#include <readline/readline.h>
|
||||
#define HAVE_READLINE
|
||||
#endif
|
||||
//int vidattr(long unsigned int attrs); // Was missing in sun curses
|
||||
}
|
||||
|
||||
#if !defined(HAVE_VIDATTR)
|
||||
@ -1024,7 +1023,7 @@ static const char *load_default_groups[]= { "mysql","client",0 };
|
||||
static int embedded_server_arg_count= 0;
|
||||
static char *embedded_server_args[MAX_SERVER_ARGS];
|
||||
static const char *embedded_server_groups[]=
|
||||
{ "server", "embedded", "mysql_SERVER", 0 };
|
||||
{ "server", "embedded", "mysql_SERVER", "mariadb_SERVER", 0 };
|
||||
|
||||
#ifdef HAVE_READLINE
|
||||
/*
|
||||
@ -1281,21 +1280,35 @@ sig_handler handle_sigint(int sig)
|
||||
MYSQL *kill_mysql= NULL;
|
||||
|
||||
/* terminate if no query being executed, or we already tried interrupting */
|
||||
if (!executing_query || interrupted_query)
|
||||
/* terminate if no query being executed, or we already tried interrupting */
|
||||
if (!executing_query || (interrupted_query == 2))
|
||||
{
|
||||
tee_fprintf(stdout, "Ctrl-C -- exit!\n");
|
||||
goto err;
|
||||
}
|
||||
|
||||
kill_mysql= mysql_init(kill_mysql);
|
||||
if (!mysql_real_connect(kill_mysql,current_host, current_user, opt_password,
|
||||
"", opt_mysql_port, opt_mysql_unix_port,0))
|
||||
{
|
||||
tee_fprintf(stdout, "Ctrl-C -- sorry, cannot connect to server to kill query, giving up ...\n");
|
||||
goto err;
|
||||
}
|
||||
|
||||
interrupted_query++;
|
||||
|
||||
/* mysqld < 5 does not understand KILL QUERY, skip to KILL CONNECTION */
|
||||
if ((interrupted_query == 1) && (mysql_get_server_version(&mysql) < 50000))
|
||||
interrupted_query= 2;
|
||||
|
||||
/* kill_buffer is always big enough because max length of %lu is 15 */
|
||||
sprintf(kill_buffer, "KILL /*!50000 QUERY */ %lu", mysql_thread_id(&mysql));
|
||||
mysql_real_query(kill_mysql, kill_buffer, strlen(kill_buffer));
|
||||
sprintf(kill_buffer, "KILL %s%lu",
|
||||
(interrupted_query == 1) ? "QUERY " : "",
|
||||
mysql_thread_id(&mysql));
|
||||
tee_fprintf(stdout, "Ctrl-C -- sending \"%s\" to server ...\n", kill_buffer);
|
||||
mysql_real_query(kill_mysql, kill_buffer, (uint) strlen(kill_buffer));
|
||||
mysql_close(kill_mysql);
|
||||
tee_fprintf(stdout, "Query aborted by Ctrl+C\n");
|
||||
|
||||
interrupted_query= 1;
|
||||
tee_fprintf(stdout, "Ctrl-C -- query aborted.\n");
|
||||
|
||||
return;
|
||||
|
||||
@ -2873,7 +2886,7 @@ com_help(String *buffer __attribute__((unused)),
|
||||
"For developer information, including the MySQL Reference Manual, "
|
||||
"visit:\n"
|
||||
" http://dev.mysql.com/\n"
|
||||
"To buy MySQL Network Support, training, or other products, visit:\n"
|
||||
"To buy MySQL Enterprise support, training, or other products, visit:\n"
|
||||
" https://shop.mysql.com/\n", INFO_INFO);
|
||||
put_info("List of all MySQL commands:", INFO_INFO);
|
||||
if (!named_cmds)
|
||||
|
@ -54,6 +54,8 @@ static char **defaults_argv;
|
||||
|
||||
static my_bool not_used; /* Can't use GET_BOOL without a value pointer */
|
||||
|
||||
static my_bool opt_write_binlog;
|
||||
|
||||
#include <help_start.h>
|
||||
|
||||
static struct my_option my_long_options[]=
|
||||
@ -124,6 +126,11 @@ static struct my_option my_long_options[]=
|
||||
{"verbose", 'v', "Display more output about the process",
|
||||
(uchar**) &opt_verbose, (uchar**) &opt_verbose, 0,
|
||||
GET_BOOL, NO_ARG, 1, 0, 0, 0, 0, 0},
|
||||
{"write-binlog", OPT_WRITE_BINLOG,
|
||||
"All commands including mysqlcheck are binlogged. Enabled by default;"
|
||||
"use --skip-write-binlog when commands should not be sent to replication slaves.",
|
||||
(uchar**) &opt_write_binlog, (uchar**) &opt_write_binlog, 0, GET_BOOL, NO_ARG,
|
||||
1, 0, 0, 0, 0, 0},
|
||||
{0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
|
||||
};
|
||||
|
||||
@ -448,6 +455,8 @@ static int run_query(const char *query, DYNAMIC_STRING *ds_res,
|
||||
int ret;
|
||||
File fd;
|
||||
char query_file_path[FN_REFLEN];
|
||||
const uchar sql_log_bin[]= "SET SQL_LOG_BIN=0;";
|
||||
|
||||
DBUG_ENTER("run_query");
|
||||
DBUG_PRINT("enter", ("query: %s", query));
|
||||
if ((fd= create_temp_file(query_file_path, opt_tmpdir,
|
||||
@ -455,6 +464,22 @@ static int run_query(const char *query, DYNAMIC_STRING *ds_res,
|
||||
MYF(MY_WME))) < 0)
|
||||
die("Failed to create temporary file for defaults");
|
||||
|
||||
/*
|
||||
Master and slave should be upgraded separately. All statements executed
|
||||
by mysql_upgrade will not be binlogged.
|
||||
'SET SQL_LOG_BIN=0' is executed before any other statements.
|
||||
*/
|
||||
if (!opt_write_binlog)
|
||||
{
|
||||
if (my_write(fd, sql_log_bin, sizeof(sql_log_bin)-1,
|
||||
MYF(MY_FNABP | MY_WME)))
|
||||
{
|
||||
my_close(fd, MYF(0));
|
||||
my_delete(query_file_path, MYF(0));
|
||||
die("Failed to write to '%s'", query_file_path);
|
||||
}
|
||||
}
|
||||
|
||||
if (my_write(fd, (uchar*) query, strlen(query),
|
||||
MYF(MY_FNABP | MY_WME)))
|
||||
{
|
||||
@ -552,7 +577,6 @@ static int upgrade_already_done(void)
|
||||
FILE *in;
|
||||
char upgrade_info_file[FN_REFLEN]= {0};
|
||||
char buf[sizeof(MYSQL_SERVER_VERSION)+1];
|
||||
char *res;
|
||||
|
||||
if (get_upgrade_info_file_name(upgrade_info_file))
|
||||
return 0; /* Could not get filename => not sure */
|
||||
@ -647,6 +671,7 @@ static int run_mysqlcheck_upgrade(void)
|
||||
"--check-upgrade",
|
||||
"--all-databases",
|
||||
"--auto-repair",
|
||||
opt_write_binlog ? "--write-binlog" : "--skip-write-binlog",
|
||||
NULL);
|
||||
}
|
||||
|
||||
@ -661,6 +686,7 @@ static int run_mysqlcheck_fixnames(void)
|
||||
"--all-databases",
|
||||
"--fix-db-names",
|
||||
"--fix-table-names",
|
||||
opt_write_binlog ? "--write-binlog" : "--skip-write-binlog",
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
@ -87,6 +87,9 @@ static const char* host = 0;
|
||||
static int port= 0;
|
||||
static uint my_end_arg;
|
||||
static const char* sock= 0;
|
||||
#ifdef HAVE_SMEM
|
||||
static char *shared_memory_base_name= 0;
|
||||
#endif
|
||||
static const char* user = 0;
|
||||
static char* pass = 0;
|
||||
static char *charset= 0;
|
||||
@ -773,7 +776,10 @@ Exit_status process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev,
|
||||
case QUERY_EVENT:
|
||||
{
|
||||
Query_log_event *qe= (Query_log_event*)ev;
|
||||
if (shall_skip_database(qe->db))
|
||||
if (strncmp(qe->query, "BEGIN", 5) &&
|
||||
strncmp(qe->query, "COMMIT", 6) &&
|
||||
strncmp(qe->query, "ROLLBACK", 8) &&
|
||||
shall_skip_database(qe->db))
|
||||
goto end;
|
||||
print_use_stmt(print_event_info, qe->db, qe->db_len);
|
||||
if (opt_base64_output_mode == BASE64_OUTPUT_ALWAYS)
|
||||
@ -1048,13 +1054,13 @@ static struct my_option my_long_options[] =
|
||||
/* 'unspec' is not mentioned because it is just a placeholder. */
|
||||
"Determine when the output statements should be base64-encoded BINLOG "
|
||||
"statements: 'never' disables it and works only for binlogs without "
|
||||
"row-based events; 'auto' is the default and prints base64 only when "
|
||||
"necessary (i.e., for row-based events and format description events); "
|
||||
"'decode-rows' suppresses BINLOG statements for row events, but does "
|
||||
"not exit as an error if a row event is found, unlike 'never'; "
|
||||
"'always' prints base64 whenever possible. 'always' is for debugging "
|
||||
"only and should not be used in a production system. The default is "
|
||||
"'auto'. --base64-output is a short form for --base64-output=always."
|
||||
"row-based events; 'decode-rows' decodes row events into commented SQL "
|
||||
"statements if the --verbose option is also given; 'auto' prints base64 "
|
||||
"only when necessary (i.e., for row-based events and format description "
|
||||
"events); 'always' prints base64 whenever possible. 'always' is for "
|
||||
"debugging only and should not be used in a production system. If this "
|
||||
"argument is not given, the default is 'auto'; if it is given with no "
|
||||
"argument, 'always' is used."
|
||||
,(uchar**) &opt_base64_output_mode_str,
|
||||
(uchar**) &opt_base64_output_mode_str,
|
||||
0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
|
||||
@ -1133,6 +1139,12 @@ static struct my_option my_long_options[] =
|
||||
{"set-charset", OPT_SET_CHARSET,
|
||||
"Add 'SET NAMES character_set' to the output.", (uchar**) &charset,
|
||||
(uchar**) &charset, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
#ifdef HAVE_SMEM
|
||||
{"shared-memory-base-name", OPT_SHARED_MEMORY_BASE_NAME,
|
||||
"Base name of shared memory.", (uchar**) &shared_memory_base_name,
|
||||
(uchar**) &shared_memory_base_name,
|
||||
0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
#endif
|
||||
{"short-form", 's', "Just show regular queries: no extra info and no "
|
||||
"row-based events. This is for testing only, and should not be used in "
|
||||
"production systems. If you want to suppress base64-output, consider "
|
||||
@ -1486,6 +1498,11 @@ static Exit_status safe_connect()
|
||||
|
||||
if (opt_protocol)
|
||||
mysql_options(mysql, MYSQL_OPT_PROTOCOL, (char*) &opt_protocol);
|
||||
#ifdef HAVE_SMEM
|
||||
if (shared_memory_base_name)
|
||||
mysql_options(mysql, MYSQL_SHARED_MEMORY_BASE_NAME,
|
||||
shared_memory_base_name);
|
||||
#endif
|
||||
if (!mysql_real_connect(mysql, host, user, pass, 0, port, sock, 0))
|
||||
{
|
||||
error("Failed on connect: %s", mysql_error(mysql));
|
||||
|
@ -652,6 +652,17 @@ static int use_db(char *database)
|
||||
return 0;
|
||||
} /* use_db */
|
||||
|
||||
static int disable_binlog()
|
||||
{
|
||||
const char *stmt= "SET SQL_LOG_BIN=0";
|
||||
if (mysql_query(sock, stmt))
|
||||
{
|
||||
fprintf(stderr, "Failed to %s\n", stmt);
|
||||
fprintf(stderr, "Error: %s\n", mysql_error(sock));
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int handle_request_for_tables(char *tables, uint length)
|
||||
{
|
||||
@ -844,6 +855,14 @@ int main(int argc, char **argv)
|
||||
if (dbConnect(current_host, current_user, opt_password))
|
||||
exit(EX_MYSQLERR);
|
||||
|
||||
if (!opt_write_binlog)
|
||||
{
|
||||
if (disable_binlog()) {
|
||||
first_error= 1;
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
|
||||
if (opt_auto_repair &&
|
||||
my_init_dynamic_array(&tables4repair, sizeof(char)*(NAME_LEN*2+2),16,64))
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2000-2006 MySQL AB
|
||||
/* Copyright (C) 2000-2006 MySQL AB, 2009 Sun Microsystems, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -583,7 +583,7 @@ error:
|
||||
counter--;
|
||||
pthread_cond_signal(&count_threshhold);
|
||||
pthread_mutex_unlock(&counter_mutex);
|
||||
my_thread_end();
|
||||
mysql_thread_end();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2005 MySQL AB
|
||||
/* Copyright (C) 2005 MySQL AB, 2009 Sun Microsystems, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -423,6 +423,7 @@ void concurrency_loop(MYSQL *mysql, uint current, option_string *eptr)
|
||||
stats *sptr;
|
||||
conclusions conclusion;
|
||||
unsigned long long client_limit;
|
||||
int sysret;
|
||||
|
||||
head_sptr= (stats *)my_malloc(sizeof(stats) * iterations,
|
||||
MYF(MY_ZEROFILL|MY_FAE|MY_WME));
|
||||
@ -472,7 +473,10 @@ void concurrency_loop(MYSQL *mysql, uint current, option_string *eptr)
|
||||
run_query(mysql, "SET AUTOCOMMIT=0", strlen("SET AUTOCOMMIT=0"));
|
||||
|
||||
if (pre_system)
|
||||
if (system(pre_system)) { /* Ignore for now */ }
|
||||
if ((sysret= system(pre_system)) != 0)
|
||||
fprintf(stderr,
|
||||
"Warning: Execution of pre_system option returned %d.\n",
|
||||
sysret);
|
||||
|
||||
/*
|
||||
Pre statements are always run after all other logic so they can
|
||||
@ -487,8 +491,10 @@ void concurrency_loop(MYSQL *mysql, uint current, option_string *eptr)
|
||||
run_statements(mysql, post_statements);
|
||||
|
||||
if (post_system)
|
||||
if (system(post_system)) { /* Ignore for now */ }
|
||||
|
||||
if ((sysret= system(post_system)) != 0)
|
||||
fprintf(stderr,
|
||||
"Warning: Execution of post_system option returned %d.\n",
|
||||
sysret);
|
||||
/* We are finished with this run */
|
||||
if (auto_generate_sql_autoincrement || auto_generate_sql_guid_primary)
|
||||
drop_primary_key_list();
|
||||
@ -597,8 +603,8 @@ static struct my_option my_long_options[] =
|
||||
(uchar**) &detach_rate, (uchar**) &detach_rate, 0, GET_UINT, REQUIRED_ARG,
|
||||
0, 0, 0, 0, 0, 0},
|
||||
{"engine", 'e', "Comma separated list of storage engines to use for creating the table."
|
||||
"The test is run for each engine. You can also specify an option for an engine"
|
||||
"after a `:', like memory:max_row=2300",
|
||||
" The test is run for each engine. You can also specify an option for an engine"
|
||||
" after a `:', like memory:max_row=2300",
|
||||
(uchar**) &default_engine, (uchar**) &default_engine, 0,
|
||||
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"host", 'h', "Connect to host.", (uchar**) &host, (uchar**) &host, 0, GET_STR,
|
||||
@ -1942,7 +1948,7 @@ end:
|
||||
if (!opt_only_print)
|
||||
mysql_close(mysql);
|
||||
|
||||
my_thread_end();
|
||||
mysql_thread_end();
|
||||
|
||||
pthread_mutex_lock(&counter_mutex);
|
||||
thread_counter--;
|
||||
|
@ -82,6 +82,9 @@ enum {
|
||||
static int record= 0, opt_sleep= -1;
|
||||
static char *opt_db= 0, *opt_pass= 0;
|
||||
const char *opt_user= 0, *opt_host= 0, *unix_sock= 0, *opt_basedir= "./";
|
||||
#ifdef HAVE_SMEM
|
||||
static char *shared_memory_base_name=0;
|
||||
#endif
|
||||
const char *opt_logdir= "";
|
||||
const char *opt_include= 0, *opt_charsets_dir;
|
||||
static int opt_port= 0;
|
||||
@ -429,6 +432,7 @@ static struct st_expected_errors saved_expected_errors;
|
||||
struct st_command
|
||||
{
|
||||
char *query, *query_buf,*first_argument,*last_argument,*end;
|
||||
DYNAMIC_STRING content;
|
||||
int first_word_len, query_len;
|
||||
my_bool abort_on_error;
|
||||
struct st_expected_errors expected_errors;
|
||||
@ -1152,6 +1156,8 @@ void free_used_memory()
|
||||
{
|
||||
struct st_command **q= dynamic_element(&q_lines, i, struct st_command**);
|
||||
my_free((*q)->query_buf,MYF(MY_ALLOW_ZERO_PTR));
|
||||
if ((*q)->content.str)
|
||||
dynstr_free(&(*q)->content);
|
||||
my_free((*q),MYF(0));
|
||||
}
|
||||
for (i= 0; i < 10; i++)
|
||||
@ -1177,6 +1183,7 @@ void free_used_memory()
|
||||
mysql_server_end();
|
||||
|
||||
/* Don't use DBUG after mysql_server_end() */
|
||||
DBUG_VIOLATION_HELPER_LEAVE;
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1543,7 +1550,7 @@ void show_diff(DYNAMIC_STRING* ds,
|
||||
else
|
||||
diff_name = 0;
|
||||
#else
|
||||
diff_name = "diff"; // Otherwise always assume it's called diff
|
||||
diff_name = "diff"; /* Otherwise always assume it's called diff */
|
||||
#endif
|
||||
|
||||
if (diff_name)
|
||||
@ -3321,21 +3328,30 @@ void do_write_file_command(struct st_command *command, my_bool append)
|
||||
sizeof(write_file_args)/sizeof(struct command_arg),
|
||||
' ');
|
||||
|
||||
/* If no delimiter was provided, use EOF */
|
||||
if (ds_delimiter.length == 0)
|
||||
dynstr_set(&ds_delimiter, "EOF");
|
||||
|
||||
if (!append && access(ds_filename.str, F_OK) == 0)
|
||||
{
|
||||
/* The file should not be overwritten */
|
||||
die("File already exist: '%s'", ds_filename.str);
|
||||
}
|
||||
|
||||
init_dynamic_string(&ds_content, "", 1024, 1024);
|
||||
read_until_delimiter(&ds_content, &ds_delimiter);
|
||||
DBUG_PRINT("info", ("Writing to file: %s", ds_filename.str));
|
||||
str_to_file2(ds_filename.str, ds_content.str, ds_content.length, append);
|
||||
dynstr_free(&ds_content);
|
||||
ds_content= command->content;
|
||||
/* If it hasn't been done already by a loop iteration, fill it in */
|
||||
if (! ds_content.str)
|
||||
{
|
||||
/* If no delimiter was provided, use EOF */
|
||||
if (ds_delimiter.length == 0)
|
||||
dynstr_set(&ds_delimiter, "EOF");
|
||||
|
||||
init_dynamic_string(&ds_content, "", 1024, 1024);
|
||||
read_until_delimiter(&ds_content, &ds_delimiter);
|
||||
command->content= ds_content;
|
||||
}
|
||||
/* This function could be called even if "false", so check before printing */
|
||||
if (cur_block->ok)
|
||||
{
|
||||
DBUG_PRINT("info", ("Writing to file: %s", ds_filename.str));
|
||||
str_to_file2(ds_filename.str, ds_content.str, ds_content.length, append);
|
||||
}
|
||||
dynstr_free(&ds_filename);
|
||||
dynstr_free(&ds_delimiter);
|
||||
DBUG_VOID_RETURN;
|
||||
@ -3478,12 +3494,17 @@ void do_diff_files(struct st_command *command)
|
||||
die("command \"diff_files\" failed, file '%s' does not exist",
|
||||
ds_filename2.str);
|
||||
|
||||
if ((error= compare_files(ds_filename.str, ds_filename2.str)))
|
||||
if ((error= compare_files(ds_filename.str, ds_filename2.str)) &&
|
||||
match_expected_error(command, error, NULL) < 0)
|
||||
{
|
||||
/* Compare of the two files failed, append them to output
|
||||
so the failure can be analyzed
|
||||
so the failure can be analyzed, but only if it was not
|
||||
expected to fail.
|
||||
*/
|
||||
show_diff(&ds_res, ds_filename.str, ds_filename2.str);
|
||||
log_file.write(&ds_res);
|
||||
log_file.flush();
|
||||
dynstr_set(&ds_res, 0);
|
||||
}
|
||||
|
||||
dynstr_free(&ds_filename);
|
||||
@ -4910,6 +4931,8 @@ do_handle_error:
|
||||
<opts> - options to use for the connection
|
||||
* SSL - use SSL if available
|
||||
* COMPRESS - use compression if available
|
||||
* SHM - use shared memory if available
|
||||
* PIPE - use named pipe if available
|
||||
|
||||
*/
|
||||
|
||||
@ -4918,6 +4941,7 @@ void do_connect(struct st_command *command)
|
||||
int con_port= opt_port;
|
||||
char *con_options;
|
||||
my_bool con_ssl= 0, con_compress= 0;
|
||||
my_bool con_pipe= 0, con_shm= 0;
|
||||
struct st_connection* con_slot;
|
||||
|
||||
static DYNAMIC_STRING ds_connection_name;
|
||||
@ -4928,6 +4952,9 @@ void do_connect(struct st_command *command)
|
||||
static DYNAMIC_STRING ds_port;
|
||||
static DYNAMIC_STRING ds_sock;
|
||||
static DYNAMIC_STRING ds_options;
|
||||
#ifdef HAVE_SMEM
|
||||
static DYNAMIC_STRING ds_shm;
|
||||
#endif
|
||||
const struct command_arg connect_args[] = {
|
||||
{ "connection name", ARG_STRING, TRUE, &ds_connection_name, "Name of the connection" },
|
||||
{ "host", ARG_STRING, TRUE, &ds_host, "Host to connect to" },
|
||||
@ -4955,6 +4982,11 @@ void do_connect(struct st_command *command)
|
||||
die("Illegal argument for port: '%s'", ds_port.str);
|
||||
}
|
||||
|
||||
#ifdef HAVE_SMEM
|
||||
/* Shared memory */
|
||||
init_dynamic_string(&ds_shm, ds_sock.str, 0, 0);
|
||||
#endif
|
||||
|
||||
/* Sock */
|
||||
if (ds_sock.length)
|
||||
{
|
||||
@ -4993,6 +5025,10 @@ void do_connect(struct st_command *command)
|
||||
con_ssl= 1;
|
||||
else if (!strncmp(con_options, "COMPRESS", 8))
|
||||
con_compress= 1;
|
||||
else if (!strncmp(con_options, "PIPE", 4))
|
||||
con_pipe= 1;
|
||||
else if (!strncmp(con_options, "SHM", 3))
|
||||
con_shm= 1;
|
||||
else
|
||||
die("Illegal option to connect: %.*s",
|
||||
(int) (end - con_options), con_options);
|
||||
@ -5043,6 +5079,31 @@ void do_connect(struct st_command *command)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __WIN__
|
||||
if (con_pipe)
|
||||
{
|
||||
uint protocol= MYSQL_PROTOCOL_PIPE;
|
||||
mysql_options(&con_slot->mysql, MYSQL_OPT_PROTOCOL, &protocol);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SMEM
|
||||
if (con_shm)
|
||||
{
|
||||
uint protocol= MYSQL_PROTOCOL_MEMORY;
|
||||
if (!ds_shm.length)
|
||||
die("Missing shared memory base name");
|
||||
mysql_options(&con_slot->mysql, MYSQL_SHARED_MEMORY_BASE_NAME, ds_shm.str);
|
||||
mysql_options(&con_slot->mysql, MYSQL_OPT_PROTOCOL, &protocol);
|
||||
}
|
||||
else if(shared_memory_base_name)
|
||||
{
|
||||
mysql_options(&con_slot->mysql, MYSQL_SHARED_MEMORY_BASE_NAME,
|
||||
shared_memory_base_name);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/* Use default db name */
|
||||
if (ds_database.length == 0)
|
||||
dynstr_set(&ds_database, opt_db);
|
||||
@ -5075,6 +5136,9 @@ void do_connect(struct st_command *command)
|
||||
dynstr_free(&ds_port);
|
||||
dynstr_free(&ds_sock);
|
||||
dynstr_free(&ds_options);
|
||||
#ifdef HAVE_SMEM
|
||||
dynstr_free(&ds_shm);
|
||||
#endif
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
@ -5746,6 +5810,12 @@ static struct my_option my_long_options[] =
|
||||
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"server-file", 'F', "Read embedded server arguments from file.",
|
||||
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
#ifdef HAVE_SMEM
|
||||
{"shared-memory-base-name", OPT_SHARED_MEMORY_BASE_NAME,
|
||||
"Base name of shared memory.", (uchar**) &shared_memory_base_name,
|
||||
(uchar**) &shared_memory_base_name, 0, GET_STR, REQUIRED_ARG, 0, 0, 0,
|
||||
0, 0, 0},
|
||||
#endif
|
||||
{"silent", 's', "Suppress all normal output. Synonym for --quiet.",
|
||||
(uchar**) &silent, (uchar**) &silent, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"skip-safemalloc", OPT_SKIP_SAFEMALLOC,
|
||||
@ -6809,8 +6879,10 @@ void run_query_stmt(MYSQL *mysql, struct st_command *command,
|
||||
MYSQL_STMT *stmt;
|
||||
DYNAMIC_STRING ds_prepare_warnings;
|
||||
DYNAMIC_STRING ds_execute_warnings;
|
||||
ulonglong affected_rows;
|
||||
DBUG_ENTER("run_query_stmt");
|
||||
DBUG_PRINT("query", ("'%-.60s'", query));
|
||||
LINT_INIT(affected_rows);
|
||||
|
||||
/*
|
||||
Init a new stmt if it's not already one created for this connection
|
||||
@ -6950,32 +7022,43 @@ void run_query_stmt(MYSQL *mysql, struct st_command *command,
|
||||
*/
|
||||
}
|
||||
|
||||
if (!disable_warnings)
|
||||
/*
|
||||
Need to grab affected rows information before getting
|
||||
warnings here
|
||||
*/
|
||||
{
|
||||
/* Get the warnings from execute */
|
||||
ulonglong affected_rows;
|
||||
LINT_INIT(affected_rows);
|
||||
|
||||
/* Append warnings to ds - if there are any */
|
||||
if (append_warnings(&ds_execute_warnings, mysql) ||
|
||||
ds_execute_warnings.length ||
|
||||
ds_prepare_warnings.length ||
|
||||
ds_warnings->length)
|
||||
if (!disable_info)
|
||||
affected_rows= mysql_affected_rows(mysql);
|
||||
|
||||
if (!disable_warnings)
|
||||
{
|
||||
dynstr_append_mem(ds, "Warnings:\n", 10);
|
||||
if (ds_warnings->length)
|
||||
dynstr_append_mem(ds, ds_warnings->str,
|
||||
ds_warnings->length);
|
||||
if (ds_prepare_warnings.length)
|
||||
dynstr_append_mem(ds, ds_prepare_warnings.str,
|
||||
ds_prepare_warnings.length);
|
||||
if (ds_execute_warnings.length)
|
||||
dynstr_append_mem(ds, ds_execute_warnings.str,
|
||||
ds_execute_warnings.length);
|
||||
/* Get the warnings from execute */
|
||||
|
||||
/* Append warnings to ds - if there are any */
|
||||
if (append_warnings(&ds_execute_warnings, mysql) ||
|
||||
ds_execute_warnings.length ||
|
||||
ds_prepare_warnings.length ||
|
||||
ds_warnings->length)
|
||||
{
|
||||
dynstr_append_mem(ds, "Warnings:\n", 10);
|
||||
if (ds_warnings->length)
|
||||
dynstr_append_mem(ds, ds_warnings->str,
|
||||
ds_warnings->length);
|
||||
if (ds_prepare_warnings.length)
|
||||
dynstr_append_mem(ds, ds_prepare_warnings.str,
|
||||
ds_prepare_warnings.length);
|
||||
if (ds_execute_warnings.length)
|
||||
dynstr_append_mem(ds, ds_execute_warnings.str,
|
||||
ds_execute_warnings.length);
|
||||
}
|
||||
}
|
||||
|
||||
if (!disable_info)
|
||||
append_info(ds, affected_rows, mysql_info(mysql));
|
||||
}
|
||||
|
||||
if (!disable_info)
|
||||
append_info(ds, mysql_affected_rows(mysql), mysql_info(mysql));
|
||||
|
||||
}
|
||||
|
||||
end:
|
||||
@ -7224,6 +7307,10 @@ void run_query(struct st_connection *cn, struct st_command *command, int flags)
|
||||
run_query_normal(cn, command, flags, query, query_len,
|
||||
ds, &ds_warnings);
|
||||
|
||||
dynstr_free(&ds_warnings);
|
||||
if (command->type == Q_EVAL)
|
||||
dynstr_free(&eval_query);
|
||||
|
||||
if (display_result_sorted)
|
||||
{
|
||||
/* Sort the result set and append it to result */
|
||||
@ -7254,11 +7341,8 @@ void run_query(struct st_connection *cn, struct st_command *command, int flags)
|
||||
check_require(ds, command->require_file);
|
||||
}
|
||||
|
||||
dynstr_free(&ds_warnings);
|
||||
if (ds == &ds_result)
|
||||
dynstr_free(&ds_result);
|
||||
if (command->type == Q_EVAL)
|
||||
dynstr_free(&eval_query);
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
@ -7704,6 +7788,11 @@ int main(int argc, char **argv)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SMEM
|
||||
if (shared_memory_base_name)
|
||||
mysql_options(&con->mysql,MYSQL_SHARED_MEMORY_BASE_NAME,shared_memory_base_name);
|
||||
#endif
|
||||
|
||||
if (!(con->name = my_strdup("default", MYF(MY_WME))))
|
||||
die("Out of memory");
|
||||
|
||||
@ -7742,7 +7831,32 @@ int main(int argc, char **argv)
|
||||
command->type= Q_COMMENT;
|
||||
}
|
||||
|
||||
if (cur_block->ok)
|
||||
my_bool ok_to_do= cur_block->ok;
|
||||
/*
|
||||
Some commands need to be "done" the first time if they may get
|
||||
re-iterated over in a true context. This can only happen if there's
|
||||
a while loop at some level above the current block.
|
||||
*/
|
||||
if (!ok_to_do)
|
||||
{
|
||||
if (command->type == Q_SOURCE ||
|
||||
command->type == Q_ERROR ||
|
||||
command->type == Q_WRITE_FILE ||
|
||||
command->type == Q_APPEND_FILE ||
|
||||
command->type == Q_PERL)
|
||||
{
|
||||
for (struct st_block *stb= cur_block-1; stb >= block_stack; stb--)
|
||||
{
|
||||
if (stb->cmd == cmd_while)
|
||||
{
|
||||
ok_to_do= 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (ok_to_do)
|
||||
{
|
||||
command->last_argument= command->first_argument;
|
||||
processed = 1;
|
||||
@ -8053,6 +8167,8 @@ int main(int argc, char **argv)
|
||||
if (parsing_disabled)
|
||||
die("Test ended with parsing disabled");
|
||||
|
||||
my_bool empty_result= FALSE;
|
||||
|
||||
/*
|
||||
The whole test has been executed _sucessfully_.
|
||||
Time to compare result or save it to record file.
|
||||
@ -8093,11 +8209,20 @@ int main(int argc, char **argv)
|
||||
}
|
||||
else
|
||||
{
|
||||
die("The test didn't produce any output");
|
||||
/* Empty output is an error *unless* we also have an empty result file */
|
||||
if (! result_file_name || record ||
|
||||
compare_files (log_file.file_name(), result_file_name))
|
||||
{
|
||||
die("The test didn't produce any output");
|
||||
}
|
||||
else
|
||||
{
|
||||
empty_result= TRUE; /* Meaning empty was expected */
|
||||
}
|
||||
}
|
||||
|
||||
if (!command_executed && result_file_name)
|
||||
die("No queries executed but result file found!");
|
||||
if (!command_executed && result_file_name && !empty_result)
|
||||
die("No queries executed but non-empty result file found!");
|
||||
|
||||
verbose_msg("Test has succeeded!");
|
||||
timer_output();
|
||||
@ -8184,6 +8309,8 @@ void do_get_replace_column(struct st_command *command)
|
||||
}
|
||||
my_free(start, MYF(0));
|
||||
command->last_argument= command->end;
|
||||
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
|
||||
|
@ -7,6 +7,13 @@
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#ifdef NOT_YET /* causes problem on MacOSX */
|
||||
/* to get wcwidth() defined */
|
||||
#define _XOPEN_SOURCE 600
|
||||
#define _XOPEN_SOURCE_EXTENDED
|
||||
#define _XOPEN_
|
||||
#endif
|
||||
|
||||
/*
|
||||
Ultrix botches type-ahead when switching from canonical to
|
||||
non-canonical mode, at least through version 4.3
|
||||
|
@ -461,12 +461,12 @@ rl_redisplay ()
|
||||
register char *line;
|
||||
int inv_botlin, lb_linenum, o_cpos;
|
||||
int newlines, lpos, temp, modmark;
|
||||
char *prompt_this_line;
|
||||
const char *prompt_this_line;
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
int num, n0;
|
||||
int num, n0= 0;
|
||||
wchar_t wc;
|
||||
size_t wc_bytes;
|
||||
int wc_width;
|
||||
int wc_width= 0;
|
||||
mbstate_t ps;
|
||||
int _rl_wrapped_multicolumn = 0;
|
||||
#endif
|
||||
@ -824,7 +824,7 @@ rl_redisplay ()
|
||||
cpos_buffer_position = out;
|
||||
lb_linenum = newlines;
|
||||
}
|
||||
for (i = in; i < in+wc_bytes; i++)
|
||||
for (i = in; i < in+(int)wc_bytes; i++)
|
||||
line[out++] = rl_line_buffer[i];
|
||||
for (i = 0; i < wc_width; i++)
|
||||
CHECK_LPOS();
|
||||
|
@ -211,14 +211,14 @@ history_get (offset)
|
||||
|
||||
HIST_ENTRY *
|
||||
alloc_history_entry (string, ts)
|
||||
char *string;
|
||||
const char *string;
|
||||
char *ts;
|
||||
{
|
||||
HIST_ENTRY *temp;
|
||||
|
||||
temp = (HIST_ENTRY *)xmalloc (sizeof (HIST_ENTRY));
|
||||
|
||||
temp->line = string ? savestring (string) : string;
|
||||
temp->line = string ? savestring ((char*) string) : (char*) string;
|
||||
temp->data = (char *)NULL;
|
||||
temp->timestamp = ts;
|
||||
|
||||
|
@ -109,8 +109,8 @@ extern int _rl_is_mbchar_matched PARAMS((char *, int, int, char *, int));
|
||||
extern wchar_t _rl_char_value PARAMS((char *, int));
|
||||
extern int _rl_walphabetic PARAMS((wchar_t));
|
||||
|
||||
#define _rl_to_wupper(wc) (iswlower (wc) ? towupper (wc) : (wc))
|
||||
#define _rl_to_wlower(wc) (iswupper (wc) ? towlower (wc) : (wc))
|
||||
#define _rl_to_wupper(wc) (iswlower (wc) ? (wchar_t) towupper (wc) : (wc))
|
||||
#define _rl_to_wlower(wc) (iswupper (wc) ? (wchar_t) towlower (wc) : (wc))
|
||||
|
||||
#define MB_NEXTCHAR(b,s,c,f) \
|
||||
((MB_CUR_MAX > 1 && rl_byte_oriented == 0) \
|
||||
|
@ -614,7 +614,7 @@ rl_arrow_keys (count, c)
|
||||
#ifdef HANDLE_MULTIBYTE
|
||||
static char pending_bytes[MB_LEN_MAX];
|
||||
static int pending_bytes_length = 0;
|
||||
static mbstate_t ps = {0};
|
||||
static mbstate_t ps;
|
||||
#endif
|
||||
|
||||
/* Insert the character C at the current location, moving point forward.
|
||||
|
@ -42,7 +42,7 @@
|
||||
|
||||
static void
|
||||
memory_error_and_abort (fname)
|
||||
char *fname;
|
||||
const char *fname;
|
||||
{
|
||||
fprintf (stderr, "%s: out of virtual memory\n", fname);
|
||||
exit (2);
|
||||
|
41
configure.in
41
configure.in
@ -1652,13 +1652,14 @@ then
|
||||
DEBUG_OPTIMIZE_CXX="-O"
|
||||
OPTIMIZE_CXXFLAGS="$MAX_CXX_OPTIMIZE"
|
||||
else
|
||||
DEBUG_CXXFLAGS="-g"
|
||||
DEBUG_OPTIMIZE_CXX=""
|
||||
case $SYSTEM_TYPE in
|
||||
*solaris*)
|
||||
DEBUG_CXXFLAGS="-g0"
|
||||
OPTIMIZE_CXXFLAGS="-O1"
|
||||
;;
|
||||
*)
|
||||
DEBUG_CXXFLAGS="-g"
|
||||
OPTIMIZE_CXXFLAGS="-O"
|
||||
;;
|
||||
esac
|
||||
@ -1715,6 +1716,23 @@ else
|
||||
CXXFLAGS="$OPTIMIZE_CXXFLAGS $CXXFLAGS"
|
||||
fi
|
||||
|
||||
# Debug Sync Facility. NOTE: depends on 'with_debug'. Must be behind it.
|
||||
AC_MSG_CHECKING(if Debug Sync Facility should be enabled.)
|
||||
AC_ARG_ENABLE(debug_sync,
|
||||
AS_HELP_STRING([--enable-debug-sync],
|
||||
[Build a version with Debug Sync Facility]),
|
||||
[ enable_debug_sync=$enableval ],
|
||||
[ enable_debug_sync=$with_debug ])
|
||||
|
||||
if test "$enable_debug_sync" != "no"
|
||||
then
|
||||
AC_DEFINE([ENABLED_DEBUG_SYNC], [1],
|
||||
[If Debug Sync Facility should be enabled])
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
|
||||
# If we should allow error injection tests
|
||||
AC_ARG_WITH(error-inject,
|
||||
AC_HELP_STRING([--with-error-inject],[Enable error injection in MySQL Server]),
|
||||
@ -2786,7 +2804,7 @@ server_scripts=
|
||||
|
||||
dnl This probably should be cleaned up more - for now the threaded
|
||||
dnl client is just using plain-old libs.
|
||||
sql_client_dirs="strings regex mysys libmysql"
|
||||
sql_client_dirs="strings mysys dbug extra regex libmysql unittest"
|
||||
|
||||
AM_CONDITIONAL(THREAD_SAFE_CLIENT, test "$THREAD_SAFE_CLIENT" != "no")
|
||||
|
||||
@ -2814,12 +2832,20 @@ fi
|
||||
AC_SUBST(netware_dir)
|
||||
AM_CONDITIONAL(HAVE_NETWARE, test "$netware_dir" = "netware")
|
||||
|
||||
if test "$with_server" = "yes" -o "$THREAD_SAFE_CLIENT" != "no"
|
||||
if test "$with_server" != "no" -o "$THREAD_SAFE_CLIENT" != "no"
|
||||
then
|
||||
AC_DEFINE([THREAD], [1],
|
||||
[Define if you want to have threaded code. This may be undef on client code])
|
||||
# Avoid _PROGRAMS names
|
||||
THREAD_LOBJECTS="thr_alarm.o thr_lock.o thr_mutex.o thr_rwlock.o my_pthread.o my_thr_init.o mf_keycache.o mf_keycaches.o waiting_threads.o"
|
||||
AC_SUBST(THREAD_LOBJECTS)
|
||||
fi
|
||||
AM_CONDITIONAL(NEED_THREAD, test "$with_server" != "no" -o "$THREAD_SAFE_CLIENT" != "no")
|
||||
|
||||
if test "$with_server" != "no"
|
||||
then
|
||||
server_scripts="mysqld_safe mysql_install_db"
|
||||
sql_server_dirs="strings mysys dbug extra regex"
|
||||
sql_server_dirs="strings mysys dbug extra regex storage plugin"
|
||||
|
||||
sql_server="vio sql"
|
||||
fi
|
||||
@ -2845,9 +2871,10 @@ AC_SUBST(mysql_plugin_defs)
|
||||
|
||||
|
||||
# Now that sql_client_dirs and sql_server_dirs are stable, determine the union.
|
||||
# Start with the (longer) server list, add each client item not yet present.
|
||||
sql_union_dirs=" $sql_server_dirs "
|
||||
for DIR in $sql_client_dirs
|
||||
# We support client-only builds by "--without-server", but not vice versa,
|
||||
# so we start with the client list, then add each server item not yet present.
|
||||
sql_union_dirs=" $sql_client_dirs "
|
||||
for DIR in $sql_server_dirs
|
||||
do
|
||||
if echo " $sql_union_dirs " | grep " $DIR " >/dev/null
|
||||
then
|
||||
|
@ -441,7 +441,7 @@ public:
|
||||
const Ciphers& GetCiphers() const;
|
||||
const DH_Parms& GetDH_Parms() const;
|
||||
const Stats& GetStats() const;
|
||||
VerifyCallback getVerifyCallback() const;
|
||||
VerifyCallback getVerifyCallback() const;
|
||||
pem_password_cb GetPasswordCb() const;
|
||||
void* GetUserData() const;
|
||||
bool GetSessionCacheOff() const;
|
||||
|
@ -27,7 +27,6 @@
|
||||
#include <time.h>
|
||||
|
||||
#if defined(_WIN32)
|
||||
#define _WIN32_WINNT 0x0400
|
||||
#include <windows.h>
|
||||
#include <wincrypt.h>
|
||||
#else
|
||||
|
@ -76,6 +76,8 @@ my_bool ft_boolean_check_syntax_string(const uchar *);
|
||||
|
||||
extern const HA_KEYSEG ft_keysegs[FT_SEGS];
|
||||
|
||||
typedef union {int32 i; float f;} FT_WEIGTH;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@ -49,6 +49,24 @@ typedef struct unicase_info_st
|
||||
extern MY_UNICASE_INFO *my_unicase_default[256];
|
||||
extern MY_UNICASE_INFO *my_unicase_turkish[256];
|
||||
|
||||
#define MY_UCA_MAX_CONTRACTION 4
|
||||
#define MY_UCA_MAX_WEIGHT_SIZE 8
|
||||
|
||||
typedef struct my_contraction_t
|
||||
{
|
||||
my_wc_t ch[MY_UCA_MAX_CONTRACTION]; /* Character sequence */
|
||||
uint16 weight[MY_UCA_MAX_WEIGHT_SIZE];/* Its weight string, 0-terminated */
|
||||
} MY_CONTRACTION;
|
||||
|
||||
|
||||
typedef struct my_contraction_list_t
|
||||
{
|
||||
size_t nitems; /* Number of items in the list */
|
||||
MY_CONTRACTION *item; /* List of contractions */
|
||||
char *flags; /* Character flags, e.g. "is contraction head") */
|
||||
} MY_CONTRACTIONS;
|
||||
|
||||
|
||||
typedef struct uni_ctype_st
|
||||
{
|
||||
uchar pctype;
|
||||
@ -262,7 +280,7 @@ typedef struct charset_info_st
|
||||
uchar *to_lower;
|
||||
uchar *to_upper;
|
||||
uchar *sort_order;
|
||||
uint16 *contractions;
|
||||
MY_CONTRACTIONS *contractions;
|
||||
uint16 **sort_order_big;
|
||||
uint16 *tab_to_uni;
|
||||
MY_UNI_IDX *tab_from_uni;
|
||||
@ -475,6 +493,13 @@ my_bool my_charset_is_ascii_based(CHARSET_INFO *cs);
|
||||
my_bool my_charset_is_8bit_pure_ascii(CHARSET_INFO *cs);
|
||||
uint my_charset_repertoire(CHARSET_INFO *cs);
|
||||
|
||||
my_bool my_uca_have_contractions(CHARSET_INFO *cs);
|
||||
my_bool my_uca_can_be_contraction_head(CHARSET_INFO *cs, my_wc_t wc);
|
||||
my_bool my_uca_can_be_contraction_tail(CHARSET_INFO *cs, my_wc_t wc);
|
||||
uint16 *my_uca_contraction2_weight(CHARSET_INFO *cs, my_wc_t wc1, my_wc_t wc2);
|
||||
|
||||
|
||||
|
||||
|
||||
#define _MY_U 01 /* Upper case */
|
||||
#define _MY_L 02 /* Lower case */
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2000 MySQL AB
|
||||
/* Copyright (C) 2000 MySQL AB & 2009 Monty Program Ab
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -16,7 +16,30 @@
|
||||
#ifndef _dbug_h
|
||||
#define _dbug_h
|
||||
|
||||
#ifdef __cplusplus
|
||||
#if defined(__cplusplus) && !defined(DBUG_OFF)
|
||||
class Dbug_violation_helper
|
||||
{
|
||||
public:
|
||||
inline Dbug_violation_helper() :
|
||||
_entered(TRUE)
|
||||
{ }
|
||||
|
||||
inline ~Dbug_violation_helper()
|
||||
{
|
||||
assert(!_entered);
|
||||
}
|
||||
|
||||
inline void leave()
|
||||
{
|
||||
_entered= FALSE;
|
||||
}
|
||||
|
||||
private:
|
||||
bool _entered;
|
||||
};
|
||||
#endif /* C++ */
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#if !defined(DBUG_OFF) && !defined(_lint)
|
||||
@ -30,34 +53,51 @@ struct _db_stack_frame_ {
|
||||
|
||||
struct _db_code_state_;
|
||||
extern my_bool _dbug_on_;
|
||||
extern my_bool _db_keyword_(struct _db_code_state_ *, const char *, int);
|
||||
extern my_bool _db_keyword_(struct _db_code_state_ *cs, const char *keyword,
|
||||
int strict_flag);
|
||||
extern int _db_strict_keyword_(const char *keyword);
|
||||
extern int _db_explain_(struct _db_code_state_ *cs, char *buf, size_t len);
|
||||
extern int _db_explain_init_(char *buf, size_t len);
|
||||
extern int _db_is_pushed_(void);
|
||||
extern void _db_setjmp_(void);
|
||||
extern void _db_longjmp_(void);
|
||||
extern void _db_process_(const char *name);
|
||||
extern void _db_push_(const char *control);
|
||||
extern void _db_pop_(void);
|
||||
extern void _db_push_(const char *control);
|
||||
extern void _db_pop_(void);
|
||||
extern void _db_set_(const char *control);
|
||||
extern void _db_set_init_(const char *control);
|
||||
extern void _db_enter_(const char *_func_, const char *_file_, uint _line_,
|
||||
struct _db_stack_frame_ *_stack_frame_);
|
||||
extern void _db_enter_(const char *_func_, const char *_file_, uint _line_,
|
||||
struct _db_stack_frame_ *_stack_frame_);
|
||||
extern void _db_return_(uint _line_, struct _db_stack_frame_ *_stack_frame_);
|
||||
extern void _db_pargs_(uint _line_,const char *keyword);
|
||||
extern void _db_doprnt_ _VARARGS((const char *format,...))
|
||||
ATTRIBUTE_FORMAT(printf, 1, 2);
|
||||
extern void _db_dump_(uint _line_,const char *keyword,
|
||||
extern void _db_dump_(uint _line_,const char *keyword,
|
||||
const unsigned char *memory, size_t length);
|
||||
extern void _db_end_(void);
|
||||
extern void _db_lock_file_(void);
|
||||
extern void _db_unlock_file_(void);
|
||||
extern FILE *_db_fp_(void);
|
||||
extern void _db_end_(void);
|
||||
extern void _db_lock_file_(void);
|
||||
extern void _db_unlock_file_(void);
|
||||
extern FILE *_db_fp_(void);
|
||||
extern void _db_flush_();
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
#define DBUG_ENTER(a) struct _db_stack_frame_ _db_stack_frame_; \
|
||||
Dbug_violation_helper dbug_violation_helper; \
|
||||
_db_enter_ (a,__FILE__,__LINE__,&_db_stack_frame_)
|
||||
#define DBUG_VIOLATION_HELPER_LEAVE dbug_violation_helper.leave()
|
||||
|
||||
#else /* C */
|
||||
|
||||
#define DBUG_ENTER(a) struct _db_stack_frame_ _db_stack_frame_; \
|
||||
_db_enter_ (a,__FILE__,__LINE__,&_db_stack_frame_)
|
||||
#define DBUG_LEAVE _db_return_ (__LINE__, &_db_stack_frame_)
|
||||
#define DBUG_VIOLATION_HELPER_LEAVE do { } while(0)
|
||||
|
||||
#endif /* C++ */
|
||||
|
||||
#define DBUG_LEAVE \
|
||||
DBUG_VIOLATION_HELPER_LEAVE; \
|
||||
_db_return_ (__LINE__, &_db_stack_frame_)
|
||||
#define DBUG_RETURN(a1) do {DBUG_LEAVE; return(a1);} while(0)
|
||||
#define DBUG_VOID_RETURN do {DBUG_LEAVE; return;} while(0)
|
||||
#define DBUG_EXECUTE(keyword,a1) \
|
||||
@ -88,28 +128,16 @@ extern void _db_flush_();
|
||||
#define DEBUGGER_OFF do { _dbug_on_= 0; } while(0)
|
||||
#define DEBUGGER_ON do { _dbug_on_= 1; } while(0)
|
||||
#define IF_DBUG(A) A
|
||||
#ifndef __WIN__
|
||||
#define DBUG_ABORT() (_db_flush_(), abort())
|
||||
#else
|
||||
/*
|
||||
Avoid popup with abort/retry/ignore buttons. When BUG#31745 is fixed we can
|
||||
call abort() instead of _exit(3) (now it would cause a "test signal" popup).
|
||||
*/
|
||||
#include <crtdbg.h>
|
||||
#define DBUG_ABORT() (_db_flush_(),\
|
||||
(void)_CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE),\
|
||||
(void)_CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR),\
|
||||
_exit(3))
|
||||
#endif
|
||||
|
||||
#else /* No debugger */
|
||||
|
||||
#define DBUG_ENTER(a1)
|
||||
#define DBUG_VIOLATION_HELPER_LEAVE do { } while(0)
|
||||
#define DBUG_LEAVE
|
||||
#define DBUG_RETURN(a1) do { return(a1); } while(0)
|
||||
#define DBUG_VOID_RETURN do { return; } while(0)
|
||||
#define DBUG_EXECUTE(keyword,a1) do { } while(0)
|
||||
#define DBUG_EXECUTE_IF(keyword,a1) do { } while(0)
|
||||
#define DBUG_RETURN(a1) do { return(a1); } while(0)
|
||||
#define DBUG_VOID_RETURN do { return; } while(0)
|
||||
#define DBUG_EXECUTE(keyword,a1) do { } while(0)
|
||||
#define DBUG_EXECUTE_IF(keyword,a1) do { } while(0)
|
||||
#define DBUG_EVALUATE(keyword,a1,a2) (a2)
|
||||
#define DBUG_EVALUATE_IF(keyword,a1,a2) (a2)
|
||||
#define DBUG_PRINT(keyword,arglist) do { } while(0)
|
||||
|
@ -69,6 +69,7 @@ extern int NEAR my_errno; /* Last error in mysys */
|
||||
#define MY_HOLD_ON_ERROR 256 /* my_realloc() ; Return old ptr on error */
|
||||
#define MY_DONT_OVERWRITE_FILE 2048 /* my_copy: Don't overwrite file */
|
||||
#define MY_THREADSAFE 2048 /* my_seek(): lock fd mutex */
|
||||
#define MY_SYNC 4096 /* my_copy(): sync dst file */
|
||||
|
||||
#define MY_CHECK_ERROR 1 /* Params to my_end; Check open-close */
|
||||
#define MY_GIVE_INFO 2 /* Give time info about process*/
|
||||
@ -175,6 +176,16 @@ extern char *my_strndup(const char *from, size_t length,
|
||||
#define TRASH(A,B) /* nothing */
|
||||
#endif
|
||||
|
||||
#if defined(ENABLED_DEBUG_SYNC)
|
||||
extern void (*debug_sync_C_callback_ptr)(const char *, size_t);
|
||||
#define DEBUG_SYNC_C(_sync_point_name_) do { \
|
||||
if (debug_sync_C_callback_ptr != NULL) \
|
||||
(*debug_sync_C_callback_ptr)(STRING_WITH_LEN(_sync_point_name_)); } \
|
||||
while(0)
|
||||
#else
|
||||
#define DEBUG_SYNC_C(_sync_point_name_)
|
||||
#endif /* defined(ENABLED_DEBUG_SYNC) */
|
||||
|
||||
#ifdef HAVE_LARGE_PAGES
|
||||
extern uint my_get_large_page_size(void);
|
||||
extern uchar * my_large_malloc(size_t size, myf my_flags);
|
||||
@ -727,7 +738,6 @@ extern int wild_compare(const char *str,const char *wildstr,
|
||||
extern WF_PACK *wf_comp(char * str);
|
||||
extern int wf_test(struct wild_file_pack *wf_pack,const char *name);
|
||||
extern void wf_end(struct wild_file_pack *buffer);
|
||||
extern size_t strip_sp(char * str);
|
||||
extern my_bool array_append_string_unique(const char *str,
|
||||
const char **array, size_t size);
|
||||
extern void get_date(char * to,int timeflag,time_t use_time);
|
||||
|
@ -51,7 +51,7 @@ typedef struct st_tree {
|
||||
TREE_ELEMENT *root,null_element;
|
||||
TREE_ELEMENT **parents[MAX_TREE_HEIGHT];
|
||||
uint offset_to_key,elements_in_tree,size_of_element;
|
||||
ulong memory_limit, allocated;
|
||||
size_t memory_limit, allocated;
|
||||
qsort_cmp2 compare;
|
||||
void *custom_arg;
|
||||
MEM_ROOT mem_root;
|
||||
@ -61,7 +61,7 @@ typedef struct st_tree {
|
||||
} TREE;
|
||||
|
||||
/* Functions on whole tree */
|
||||
void init_tree(TREE *tree, ulong default_alloc_size, ulong memory_limit,
|
||||
void init_tree(TREE *tree, size_t default_alloc_size, size_t memory_limit,
|
||||
int size, qsort_cmp2 compare, my_bool with_delete,
|
||||
tree_element_free free_element, void *custom_arg);
|
||||
void delete_tree(TREE*);
|
||||
|
@ -154,6 +154,10 @@ typedef struct st_handler_check_param
|
||||
char temp_filename[FN_REFLEN];
|
||||
IO_CACHE read_cache;
|
||||
enum_handler_stats_method stats_method;
|
||||
#ifdef THREAD
|
||||
pthread_mutex_t print_msg_mutex;
|
||||
my_bool need_print_msg_lock;
|
||||
#endif
|
||||
} HA_CHECK;
|
||||
|
||||
|
||||
|
@ -558,6 +558,16 @@ unsigned long STDCALL mysql_real_escape_string(MYSQL *mysql,
|
||||
char *to,const char *from,
|
||||
unsigned long length);
|
||||
void STDCALL mysql_debug(const char *debug);
|
||||
char * STDCALL mysql_odbc_escape_string(MYSQL *mysql,
|
||||
char *to,
|
||||
unsigned long to_length,
|
||||
const char *from,
|
||||
unsigned long from_length,
|
||||
void *param,
|
||||
char *
|
||||
(*extend_buffer)
|
||||
(void *, char *to,
|
||||
unsigned long *length));
|
||||
void STDCALL myodbc_remove_escape(MYSQL *mysql,char *name);
|
||||
unsigned int STDCALL mysql_thread_safe(void);
|
||||
my_bool STDCALL mysql_embedded(void);
|
||||
|
@ -518,6 +518,16 @@ unsigned long mysql_real_escape_string(MYSQL *mysql,
|
||||
char *to,const char *from,
|
||||
unsigned long length);
|
||||
void mysql_debug(const char *debug);
|
||||
char * mysql_odbc_escape_string(MYSQL *mysql,
|
||||
char *to,
|
||||
unsigned long to_length,
|
||||
const char *from,
|
||||
unsigned long from_length,
|
||||
void *param,
|
||||
char *
|
||||
(*extend_buffer)
|
||||
(void *, char *to,
|
||||
unsigned long *length));
|
||||
void myodbc_remove_escape(MYSQL *mysql,char *name);
|
||||
unsigned int mysql_thread_safe(void);
|
||||
my_bool mysql_embedded(void);
|
||||
|
@ -564,19 +564,22 @@ typedef struct st_mysql_ftparser_boolean_info
|
||||
nothing. See enum_ftparser_mode above.
|
||||
*/
|
||||
|
||||
/* TODO: Change the following int to size_t at next ABI update */
|
||||
typedef int mysql_ft_size_t;
|
||||
|
||||
typedef struct st_mysql_ftparser_param
|
||||
{
|
||||
int (*mysql_parse)(struct st_mysql_ftparser_param *,
|
||||
char *doc, int doc_len);
|
||||
const unsigned char *doc, mysql_ft_size_t doc_len);
|
||||
int (*mysql_add_word)(struct st_mysql_ftparser_param *,
|
||||
char *word, int word_len,
|
||||
const unsigned char *word, mysql_ft_size_t word_len,
|
||||
MYSQL_FTPARSER_BOOLEAN_INFO *boolean_info);
|
||||
void *ftparser_state;
|
||||
void *mysql_ftparam;
|
||||
struct charset_info_st *cs;
|
||||
char *doc;
|
||||
int length;
|
||||
int flags;
|
||||
const unsigned char *doc;
|
||||
mysql_ft_size_t length;
|
||||
unsigned int flags;
|
||||
enum enum_ftparser_mode mode;
|
||||
} MYSQL_FTPARSER_PARAM;
|
||||
|
||||
|
@ -70,19 +70,20 @@ typedef struct st_mysql_ftparser_boolean_info
|
||||
char prev;
|
||||
char *quot;
|
||||
} MYSQL_FTPARSER_BOOLEAN_INFO;
|
||||
typedef int mysql_ft_size_t;
|
||||
typedef struct st_mysql_ftparser_param
|
||||
{
|
||||
int (*mysql_parse)(struct st_mysql_ftparser_param *,
|
||||
char *doc, int doc_len);
|
||||
const unsigned char *doc, mysql_ft_size_t doc_len);
|
||||
int (*mysql_add_word)(struct st_mysql_ftparser_param *,
|
||||
char *word, int word_len,
|
||||
const unsigned char *word, mysql_ft_size_t word_len,
|
||||
MYSQL_FTPARSER_BOOLEAN_INFO *boolean_info);
|
||||
void *ftparser_state;
|
||||
void *mysql_ftparam;
|
||||
struct charset_info_st *cs;
|
||||
char *doc;
|
||||
int length;
|
||||
int flags;
|
||||
const unsigned char *doc;
|
||||
mysql_ft_size_t length;
|
||||
unsigned int flags;
|
||||
enum enum_ftparser_mode mode;
|
||||
} MYSQL_FTPARSER_PARAM;
|
||||
struct st_mysql_ftparser
|
||||
|
@ -63,8 +63,9 @@ extern const char * NEAR globerrs[]; /* my_error_messages is here */
|
||||
#define EE_FILENOTFOUND 29
|
||||
#define EE_FILE_NOT_CLOSED 30
|
||||
#define EE_CANT_CHMOD 31
|
||||
#define EE_CANT_COPY_OWNERSHIP 32
|
||||
#define EE_ERROR_LAST 32 /* Copy last error nr */
|
||||
#define EE_CANT_SEEK 32
|
||||
#define EE_CANT_COPY_OWNERSHIP 33
|
||||
#define EE_ERROR_LAST 33 /* Copy last error nr */
|
||||
/* Add error numbers before EE_ERROR_LAST and change it accordingly. */
|
||||
|
||||
/* exit codes for all MySQL programs */
|
||||
|
@ -44,7 +44,7 @@ enum enum_vio_type
|
||||
Vio* vio_new(my_socket sd, enum enum_vio_type type, uint flags);
|
||||
#ifdef __WIN__
|
||||
Vio* vio_new_win32pipe(HANDLE hPipe);
|
||||
Vio* vio_new_win32shared_memory(NET *net,HANDLE handle_file_map,
|
||||
Vio* vio_new_win32shared_memory(HANDLE handle_file_map,
|
||||
HANDLE handle_map,
|
||||
HANDLE event_server_wrote,
|
||||
HANDLE event_server_read,
|
||||
@ -222,7 +222,11 @@ struct st_vio
|
||||
HANDLE event_conn_closed;
|
||||
size_t shared_memory_remain;
|
||||
char *shared_memory_pos;
|
||||
NET *net;
|
||||
#endif /* HAVE_SMEM */
|
||||
#ifdef _WIN32
|
||||
OVERLAPPED pipe_overlapped;
|
||||
DWORD read_timeout_millis;
|
||||
DWORD write_timeout_millis;
|
||||
#endif
|
||||
};
|
||||
#endif /* vio_violite_h_ */
|
||||
|
@ -1642,6 +1642,20 @@ mysql_real_escape_string(MYSQL *mysql, char *to,const char *from,
|
||||
return (uint) escape_string_for_mysql(mysql->charset, to, 0, from, length);
|
||||
}
|
||||
|
||||
|
||||
char * STDCALL
|
||||
mysql_odbc_escape_string(MYSQL *mysql __attribute__((unused)),
|
||||
char *to __attribute__((unused)),
|
||||
ulong to_length __attribute__((unused)),
|
||||
const char *from __attribute__((unused)),
|
||||
ulong from_length __attribute__((unused)),
|
||||
void *param __attribute__((unused)),
|
||||
char * (*extend_buffer)(void *, char *, ulong *)
|
||||
__attribute__((unused)))
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void STDCALL
|
||||
myodbc_remove_escape(MYSQL *mysql,char *name)
|
||||
{
|
||||
@ -2284,7 +2298,7 @@ mysql_stmt_param_metadata(MYSQL_STMT *stmt)
|
||||
|
||||
/* Store type of parameter in network buffer. */
|
||||
|
||||
static void store_param_type(char **pos, MYSQL_BIND *param)
|
||||
static void store_param_type(uchar **pos, MYSQL_BIND *param)
|
||||
{
|
||||
uint typecode= param->buffer_type | (param->is_unsigned ? 32768 : 0);
|
||||
int2store(*pos, typecode);
|
||||
@ -2564,7 +2578,7 @@ int cli_stmt_execute(MYSQL_STMT *stmt)
|
||||
that is sent to the server.
|
||||
*/
|
||||
for (param= stmt->params; param < param_end ; param++)
|
||||
store_param_type((char**) &net->write_pos, param);
|
||||
store_param_type(&net->write_pos, param);
|
||||
}
|
||||
|
||||
for (param= stmt->params; param < param_end; param++)
|
||||
|
@ -78,6 +78,7 @@ EXPORTS
|
||||
mysql_next_result
|
||||
mysql_num_fields
|
||||
mysql_num_rows
|
||||
mysql_odbc_escape_string
|
||||
mysql_options
|
||||
mysql_stmt_param_count
|
||||
mysql_stmt_param_metadata
|
||||
|
@ -90,8 +90,10 @@ ENDFOREACH(rpath)
|
||||
FOREACH (ENGINE_LIB ${MYSQLD_STATIC_ENGINE_LIBS})
|
||||
INCLUDE(${CMAKE_SOURCE_DIR}/storage/${plugin_dir_${ENGINE_LIB}}/CMakeLists.txt)
|
||||
STRING(TOUPPER ${ENGINE_LIB} ENGINE_LIB_UPPER)
|
||||
SET(ENGINE_DIR ${${ENGINE_LIB_UPPER}_DIR})
|
||||
INCLUDE(${CMAKE_SOURCE_DIR}/storage/${ENGINE_DIR}/CMakeLists.txt)
|
||||
FOREACH(rpath ${${ENGINE_LIB_UPPER}_SOURCES})
|
||||
SET(LIB_SOURCES ${LIB_SOURCES} ${CMAKE_SOURCE_DIR}/storage/${plugin_dir_${ENGINE_LIB}}/${rpath})
|
||||
SET(LIB_SOURCES ${LIB_SOURCES} ${CMAKE_SOURCE_DIR}/storage/${ENGINE_DIR}/${rpath})
|
||||
ENDFOREACH(rpath)
|
||||
ENDFOREACH(ENGINE_LIB)
|
||||
|
||||
@ -127,6 +129,7 @@ SET(LIBMYSQLD_SOURCES emb_qcache.cc libmysqld.c lib_sql.cc
|
||||
../sql/sql_list.cc ../sql/sql_load.cc ../sql/sql_locale.cc
|
||||
../sql/sql_binlog.cc ../sql/sql_manager.cc ../sql/sql_map.cc
|
||||
../sql/sql_parse.cc ../sql/sql_partition.cc ../sql/sql_plugin.cc
|
||||
../sql/debug_sync.cc
|
||||
../sql/sql_prepare.cc ../sql/sql_rename.cc ../sql/sql_repl.cc
|
||||
../sql/sql_select.cc ../sql/sql_servers.cc
|
||||
../sql/sql_show.cc ../sql/sql_state.c ../sql/sql_string.cc
|
||||
@ -152,6 +155,14 @@ ADD_LIBRARY(mysqlserver STATIC ${LIBMYSQLD_SOURCES})
|
||||
ADD_DEPENDENCIES(mysqlserver GenServerSource GenError)
|
||||
TARGET_LINK_LIBRARIES(mysqlserver)
|
||||
|
||||
# Add any additional libraries requested by engine(s)
|
||||
FOREACH (ENGINE_LIB ${MYSQLD_STATIC_ENGINE_LIBS})
|
||||
STRING(TOUPPER ${ENGINE_LIB} ENGINE_LIB_UPPER)
|
||||
IF(${ENGINE_LIB_UPPER}_LIBS)
|
||||
TARGET_LINK_LIBRARIES(mysqlserver ${${ENGINE_LIB_UPPER}_LIBS})
|
||||
ENDIF(${ENGINE_LIB_UPPER}_LIBS)
|
||||
ENDFOREACH(ENGINE_LIB)
|
||||
|
||||
ADD_LIBRARY(libmysqld SHARED cmake_dummy.c libmysqld.def)
|
||||
ADD_DEPENDENCIES(libmysqld mysqlserver)
|
||||
TARGET_LINK_LIBRARIES(libmysqld mysqlserver wsock32)
|
||||
|
@ -74,6 +74,7 @@ sqlsources = derror.cc field.cc field_conv.cc strfunc.cc filesort.cc \
|
||||
sp_head.cc sp_pcontext.cc sp.cc sp_cache.cc sp_rcontext.cc \
|
||||
parse_file.cc sql_view.cc sql_trigger.cc my_decimal.cc \
|
||||
rpl_filter.cc sql_partition.cc sql_builtin.cc sql_plugin.cc \
|
||||
debug_sync.cc \
|
||||
sql_tablespace.cc \
|
||||
rpl_injector.cc my_user.c partition_info.cc \
|
||||
sql_servers.cc event_parse_data.cc opt_table_elimination.cc
|
||||
|
@ -142,6 +142,8 @@ emb_advanced_command(MYSQL *mysql, enum enum_server_command command,
|
||||
if (!skip_check)
|
||||
result= thd->is_error() ? -1 : 0;
|
||||
|
||||
thd->mysys_var= 0;
|
||||
|
||||
#if defined(ENABLED_PROFILING) && defined(COMMUNITY_SERVER)
|
||||
thd->profiling.finish_current_query();
|
||||
#endif
|
||||
@ -634,6 +636,7 @@ void *create_embedded_thd(int client_flag)
|
||||
|
||||
thread_count++;
|
||||
threads.append(thd);
|
||||
thd->mysys_var= 0;
|
||||
return thd;
|
||||
err:
|
||||
delete(thd);
|
||||
|
@ -164,6 +164,7 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user,
|
||||
port=0;
|
||||
unix_socket=0;
|
||||
|
||||
client_flag|=mysql->options.client_flag;
|
||||
/* Send client information for access check */
|
||||
client_flag|=CLIENT_CAPABILITIES;
|
||||
if (client_flag & CLIENT_MULTI_STATEMENTS)
|
||||
|
@ -50,6 +50,7 @@ EXPORTS
|
||||
mysql_next_result
|
||||
mysql_num_fields
|
||||
mysql_num_rows
|
||||
mysql_odbc_escape_string
|
||||
mysql_options
|
||||
mysql_ping
|
||||
mysql_query
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBcomp_err\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBCOMP_ERR\FR" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBCOMP_ERR\FR" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
@ -91,7 +91,8 @@ Display a help message and exit\&.
|
||||
.\}
|
||||
.\" comp_err: charset option
|
||||
.\" charset option: comp_err
|
||||
\fB\-\-charset=\fR\fB\fIpath\fR\fR\fB, \-C \fR\fB\fIpath\fR\fR
|
||||
\fB\-\-charset=\fR\fB\fIpath\fR\fR,
|
||||
\fB\-C \fR\fB\fIpath\fR\fR
|
||||
.sp
|
||||
The character set directory\&. The default is
|
||||
\&.\&./sql/share/charsets\&.
|
||||
@ -107,7 +108,8 @@ The character set directory\&. The default is
|
||||
.\}
|
||||
.\" comp_err: debug option
|
||||
.\" debug option: comp_err
|
||||
\fB\-\-debug=\fR\fB\fIdebug_options\fR\fR\fB, \-# \fR\fB\fIdebug_options\fR\fR
|
||||
\fB\-\-debug=\fR\fB\fIdebug_options\fR\fR,
|
||||
\fB\-# \fR\fB\fIdebug_options\fR\fR
|
||||
.sp
|
||||
Write a debugging log\&. A typical
|
||||
\fIdebug_options\fR
|
||||
@ -142,7 +144,8 @@ Print some debugging information when the program exits\&.
|
||||
.\}
|
||||
.\" comp_err: header_file option
|
||||
.\" header_file option: comp_err
|
||||
\fB\-\-header_file=\fR\fB\fIfile_name\fR\fR\fB, \-H \fR\fB\fIfile_name\fR\fR
|
||||
\fB\-\-header_file=\fR\fB\fIfile_name\fR\fR,
|
||||
\fB\-H \fR\fB\fIfile_name\fR\fR
|
||||
.sp
|
||||
The name of the error header file\&. The default is
|
||||
mysqld_error\&.h\&.
|
||||
@ -158,7 +161,8 @@ mysqld_error\&.h\&.
|
||||
.\}
|
||||
.\" comp_err: in_file option
|
||||
.\" in_file option: comp_err
|
||||
\fB\-\-in_file=\fR\fB\fIfile_name\fR\fR\fB, \-F \fR\fB\fIfile_name\fR\fR
|
||||
\fB\-\-in_file=\fR\fB\fIfile_name\fR\fR,
|
||||
\fB\-F \fR\fB\fIfile_name\fR\fR
|
||||
.sp
|
||||
The name of the input file\&. The default is
|
||||
\&.\&./sql/share/errmsg\&.txt\&.
|
||||
@ -174,7 +178,8 @@ The name of the input file\&. The default is
|
||||
.\}
|
||||
.\" comp_err: name_file option
|
||||
.\" name_file option: comp_err
|
||||
\fB\-\-name_file=\fR\fB\fIfile_name\fR\fR\fB, \-N \fR\fB\fIfile_name\fR\fR
|
||||
\fB\-\-name_file=\fR\fB\fIfile_name\fR\fR,
|
||||
\fB\-N \fR\fB\fIfile_name\fR\fR
|
||||
.sp
|
||||
The name of the error name file\&. The default is
|
||||
mysqld_ername\&.h\&.
|
||||
@ -190,7 +195,8 @@ mysqld_ername\&.h\&.
|
||||
.\}
|
||||
.\" comp_err: out_dir option
|
||||
.\" out_dir option: comp_err
|
||||
\fB\-\-out_dir=\fR\fB\fIpath\fR\fR\fB, \-D \fR\fB\fIpath\fR\fR
|
||||
\fB\-\-out_dir=\fR\fB\fIpath\fR\fR,
|
||||
\fB\-D \fR\fB\fIpath\fR\fR
|
||||
.sp
|
||||
The name of the output base directory\&. The default is
|
||||
\&.\&./sql/share/\&.
|
||||
@ -206,7 +212,8 @@ The name of the output base directory\&. The default is
|
||||
.\}
|
||||
.\" comp_err: out_file option
|
||||
.\" out_file option: comp_err
|
||||
\fB\-\-out_file=\fR\fB\fIfile_name\fR\fR\fB, \-O \fR\fB\fIfile_name\fR\fR
|
||||
\fB\-\-out_file=\fR\fB\fIfile_name\fR\fR,
|
||||
\fB\-O \fR\fB\fIfile_name\fR\fR
|
||||
.sp
|
||||
The name of the output file\&. The default is
|
||||
errmsg\&.sys\&.
|
||||
@ -222,7 +229,8 @@ errmsg\&.sys\&.
|
||||
.\}
|
||||
.\" comp_err: statefile option
|
||||
.\" statefile option: comp_err
|
||||
\fB\-\-statefile=\fR\fB\fIfile_name\fR\fR\fB, \-S \fR\fB\fIfile_name\fR\fR
|
||||
\fB\-\-statefile=\fR\fB\fIfile_name\fR\fR,
|
||||
\fB\-S \fR\fB\fIfile_name\fR\fR
|
||||
.sp
|
||||
The name for the SQLSTATE header file\&. The default is
|
||||
sql_state\&.h\&.
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBinnochecksum\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBINNOCHECKSUM\FR" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBINNOCHECKSUM\FR" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
@ -29,7 +29,20 @@ innochecksum \- offline InnoDB file checksum utility
|
||||
\fBinnochecksum\fR
|
||||
prints checksums for
|
||||
InnoDB
|
||||
files\&.
|
||||
files\&. This tool reads an
|
||||
InnoDB
|
||||
tablespace file, calculates the checksum for each page, compares the calculated checksum to the stored checksum, and reports mismatches, which indicate damaged pages\&. It was originally developed to speed up verifying the integrity of tablespace files after power outages but can also be used after file copies\&. Because checksum mismatches will cause
|
||||
InnoDB
|
||||
to deliberately shut down a running server, it can be preferable to use this tool rather than waiting for a server in production usage to encounter the damaged pages\&.
|
||||
.PP
|
||||
\fBinnochecksum\fR
|
||||
cannot be used on tablespace files that the server already has open\&. For such files, you should use
|
||||
CHECK TABLE
|
||||
to check tables within the tablespace\&.
|
||||
.PP
|
||||
If checksum mismatches are found, you would normally restore the tablespace from backup or start the server and attempt to use
|
||||
\fBmysqldump\fR
|
||||
to make a backup of the tables within the tablespace\&.
|
||||
.PP
|
||||
Invoke
|
||||
\fBinnochecksum\fR
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmake_win_bin_dist\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMAKE_WIN_BIN_DIST" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMAKE_WIN_BIN_DIST" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmsql2mysql\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMSQL2MYSQL\FR" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMSQL2MYSQL\FR" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmy_print_defaults\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMY_PRINT_DEFAULTS" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMY_PRINT_DEFAULTS" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
@ -100,7 +100,8 @@ Read only the given option file\&.
|
||||
.\}
|
||||
.\" my_print_defaults: debug option
|
||||
.\" debug option: my_print_defaults
|
||||
\fB\-\-debug=\fR\fB\fIdebug_options\fR\fR\fB, \-# \fR\fB\fIdebug_options\fR\fR
|
||||
\fB\-\-debug=\fR\fB\fIdebug_options\fR\fR,
|
||||
\fB\-# \fR\fB\fIdebug_options\fR\fR
|
||||
.sp
|
||||
Write a debugging log\&. A typical
|
||||
\fIdebug_options\fR
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmyisam_ftdump\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYISAM_FTDUMP\FR" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYISAM_FTDUMP\FR" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
1135
man/myisamchk.1
1135
man/myisamchk.1
File diff suppressed because it is too large
Load Diff
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmyisamlog\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYISAMLOG\FR" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYISAMLOG\FR" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmyisampack\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYISAMPACK\FR" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYISAMPACK\FR" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
@ -652,9 +652,11 @@ After join
|
||||
The number of distinct Huffman trees left after joining trees to save some header space\&.
|
||||
.RE
|
||||
.PP
|
||||
After a table has been compressed,
|
||||
After a table has been compressed, the
|
||||
Field
|
||||
lines displayed by
|
||||
\fBmyisamchk \-dvv\fR
|
||||
prints additional information about each column:
|
||||
include additional information about each column:
|
||||
.sp
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysql-stress-test.pl\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/08/2009
|
||||
.\" Date: 10/29/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQL\-STRESS\-TE" "1" "08/08/2009" "MySQL" "MySQL Database System"
|
||||
.TH "\FBMYSQL\-STRESS\-TE" "1" "10/29/2009" "MySQL" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysql-test-run.pl\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/08/2009
|
||||
.\" Date: 10/29/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQL\-TEST\-RUN\" "1" "08/08/2009" "MySQL" "MySQL Database System"
|
||||
.TH "\FBMYSQL\-TEST\-RUN\" "1" "10/29/2009" "MySQL" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
@ -700,6 +700,9 @@ Specify a file that contains a list of test cases that should be displayed with
|
||||
code rather than
|
||||
[ fail ]
|
||||
if they fail\&. This option was added in MySQL 5\&.1\&.33/6\&.0\&.11\&.
|
||||
.sp
|
||||
For an example of a file that might be specified via this option, see
|
||||
mysql\-test/collections/default\&.experimental\&.
|
||||
.RE
|
||||
.sp
|
||||
.RS 4
|
||||
@ -1132,6 +1135,26 @@ not to generate a timing file\&.
|
||||
.sp -1
|
||||
.IP \(bu 2.3
|
||||
.\}
|
||||
.\" mysql-test-run.pl: parallel option
|
||||
.\" parallel option: mysql-test-run.pl
|
||||
\fB\-\-parallel={\fR\fB\fIN\fR\fR\fB|auto}\fR
|
||||
.sp
|
||||
Run tests using
|
||||
\fIN\fR
|
||||
parallel threads\&. By default, 1 thread is used\&. Use
|
||||
\fB\-\-parallel=auto\fR
|
||||
for auto\-setting of
|
||||
\fIN\fR\&. This option was added in MySQL 5\&.1\&.36\&.
|
||||
.RE
|
||||
.sp
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.sp -1
|
||||
.IP \(bu 2.3
|
||||
.\}
|
||||
.\" mysql-test-run.pl: ps-protocol option
|
||||
.\" ps-protocol option: mysql-test-run.pl
|
||||
\fB\-\-ps\-protocol\fR
|
||||
|
38
man/mysql.1
38
man/mysql.1
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysql\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQL\FR" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQL\FR" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
@ -334,8 +334,18 @@ to display result set metadata\&.
|
||||
.sp
|
||||
Use
|
||||
\fIcharset_name\fR
|
||||
as the default character set\&. See
|
||||
Section\ \&9.2, \(lqThe Character Set Used for Data and Sorting\(rq\&.
|
||||
as the default character set for the client and connection\&.
|
||||
.sp
|
||||
A common issue that can occur when the operating system uses
|
||||
utf8
|
||||
or another multi\-byte character set is that output from the
|
||||
\fBmysql\fR
|
||||
client is formatted incorrectly, due to the fact that the MySQL client uses the
|
||||
latin1
|
||||
character set by default\&. You can usually fix such issues by using this option to force the client to use the system character set instead\&.
|
||||
.sp
|
||||
See
|
||||
Section\ \&9.2, \(lqThe Character Set Used for Data and Sorting\(rq, for more information\&.
|
||||
.RE
|
||||
.sp
|
||||
.RS 4
|
||||
@ -648,7 +658,7 @@ PAGER
|
||||
environment variable\&. Valid pagers are
|
||||
\fBless\fR,
|
||||
\fBmore\fR,
|
||||
\fBcat [> filename]\fR, and so forth\&. This option works only on Unix\&. It does not work in batch mode\&. To disable paging, use
|
||||
\fBcat [> filename]\fR, and so forth\&. This option works only on Unix and only in interactive mode\&. To disable paging, use
|
||||
\fB\-\-skip\-pager\fR\&.
|
||||
the section called \(lqMYSQL COMMANDS\(rq, discusses output paging further\&.
|
||||
.RE
|
||||
@ -1026,7 +1036,7 @@ Display output in table format\&. This is the default for interactive use, but c
|
||||
.\" tee option: mysql
|
||||
\fB\-\-tee=\fR\fB\fIfile_name\fR\fR
|
||||
.sp
|
||||
Append a copy of output to the given file\&. This option does not work in batch mode\&.
|
||||
Append a copy of output to the given file\&. This option works only in interactive mode\&.
|
||||
the section called \(lqMYSQL COMMANDS\(rq, discusses tee files further\&.
|
||||
.RE
|
||||
.sp
|
||||
@ -1523,7 +1533,7 @@ is set to something other than the default of
|
||||
\(lq;\(rq, instances of that character are sent to the server without interpretation\&. However, the server itself still interprets
|
||||
\(lq;\(rq
|
||||
as a statement delimiter and processes statements accordingly\&. This behavior on the server side comes into play for multiple\-statement execution (see
|
||||
Section\ \&21.10.12, \(lqC API Support for Multiple Statement Execution\(rq), and for parsing the body of stored procedures and functions, triggers, and events (see
|
||||
Section\ \&21.9.12, \(lqC API Support for Multiple Statement Execution\(rq), and for parsing the body of stored procedures and functions, triggers, and events (see
|
||||
Section\ \&19.1, \(lqDefining Stored Programs\(rq)\&.
|
||||
.RE
|
||||
.sp
|
||||
@ -1680,7 +1690,7 @@ option when you invoke
|
||||
\fBmysql\fR
|
||||
checks the value of the
|
||||
PAGER
|
||||
environment variable and sets the pager to that\&.
|
||||
environment variable and sets the pager to that\&. Pager functionality works only in interactive mode\&.
|
||||
.sp
|
||||
Output paging can be enabled interactively with the
|
||||
\fBpager\fR
|
||||
@ -1853,7 +1863,7 @@ By using the
|
||||
option when you invoke
|
||||
\fBmysql\fR, you can log statements and their output\&. All the data displayed on the screen is appended into a given file\&. This can be very useful for debugging purposes also\&.
|
||||
\fBmysql\fR
|
||||
flushes results to the file after each statement, just before it prints its next prompt\&.
|
||||
flushes results to the file after each statement, just before it prints its next prompt\&. Tee functionality works only in interactive mode\&.
|
||||
.sp
|
||||
You can enable this feature interactively with the
|
||||
\fBtee\fR
|
||||
@ -2334,7 +2344,7 @@ prompt=(\e\eu@\e\eh) [\e\ed]>\e\e_
|
||||
.sp
|
||||
In this example, note that the backslashes are doubled\&. If you set the prompt using the
|
||||
prompt
|
||||
option in an option file, it is advisable to double the backslashes when using the special prompt options\&. There is some overlap in the set of allowable prompt options and the set of special escape sequences that are recognized in option files\&. (These sequences are listed in
|
||||
option in an option file, it is advisable to double the backslashes when using the special prompt options\&. There is some overlap in the set of allowable prompt options and the set of special escape sequences that are recognized in option files\&. (The rules for escape sequences in option files are listed in
|
||||
Section\ \&4.2.3.3, \(lqUsing Option Files\(rq\&.) The overlap may cause you problems if you use single backslashes\&. For example,
|
||||
\es
|
||||
is interpreted as a space rather than as the current seconds value\&. The following example shows how to define a prompt within an option file to include the current time in
|
||||
@ -2586,6 +2596,12 @@ SELECT \'<info_to_display>\' AS \' \';
|
||||
The statement shown outputs
|
||||
<info_to_display>\&.
|
||||
.PP
|
||||
You can also invoke
|
||||
\fBmysql\fR
|
||||
with the
|
||||
\fB\-\-verbose\fR
|
||||
option, which causes each statement to be displayed before the result that it produces\&.
|
||||
.PP
|
||||
As of MySQL 5\&.1\&.23,
|
||||
\fBmysql\fR
|
||||
ignores Unicode byte order mark (BOM) characters at the beginning of input files\&. Previously, it read them and sent them to the server, resulting in a syntax error\&. Presence of a BOM does not cause
|
||||
@ -2785,7 +2801,7 @@ client with the
|
||||
option\&.
|
||||
.PP
|
||||
For more information about auto\-reconnect and its effect on state information when a reconnection occurs, see
|
||||
Section\ \&21.10.11, \(lqControlling Automatic Reconnection Behavior\(rq\&.
|
||||
Section\ \&21.9.11, \(lqControlling Automatic Reconnection Behavior\(rq\&.
|
||||
.SH "COPYRIGHT"
|
||||
.br
|
||||
.PP
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysql.server\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQL\&.SERVER\FR" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQL\&.SERVER\FR" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
@ -40,7 +40,7 @@ script will be installed in the
|
||||
/etc/init\&.d
|
||||
directory with the name
|
||||
mysql\&. You need not install it manually\&. See
|
||||
Section\ \&2.4, \(lqInstalling MySQL from RPM Packages on Linux\(rq, for more information on the Linux RPM packages\&.
|
||||
Section\ \&2.6.1, \(lqInstalling MySQL from RPM Packages on Linux\(rq, for more information on the Linux RPM packages\&.
|
||||
.PP
|
||||
Some vendors provide RPM packages that install a startup script under a different name such as
|
||||
\fBmysqld\fR\&.
|
||||
@ -48,7 +48,7 @@ Some vendors provide RPM packages that install a startup script under a differen
|
||||
If you install MySQL from a source distribution or using a binary distribution format that does not install
|
||||
\fBmysql\&.server\fR
|
||||
automatically, you can install it manually\&. Instructions are provided in
|
||||
Section\ \&2.11.2.2, \(lqStarting and Stopping MySQL Automatically\(rq\&.
|
||||
Section\ \&2.13.1.2, \(lqStarting and Stopping MySQL Automatically\(rq\&.
|
||||
.PP
|
||||
\fBmysql\&.server\fR
|
||||
reads options from the
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysql_client_test\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/08/2009
|
||||
.\" Date: 10/29/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQL_CLIENT_TEST" "1" "08/08/2009" "MySQL" "MySQL Database System"
|
||||
.TH "\FBMYSQL_CLIENT_TEST" "1" "10/29/2009" "MySQL" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysql_config\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQL_CONFIG\FR" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQL_CONFIG\FR" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysql_convert_table_format\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQL_CONVERT_TAB" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQL_CONVERT_TAB" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysql_find_rows\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQL_FIND_ROWS\F" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQL_FIND_ROWS\F" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysql_fix_extensions\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQL_FIX_EXTENSI" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQL_FIX_EXTENSI" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysql_fix_privilege_tables\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQL_FIX_PRIVILE" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQL_FIX_PRIVILE" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysql_install_db\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQL_INSTALL_DB\" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQL_INSTALL_DB\" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
@ -81,7 +81,7 @@ with the
|
||||
and
|
||||
\fB\-\-skip\-grant\-tables\fR
|
||||
options (see
|
||||
Section\ \&2.10.2, \(lqTypical configure Options\(rq)\&. If MySQL was configured with the
|
||||
Section\ \&2.3.2, \(lqTypical configure Options\(rq)\&. If MySQL was configured with the
|
||||
\fB\-\-disable\-grant\-options\fR
|
||||
option,
|
||||
\fB\-\-bootstrap\fR
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysql_secure_installation\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQL_SECURE_INST" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQL_SECURE_INST" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysql_setpermission\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQL_SETPERMISSI" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQL_SETPERMISSI" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysql_tzinfo_to_sql\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQL_TZINFO_TO_S" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQL_TZINFO_TO_S" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysql_upgrade\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQL_UPGRADE\FR" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQL_UPGRADE\FR" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
@ -41,7 +41,7 @@ script, which should no longer be used\&.
|
||||
If a table is found to have a possible incompatibility,
|
||||
\fBmysql_upgrade\fR
|
||||
performs a table check\&. If any problems are found, a table repair is attempted\&. If the table cannot be repaired, see
|
||||
Section\ \&2.12.4, \(lqRebuilding or Repairing Tables or Indexes\(rq
|
||||
Section\ \&2.4.4, \(lqRebuilding or Repairing Tables or Indexes\(rq
|
||||
for manual table repair strategies\&.
|
||||
.if n \{\
|
||||
.sp
|
||||
@ -59,11 +59,11 @@ for manual table repair strategies\&.
|
||||
You should always back up your current MySQL installation
|
||||
\fIbefore\fR
|
||||
performing an upgrade\&. See
|
||||
Section\ \&6.1, \(lqDatabase Backups\(rq\&.
|
||||
Section\ \&6.1, \(lqDatabase Backup Methods\(rq\&.
|
||||
.PP
|
||||
Some upgrade incompatibilities may require special handling before you upgrade your MySQL installation and run
|
||||
\fBmysql_upgrade\fR\&. See
|
||||
Section\ \&2.12.1, \(lqUpgrading MySQL\(rq, for instructions on determining whether any such incompatibilities apply to your installation and how to handle them\&.
|
||||
Section\ \&2.4.1, \(lqUpgrading MySQL\(rq, for instructions on determining whether any such incompatibilities apply to your installation and how to handle them\&.
|
||||
.sp .5v
|
||||
.RE
|
||||
.PP
|
||||
@ -189,7 +189,7 @@ If you install MySQL from RPM packages on Linux, you must install the server and
|
||||
\fBmysql_upgrade\fR
|
||||
is included in the server RPM but requires the client RPM because the latter includes
|
||||
\fBmysqlcheck\fR\&. (See
|
||||
Section\ \&2.4, \(lqInstalling MySQL from RPM Packages on Linux\(rq\&.)
|
||||
Section\ \&2.6.1, \(lqInstalling MySQL from RPM Packages on Linux\(rq\&.)
|
||||
.PP
|
||||
In MySQL 5\&.1\&.7,
|
||||
\fBmysql_upgrade \fR
|
||||
@ -352,6 +352,26 @@ root\&.
|
||||
.sp
|
||||
Verbose mode\&. Print more information about what the program does\&.
|
||||
.RE
|
||||
.sp
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
\h'-04'\(bu\h'+03'\c
|
||||
.\}
|
||||
.el \{\
|
||||
.sp -1
|
||||
.IP \(bu 2.3
|
||||
.\}
|
||||
.\" mysql_upgrade: write-binlog option
|
||||
.\" write-binlog option: mysql_upgrade
|
||||
\fB\-\-write\-binlog\fR
|
||||
.sp
|
||||
Cause binary logging to be enabled while
|
||||
\fBmysql_upgrade\fR
|
||||
runs\&. This is the default behavior; to disable binary logging during the upgrade, use the inverse of this option (that is, start the program with
|
||||
\fB\-\-skip\-write\-binlog\fR)\&.
|
||||
.sp
|
||||
This option was introduced in MySQL 5\&.1\&.40\&.
|
||||
.RE
|
||||
.SH "COPYRIGHT"
|
||||
.br
|
||||
.PP
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysql_waitpid\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQL_WAITPID\FR" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQL_WAITPID\FR" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysql_zap\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQL_ZAP\FR" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQL_ZAP\FR" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysqlaccess\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQLACCESS\FR" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQLACCESS\FR" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysqladmin\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQLADMIN\FR" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQLADMIN\FR" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysqlbinlog\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQLBINLOG\FR" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQLBINLOG\FR" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
@ -855,7 +855,7 @@ You can pipe the output of
|
||||
into the
|
||||
\fBmysql\fR
|
||||
client to execute the statements contained in the binary log\&. This is used to recover from a crash when you have an old backup (see
|
||||
Section\ \&6.1, \(lqDatabase Backups\(rq)\&. For example:
|
||||
Section\ \&6.1, \(lqDatabase Backup Methods\(rq)\&. For example:
|
||||
.sp
|
||||
.if n \{\
|
||||
.RS 4
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysqlbug\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQLBUG\FR" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQLBUG\FR" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysqlcheck\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQLCHECK\FR" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQLCHECK\FR" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
@ -34,7 +34,14 @@ The
|
||||
\fBmysqlcheck\fR
|
||||
client performs table maintenance: It checks, repairs, optimizes, or analyzes tables\&.
|
||||
.PP
|
||||
Each table is locked and therefore unavailable to other sessions while it is being processed\&. Table maintenance operations can be time\-consuming, particularly for large tables\&. If you use the
|
||||
Each table is locked and therefore unavailable to other sessions while it is being processed, although for check operations, the table is locked with a
|
||||
READ
|
||||
lock only (see
|
||||
Section\ \&12.4.5, \(lqLOCK TABLES and UNLOCK TABLES Syntax\(rq, for more information about
|
||||
READ
|
||||
and
|
||||
WRITE
|
||||
locks)\&. Table maintenance operations can be time\-consuming, particularly for large tables\&. If you use the
|
||||
\fB\-\-databases\fR
|
||||
or
|
||||
\fB\-\-all\-databases\fR
|
||||
@ -94,7 +101,7 @@ note : The storage engine for the table doesn\'t support check
|
||||
If
|
||||
\fBmysqlcheck\fR
|
||||
is unable to repair a table, see
|
||||
Section\ \&2.12.4, \(lqRebuilding or Repairing Tables or Indexes\(rq
|
||||
Section\ \&2.4.4, \(lqRebuilding or Repairing Tables or Indexes\(rq
|
||||
for manual table repair strategies\&. This will be the case, for example, for
|
||||
InnoDB
|
||||
tables, which can be checked with
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysqld\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQLD\FR" "8" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQLD\FR" "8" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysqld_multi\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQLD_MULTI\FR" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQLD_MULTI\FR" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
@ -51,7 +51,7 @@ to specify which servers you want to start, stop, or obtain a status report for\
|
||||
[mysqld]
|
||||
group used for starting
|
||||
\fBmysqld\fR\&. (See, for example,
|
||||
Section\ \&2.11.2.2, \(lqStarting and Stopping MySQL Automatically\(rq\&.) However, when using multiple servers, it is necessary that each one use its own value for options such as the Unix socket file and TCP/IP port number\&. For more information on which options must be unique per server in a multiple\-server environment, see
|
||||
Section\ \&2.13.1.2, \(lqStarting and Stopping MySQL Automatically\(rq\&.) However, when using multiple servers, it is necessary that each one use its own value for options such as the Unix socket file and TCP/IP port number\&. For more information on which options must be unique per server in a multiple\-server environment, see
|
||||
Section\ \&5.6, \(lqRunning Multiple MySQL Servers on the Same Machine\(rq\&.
|
||||
.PP
|
||||
To invoke
|
||||
@ -183,12 +183,6 @@ Otherwise, option files in the standard list of locations are read, including an
|
||||
option, if one is given\&. (If the option is given multiple times, the last value is used\&.)
|
||||
.RE
|
||||
.PP
|
||||
Option files read are searched for
|
||||
[mysqld_multi]
|
||||
and
|
||||
[mysqld\fIN\fR]
|
||||
option groups\&.
|
||||
.PP
|
||||
Before MySQL 5\&.1\&.18, the preceding options are not recognized\&. Files in the standard locations are read, and any file named by the
|
||||
\fB\-\-config\-file=\fR\fB\fIfile_name\fR\fR
|
||||
option, if one is given\&. A file named by
|
||||
@ -199,6 +193,39 @@ option groups, not the
|
||||
[mysqld_multi]
|
||||
group\&.
|
||||
.PP
|
||||
Option files read are searched for
|
||||
[mysqld_multi]
|
||||
and
|
||||
[mysqld\fIN\fR]
|
||||
option groups\&. The
|
||||
[mysqld_multi]
|
||||
group can be used for options to
|
||||
\fBmysqld_multi\fR
|
||||
itself\&.
|
||||
[mysqld\fIN\fR]
|
||||
groups can be used for options passed to specific
|
||||
\fBmysqld\fR
|
||||
instances\&.
|
||||
.PP
|
||||
As of MySQL 5\&.1\&.35, the
|
||||
[mysqld]
|
||||
or
|
||||
[mysqld_safe]
|
||||
groups can be used for common options read by all instances of
|
||||
\fBmysqld\fR
|
||||
or
|
||||
\fBmysqld_safe\fR\&. You can specify a
|
||||
\fB\-\-defaults\-file=\fR\fB\fIfile_name\fR\fR
|
||||
option to use a different configuration file for that instance, in which case the
|
||||
[mysqld]
|
||||
or
|
||||
[mysqld_safe]
|
||||
groups from that file will be used for that instance\&. Before MySQL 5\&.1\&.35, some versions of
|
||||
\fBmysqld_multi\fR
|
||||
pass the
|
||||
\fB\-\-no\-defaults\fR
|
||||
options to instances, so these techniques are inapplicable\&.
|
||||
.PP
|
||||
\fBmysqld_multi\fR
|
||||
supports the following options:
|
||||
.sp
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysqld_safe\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQLD_SAFE\FR" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQLD_SAFE\FR" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysqldump\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQLDUMP\FR" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQLDUMP\FR" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
@ -575,7 +575,7 @@ uses
|
||||
utf8, and earlier versions use
|
||||
latin1\&.
|
||||
.sp
|
||||
This option has no effect for output data files produced by using the
|
||||
Prior to MySQL 5\&.1\&.38, this option has no effect for output data files produced by using the
|
||||
\fB\-\-tab\fR
|
||||
option\&. See the description for that option\&.
|
||||
.RE
|
||||
@ -1232,7 +1232,8 @@ statement for the table\&.
|
||||
\fB\-\-no\-set\-names\fR
|
||||
.sp
|
||||
This option is deprecated\&. Use
|
||||
\fB\-\-skip\-set\-charset\fR\&. instead\&.
|
||||
\fB\-\-skip\-set\-charset\fR
|
||||
instead\&.
|
||||
.RE
|
||||
.sp
|
||||
.RS 4
|
||||
@ -1657,11 +1658,11 @@ and
|
||||
\fB\-\-lines\-terminated\-by\fR
|
||||
options\&.
|
||||
.sp
|
||||
Column values are dumped using the
|
||||
binary
|
||||
character set and the
|
||||
As of MySQL 5\&.1\&.38, column values are written converted to the character set specified by the
|
||||
\fB\-\-default\-character\-set\fR
|
||||
option is ignored\&. In effect, there is no character set conversion\&. If a table contains columns in several character sets, the output data file will as well and you may not be able to reload the file correctly\&.
|
||||
option\&. Prior to 5\&.1\&.38 or if no such option is present, values are dumped using the
|
||||
binary
|
||||
character set\&. In effect, there is no character set conversion\&. If a table contains columns in several character sets, the output data file will as well and you may not be able to reload the file correctly\&.
|
||||
.if n \{\
|
||||
.sp
|
||||
.\}
|
||||
@ -2110,7 +2111,7 @@ InnoDB
|
||||
storage engine\&.
|
||||
.PP
|
||||
For more information on making backups, see
|
||||
Section\ \&6.1, \(lqDatabase Backups\(rq, and
|
||||
Section\ \&6.1, \(lqDatabase Backup Methods\(rq, and
|
||||
Section\ \&6.2, \(lqExample Backup and Recovery Strategy\(rq\&.
|
||||
.\" mysqldump: views
|
||||
.\" mysqldump: problems
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysqldumpslow\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQLDUMPSLOW\FR" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQLDUMPSLOW\FR" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysqlhotcopy\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQLHOTCOPY\FR" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQLHOTCOPY\FR" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysqlimport\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQLIMPORT\FR" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQLIMPORT\FR" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysqlmanager\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQLMANAGER\FR" "8" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQLMANAGER\FR" "8" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
@ -274,7 +274,8 @@ Drop all users from the password file\&. This option was added in MySQL 5\&.1\&.
|
||||
.\}
|
||||
.\" mysqlmanager: debug option
|
||||
.\" debug option: mysqlmanager
|
||||
\fB\-\-debug=\fR\fB\fIdebug_options\fR\fR\fB, \-# \fR\fB\fIdebug_options\fR\fR
|
||||
\fB\-\-debug=\fR\fB\fIdebug_options\fR\fR,
|
||||
\fB\-# \fR\fB\fIdebug_options\fR\fR
|
||||
.sp
|
||||
Write a debugging log\&. A typical
|
||||
\fIdebug_options\fR
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysqlshow\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQLSHOW\FR" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQLSHOW\FR" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysqlslap\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQLSLAP\FR" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBMYSQLSLAP\FR" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBmysqltest\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/08/2009
|
||||
.\" Date: 10/29/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBMYSQLTEST\FR" "1" "08/08/2009" "MySQL" "MySQL Database System"
|
||||
.TH "\FBMYSQLTEST\FR" "1" "10/29/2009" "MySQL" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
228
man/ndbd.8
228
man/ndbd.8
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBndbd\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBNDBD\FR" "8" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBNDBD\FR" "8" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
@ -41,8 +41,9 @@ processes cooperate in handling data\&. These processes can execute on the same
|
||||
.\" command options (MySQL Cluster): ndbd
|
||||
.\" MySQL Cluster: ndbd process
|
||||
.PP
|
||||
The following list describes command options specific to the MySQL Cluster data node program
|
||||
\fBndbd\fR\&.
|
||||
The following table includes command options specific to the MySQL Cluster data node program
|
||||
\fBndbd\fR\&. Additional descriptions follow the table\&. For options common to all MySQL Cluster programs, see
|
||||
Section\ \&17.4.2, \(lqOptions Common to MySQL Cluster Programs\(rq\&.
|
||||
.if n \{\
|
||||
.sp
|
||||
.\}
|
||||
@ -68,7 +69,7 @@ wherever the latter occurs in this section\&.
|
||||
For options common to all
|
||||
NDBCLUSTER
|
||||
programs, see
|
||||
Section\ \&17.6.2, \(lqOptions Common to MySQL Cluster Programs\(rq\&.
|
||||
Section\ \&17.4.2, \(lqOptions Common to MySQL Cluster Programs\(rq\&.
|
||||
.sp
|
||||
.RS 4
|
||||
.ie n \{\
|
||||
@ -81,9 +82,11 @@ Section\ \&17.6.2, \(lqOptions Common to MySQL Cluster Programs\(rq\&.
|
||||
\fB\-\-bind\-address\fR
|
||||
.TS
|
||||
allbox tab(:);
|
||||
l l
|
||||
l l
|
||||
l l.
|
||||
l l s
|
||||
l l s
|
||||
l l s
|
||||
^ l l
|
||||
^ l l.
|
||||
T{
|
||||
\fBVersion Introduced\fR
|
||||
T}:T{
|
||||
@ -95,28 +98,16 @@ T}:T{
|
||||
\-\-bind\-address=name
|
||||
T}
|
||||
T{
|
||||
\fBPermitted Values \fR
|
||||
\ \&
|
||||
T}:T{
|
||||
[\fInested\ table\fR]*
|
||||
\fBPermitted Values \fR
|
||||
T}
|
||||
.TE
|
||||
.sp 1
|
||||
.sp
|
||||
.it 1 an-trap
|
||||
.nr an-no-space-flag 1
|
||||
.nr an-break-flag 1
|
||||
.br
|
||||
.B *[nested\ table]
|
||||
.TS
|
||||
allbox tab(:);
|
||||
l l
|
||||
l l.
|
||||
T{
|
||||
:T{
|
||||
\fBType\fR
|
||||
T}:T{
|
||||
string
|
||||
T}
|
||||
T{
|
||||
:T{
|
||||
\fBDefault\fR
|
||||
T}:T{
|
||||
T}
|
||||
@ -141,36 +132,26 @@ This option was added in MySQL 5\&.1\&.12\&.
|
||||
\fB\-d\fR
|
||||
.TS
|
||||
allbox tab(:);
|
||||
l l
|
||||
l l.
|
||||
l l s
|
||||
l l s
|
||||
^ l l
|
||||
^ l l.
|
||||
T{
|
||||
\fBCommand Line Format\fR
|
||||
T}:T{
|
||||
\-\-daemon
|
||||
T}
|
||||
T{
|
||||
\fBPermitted Values \fR
|
||||
\ \&
|
||||
T}:T{
|
||||
[\fInested\ table\fR]*
|
||||
\fBPermitted Values \fR
|
||||
T}
|
||||
.TE
|
||||
.sp 1
|
||||
.sp
|
||||
.it 1 an-trap
|
||||
.nr an-no-space-flag 1
|
||||
.nr an-break-flag 1
|
||||
.br
|
||||
.B *[nested\ table]
|
||||
.TS
|
||||
allbox tab(:);
|
||||
l l
|
||||
l l.
|
||||
T{
|
||||
:T{
|
||||
\fBType\fR
|
||||
T}:T{
|
||||
boolean
|
||||
T}
|
||||
T{
|
||||
:T{
|
||||
\fBDefault\fR
|
||||
T}:T{
|
||||
TRUE
|
||||
@ -182,6 +163,12 @@ Instructs
|
||||
to execute as a daemon process\&. This is the default behavior\&.
|
||||
\fB\-\-nodaemon\fR
|
||||
can be used to prevent the process from running as a daemon\&.
|
||||
.sp
|
||||
This option has no effect when running
|
||||
\fBndbd\fR
|
||||
or
|
||||
\fBndbmtd\fR
|
||||
on Windows platforms\&.
|
||||
.RE
|
||||
.sp
|
||||
.RS 4
|
||||
@ -197,36 +184,26 @@ can be used to prevent the process from running as a daemon\&.
|
||||
\fB\-\-initial\fR
|
||||
.TS
|
||||
allbox tab(:);
|
||||
l l
|
||||
l l.
|
||||
l l s
|
||||
l l s
|
||||
^ l l
|
||||
^ l l.
|
||||
T{
|
||||
\fBCommand Line Format\fR
|
||||
T}:T{
|
||||
\-\-initial
|
||||
T}
|
||||
T{
|
||||
\fBPermitted Values \fR
|
||||
\ \&
|
||||
T}:T{
|
||||
[\fInested\ table\fR]*
|
||||
\fBPermitted Values \fR
|
||||
T}
|
||||
.TE
|
||||
.sp 1
|
||||
.sp
|
||||
.it 1 an-trap
|
||||
.nr an-no-space-flag 1
|
||||
.nr an-break-flag 1
|
||||
.br
|
||||
.B *[nested\ table]
|
||||
.TS
|
||||
allbox tab(:);
|
||||
l l
|
||||
l l.
|
||||
T{
|
||||
:T{
|
||||
\fBType\fR
|
||||
T}:T{
|
||||
boolean
|
||||
T}
|
||||
T{
|
||||
:T{
|
||||
\fBDefault\fR
|
||||
T}:T{
|
||||
FALSE
|
||||
@ -321,9 +298,11 @@ Backup files that have already been created by the affected node
|
||||
.IP \(bu 2.3
|
||||
.\}
|
||||
MySQL Cluster Disk Data files (see
|
||||
Section\ \&17.10, \(lqMySQL Cluster Disk Data Tables\(rq)\&.
|
||||
Section\ \&17.5.9, \(lqMySQL Cluster Disk Data Tables\(rq)\&.
|
||||
.RE
|
||||
.RS 4
|
||||
.sp
|
||||
This option also has no effect on recovery of data by a data node that is just starting (or restarting) from data nodes that are already running\&. This recovery of data occurs automatically, and requires no user intervention in a MySQL Cluster that is running normally\&.
|
||||
.sp .5v
|
||||
.RE
|
||||
It is permissible to use this option when starting the cluster for the very first time (that is, before any data node files have been created); however, it is
|
||||
@ -344,9 +323,11 @@ necessary to do so\&.
|
||||
\fB\-\-initial\-start\fR
|
||||
.TS
|
||||
allbox tab(:);
|
||||
l l
|
||||
l l
|
||||
l l.
|
||||
l l s
|
||||
l l s
|
||||
l l s
|
||||
^ l l
|
||||
^ l l.
|
||||
T{
|
||||
\fBVersion Introduced\fR
|
||||
T}:T{
|
||||
@ -358,28 +339,16 @@ T}:T{
|
||||
\-\-initial\-start
|
||||
T}
|
||||
T{
|
||||
\fBPermitted Values \fR
|
||||
\ \&
|
||||
T}:T{
|
||||
[\fInested\ table\fR]*
|
||||
\fBPermitted Values \fR
|
||||
T}
|
||||
.TE
|
||||
.sp 1
|
||||
.sp
|
||||
.it 1 an-trap
|
||||
.nr an-no-space-flag 1
|
||||
.nr an-break-flag 1
|
||||
.br
|
||||
.B *[nested\ table]
|
||||
.TS
|
||||
allbox tab(:);
|
||||
l l
|
||||
l l.
|
||||
T{
|
||||
:T{
|
||||
\fBType\fR
|
||||
T}:T{
|
||||
boolean
|
||||
T}
|
||||
T{
|
||||
:T{
|
||||
\fBDefault\fR
|
||||
T}:T{
|
||||
FALSE
|
||||
@ -435,9 +404,11 @@ Prior to MySQL 5\&.1\&.19, it was not possible to perform DDL operations involvi
|
||||
\fB\-\-nowait\-nodes=\fR\fB\fInode_id_1\fR\fR\fB[, \fR\fB\fInode_id_2\fR\fR\fB[, \&.\&.\&.]]\fR
|
||||
.TS
|
||||
allbox tab(:);
|
||||
l l
|
||||
l l
|
||||
l l.
|
||||
l l s
|
||||
l l s
|
||||
l l s
|
||||
^ l l
|
||||
^ l l.
|
||||
T{
|
||||
\fBVersion Introduced\fR
|
||||
T}:T{
|
||||
@ -449,28 +420,16 @@ T}:T{
|
||||
\-\-nowait\-nodes=list
|
||||
T}
|
||||
T{
|
||||
\fBPermitted Values \fR
|
||||
\ \&
|
||||
T}:T{
|
||||
[\fInested\ table\fR]*
|
||||
\fBPermitted Values \fR
|
||||
T}
|
||||
.TE
|
||||
.sp 1
|
||||
.sp
|
||||
.it 1 an-trap
|
||||
.nr an-no-space-flag 1
|
||||
.nr an-break-flag 1
|
||||
.br
|
||||
.B *[nested\ table]
|
||||
.TS
|
||||
allbox tab(:);
|
||||
l l
|
||||
l l.
|
||||
T{
|
||||
:T{
|
||||
\fBType\fR
|
||||
T}:T{
|
||||
string
|
||||
T}
|
||||
T{
|
||||
:T{
|
||||
\fBDefault\fR
|
||||
T}:T{
|
||||
T}
|
||||
@ -508,36 +467,26 @@ This option was added in MySQL 5\&.1\&.9\&.
|
||||
\fB\-\-nodaemon\fR
|
||||
.TS
|
||||
allbox tab(:);
|
||||
l l
|
||||
l l.
|
||||
l l s
|
||||
l l s
|
||||
^ l l
|
||||
^ l l.
|
||||
T{
|
||||
\fBCommand Line Format\fR
|
||||
T}:T{
|
||||
\-\-nodaemon
|
||||
T}
|
||||
T{
|
||||
\fBPermitted Values \fR
|
||||
\ \&
|
||||
T}:T{
|
||||
[\fInested\ table\fR]*
|
||||
\fBPermitted Values \fR
|
||||
T}
|
||||
.TE
|
||||
.sp 1
|
||||
.sp
|
||||
.it 1 an-trap
|
||||
.nr an-no-space-flag 1
|
||||
.nr an-break-flag 1
|
||||
.br
|
||||
.B *[nested\ table]
|
||||
.TS
|
||||
allbox tab(:);
|
||||
l l
|
||||
l l.
|
||||
T{
|
||||
:T{
|
||||
\fBType\fR
|
||||
T}:T{
|
||||
boolean
|
||||
T}
|
||||
T{
|
||||
:T{
|
||||
\fBDefault\fR
|
||||
T}:T{
|
||||
FALSE
|
||||
@ -549,6 +498,12 @@ Instructs
|
||||
not to start as a daemon process\&. This is useful when
|
||||
\fBndbd\fR
|
||||
is being debugged and you want output to be redirected to the screen\&.
|
||||
.sp
|
||||
As of MySQL Cluster NDB 7\&.0\&.8, the default behavior for
|
||||
\fBndbd\fR
|
||||
and
|
||||
\fBndbmtd\fR
|
||||
on Windows is to run in the foreground, making this option unnecessary on Windows platforms\&. (\m[blue]\fBBug#45588\fR\m[]\&\s-2\u[2]\d\s+2)
|
||||
.RE
|
||||
.sp
|
||||
.RS 4
|
||||
@ -567,36 +522,26 @@ is being debugged and you want output to be redirected to the screen\&.
|
||||
\fB\-n\fR
|
||||
.TS
|
||||
allbox tab(:);
|
||||
l l
|
||||
l l.
|
||||
l l s
|
||||
l l s
|
||||
^ l l
|
||||
^ l l.
|
||||
T{
|
||||
\fBCommand Line Format\fR
|
||||
T}:T{
|
||||
\-\-nostart
|
||||
T}
|
||||
T{
|
||||
\fBPermitted Values \fR
|
||||
\ \&
|
||||
T}:T{
|
||||
[\fInested\ table\fR]*
|
||||
\fBPermitted Values \fR
|
||||
T}
|
||||
.TE
|
||||
.sp 1
|
||||
.sp
|
||||
.it 1 an-trap
|
||||
.nr an-no-space-flag 1
|
||||
.nr an-break-flag 1
|
||||
.br
|
||||
.B *[nested\ table]
|
||||
.TS
|
||||
allbox tab(:);
|
||||
l l
|
||||
l l.
|
||||
T{
|
||||
:T{
|
||||
\fBType\fR
|
||||
T}:T{
|
||||
boolean
|
||||
T}
|
||||
T{
|
||||
:T{
|
||||
\fBDefault\fR
|
||||
T}:T{
|
||||
FALSE
|
||||
@ -610,7 +555,7 @@ not to start automatically\&. When this option is used,
|
||||
connects to the management server, obtains configuration data from it, and initializes communication objects\&. However, it does not actually start the execution engine until specifically requested to do so by the management server\&. This can be accomplished by issuing the proper
|
||||
START
|
||||
command in the management client (see
|
||||
Section\ \&17.7.2, \(lqCommands in the MySQL Cluster Management Client\(rq)\&.
|
||||
Section\ \&17.5.2, \(lqCommands in the MySQL Cluster Management Client\(rq)\&.
|
||||
.RE
|
||||
.\" MySQL Cluster: log files
|
||||
.\" log files (MySQL Cluster)
|
||||
@ -668,7 +613,7 @@ TraceFile: ndb_2_trace\&.log\&.2
|
||||
Listings of possible
|
||||
\fBndbd\fR
|
||||
exit codes and messages generated when a data node process shuts down prematurely can be found in
|
||||
\m[blue]\fBndbd Error Messages\fR\m[]\&\s-2\u[2]\d\s+2\&.
|
||||
\m[blue]\fBndbd Error Messages\fR\m[]\&\s-2\u[3]\d\s+2\&.
|
||||
.if n \{\
|
||||
.sp
|
||||
.\}
|
||||
@ -784,7 +729,7 @@ shell> \fBndbd \-\-connect\-string="nodeid=2;host=ndb_mgmd\&.mysql\&.com:1186"\f
|
||||
.\}
|
||||
.PP
|
||||
See
|
||||
Section\ \&17.3.4.3, \(lqThe MySQL Cluster Connectstring\(rq, for additional information about this issue\&.
|
||||
Section\ \&17.3.2.3, \(lqThe MySQL Cluster Connectstring\(rq, for additional information about this issue\&.
|
||||
\fBndbd\fR(8), describes other options for
|
||||
\fBndbd\fR\&.
|
||||
.PP
|
||||
@ -810,7 +755,7 @@ process can consume up to 2 CPUs if permitted to do so\&.
|
||||
For a machine with many CPUs it is possible to use several
|
||||
\fBndbd\fR
|
||||
processes which belong to different node groups; however, such a configuration is still considered experimental and is not supported for MySQL 5\&.1 in a production setting\&. See
|
||||
Section\ \&17.12, \(lqKnown Limitations of MySQL Cluster\(rq\&.
|
||||
Section\ \&17.1.5, \(lqKnown Limitations of MySQL Cluster\(rq\&.
|
||||
.SH "COPYRIGHT"
|
||||
.br
|
||||
.PP
|
||||
@ -829,6 +774,11 @@ Bug#24631
|
||||
\%http://bugs.mysql.com/24631
|
||||
.RE
|
||||
.IP " 2." 4
|
||||
Bug#45588
|
||||
.RS 4
|
||||
\%http://bugs.mysql.com/45588
|
||||
.RE
|
||||
.IP " 3." 4
|
||||
ndbd Error Messages
|
||||
.RS 4
|
||||
\%http://dev.mysql.com/doc/ndbapi/en/ndbd-error-messages.html
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBndbd_redo_log_reader\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBNDBD_REDO_LOG_REA" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBNDBD_REDO_LOG_REA" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
@ -37,6 +37,10 @@ The C++ source files for
|
||||
can be found in the directory
|
||||
/storage/ndb/src/kernel/blocks/dblqh/redoLogReader\&.
|
||||
.PP
|
||||
The following table includes options that are specific to the MySQL Cluster program
|
||||
\fBndbd_redo_log_reader\fR\&. Additional descriptions follow the table\&. For options common to all MySQL Cluster programs, see
|
||||
Section\ \&17.4.2, \(lqOptions Common to MySQL Cluster Programs\(rq\&.
|
||||
.PP
|
||||
\fBUsage\fR:
|
||||
.sp
|
||||
.if n \{\
|
||||
@ -56,84 +60,6 @@ ndb_\fI#\fR_fs/D\fI#\fR/LCP/\fI#\fR/T\fI#\fRF\fI#\fR\&.Data\&. In each case, the
|
||||
represents a number (not necessarily the same number)\&. For more information, see
|
||||
\m[blue]\fBCluster Data Node FileSystemDir Files\fR\m[]\&\s-2\u[1]\d\s+2\&.
|
||||
.PP
|
||||
\fBAdditional Options\fR:
|
||||
.TS
|
||||
allbox tab(:);
|
||||
l l
|
||||
l l.
|
||||
T{
|
||||
\fBCommand Line Format\fR
|
||||
T}:T{
|
||||
\-noprint
|
||||
T}
|
||||
T{
|
||||
\fBPermitted Values \fR
|
||||
T}:T{
|
||||
[\fInested\ table\fR]*
|
||||
T}
|
||||
.TE
|
||||
.sp 1
|
||||
.sp
|
||||
.it 1 an-trap
|
||||
.nr an-no-space-flag 1
|
||||
.nr an-break-flag 1
|
||||
.br
|
||||
.B *[nested\ table]
|
||||
.TS
|
||||
allbox tab(:);
|
||||
l l
|
||||
l l.
|
||||
T{
|
||||
\fBType\fR
|
||||
T}:T{
|
||||
boolean
|
||||
T}
|
||||
T{
|
||||
\fBDefault\fR
|
||||
T}:T{
|
||||
FALSE
|
||||
T}
|
||||
.TE
|
||||
.sp 1
|
||||
.TS
|
||||
allbox tab(:);
|
||||
l l
|
||||
l l.
|
||||
T{
|
||||
\fBCommand Line Format\fR
|
||||
T}:T{
|
||||
\-nocheck
|
||||
T}
|
||||
T{
|
||||
\fBPermitted Values \fR
|
||||
T}:T{
|
||||
[\fInested\ table\fR]*
|
||||
T}
|
||||
.TE
|
||||
.sp 1
|
||||
.sp
|
||||
.it 1 an-trap
|
||||
.nr an-no-space-flag 1
|
||||
.nr an-break-flag 1
|
||||
.br
|
||||
.B *[nested\ table]
|
||||
.TS
|
||||
allbox tab(:);
|
||||
l l
|
||||
l l.
|
||||
T{
|
||||
\fBType\fR
|
||||
T}:T{
|
||||
boolean
|
||||
T}
|
||||
T{
|
||||
\fBDefault\fR
|
||||
T}:T{
|
||||
FALSE
|
||||
T}
|
||||
.TE
|
||||
.sp 1
|
||||
.PP
|
||||
The name of the file to be read may be followed by one or more of the options listed here:
|
||||
.sp
|
||||
.RS 4
|
||||
@ -144,6 +70,34 @@ The name of the file to be read may be followed by one or more of the options li
|
||||
.sp -1
|
||||
.IP \(bu 2.3
|
||||
.\}
|
||||
.TS
|
||||
allbox tab(:);
|
||||
l l s
|
||||
l l s
|
||||
^ l l
|
||||
^ l l.
|
||||
T{
|
||||
\fBCommand Line Format\fR
|
||||
T}:T{
|
||||
\-noprint
|
||||
T}
|
||||
T{
|
||||
\ \&
|
||||
T}:T{
|
||||
\fBPermitted Values \fR
|
||||
T}
|
||||
:T{
|
||||
\fBType\fR
|
||||
T}:T{
|
||||
boolean
|
||||
T}
|
||||
:T{
|
||||
\fBDefault\fR
|
||||
T}:T{
|
||||
FALSE
|
||||
T}
|
||||
.TE
|
||||
.sp 1
|
||||
\fB\-noprint\fR: Do not print the contents of the log file\&.
|
||||
.RE
|
||||
.sp
|
||||
@ -155,6 +109,34 @@ The name of the file to be read may be followed by one or more of the options li
|
||||
.sp -1
|
||||
.IP \(bu 2.3
|
||||
.\}
|
||||
.TS
|
||||
allbox tab(:);
|
||||
l l s
|
||||
l l s
|
||||
^ l l
|
||||
^ l l.
|
||||
T{
|
||||
\fBCommand Line Format\fR
|
||||
T}:T{
|
||||
\-nocheck
|
||||
T}
|
||||
T{
|
||||
\ \&
|
||||
T}:T{
|
||||
\fBPermitted Values \fR
|
||||
T}
|
||||
:T{
|
||||
\fBType\fR
|
||||
T}:T{
|
||||
boolean
|
||||
T}
|
||||
:T{
|
||||
\fBDefault\fR
|
||||
T}:T{
|
||||
FALSE
|
||||
T}
|
||||
.TE
|
||||
.sp 1
|
||||
\fB\-nocheck\fR: Do not check the log file for errors\&.
|
||||
.RE
|
||||
.sp
|
||||
@ -184,7 +166,7 @@ You should have received a copy of the GNU General Public License along with the
|
||||
.IP " 1." 4
|
||||
Cluster Data Node FileSystemDir Files
|
||||
.RS 4
|
||||
\%http://dev.mysql.com/doc/ndbapi/en/ndb-internals-ndbd-filesystem.html#ndb-internals-ndbd-filesystemdir-files
|
||||
\%http://dev.mysql.com/doc/ndbapi/en/ndb-internals-ndbd-filesystemdir-files.html
|
||||
.RE
|
||||
.SH "SEE ALSO"
|
||||
For more information, please refer to the MySQL Reference Manual,
|
||||
|
32
man/ndbmtd.8
32
man/ndbmtd.8
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBndbmtd\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBNDBMTD\FR" "8" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBNDBMTD\FR" "8" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
@ -49,8 +49,8 @@ Command\-line options and configuration parameters used with
|
||||
\fBndbd\fR
|
||||
also apply to
|
||||
\fBndbmtd\fR\&. For more information about these options and parameters, see
|
||||
Section\ \&17.6.3.2, \(lqProgram Options for ndbd and ndbmtd\(rq, and
|
||||
Section\ \&17.3.4.6, \(lqDefining MySQL Cluster Data Nodes\(rq, respectively\&.
|
||||
\fBndbd\fR(8), and
|
||||
Section\ \&17.3.2.6, \(lqDefining MySQL Cluster Data Nodes\(rq, respectively\&.
|
||||
.PP
|
||||
\fBndbmtd\fR
|
||||
is also file system\-compatible with
|
||||
@ -69,25 +69,13 @@ simply by stopping the node and then starting
|
||||
\fBndbd\fR
|
||||
in place of the multi\-threaded binary\&. It is not necessary when switching between the two to start the data node binary using
|
||||
\fB\-\-initial\fR\&.
|
||||
.if n \{\
|
||||
.sp
|
||||
.\}
|
||||
.RS 4
|
||||
.it 1 an-trap
|
||||
.nr an-no-space-flag 1
|
||||
.nr an-break-flag 1
|
||||
.br
|
||||
.ps +1
|
||||
\fBImportant\fR
|
||||
.ps -1
|
||||
.br
|
||||
.PP
|
||||
We do not currently recommend using
|
||||
Prior to MySQL Cluster NDB 7\&.0\&.6, there were known issues when using
|
||||
\fBndbmtd\fR
|
||||
with MySQL Cluster Disk Data tables in production, due to known issues which we are working to fix in a future MySQL Cluster release\&. (\m[blue]\fBBug#41915\fR\m[]\&\s-2\u[1]\d\s+2,
|
||||
with MySQL Cluster Disk Data tables\&. If you wish to use multi\-threaded data nodes with disk\-based
|
||||
NDB
|
||||
tables, you should insure that you are running MySQL Cluster NDB 7\&.0\&.6 or later\&. (\m[blue]\fBBug#41915\fR\m[]\&\s-2\u[1]\d\s+2,
|
||||
\m[blue]\fBBug#44915\fR\m[]\&\s-2\u[2]\d\s+2)
|
||||
.sp .5v
|
||||
.RE
|
||||
.PP
|
||||
Using
|
||||
\fBndbmtd\fR
|
||||
@ -129,6 +117,8 @@ failures\&.
|
||||
.RE
|
||||
.PP
|
||||
These differences are discussed in more detail in the next few paragraphs\&.
|
||||
.\" execution threads (MySQL Cluster)
|
||||
.\" MySQL Cluster: execution threads
|
||||
.\" ndbmtd: MaxNoOfExecutionThreads
|
||||
.\" MaxNoOfExecutionThreads: ndbmtd
|
||||
.\" ndbmtd: trace files
|
||||
@ -148,7 +138,7 @@ file, it is exclusive to
|
||||
and does not apply to
|
||||
\fBndbd\fR\&.
|
||||
.PP
|
||||
This parameter takes an integer value from 2 to 8 inclusive\&. Generally, you should set this to the number of CPU cores on the data node host, as shown in the following table:
|
||||
This parameter takes an integer value from 2 to 8 inclusive\&. Generally, you should set this parameter equal to the number of CPU cores on the data node host, as shown in the following table:
|
||||
.TS
|
||||
allbox tab(:);
|
||||
lB lB.
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBperror\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBPERROR\FR" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBPERROR\FR" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBreplace\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBREPLACE\FR" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBREPLACE\FR" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBresolve_stack_dump\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBRESOLVE_STACK_DUM" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBRESOLVE_STACK_DUM" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -2,12 +2,12 @@
|
||||
.\" Title: \fBresolveip\fR
|
||||
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
|
||||
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
||||
.\" Date: 08/12/2009
|
||||
.\" Date: 11/04/2009
|
||||
.\" Manual: MySQL Database System
|
||||
.\" Source: MySQL 5.1
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "\FBRESOLVEIP\FR" "1" "08/12/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.TH "\FBRESOLVEIP\FR" "1" "11/04/2009" "MySQL 5\&.1" "MySQL Database System"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * set default formatting
|
||||
.\" -----------------------------------------------------------------
|
||||
|
@ -23,3 +23,10 @@ The syntax is as follows:
|
||||
start with the same characters up to the last letter before the asterisk
|
||||
are considered experimental:
|
||||
main.a* # get rid of main.alias, main.alibaba and main.agliolio
|
||||
|
||||
6) Optionally, the test case may be followed by one or more platform
|
||||
qualifiers beginning with @ or @!. The test will then be considered
|
||||
experimental only/except on that platform. Basic OS names as
|
||||
reported by $^O in Perl, or 'windows' are supported, this includes
|
||||
solaris, linux, windows, aix, darwin, ... Example:
|
||||
main.alias @aix @windows # Fails on those
|
||||
|
@ -1,6 +1,45 @@
|
||||
# For easier human reading (MTR doesn't care), please keep entries
|
||||
# in alphabetical order. This also helps with merge conflict resolution.
|
||||
|
||||
binlog.binlog_multi_engine # joro : NDB tests marked as experimental as agreed with bochklin
|
||||
|
||||
funcs_1.charset_collation_1 # depends on compile-time decisions
|
||||
binlog.binlog_tmp_table # Bug#45578: Test binlog_tmp_table fails ramdonly on PB2: Unknown table 't2'
|
||||
main.ctype_gbk_binlog # Bug#46010: main.ctype_gbk_binlog fails sporadically : Table 't2' already exists
|
||||
rpl.rpl_row_create_table # Bug#45576: rpl_row_create_table fails on PB2
|
||||
funcs_1.is_cml_ndb # joro : NDB tests marked as experimental as agreed with bochklin
|
||||
funcs_1.is_columns_ndb # joro : NDB tests marked as experimental as agreed with bochklin
|
||||
funcs_1.is_engines_ndb # joro : NDB tests marked as experimental as agreed with bochklin
|
||||
funcs_1.is_tables_ndb # joro : NDB tests marked as experimental as agreed with bochklin
|
||||
funcs_1.ndb* # joro : NDB tests marked as experimental as agreed with bochklin
|
||||
|
||||
funcs_2.ndb_charset # joro : NDB tests marked as experimental as agreed with bochklin
|
||||
|
||||
main.ctype_gbk_binlog @solaris # Bug#46010: main.ctype_gbk_binlog fails sporadically : Table 't2' already exists
|
||||
main.innodb-autoinc* # Bug#47809 2009-10-04 joro innodb-autoinc.test fails with valgrind errors with the innodb plugin
|
||||
main.plugin_load @solaris # Bug#42144
|
||||
|
||||
ndb.* # joro : NDB tests marked as experimental as agreed with bochklin
|
||||
|
||||
rpl.rpl_cross_version* # Bug #43913 2009-10-26 joro rpl_cross_version can't pass on conflicts complainig clash with --slave-load-tm
|
||||
rpl.rpl_get_master_version_and_clock* # Bug#46931 2009-08-26 alik rpl.rpl_get_master_version_and_clock fails on hpux11.31
|
||||
rpl.rpl_innodb_bug28430* @solaris # Bug#46029
|
||||
rpl.rpl_row_create_table* # Bug#45576: rpl_row_create_table fails on PB2
|
||||
rpl.rpl_trigger* # Bug#47810 2009-10-04 joro rpl.rpl_trigger.test fails with valgrind errors with the innodb plugin
|
||||
|
||||
rpl_ndb.* # joro : NDB tests marked as experimental as agreed with bochklin
|
||||
rpl_ndb.rpl_ndb_log # Bug#38998
|
||||
rpl.rpl_innodb_bug28430 # Bug#46029
|
||||
|
||||
stress.ddl_ndb # joro : NDB tests marked as experimental as agreed with bochklin
|
||||
|
||||
parts.ndb_dd_backuprestore # joro : NDB tests marked as experimental as agreed with bochklin
|
||||
parts.part_supported_sql_func_ndb # joro : NDB tests marked as experimental as agreed with bochklin
|
||||
parts.partition_alter1_1_ndb # joro : NDB tests marked as experimental as agreed with bochklin
|
||||
parts.partition_alter1_1_2_ndb # joro : NDB tests marked as experimental as agreed with bochklin
|
||||
parts.partition_alter1_2_ndb # joro : NDB tests marked as experimental as agreed with bochklin
|
||||
parts.partition_auto_increment_ndb # joro : NDB tests marked as experimental as agreed with bochklin
|
||||
parts.partition_basic_ndb # joro : NDB tests marked as experimental as agreed with bochklin
|
||||
parts.partition_engine_ndb # joro : NDB tests marked as experimental as agreed with bochklin
|
||||
parts.partition_int_ndb # joro : NDB tests marked as experimental as agreed with bochklin
|
||||
parts.partition_mgm_lc0_ndb # joro : NDB tests marked as experimental as agreed with bochklin
|
||||
parts.partition_mgm_lc1_ndb # joro : NDB tests marked as experimental as agreed with bochklin
|
||||
parts.partition_mgm_lc2_ndb # joro : NDB tests marked as experimental as agreed with bochklin
|
||||
parts.partition_syntax_ndb # joro : NDB tests marked as experimental as agreed with bochklin
|
||||
parts.partition_value_ndb # joro : NDB tests marked as experimental as agreed with bochklin
|
||||
|
@ -270,3 +270,42 @@ INSERT INTO test.t1 VALUES (1), (2);
|
||||
CREATE TABLE test.t2 SELECT * FROM test.t1;
|
||||
USE test;
|
||||
DROP TABLES t1, t2;
|
||||
|
||||
#
|
||||
# Bug#46640
|
||||
# This test verifies if the server_id stored in the "format
|
||||
# description BINLOG statement" will override the server_id
|
||||
# of the server executing the statements.
|
||||
#
|
||||
|
||||
connect (fresh,localhost,root,,test);
|
||||
connection fresh;
|
||||
|
||||
RESET MASTER;
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY);
|
||||
|
||||
# Format description event, with server_id = 10;
|
||||
BINLOG '
|
||||
3u9kSA8KAAAAZgAAAGoAAAABAAQANS4xLjM1LW1hcmlhLWJldGExLWRlYnVnLWxvZwAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAADe72RIEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC
|
||||
';
|
||||
|
||||
# What server_id is logged for a statement? Should be our own, not the
|
||||
# one from the format description event.
|
||||
INSERT INTO t1 VALUES (1);
|
||||
|
||||
# INSERT INTO t1 VALUES (2), with server_id=20. Check that this is logged
|
||||
# with our own server id, not the 20 from the BINLOG statement.
|
||||
BINLOG '
|
||||
3u9kSBMUAAAAKQAAAJEBAAAAABoAAAAAAAAABHRlc3QAAnQxAAEDAAA=
|
||||
3u9kSBcUAAAAIgAAALMBAAAQABoAAAAAAAEAAf/+AgAAAA==
|
||||
';
|
||||
|
||||
# Show binlog events to check that server ids are correct.
|
||||
--replace_column 1 # 2 # 5 #
|
||||
--replace_regex /Server ver: .*, Binlog ver: .*/Server ver: #, Binlog ver: #/ /table_id: [0-9]+/table_id: #/
|
||||
SHOW BINLOG EVENTS;
|
||||
|
||||
DROP TABLE t1;
|
||||
disconnect fresh;
|
||||
|
||||
|
300
mysql-test/extra/binlog_tests/binlog_failure_mixing_engines.test
Normal file
300
mysql-test/extra/binlog_tests/binlog_failure_mixing_engines.test
Normal file
@ -0,0 +1,300 @@
|
||||
################################################################################
|
||||
# Let
|
||||
# - B be begin, C commit and R rollback.
|
||||
# - T a statement that accesses and changes only transactional tables, i.e.
|
||||
# T-tables
|
||||
# - N a statement that accesses and changes only non-transactional tables,
|
||||
# i.e, N-tables.
|
||||
# - M be a mixed statement, i.e. a statement that updates both T- and
|
||||
# N-tables.
|
||||
# - M* be a mixed statement that fails while updating either a T
|
||||
# or N-table.
|
||||
# - N* be a statement that fails while updating a N-table.
|
||||
#
|
||||
# In this test case, when changes are logged as rows either in the RBR or MIXED
|
||||
# modes, we check if a M* statement that happens early in a transaction is
|
||||
# written to the binary log outside the boundaries of the transaction and
|
||||
# wrapped up in a BEGIN/ROLLBACK. This is done to keep the slave consistent with
|
||||
# the master as the rollback will keep the changes on N-tables and undo them on
|
||||
# T-tables. In particular, we expect the following behavior:
|
||||
#
|
||||
# 1. B M* T C would generate in the binlog B M* R B T C.
|
||||
# 2. B M M* C would generate in the binlog B M M* C.
|
||||
# 3. B M* M* T C would generate in the binlog B M* R B M* R B T C.
|
||||
#
|
||||
# SBR is not considered in this test because a failing statement is written to
|
||||
# the binary along with the error code such that a slave executes and rolls it
|
||||
# back, thus undoing the effects on T-tables.
|
||||
#
|
||||
# Note that, in the first case, we are not preserving history from the master as
|
||||
# we are introducing a rollback that never happened. However, this seems to be
|
||||
# more acceptable than making the slave diverge. In the second case, the slave
|
||||
# will diverge as the changes on T-tables that originated from the M statement
|
||||
# are rolled back on the master but not on the slave. Unfortunately, we cannot
|
||||
# simply roll the transaction back as this would undo any uncommitted changes
|
||||
# on T-tables.
|
||||
#
|
||||
# We check two more cases. First, INSERT...SELECT* which produces the following
|
||||
# results:
|
||||
#
|
||||
# 1. B T INSERT M...SELECT* C" with an error in INSERT M...SELECT* generates in
|
||||
# the binlog the following entries: "Nothing".
|
||||
# 2. B INSERT M...SELECT* C" with an error in INSERT M...SELECT* generates in
|
||||
# the binlog the following entries: B INSERT M...SELECT* R.
|
||||
#
|
||||
# Finally, we also check if any N statement that happens early in a transaction
|
||||
# (i.e. before any T or M statement) is written to the binary log outside the
|
||||
# boundaries of the transaction. In particular, we expect the following
|
||||
# behavior:
|
||||
#
|
||||
# 1. B N N T C would generate in the binlog B N C B N C B T C.
|
||||
# 2. B N N T R would generate in the binlog B N C B N C B T R.
|
||||
# 3. B N* N* T C would generate in the binlog B N R B N R B T C.
|
||||
# 4. B N* N* T R would generate in the binlog B N R B N R B T R.
|
||||
# 5. B N N T N T C would generate in the binlog B N C B N C B T N T C.
|
||||
# 6. B N N T N T R would generate in the binlog the B N C B N C B T N T R.
|
||||
#
|
||||
# Such issues do not happen in SBR. In RBR and MBR, a full-fledged fix will be
|
||||
# pushed after the WL#2687.
|
||||
#
|
||||
# Please, remove this test case after pushing WL#2687.
|
||||
################################################################################
|
||||
|
||||
|
||||
--echo ###################################################################################
|
||||
--echo # CONFIGURATION
|
||||
--echo ###################################################################################
|
||||
CREATE TABLE nt_1 (a text, b int PRIMARY KEY) ENGINE = MyISAM;
|
||||
CREATE TABLE nt_2 (a text, b int PRIMARY KEY) ENGINE = MyISAM;
|
||||
CREATE TABLE tt_1 (a text, b int PRIMARY KEY) ENGINE = Innodb;
|
||||
CREATE TABLE tt_2 (a text, b int PRIMARY KEY) ENGINE = Innodb;
|
||||
|
||||
DELIMITER |;
|
||||
|
||||
CREATE TRIGGER tr_i_tt_1_to_nt_1 BEFORE INSERT ON tt_1 FOR EACH ROW
|
||||
BEGIN
|
||||
INSERT INTO nt_1 VALUES (NEW.a, NEW.b);
|
||||
END|
|
||||
|
||||
CREATE TRIGGER tr_i_nt_2_to_tt_2 BEFORE INSERT ON nt_2 FOR EACH ROW
|
||||
BEGIN
|
||||
INSERT INTO tt_2 VALUES (NEW.a, NEW.b);
|
||||
END|
|
||||
|
||||
DELIMITER ;|
|
||||
|
||||
--echo ###################################################################################
|
||||
--echo # CHECK HISTORY IN BINLOG
|
||||
--echo ###################################################################################
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo *** "B M* T C" with error in M* generates in the binlog the "B M* R B T C" entries
|
||||
--echo
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
INSERT INTO nt_1 VALUES ("new text 1", 1);
|
||||
BEGIN;
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO tt_1 VALUES (USER(), 2), (USER(), 1);
|
||||
INSERT INTO tt_2 VALUES ("new text 3", 3);
|
||||
COMMIT;
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
--echo
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
INSERT INTO tt_2 VALUES ("new text 4", 4);
|
||||
BEGIN;
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO nt_2 VALUES (USER(), 5), (USER(), 4);
|
||||
INSERT INTO tt_2 VALUES ("new text 6", 6);
|
||||
COMMIT;
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo *** "B M M* T C" with error in M* generates in the binlog the "B M M* T C" entries
|
||||
--echo
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
INSERT INTO nt_1 VALUES ("new text 10", 10);
|
||||
BEGIN;
|
||||
INSERT INTO tt_1 VALUES ("new text 7", 7), ("new text 8", 8);
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO tt_1 VALUES (USER(), 9), (USER(), 10);
|
||||
INSERT INTO tt_2 VALUES ("new text 11", 11);
|
||||
COMMIT;
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
--echo
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
INSERT INTO tt_2 VALUES ("new text 15", 15);
|
||||
BEGIN;
|
||||
INSERT INTO nt_2 VALUES ("new text 12", 12), ("new text 13", 13);
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO nt_2 VALUES (USER(), 14), (USER(), 15);
|
||||
INSERT INTO tt_2 VALUES ("new text 16", 16);
|
||||
COMMIT;
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo *** "B M* M* T C" with error in M* generates in the binlog the "B M* R B M* R B T C" entries
|
||||
--echo
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
INSERT INTO nt_1 VALUES ("new text 18", 18);
|
||||
INSERT INTO nt_1 VALUES ("new text 20", 20);
|
||||
BEGIN;
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO tt_1 VALUES (USER(), 17), (USER(), 18);
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO tt_1 VALUES (USER(), 19), (USER(), 20);
|
||||
INSERT INTO tt_2 VALUES ("new text 21", 21);
|
||||
COMMIT;
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
--echo
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
INSERT INTO tt_2 VALUES ("new text 23", 23);
|
||||
INSERT INTO tt_2 VALUES ("new text 25", 25);
|
||||
BEGIN;
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO nt_2 VALUES (USER(), 22), (USER(), 23);
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO nt_2 VALUES (USER(), 24), (USER(), 25);
|
||||
INSERT INTO tt_2 VALUES ("new text 26", 26);
|
||||
COMMIT;
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo *** "B T INSERT M...SELECT* C" with an error in INSERT M...SELECT* generates
|
||||
--echo *** in the binlog the following entries: "Nothing".
|
||||
--echo *** There is a bug in that will be fixed after WL#2687. Please, check BUG#47175 for further details.
|
||||
--echo
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
TRUNCATE TABLE nt_2;
|
||||
TRUNCATE TABLE tt_2;
|
||||
INSERT INTO tt_2 VALUES ("new text 7", 7);
|
||||
BEGIN;
|
||||
INSERT INTO tt_2 VALUES ("new text 27", 27);
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO nt_2(a, b) SELECT USER(), b FROM nt_1;
|
||||
INSERT INTO tt_2 VALUES ("new text 28", 28);
|
||||
ROLLBACK;
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo *** "B INSERT M..SELECT* C" with an error in INSERT M...SELECT* generates
|
||||
--echo *** in the binlog the following entries: "B INSERT M..SELECT* R".
|
||||
--echo
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
TRUNCATE TABLE nt_2;
|
||||
TRUNCATE TABLE tt_2;
|
||||
INSERT INTO tt_2 VALUES ("new text 7", 7);
|
||||
BEGIN;
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO nt_2(a, b) SELECT USER(), b FROM nt_1;
|
||||
COMMIT;
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo *** "B N N T C" generates in the binlog the "B N C B N C B T C" entries
|
||||
--echo
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
TRUNCATE TABLE nt_1;
|
||||
TRUNCATE TABLE tt_2;
|
||||
BEGIN;
|
||||
INSERT INTO nt_1 VALUES (USER(), 1);
|
||||
INSERT INTO nt_1 VALUES (USER(), 2);
|
||||
INSERT INTO tt_2 VALUES (USER(), 3);
|
||||
COMMIT;
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo *** "B N N T R" generates in the binlog the "B N C B N C B T R" entries
|
||||
--echo
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
BEGIN;
|
||||
INSERT INTO nt_1 VALUES (USER(), 4);
|
||||
INSERT INTO nt_1 VALUES (USER(), 5);
|
||||
INSERT INTO tt_2 VALUES (USER(), 6);
|
||||
ROLLBACK;
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo *** "B N* N* T C" with error in N* generates in the binlog the "B N R B N R B T C" entries
|
||||
--echo
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
BEGIN;
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO nt_1 VALUES (USER(), 7), (USER(), 1);
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO nt_1 VALUES (USER(), 8), (USER(), 1);
|
||||
INSERT INTO tt_2 VALUES (USER(), 9);
|
||||
COMMIT;
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo *** "B N* N* T R" with error in N* generates in the binlog the "B N R B N R B T R" entries
|
||||
--echo
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
BEGIN;
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO nt_1 VALUES (USER(), 10), (USER(), 1);
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO nt_1 VALUES (USER(), 11), (USER(), 1);
|
||||
INSERT INTO tt_2 VALUES (USER(), 12);
|
||||
ROLLBACK;
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo *** "B N N T N T C" generates in the binlog the "B N C B N C B T N T C" entries
|
||||
--echo
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
BEGIN;
|
||||
INSERT INTO nt_1 VALUES (USER(), 13);
|
||||
INSERT INTO nt_1 VALUES (USER(), 14);
|
||||
INSERT INTO tt_2 VALUES (USER(), 15);
|
||||
INSERT INTO nt_1 VALUES (USER(), 16);
|
||||
INSERT INTO tt_2 VALUES (USER(), 17);
|
||||
COMMIT;
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo *** "B N N T N T R" generates in the binlog the "B N C B N C B T N T R" entries
|
||||
--echo
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
BEGIN;
|
||||
INSERT INTO nt_1 VALUES (USER(), 18);
|
||||
INSERT INTO nt_1 VALUES (USER(), 19);
|
||||
INSERT INTO tt_2 VALUES (USER(), 20);
|
||||
INSERT INTO nt_1 VALUES (USER(), 21);
|
||||
INSERT INTO tt_2 VALUES (USER(), 22);
|
||||
ROLLBACK;
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
--echo ###################################################################################
|
||||
--echo # CLEAN
|
||||
--echo ###################################################################################
|
||||
|
||||
DROP TABLE tt_1;
|
||||
DROP TABLE tt_2;
|
||||
DROP TABLE nt_1;
|
||||
DROP TABLE nt_2;
|
@ -1,27 +1,72 @@
|
||||
|
||||
--disable_warnings
|
||||
drop database if exists `drop-temp+table-test`;
|
||||
DROP DATABASE IF EXISTS `drop-temp+table-test`;
|
||||
--enable_warnings
|
||||
|
||||
connect (con1,localhost,root,,);
|
||||
connect (con2,localhost,root,,);
|
||||
connection con1;
|
||||
reset master;
|
||||
create database `drop-temp+table-test`;
|
||||
use `drop-temp+table-test`;
|
||||
create temporary table shortn1 (a int);
|
||||
create temporary table `table:name` (a int);
|
||||
create temporary table shortn2 (a int);
|
||||
select get_lock("a",10);
|
||||
RESET MASTER;
|
||||
CREATE DATABASE `drop-temp+table-test`;
|
||||
USE `drop-temp+table-test`;
|
||||
CREATE TEMPORARY TABLE shortn1 (a INT);
|
||||
CREATE TEMPORARY TABLE `table:name` (a INT);
|
||||
CREATE TEMPORARY TABLE shortn2 (a INT);
|
||||
|
||||
##############################################################################
|
||||
# BUG#46572 DROP TEMPORARY table IF EXISTS does not have a consistent behavior
|
||||
# in ROW mode
|
||||
#
|
||||
# In RBR, 'DROP TEMPORARY TABLE ...' statement should never be binlogged no
|
||||
# matter if the tables exist or not. In contrast, both in SBR and MBR, the
|
||||
# statement should be always binlogged no matter if the tables exist or not.
|
||||
##############################################################################
|
||||
CREATE TEMPORARY TABLE tmp(c1 int);
|
||||
CREATE TEMPORARY TABLE tmp1(c1 int);
|
||||
CREATE TEMPORARY TABLE tmp2(c1 int);
|
||||
CREATE TEMPORARY TABLE tmp3(c1 int);
|
||||
CREATE TABLE t(c1 int);
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp;
|
||||
|
||||
--disable_warnings
|
||||
# Before fixing BUG#46572, 'DROP TEMPORARY TABLE IF EXISTS...' statement was
|
||||
# binlogged when the table did not exist in RBR.
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp;
|
||||
|
||||
# In RBR, 'DROP TEMPORARY TABLE ...' statement is never binlogged no matter if
|
||||
# the tables exist or not.
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp, tmp1;
|
||||
DROP TEMPORARY TABLE tmp3;
|
||||
|
||||
#In RBR, tmp2 will NOT be binlogged, because it is a temporary table.
|
||||
DROP TABLE IF EXISTS tmp2, t;
|
||||
|
||||
#In RBR, tmp2 will be binlogged, because it does not exist and master do not know
|
||||
# whether it is a temporary table or not.
|
||||
DROP TABLE IF EXISTS tmp2, t;
|
||||
--enable_warnings
|
||||
|
||||
SELECT GET_LOCK("a",10);
|
||||
|
||||
#
|
||||
# BUG48216 Replication fails on all slaves after upgrade to 5.0.86 on master
|
||||
#
|
||||
# When the session is closed, any temporary tables of the session are dropped
|
||||
# and are binlogged. But it will be binlogged with a wrong database name when
|
||||
# the length of the database name('drop-temp-table-test') is greater than the
|
||||
# current database name('test').
|
||||
#
|
||||
USE test;
|
||||
disconnect con1;
|
||||
|
||||
connection con2;
|
||||
# We want to SHOW BINLOG EVENTS, to know what was logged. But there is no
|
||||
# guarantee that logging of the terminated con1 has been done yet.
|
||||
# To be sure that logging has been done, we use a user lock.
|
||||
select get_lock("a",10);
|
||||
let $VERSION=`select version()`;
|
||||
SELECT GET_LOCK("a",10);
|
||||
let $VERSION=`SELECT VERSION()`;
|
||||
source include/show_binlog_events.inc;
|
||||
drop database `drop-temp+table-test`;
|
||||
DROP DATABASE `drop-temp+table-test`;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@ -163,5 +163,81 @@ show create table t1;
|
||||
connection master;
|
||||
drop table t1;
|
||||
|
||||
# End cleanup
|
||||
#
|
||||
# BUG#45999 Row based replication fails when auto_increment field = 0.
|
||||
# Store engine of Slaves auto-generates new sequence numbers for
|
||||
# auto_increment fields if the values of them are 0. There is an inconsistency
|
||||
# between slave and master. When MODE_NO_AUTO_VALUE_ON_ZERO are masters treat
|
||||
#
|
||||
source include/master-slave-reset.inc;
|
||||
|
||||
connection master;
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t1;
|
||||
DROP TABLE IF EXISTS t2;
|
||||
--enable_warnings
|
||||
|
||||
eval CREATE TABLE t1 (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY) ENGINE=$engine_type;
|
||||
eval CREATE TABLE t2 (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY) ENGINE=$engine_type2;
|
||||
SET SQL_MODE='';
|
||||
# Value of the id will be 1;
|
||||
INSERT INTO t1 VALUES(NULL);
|
||||
INSERT INTO t2 VALUES(NULL);
|
||||
SELECT * FROM t1;
|
||||
SELECT * FROM t2;
|
||||
# Value of the id will be 2;
|
||||
INSERT INTO t1 VALUES();
|
||||
INSERT INTO t2 VALUES();
|
||||
SELECT * FROM t1;
|
||||
SELECT * FROM t2;
|
||||
# Value of the id will be 3. The master treats 0 as NULL or empty because
|
||||
# NO_AUTO_VALUE_ON_ZERO is not assign to SQL_MODE.
|
||||
INSERT INTO t1 VALUES(0);
|
||||
INSERT INTO t2 VALUES(0);
|
||||
SELECT * FROM t1;
|
||||
SELECT * FROM t2;
|
||||
|
||||
SET SQL_MODE=NO_AUTO_VALUE_ON_ZERO;
|
||||
# Value of the id will be 0. The master does not treat 0 as NULL or empty
|
||||
# because NO_AUTO_VALUE_ON_ZERO has assigned to SQL_MODE.
|
||||
INSERT INTO t1 VALUES(0);
|
||||
INSERT INTO t2 VALUES(0);
|
||||
SELECT * FROM t1;
|
||||
SELECT * FROM t2;
|
||||
|
||||
INSERT INTO t1 VALUES(4);
|
||||
INSERT INTO t2 VALUES(4);
|
||||
FLUSH LOGS;
|
||||
sync_slave_with_master;
|
||||
|
||||
let $diff_table_1= master:test.t1;
|
||||
let $diff_table_2= slave:test.t1;
|
||||
source include/diff_tables.inc;
|
||||
|
||||
let $diff_table_1= master:test.t2;
|
||||
let $diff_table_2= slave:test.t2;
|
||||
source include/diff_tables.inc;
|
||||
|
||||
connection master;
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
sync_slave_with_master;
|
||||
|
||||
connection master;
|
||||
let $MYSQLD_DATADIR= `SELECT @@DATADIR`;
|
||||
--exec $MYSQL_BINLOG $MYSQLD_DATADIR/master-bin.000001 | $MYSQL test
|
||||
sync_slave_with_master;
|
||||
|
||||
let $diff_table_1= master:test.t1;
|
||||
let $diff_table_2= slave:test.t1;
|
||||
source include/diff_tables.inc;
|
||||
|
||||
let $diff_table_1= master:test.t2;
|
||||
let $diff_table_2= slave:test.t2;
|
||||
source include/diff_tables.inc;
|
||||
|
||||
# End cleanup
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
SET SQL_MODE='';
|
||||
sync_slave_with_master;
|
||||
|
@ -0,0 +1,44 @@
|
||||
#
|
||||
# This test verifies if inserting data into view that invokes a
|
||||
# trigger will make the autoinc values become inconsistent on
|
||||
# master and slave.
|
||||
#
|
||||
connection master;
|
||||
CREATE TABLE t1(i1 int not null auto_increment, c1 INT, primary key(i1)) engine=innodb;
|
||||
CREATE TABLE t2(i1 int not null auto_increment, c2 INT, primary key(i1)) engine=innodb;
|
||||
CREATE TABLE t3(i1 int not null auto_increment, a int, primary key(i1)) engine=innodb;
|
||||
eval create trigger tr16 $insert_action on t1 for each row insert into t3(a) values(new.c1);
|
||||
eval create trigger tr17 $insert_action on t2 for each row insert into t3(a) values(new.c2);
|
||||
begin;
|
||||
INSERT INTO t1(c1) VALUES (11), (12);
|
||||
INSERT INTO t2(c2) VALUES (13), (14);
|
||||
|
||||
CREATE VIEW v16 AS SELECT c1, c2 FROM t1, t2;
|
||||
|
||||
INSERT INTO v16(c1) VALUES (15),(16);
|
||||
INSERT INTO v16(c2) VALUES (17),(18);
|
||||
|
||||
connection master1;
|
||||
INSERT INTO v16(c1) VALUES (19),(20);
|
||||
INSERT INTO v16(c2) VALUES (21),(22);
|
||||
|
||||
connection master;
|
||||
INSERT INTO v16(c1) VALUES (23), (24);
|
||||
INSERT INTO v16(c1) VALUES (25), (26);
|
||||
commit;
|
||||
sync_slave_with_master;
|
||||
--echo #Test if the results are consistent on master and slave
|
||||
--echo #for 'INSERT DATA INTO VIEW WHICH INVOKES TRIGGERS'
|
||||
let $diff_table_1=master:test.t3;
|
||||
let $diff_table_2=slave:test.t3;
|
||||
source include/diff_tables.inc;
|
||||
|
||||
connection master;
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
DROP TABLE t3;
|
||||
DROP VIEW v16;
|
||||
sync_slave_with_master;
|
||||
|
||||
|
||||
|
@ -0,0 +1,82 @@
|
||||
#
|
||||
# This test verifies if concurrent transactions that invoke a
|
||||
# trigger that inserts more than one values into one or more
|
||||
# tables with an auto_increment column will make the autoinc
|
||||
# values become inconsistent on master and slave.
|
||||
#
|
||||
|
||||
connection master;
|
||||
create table t1(a int, b int) engine=innodb;
|
||||
create table t2(i1 int not null auto_increment, a int, primary key(i1)) engine=innodb;
|
||||
eval create trigger tr1 $trigger_action on t1 for each row insert into t2(a) values(6);
|
||||
|
||||
create table t3(a int, b int) engine=innodb;
|
||||
create table t4(i1 int not null auto_increment, a int, primary key(i1)) engine=innodb;
|
||||
create table t5(a int) engine=innodb;
|
||||
delimiter |;
|
||||
eval create trigger tr2 $trigger_action on t3 for each row begin
|
||||
insert into t4(a) values(f1_insert_triggered());
|
||||
insert into t4(a) values(f1_insert_triggered());
|
||||
insert into t5(a) values(8);
|
||||
end |
|
||||
delimiter ;|
|
||||
|
||||
create table t6(i1 int not null auto_increment, a int, primary key(i1)) engine=innodb;
|
||||
delimiter //;
|
||||
CREATE FUNCTION f1_insert_triggered() RETURNS INTEGER
|
||||
BEGIN
|
||||
INSERT INTO t6(a) values(2),(3);
|
||||
RETURN 1;
|
||||
END//
|
||||
delimiter ;//
|
||||
|
||||
begin;
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
insert into t1(a,b) values(1,1),(2,1);
|
||||
insert into t3(a,b) values(1,1),(2,1);
|
||||
update t1 set a = a + 5 where b = 1;
|
||||
update t3 set a = a + 5 where b = 1;
|
||||
delete from t1 where b = 1;
|
||||
delete from t3 where b = 1;
|
||||
|
||||
connection master1;
|
||||
#The default autocommit is set to 1, so the statement is auto committed
|
||||
insert into t2(a) values(3);
|
||||
insert into t4(a) values(3);
|
||||
|
||||
connection master;
|
||||
commit;
|
||||
insert into t1(a,b) values(4,2);
|
||||
insert into t3(a,b) values(4,2);
|
||||
update t1 set a = a + 5 where b = 2;
|
||||
update t3 set a = a + 5 where b = 2;
|
||||
delete from t1 where b = 2;
|
||||
delete from t3 where b = 2;
|
||||
--echo # To verify if insert/update in an autoinc column causes statement to be logged in row format
|
||||
source include/show_binlog_events.inc;
|
||||
commit;
|
||||
|
||||
connection master;
|
||||
sync_slave_with_master;
|
||||
--echo #Test if the results are consistent on master and slave
|
||||
--echo #for 'INVOKES A TRIGGER with $trigger_action action'
|
||||
let $diff_table_1=master:test.t2;
|
||||
let $diff_table_2=slave:test.t2;
|
||||
source include/diff_tables.inc;
|
||||
let $diff_table_1=master:test.t4;
|
||||
let $diff_table_2=slave:test.t4;
|
||||
source include/diff_tables.inc;
|
||||
let $diff_table_1=master:test.t6;
|
||||
let $diff_table_2=slave:test.t6;
|
||||
source include/diff_tables.inc;
|
||||
|
||||
connection master;
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
DROP TABLE t3;
|
||||
DROP TABLE t4;
|
||||
DROP TABLE t5;
|
||||
DROP TABLE t6;
|
||||
DROP FUNCTION f1_insert_triggered;
|
||||
sync_slave_with_master;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user