mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 19:11:46 +01:00
Merge bk-internal.mysql.com:/data0/bk/mysql-5.1
into bk-internal.mysql.com:/data0/bk/mysql-5.1-arch
This commit is contained in:
commit
42345b83c3
197 changed files with 5513 additions and 3509 deletions
|
@ -183,7 +183,7 @@ fi
|
|||
# (http://samba.org/ccache) is installed, use it.
|
||||
# We use 'grep' and hope 'grep' will work as expected
|
||||
# (returns 0 if finds lines)
|
||||
if ccache -V > /dev/null 2>&1 && test "$CCACHE_GCOV_VERSION_ENABLED" == "1"
|
||||
if ccache -V > /dev/null 2>&1 && test "$CCACHE_GCOV_VERSION_ENABLED" = "1"
|
||||
then
|
||||
echo "$CC" | grep "ccache" > /dev/null || CC="ccache $CC"
|
||||
echo "$CXX" | grep "ccache" > /dev/null || CXX="ccache $CXX"
|
||||
|
|
|
@ -28,7 +28,7 @@ check_cpu () {
|
|||
fi
|
||||
|
||||
# parse CPU flags
|
||||
for flag in `$cpuinfo | grep '^flags' | sed -e 's/^flags.*: //'`; do
|
||||
for flag in `$cpuinfo | grep '^flags' | sed -e 's/^flags.*: //' -e 's/[^a-zA-Z0-9_ ]/_/g'`; do
|
||||
eval cpu_flag_$flag=yes
|
||||
done
|
||||
else
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
45214442pBGT9KuZEGixBH71jTzbOA
|
||||
45214a07hVsIGwvwa-WrO-jpeaSwVw
|
||||
452a92d0-31-8wSzSfZi165fcGcXPA
|
||||
452c6c6dAjuNghfc1ObZ_UQ5SCl85g
|
||||
4538a7b0EbDHHkWPbIwxO6ZIDdg6Dg
|
||||
454a7ef8gdvE_ddMlJyghvOAkKPNOQ
|
||||
454bb488ijVLOUK_GFjcoISE0GxPUA
|
||||
454bb9a8AwlGRC_wWLS2sNMoRBMRGw
|
||||
|
@ -30,3 +32,5 @@
|
|||
4561b2ecZbhuAc0TTDdCdultxUYaMw
|
||||
4561bde4qWhz1I8tkItXKex5uniipA
|
||||
4562ba016dYH0JzszOqZ8p6psbKfnQ
|
||||
45771031yRCoM_ZfONdYchPvVEgLRg
|
||||
45ae6628gqKTsUFfnoNExadETVIkbA
|
||||
|
|
16
Makefile.am
16
Makefile.am
|
@ -102,8 +102,10 @@ dist-hook:
|
|||
tags:
|
||||
support-files/build-tags
|
||||
|
||||
.PHONY: init-db bin-dist test test-full test-ps test-nr \
|
||||
test-ns test-pr test-unit
|
||||
.PHONY: init-db bin-dist \
|
||||
test test-force test-full test-force-full test-force-mem \
|
||||
test-pl test-force-pl test-full-pl test-force-full-pl test-force-pl-mem \
|
||||
test-unit test-ps test-nr test-pr test-ns test-binlog-statement
|
||||
|
||||
# Target 'test' will run the regression test suite using the built server.
|
||||
#
|
||||
|
@ -118,23 +120,23 @@ test-unit:
|
|||
|
||||
test-ps:
|
||||
cd mysql-test ; \
|
||||
./mysql-test-run.pl $(force) --ps-protocol --mysqld=--binlog-format=mixed
|
||||
@PERL@ ./mysql-test-run.pl $(force) --ps-protocol --mysqld=--binlog-format=mixed
|
||||
|
||||
test-nr:
|
||||
cd mysql-test ; \
|
||||
./mysql-test-run.pl $(force) --mysqld=--binlog-format=row
|
||||
@PERL@ ./mysql-test-run.pl $(force) --mysqld=--binlog-format=row
|
||||
|
||||
test-pr:
|
||||
cd mysql-test ; \
|
||||
./mysql-test-run.pl $(force) --ps-protocol --mysqld=--binlog-format=row
|
||||
@PERL@ ./mysql-test-run.pl $(force) --ps-protocol --mysqld=--binlog-format=row
|
||||
|
||||
test-ns:
|
||||
cd mysql-test ; \
|
||||
./mysql-test-run.pl $(force) --mysqld=--binlog-format=mixed
|
||||
@PERL@ ./mysql-test-run.pl $(force) --mysqld=--binlog-format=mixed
|
||||
|
||||
test-binlog-statement:
|
||||
cd mysql-test ; \
|
||||
./mysql-test-run.pl $(force) --mysqld=--binlog-format=statement
|
||||
@PERL@ ./mysql-test-run.pl $(force) --mysqld=--binlog-format=statement
|
||||
|
||||
test: test-unit test-ns test-pr
|
||||
|
||||
|
|
|
@ -470,7 +470,12 @@ int main(int argc, char **argv)
|
|||
|
||||
load_defaults("my", load_default_groups, &argc, &argv);
|
||||
|
||||
if (handle_options(&argc, &argv, my_long_options, get_one_option))
|
||||
/*
|
||||
Must init_dynamic_string before handle_options because string is freed
|
||||
at error label.
|
||||
*/
|
||||
if (init_dynamic_string(&cmdline, NULL, 2 * FN_REFLEN + 128, FN_REFLEN) ||
|
||||
handle_options(&argc, &argv, my_long_options, get_one_option))
|
||||
{
|
||||
ret= 1;
|
||||
goto error;
|
||||
|
@ -478,11 +483,6 @@ int main(int argc, char **argv)
|
|||
if (tty_password)
|
||||
opt_password= get_tty_password(NullS);
|
||||
|
||||
if (init_dynamic_string(&cmdline, NULL, 2 * FN_REFLEN + 128, FN_REFLEN))
|
||||
{
|
||||
ret= 1;
|
||||
goto error;
|
||||
}
|
||||
if (!basedir)
|
||||
{
|
||||
my_getwd(path, sizeof(path), MYF(0));
|
||||
|
@ -565,17 +565,34 @@ int main(int argc, char **argv)
|
|||
goto error;
|
||||
}
|
||||
else
|
||||
dynstr_set(&cmdline, path);
|
||||
{
|
||||
#ifdef __WIN__
|
||||
/* Windows requires an extra pair of quotes around the entire string. */
|
||||
dynstr_set(&cmdline, "\"");
|
||||
#else
|
||||
dynstr_set(&cmdline, "");
|
||||
#endif /* __WIN__ */
|
||||
dynstr_append_os_quoted(&cmdline, path, NullS);
|
||||
}
|
||||
|
||||
if (defaults_to_use)
|
||||
{
|
||||
dynstr_append(&cmdline, " --defaults-extra-file=");
|
||||
dynstr_append(&cmdline, defaults_to_use);
|
||||
dynstr_append(&cmdline, " ");
|
||||
dynstr_append_os_quoted(&cmdline, "--defaults-extra-file=",
|
||||
defaults_to_use, NullS);
|
||||
}
|
||||
|
||||
dynstr_append(&cmdline, " --check-upgrade --all-databases"
|
||||
" --auto-repair --user=");
|
||||
dynstr_append(&cmdline, user);
|
||||
|
||||
dynstr_append(&cmdline, " ");
|
||||
dynstr_append_os_quoted(&cmdline, "--check-upgrade", NullS);
|
||||
dynstr_append(&cmdline, " ");
|
||||
dynstr_append_os_quoted(&cmdline, "--all-databases", NullS);
|
||||
dynstr_append(&cmdline, " ");
|
||||
dynstr_append_os_quoted(&cmdline, "--auto-repair", NullS);
|
||||
dynstr_append(&cmdline, " ");
|
||||
dynstr_append_os_quoted(&cmdline, "--user=", user, NullS);
|
||||
#ifdef __WIN__
|
||||
dynstr_append(&cmdline, "\"");
|
||||
#endif /* __WIN__ */
|
||||
|
||||
if (opt_verbose)
|
||||
printf("Running %s\n", cmdline.str);
|
||||
|
@ -604,7 +621,15 @@ fix_priv_tables:
|
|||
goto error;
|
||||
}
|
||||
else
|
||||
dynstr_set(&cmdline, path);
|
||||
{
|
||||
#ifdef __WIN__
|
||||
/* Windows requires an extra pair of quotes around the entire string. */
|
||||
dynstr_set(&cmdline, "\"");
|
||||
#else
|
||||
dynstr_set(&cmdline, "");
|
||||
#endif /* __WIN__ */
|
||||
dynstr_append_os_quoted(&cmdline, path, NullS);
|
||||
}
|
||||
|
||||
if (find_file(MYSQL_FIX_PRIV_TABLES_NAME, basedir, MYF(0),
|
||||
path, sizeof(path),
|
||||
|
@ -626,13 +651,25 @@ fix_priv_tables:
|
|||
|
||||
if (defaults_to_use)
|
||||
{
|
||||
dynstr_append(&cmdline, " --defaults-extra-file=");
|
||||
dynstr_append(&cmdline, defaults_to_use);
|
||||
dynstr_append(&cmdline, " ");
|
||||
dynstr_append_os_quoted(&cmdline, "--defaults-extra-file=",
|
||||
defaults_to_use, NullS);
|
||||
}
|
||||
dynstr_append(&cmdline, " --force --no-auto-rehash --batch --user=");
|
||||
dynstr_append(&cmdline, user);
|
||||
dynstr_append(&cmdline, " mysql < ");
|
||||
dynstr_append(&cmdline, script_line);
|
||||
dynstr_append(&cmdline, " ");
|
||||
dynstr_append_os_quoted(&cmdline, "--force", NullS);
|
||||
dynstr_append(&cmdline, " ");
|
||||
dynstr_append_os_quoted(&cmdline, "--no-auto-rehash", NullS);
|
||||
dynstr_append(&cmdline, " ");
|
||||
dynstr_append_os_quoted(&cmdline, "--batch", NullS);
|
||||
dynstr_append(&cmdline, " ");
|
||||
dynstr_append_os_quoted(&cmdline, "--user=", user, NullS);
|
||||
dynstr_append(&cmdline, " ");
|
||||
dynstr_append_os_quoted(&cmdline, "--database=mysql", NullS);
|
||||
dynstr_append(&cmdline, " < ");
|
||||
dynstr_append_os_quoted(&cmdline, script_line, NullS);
|
||||
#ifdef __WIN__
|
||||
dynstr_append(&cmdline, "\"");
|
||||
#endif /* __WIN__ */
|
||||
|
||||
if (opt_verbose)
|
||||
printf("Running %s\n", cmdline.str);
|
||||
|
|
|
@ -66,6 +66,7 @@ static bool opt_hexdump= 0;
|
|||
static bool opt_base64_output= 0;
|
||||
static const char* database= 0;
|
||||
static my_bool force_opt= 0, short_form= 0, remote_opt= 0, info_flag;
|
||||
static my_bool force_if_open_opt= 1;
|
||||
static ulonglong offset = 0;
|
||||
static const char* host = 0;
|
||||
static int port= 0;
|
||||
|
@ -85,6 +86,7 @@ static short binlog_flags = 0;
|
|||
static MYSQL* mysql = NULL;
|
||||
static const char* dirname_for_local_load= 0;
|
||||
static bool stop_passed= 0;
|
||||
static my_bool file_not_closed_error= 0;
|
||||
|
||||
/*
|
||||
check_header() will set the pointer below.
|
||||
|
@ -94,8 +96,10 @@ static bool stop_passed= 0;
|
|||
*/
|
||||
Format_description_log_event* description_event;
|
||||
|
||||
static int dump_local_log_entries(const char* logname);
|
||||
static int dump_remote_log_entries(const char* logname);
|
||||
static int dump_local_log_entries(PRINT_EVENT_INFO *print_event_info,
|
||||
const char* logname);
|
||||
static int dump_remote_log_entries(PRINT_EVENT_INFO *print_event_info,
|
||||
const char* logname);
|
||||
static int dump_log_entries(const char* logname);
|
||||
static int dump_remote_file(NET* net, const char* fname);
|
||||
static void die(const char* fmt, ...);
|
||||
|
@ -645,6 +649,12 @@ Create_file event for file_id: %u\n",exv->file_id);
|
|||
later.
|
||||
*/
|
||||
ev= 0;
|
||||
if (!force_if_open_opt &&
|
||||
(description_event->flags & LOG_EVENT_BINLOG_IN_USE_F))
|
||||
{
|
||||
file_not_closed_error= 1;
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
break;
|
||||
case BEGIN_LOAD_QUERY_EVENT:
|
||||
ev->print(result_file, print_event_info);
|
||||
|
@ -724,6 +734,9 @@ static struct my_option my_long_options[] =
|
|||
"already have. NOTE: you will need a SUPER privilege to use this option.",
|
||||
(gptr*) &disable_log_bin, (gptr*) &disable_log_bin, 0, GET_BOOL,
|
||||
NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"force-if-open", 'F', "Force if binlog was not closed properly.",
|
||||
(gptr*) &force_if_open_opt, (gptr*) &force_if_open_opt, 0, GET_BOOL, NO_ARG,
|
||||
1, 0, 0, 0, 0, 0},
|
||||
{"force-read", 'f', "Force reading unknown binlog events.",
|
||||
(gptr*) &force_opt, (gptr*) &force_opt, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0,
|
||||
0, 0},
|
||||
|
@ -1001,8 +1014,22 @@ static MYSQL* safe_connect()
|
|||
|
||||
static int dump_log_entries(const char* logname)
|
||||
{
|
||||
return (remote_opt ? dump_remote_log_entries(logname) :
|
||||
dump_local_log_entries(logname));
|
||||
int rc;
|
||||
PRINT_EVENT_INFO print_event_info;
|
||||
/*
|
||||
Set safe delimiter, to dump things
|
||||
like CREATE PROCEDURE safely
|
||||
*/
|
||||
fprintf(result_file, "DELIMITER /*!*/;\n");
|
||||
strcpy(print_event_info.delimiter, "/*!*/;");
|
||||
|
||||
rc= (remote_opt ? dump_remote_log_entries(&print_event_info, logname) :
|
||||
dump_local_log_entries(&print_event_info, logname));
|
||||
|
||||
/* Set delimiter back to semicolon */
|
||||
fprintf(result_file, "DELIMITER ;\n");
|
||||
strcpy(print_event_info.delimiter, ";");
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1067,11 +1094,11 @@ static int check_master_version(MYSQL* mysql,
|
|||
}
|
||||
|
||||
|
||||
static int dump_remote_log_entries(const char* logname)
|
||||
static int dump_remote_log_entries(PRINT_EVENT_INFO *print_event_info,
|
||||
const char* logname)
|
||||
|
||||
{
|
||||
char buf[128];
|
||||
PRINT_EVENT_INFO print_event_info;
|
||||
ulong len;
|
||||
uint logname_len;
|
||||
NET* net;
|
||||
|
@ -1194,7 +1221,7 @@ could be out of memory");
|
|||
len= 1; // fake Rotate, so don't increment old_off
|
||||
}
|
||||
}
|
||||
if ((error= process_event(&print_event_info, ev, old_off)))
|
||||
if ((error= process_event(print_event_info, ev, old_off)))
|
||||
{
|
||||
error= ((error < 0) ? 0 : 1);
|
||||
goto err;
|
||||
|
@ -1213,7 +1240,7 @@ could be out of memory");
|
|||
goto err;
|
||||
}
|
||||
|
||||
if ((error= process_event(&print_event_info, ev, old_off)))
|
||||
if ((error= process_event(print_event_info, ev, old_off)))
|
||||
{
|
||||
my_close(file,MYF(MY_WME));
|
||||
error= ((error < 0) ? 0 : 1);
|
||||
|
@ -1339,11 +1366,11 @@ at offset %lu ; this could be a log format error or read error",
|
|||
}
|
||||
|
||||
|
||||
static int dump_local_log_entries(const char* logname)
|
||||
static int dump_local_log_entries(PRINT_EVENT_INFO *print_event_info,
|
||||
const char* logname)
|
||||
{
|
||||
File fd = -1;
|
||||
IO_CACHE cache,*file= &cache;
|
||||
PRINT_EVENT_INFO print_event_info;
|
||||
byte tmp_buff[BIN_LOG_HEADER_SIZE];
|
||||
int error= 0;
|
||||
|
||||
|
@ -1430,7 +1457,7 @@ static int dump_local_log_entries(const char* logname)
|
|||
// file->error == 0 means EOF, that's OK, we break in this case
|
||||
break;
|
||||
}
|
||||
if ((error= process_event(&print_event_info, ev, old_off)))
|
||||
if ((error= process_event(print_event_info, ev, old_off)))
|
||||
{
|
||||
if (error < 0)
|
||||
error= 0;
|
||||
|
@ -1547,6 +1574,16 @@ int main(int argc, char** argv)
|
|||
my_free_open_file_info();
|
||||
/* We cannot free DBUG, it is used in global destructors after exit(). */
|
||||
my_end((info_flag ? MY_CHECK_ERROR : 0) | MY_DONT_FREE_DBUG);
|
||||
|
||||
if (file_not_closed_error)
|
||||
{
|
||||
fprintf(stderr,
|
||||
"\nError: attempting to dump binlog '%s' which was not closed properly.\n"
|
||||
"Most probably mysqld is still writting it, or crashed.\n"
|
||||
"Your current options specify --disable-force-if-open\n"
|
||||
"which means to abort on this problem.\n"
|
||||
"You can rerun using --force-if-open to ignore this problem.\n\n", argv[-1]);
|
||||
}
|
||||
exit(exit_value);
|
||||
DBUG_RETURN(exit_value); // Keep compilers happy
|
||||
}
|
||||
|
|
|
@ -49,8 +49,8 @@ static char *add_load_option(char *ptr,const char *object,
|
|||
static my_bool verbose=0,lock_tables=0,ignore_errors=0,opt_delete=0,
|
||||
replace=0,silent=0,ignore=0,opt_compress=0,
|
||||
opt_low_priority= 0, tty_password= 0;
|
||||
static my_bool opt_use_threads= 0, info_flag= 0;
|
||||
static uint opt_local_file=0;
|
||||
static my_bool info_flag= 0;
|
||||
static uint opt_use_threads=0, opt_local_file=0;
|
||||
static char *opt_password=0, *current_user=0,
|
||||
*current_host=0, *current_db=0, *fields_terminated=0,
|
||||
*lines_terminated=0, *enclosed=0, *opt_enclosed=0,
|
||||
|
|
|
@ -725,6 +725,20 @@ void close_connections()
|
|||
}
|
||||
|
||||
|
||||
void close_statements()
|
||||
{
|
||||
struct st_connection *con;
|
||||
DBUG_ENTER("close_statements");
|
||||
for (con= connections; con < next_con; con++)
|
||||
{
|
||||
if (con->stmt)
|
||||
mysql_stmt_close(con->stmt);
|
||||
con->stmt= 0;
|
||||
}
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
|
||||
void close_files()
|
||||
{
|
||||
DBUG_ENTER("close_files");
|
||||
|
@ -1246,7 +1260,9 @@ void var_set(const char *var_name, const char *var_name_end,
|
|||
v->int_dirty= 0;
|
||||
v->str_val_len= strlen(v->str_val);
|
||||
}
|
||||
strxmov(buf, v->name, "=", v->str_val, NullS);
|
||||
my_snprintf(buf, sizeof(buf), "%.*s=%.*s",
|
||||
v->name_len, v->name,
|
||||
v->str_val_len, v->str_val);
|
||||
if (!(v->env_s= my_strdup(buf, MYF(MY_WME))))
|
||||
die("Out of memory");
|
||||
putenv(v->env_s);
|
||||
|
@ -2906,6 +2922,10 @@ void do_close_connection(struct st_command *command)
|
|||
}
|
||||
}
|
||||
#endif
|
||||
if (next_con->stmt)
|
||||
mysql_stmt_close(next_con->stmt);
|
||||
next_con->stmt= 0;
|
||||
|
||||
mysql_close(&con->mysql);
|
||||
if (con->util_mysql)
|
||||
mysql_close(con->util_mysql);
|
||||
|
@ -2974,7 +2994,12 @@ void safe_connect(MYSQL* mysql, const char *name, const char *host,
|
|||
if ((mysql_errno(mysql) == CR_CONN_HOST_ERROR ||
|
||||
mysql_errno(mysql) == CR_CONNECTION_ERROR) &&
|
||||
failed_attempts < opt_max_connect_retries)
|
||||
{
|
||||
verbose_msg("Connect attempt %d/%d failed: %d: %s", failed_attempts,
|
||||
opt_max_connect_retries, mysql_errno(mysql),
|
||||
mysql_error(mysql));
|
||||
my_sleep(connection_retry_sleep);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (failed_attempts > 0)
|
||||
|
@ -4691,10 +4716,9 @@ void run_query_normal(struct st_connection *cn, struct st_command *command,
|
|||
}
|
||||
|
||||
/*
|
||||
Store the result. If res is NULL, use mysql_field_count to
|
||||
determine if that was expected
|
||||
Store the result of the query if it will return any fields
|
||||
*/
|
||||
if (!(res= mysql_store_result(mysql)) && mysql_field_count(mysql))
|
||||
if (mysql_field_count(mysql) && ((res= mysql_store_result(mysql)) == 0))
|
||||
{
|
||||
handle_error(command, mysql_errno(mysql), mysql_error(mysql),
|
||||
mysql_sqlstate(mysql), ds);
|
||||
|
@ -4746,7 +4770,10 @@ void run_query_normal(struct st_connection *cn, struct st_command *command,
|
|||
}
|
||||
|
||||
if (res)
|
||||
{
|
||||
mysql_free_result(res);
|
||||
res= 0;
|
||||
}
|
||||
counter++;
|
||||
} while (!(err= mysql_next_result(mysql)));
|
||||
if (err > 0)
|
||||
|
@ -4813,7 +4840,7 @@ void handle_error(struct st_command *command,
|
|||
err_errno, err_error);
|
||||
|
||||
/* Abort the run of this test, pass the failed query as reason */
|
||||
abort_not_supported_test("Query '%s' failed, required functionality" \
|
||||
abort_not_supported_test("Query '%s' failed, required functionality " \
|
||||
"not supported", command->query);
|
||||
}
|
||||
|
||||
|
@ -5103,6 +5130,14 @@ end:
|
|||
dynstr_free(&ds_execute_warnings);
|
||||
}
|
||||
|
||||
|
||||
/* Close the statement if - no reconnect, need new prepare */
|
||||
if (mysql->reconnect)
|
||||
{
|
||||
mysql_stmt_close(stmt);
|
||||
cur_con->stmt= NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
We save the return code (mysql_stmt_errno(stmt)) from the last call sent
|
||||
to the server into the mysqltest builtin variable $mysql_errno. This
|
||||
|
@ -5110,10 +5145,7 @@ end:
|
|||
*/
|
||||
|
||||
var_set_errno(mysql_stmt_errno(stmt));
|
||||
#ifndef BUG15518_FIXED
|
||||
mysql_stmt_close(stmt);
|
||||
cur_con->stmt= NULL;
|
||||
#endif
|
||||
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
|
@ -5900,6 +5932,8 @@ int main(int argc, char **argv)
|
|||
break;
|
||||
case Q_DISABLE_PS_PROTOCOL:
|
||||
ps_protocol_enabled= 0;
|
||||
/* Close any open statements */
|
||||
close_statements();
|
||||
break;
|
||||
case Q_ENABLE_PS_PROTOCOL:
|
||||
ps_protocol_enabled= ps_protocol;
|
||||
|
@ -5909,6 +5943,8 @@ int main(int argc, char **argv)
|
|||
break;
|
||||
case Q_ENABLE_RECONNECT:
|
||||
set_reconnect(&cur_con->mysql, 1);
|
||||
/* Close any open statements - no reconnect, need new prepare */
|
||||
close_statements();
|
||||
break;
|
||||
case Q_DISABLE_PARSING:
|
||||
if (parsing_disabled == 0)
|
||||
|
|
|
@ -229,10 +229,7 @@ AC_DEFUN([MYSQL_SETUP_NDBCLUSTER], [
|
|||
if test X"$ndb_binlog" = Xdefault ||
|
||||
test X"$ndb_binlog" = Xyes
|
||||
then
|
||||
if test X"$have_row_based" = Xyes
|
||||
then
|
||||
have_ndb_binlog="yes"
|
||||
fi
|
||||
have_ndb_binlog="yes"
|
||||
fi
|
||||
|
||||
if test X"$have_ndb_binlog" = Xyes
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
dnl This file contains configuration parameters for replication.
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Macro: MYSQL_CHECK_REPLICATION
|
||||
dnl Sets HAVE_ROW_BASED_REPLICATION if --with-row-based-replication is used
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
AC_DEFUN([MYSQL_CHECK_REPLICATION], [
|
||||
AC_ARG_WITH([row-based-replication],
|
||||
AC_HELP_STRING([--without-row-based-replication],
|
||||
[Don't include row-based replication]),
|
||||
[row_based="$withval"],
|
||||
[row_based=yes])
|
||||
AC_MSG_CHECKING([for row-based replication])
|
||||
|
||||
case "$row_based" in
|
||||
yes )
|
||||
AC_DEFINE([WITH_ROW_BASED_REPLICATION], [1], [Define to have row-based replication])
|
||||
AC_MSG_RESULT([-- including row-based replication])
|
||||
[have_row_based=yes]
|
||||
;;
|
||||
* )
|
||||
AC_MSG_RESULT([-- not including row-based replication])
|
||||
[have_row_based=no]
|
||||
;;
|
||||
esac
|
||||
])
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl END OF MYSQL_CHECK_REPLICATION
|
||||
dnl ---------------------------------------------------------------------------
|
|
@ -35,7 +35,6 @@ sinclude(config/ac-macros/ha_ndbcluster.m4)
|
|||
sinclude(config/ac-macros/large_file.m4)
|
||||
sinclude(config/ac-macros/misc.m4)
|
||||
sinclude(config/ac-macros/readline.m4)
|
||||
sinclude(config/ac-macros/replication.m4)
|
||||
sinclude(config/ac-macros/ssl.m4)
|
||||
sinclude(config/ac-macros/zlib.m4)
|
||||
|
||||
|
@ -2172,7 +2171,6 @@ AC_MSG_RESULT("$netinet_inc")
|
|||
|
||||
MYSQL_CHECK_BIG_TABLES
|
||||
MYSQL_CHECK_MAX_INDEXES
|
||||
MYSQL_CHECK_REPLICATION
|
||||
MYSQL_CHECK_VIO
|
||||
MYSQL_CHECK_SSL
|
||||
|
||||
|
@ -2438,9 +2436,9 @@ AM_CONDITIONAL(THREAD_SAFE_CLIENT, test "$THREAD_SAFE_CLIENT" != "no")
|
|||
|
||||
if test "$THREAD_SAFE_CLIENT" = "no"
|
||||
then
|
||||
sql_client_dirs="strings regex mysys extra libmysql client"
|
||||
sql_client_dirs="strings regex mysys dbug extra libmysql client"
|
||||
else
|
||||
sql_client_dirs="strings regex mysys extra libmysql libmysql_r client"
|
||||
sql_client_dirs="strings regex mysys dbug extra libmysql libmysql_r client"
|
||||
linked_client_targets="$linked_client_targets linked_libmysql_r_sources"
|
||||
AC_CONFIG_FILES(libmysql_r/Makefile)
|
||||
AC_DEFINE([THREAD_SAFE_CLIENT], [1], [Should the client be thread safe])
|
||||
|
|
|
@ -122,7 +122,7 @@ int read_file(SSL_CTX* ctx, const char* file, int format, CertType type)
|
|||
EVP_BytesToKey(info.name, "MD5", info.iv, (byte*)password,
|
||||
passwordSz, 1, key, iv);
|
||||
|
||||
STL::auto_ptr<BulkCipher> cipher;
|
||||
mySTL::auto_ptr<BulkCipher> cipher;
|
||||
if (strncmp(info.name, "DES-CBC", 7) == 0)
|
||||
cipher.reset(NEW_YS DES);
|
||||
else if (strncmp(info.name, "DES-EDE3-CBC", 13) == 0)
|
||||
|
@ -138,7 +138,7 @@ int read_file(SSL_CTX* ctx, const char* file, int format, CertType type)
|
|||
return SSL_BAD_FILE;
|
||||
}
|
||||
cipher->set_decryptKey(key, info.iv);
|
||||
STL::auto_ptr<x509> newx(NEW_YS x509(x->get_length()));
|
||||
mySTL::auto_ptr<x509> newx(NEW_YS x509(x->get_length()));
|
||||
cipher->decrypt(newx->use_buffer(), x->get_buffer(),
|
||||
x->get_length());
|
||||
ysDelete(x);
|
||||
|
|
|
@ -248,7 +248,6 @@ inline double ulonglong2double(ulonglong value)
|
|||
#define tell(A) _telli64(A)
|
||||
#endif
|
||||
|
||||
#define set_timespec(ABSTIME,SEC) { (ABSTIME).tv_sec=time((time_t*)0) + (time_t) (SEC); (ABSTIME).tv_nsec=0; }
|
||||
|
||||
#define STACK_DIRECTION -1
|
||||
|
||||
|
@ -435,7 +434,6 @@ inline double ulonglong2double(ulonglong value)
|
|||
|
||||
#define HAVE_SPATIAL 1
|
||||
#define HAVE_RTREE_KEYS 1
|
||||
#define HAVE_ROW_BASED_REPLICATION 1
|
||||
|
||||
#define HAVE_OPENSSL 1
|
||||
#define HAVE_YASSL 1
|
||||
|
|
|
@ -78,9 +78,6 @@
|
|||
#endif /* _WIN32... */
|
||||
|
||||
#ifndef EMBEDDED_LIBRARY
|
||||
#ifdef WITH_ROW_BASED_REPLICATION
|
||||
#define HAVE_ROW_BASED_REPLICATION 1
|
||||
#endif
|
||||
#ifdef WITH_NDB_BINLOG
|
||||
#define HAVE_NDB_BINLOG 1
|
||||
#endif
|
||||
|
@ -1141,41 +1138,7 @@ typedef char bool; /* Ordinary boolean values 0 1 */
|
|||
#define MY_HOW_OFTEN_TO_ALARM 2 /* How often we want info on screen */
|
||||
#define MY_HOW_OFTEN_TO_WRITE 1000 /* How often we want info on screen */
|
||||
|
||||
#ifdef HAVE_TIMESPEC_TS_SEC
|
||||
#ifndef set_timespec
|
||||
#define set_timespec(ABSTIME,SEC) \
|
||||
{ \
|
||||
(ABSTIME).ts_sec=time(0) + (time_t) (SEC); \
|
||||
(ABSTIME).ts_nsec=0; \
|
||||
}
|
||||
#endif /* !set_timespec */
|
||||
#ifndef set_timespec_nsec
|
||||
#define set_timespec_nsec(ABSTIME,NSEC) \
|
||||
{ \
|
||||
ulonglong now= my_getsystime() + (NSEC/100); \
|
||||
(ABSTIME).ts_sec= (now / ULL(10000000)); \
|
||||
(ABSTIME).ts_nsec= (now % ULL(10000000) * 100 + ((NSEC) % 100)); \
|
||||
}
|
||||
#endif /* !set_timespec_nsec */
|
||||
#else
|
||||
#ifndef set_timespec
|
||||
#define set_timespec(ABSTIME,SEC) \
|
||||
{\
|
||||
struct timeval tv;\
|
||||
gettimeofday(&tv,0);\
|
||||
(ABSTIME).tv_sec=tv.tv_sec+(time_t) (SEC);\
|
||||
(ABSTIME).tv_nsec=tv.tv_usec*1000;\
|
||||
}
|
||||
#endif /* !set_timespec */
|
||||
#ifndef set_timespec_nsec
|
||||
#define set_timespec_nsec(ABSTIME,NSEC) \
|
||||
{\
|
||||
ulonglong now= my_getsystime() + (NSEC/100); \
|
||||
(ABSTIME).tv_sec= (time_t) (now / ULL(10000000)); \
|
||||
(ABSTIME).tv_nsec= (long) (now % ULL(10000000) * 100 + ((NSEC) % 100)); \
|
||||
}
|
||||
#endif /* !set_timespec_nsec */
|
||||
#endif /* HAVE_TIMESPEC_TS_SEC */
|
||||
|
||||
|
||||
/*
|
||||
Define-funktions for reading and storing in machine independent format
|
||||
|
|
|
@ -30,8 +30,26 @@ extern "C" {
|
|||
#define EXTERNC
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#if defined(__WIN__)
|
||||
/*
|
||||
BUG#24507: Race conditions inside current NPTL pthread_exit() implementation.
|
||||
|
||||
If macro NPTL_PTHREAD_EXIT_HACK is defined then a hack described in the bug
|
||||
report will be implemented inside my_thread_global_init() in my_thr_init.c.
|
||||
|
||||
This amounts to spawning a dummy thread which does nothing but executes
|
||||
pthread_exit(0).
|
||||
|
||||
This bug is fixed in version 2.5 of glibc library.
|
||||
|
||||
TODO: Remove this code when fixed versions of glibc6 are in common use.
|
||||
*/
|
||||
|
||||
#if defined(TARGET_OS_LINUX) && defined(HAVE_NPTL) && \
|
||||
defined(__GLIBC__) && ( __GLIBC__ < 2 || __GLIBC__ == 2 && __GLIBC_MINOR__ < 5 )
|
||||
#define NPTL_PTHREAD_EXIT_BUG 1
|
||||
#endif
|
||||
|
||||
#if defined(__WIN__)
|
||||
typedef CRITICAL_SECTION pthread_mutex_t;
|
||||
typedef HANDLE pthread_t;
|
||||
typedef struct thread_attr {
|
||||
|
@ -55,16 +73,41 @@ typedef struct {
|
|||
} pthread_cond_t;
|
||||
|
||||
|
||||
struct timespec { /* For pthread_cond_timedwait() */
|
||||
time_t tv_sec;
|
||||
long tv_nsec;
|
||||
};
|
||||
|
||||
typedef int pthread_mutexattr_t;
|
||||
#define win_pthread_self my_thread_var->pthread_self
|
||||
#define pthread_handler_t EXTERNC void * __cdecl
|
||||
typedef void * (__cdecl *pthread_handler)(void *);
|
||||
|
||||
/*
|
||||
Struct and macros to be used in combination with the
|
||||
windows implementation of pthread_cond_timedwait
|
||||
*/
|
||||
|
||||
/*
|
||||
Declare a union to make sure FILETIME is properly aligned
|
||||
so it can be used directly as a 64 bit value. The value
|
||||
stored is in 100ns units.
|
||||
*/
|
||||
union ft64 {
|
||||
FILETIME ft;
|
||||
__int64 i64;
|
||||
};
|
||||
struct timespec {
|
||||
union ft64 tv;
|
||||
/* The max timeout value in millisecond for pthread_cond_timedwait */
|
||||
long max_timeout_msec;
|
||||
};
|
||||
#define set_timespec(ABSTIME,SEC) { \
|
||||
GetSystemTimeAsFileTime(&((ABSTIME).tv.ft)); \
|
||||
(ABSTIME).tv.i64+= (__int64)(SEC)*10000000; \
|
||||
(ABSTIME).max_timeout_msec= (long)((SEC)*1000); \
|
||||
}
|
||||
#define set_timespec_nsec(ABSTIME,NSEC) { \
|
||||
GetSystemTimeAsFileTime(&((ABSTIME).tv.ft)); \
|
||||
(ABSTIME).tv.i64+= (__int64)(NSEC)/100; \
|
||||
(ABSTIME).max_timeout_msec= (long)((NSEC)/1000000); \
|
||||
}
|
||||
|
||||
void win_pthread_init(void);
|
||||
int win_pthread_setspecific(void *A,void *B,uint length);
|
||||
int pthread_create(pthread_t *,pthread_attr_t *,pthread_handler,void *);
|
||||
|
@ -140,8 +183,6 @@ void pthread_exit(void *a); /* was #define pthread_exit(A) ExitThread(A)*/
|
|||
#define pthread_condattr_init(A)
|
||||
#define pthread_condattr_destroy(A)
|
||||
|
||||
/*Irena: compiler does not like this: */
|
||||
/*#define my_pthread_getprio(pthread_t thread_id) pthread_dummy(0) */
|
||||
#define my_pthread_getprio(thread_id) pthread_dummy(0)
|
||||
|
||||
#else /* Normal threads */
|
||||
|
@ -366,6 +407,47 @@ void my_pthread_attr_getstacksize(pthread_attr_t *attrib, size_t *size);
|
|||
int my_pthread_mutex_trylock(pthread_mutex_t *mutex);
|
||||
#endif
|
||||
|
||||
/*
|
||||
The defines set_timespec and set_timespec_nsec should be used
|
||||
for calculating an absolute time at which
|
||||
pthread_cond_timedwait should timeout
|
||||
*/
|
||||
#ifdef HAVE_TIMESPEC_TS_SEC
|
||||
#ifndef set_timespec
|
||||
#define set_timespec(ABSTIME,SEC) \
|
||||
{ \
|
||||
(ABSTIME).ts_sec=time(0) + (time_t) (SEC); \
|
||||
(ABSTIME).ts_nsec=0; \
|
||||
}
|
||||
#endif /* !set_timespec */
|
||||
#ifndef set_timespec_nsec
|
||||
#define set_timespec_nsec(ABSTIME,NSEC) \
|
||||
{ \
|
||||
ulonglong now= my_getsystime() + (NSEC/100); \
|
||||
(ABSTIME).ts_sec= (now / ULL(10000000)); \
|
||||
(ABSTIME).ts_nsec= (now % ULL(10000000) * 100 + ((NSEC) % 100)); \
|
||||
}
|
||||
#endif /* !set_timespec_nsec */
|
||||
#else
|
||||
#ifndef set_timespec
|
||||
#define set_timespec(ABSTIME,SEC) \
|
||||
{\
|
||||
struct timeval tv;\
|
||||
gettimeofday(&tv,0);\
|
||||
(ABSTIME).tv_sec=tv.tv_sec+(time_t) (SEC);\
|
||||
(ABSTIME).tv_nsec=tv.tv_usec*1000;\
|
||||
}
|
||||
#endif /* !set_timespec */
|
||||
#ifndef set_timespec_nsec
|
||||
#define set_timespec_nsec(ABSTIME,NSEC) \
|
||||
{\
|
||||
ulonglong now= my_getsystime() + (NSEC/100); \
|
||||
(ABSTIME).tv_sec= (time_t) (now / ULL(10000000)); \
|
||||
(ABSTIME).tv_nsec= (long) (now % ULL(10000000) * 100 + ((NSEC) % 100)); \
|
||||
}
|
||||
#endif /* !set_timespec_nsec */
|
||||
#endif /* HAVE_TIMESPEC_TS_SEC */
|
||||
|
||||
/* safe_mutex adds checking to mutex for easier debugging */
|
||||
|
||||
#if defined(__NETWARE__) && !defined(SAFE_MUTEX_DETECT_DESTROY)
|
||||
|
|
|
@ -782,6 +782,8 @@ extern my_bool init_dynamic_string(DYNAMIC_STRING *str, const char *init_str,
|
|||
extern my_bool dynstr_append(DYNAMIC_STRING *str, const char *append);
|
||||
my_bool dynstr_append_mem(DYNAMIC_STRING *str, const char *append,
|
||||
uint length);
|
||||
extern my_bool dynstr_append_os_quoted(DYNAMIC_STRING *str, const char *append,
|
||||
...);
|
||||
extern my_bool dynstr_set(DYNAMIC_STRING *str, const char *init_str);
|
||||
extern my_bool dynstr_realloc(DYNAMIC_STRING *str, ulong additional_size);
|
||||
extern my_bool dynstr_trunc(DYNAMIC_STRING *str, int n);
|
||||
|
|
|
@ -64,9 +64,9 @@ typedef int my_socket;
|
|||
#endif /* my_socket_defined */
|
||||
#endif /* _global_h */
|
||||
|
||||
#include "mysql_version.h"
|
||||
#include "mysql_com.h"
|
||||
#include "mysql_time.h"
|
||||
#include "mysql_version.h"
|
||||
#include "typelib.h"
|
||||
|
||||
#include "my_list.h" /* for LISTs used in 'MYSQL' and 'MYSQL_STMT' */
|
||||
|
|
|
@ -36,6 +36,8 @@ enum mysql_status;
|
|||
typedef struct st_mysql_rows MYSQL_ROWS;
|
||||
# 24 "my_list.h"
|
||||
typedef struct st_list LIST;
|
||||
# 35 "my_alloc.h"
|
||||
typedef struct st_mem_root MEM_ROOT;
|
||||
# 251 "mysql.h"
|
||||
typedef struct st_mysql MYSQL;
|
||||
# 653 "mysql.h"
|
||||
|
@ -60,7 +62,7 @@ typedef struct st_mysql_stmt MYSQL_STMT;
|
|||
typedef struct character_set MY_CHARSET_INFO;
|
||||
# 184 "mysql_com.h"
|
||||
typedef struct st_net NET;
|
||||
# 21 "typelib.h"
|
||||
# 23 "typelib.h"
|
||||
typedef struct st_typelib TYPELIB;
|
||||
# 174 "mysql_com.h"
|
||||
typedef struct st_vio Vio;
|
||||
|
@ -76,8 +78,6 @@ typedef int my_socket;
|
|||
typedef unsigned long long int my_ulonglong;
|
||||
# 144 "mysql.h"
|
||||
typedef struct embedded_query_result EMBEDDED_QUERY_RESULT;
|
||||
# 35 "my_alloc.h"
|
||||
typedef struct st_mem_root MEM_ROOT;
|
||||
# 145 "mysql.h"
|
||||
typedef struct st_mysql_data MYSQL_DATA;
|
||||
# 750 "mysql.h"
|
||||
|
@ -172,6 +172,7 @@ struct __attribute__((aligned(__alignof__(void *)), aligned(__alignof__(unsigned
|
|||
struct st_mysql_methods const * methods;
|
||||
void * thd;
|
||||
my_bool * unbuffered_fetch_owner;
|
||||
char * info_buffer;
|
||||
};
|
||||
# 653 "mysql.h"
|
||||
struct __attribute__((aligned(__alignof__(void *)), aligned(__alignof__(unsigned long int)))) st_mysql_bind
|
||||
|
@ -419,7 +420,7 @@ struct __attribute__((aligned(__alignof__(void *)), aligned(__alignof__(unsigned
|
|||
my_bool report_error;
|
||||
my_bool return_errno;
|
||||
};
|
||||
# 21 "typelib.h"
|
||||
# 23 "typelib.h"
|
||||
struct __attribute__((aligned(__alignof__(unsigned int)), aligned(__alignof__(void *)))) st_typelib
|
||||
{
|
||||
unsigned int count;
|
||||
|
@ -576,6 +577,7 @@ enum mysql_enum_shutdown_level
|
|||
SHUTDOWN_WAIT_UPDATES = (unsigned char)((1 << 3)),
|
||||
SHUTDOWN_WAIT_ALL_BUFFERS = ((unsigned char)((1 << 3)) << 1),
|
||||
SHUTDOWN_WAIT_CRITICAL_BUFFERS = (((unsigned char)((1 << 3)) << 1) + 1),
|
||||
KILL_QUERY = 254,
|
||||
KILL_CONNECTION = 255,
|
||||
};
|
||||
# 154 "mysql.h"
|
||||
|
@ -631,9 +633,11 @@ enum mysql_status
|
|||
extern my_bool check_scramble(char const * reply, char const * message, unsigned char const * hash_stage2);
|
||||
# 420 "mysql_com.h"
|
||||
extern my_bool check_scramble_323(char const *, char const * message, unsigned long int * salt);
|
||||
# 33 "typelib.h"
|
||||
extern TYPELIB * copy_typelib(MEM_ROOT * root, TYPELIB * from);
|
||||
# 415 "mysql_com.h"
|
||||
extern void create_random_string(char * to, unsigned int, struct rand_struct * rand_st);
|
||||
# 28 "typelib.h"
|
||||
# 30 "typelib.h"
|
||||
extern int find_type(char * x, TYPELIB * typelib, unsigned int);
|
||||
# 429 "mysql_com.h"
|
||||
extern void get_salt_from_password(unsigned char * res, char const * password);
|
||||
|
@ -641,7 +645,7 @@ extern void get_salt_from_password(unsigned char * res, char const * password);
|
|||
extern void get_salt_from_password_323(unsigned long int * res, char const * password);
|
||||
# 435 "mysql_com.h"
|
||||
extern char * get_tty_password(char const * opt_message);
|
||||
# 30 "typelib.h"
|
||||
# 32 "typelib.h"
|
||||
extern char const * get_type(TYPELIB * typelib, unsigned int);
|
||||
# 417 "mysql_com.h"
|
||||
extern void hash_password(unsigned long int * to, char const * password, unsigned int);
|
||||
|
@ -667,7 +671,7 @@ extern void make_password_from_salt_323(char * to, unsigned long int const * sal
|
|||
extern void make_scrambled_password(char * to, char const * password);
|
||||
# 418 "mysql_com.h"
|
||||
extern void make_scrambled_password_323(char * to, char const * password);
|
||||
# 29 "typelib.h"
|
||||
# 31 "typelib.h"
|
||||
extern void make_type(char * to, unsigned int, TYPELIB * typelib);
|
||||
# 358 "mysql_com.h"
|
||||
extern int my_connect(my_socket, struct sockaddr const * name, unsigned int, unsigned int);
|
||||
|
@ -957,5 +961,5 @@ extern void randominit(struct rand_struct *, unsigned long int, unsigned long in
|
|||
extern void scramble(char * to, char const * message, char const * password);
|
||||
# 419 "mysql_com.h"
|
||||
extern void scramble_323(char * to, char const * message, char const * password);
|
||||
# 32 "typelib.h"
|
||||
# 35 "typelib.h"
|
||||
extern TYPELIB sql_protocol_typelib;
|
||||
|
|
|
@ -17,6 +17,8 @@
|
|||
#ifndef _typelib_h
|
||||
#define _typelib_h
|
||||
|
||||
#include "my_alloc.h"
|
||||
|
||||
typedef struct st_typelib { /* Different types saved here */
|
||||
unsigned int count; /* How many types */
|
||||
const char *name; /* Name of typelib */
|
||||
|
@ -27,6 +29,7 @@ typedef struct st_typelib { /* Different types saved here */
|
|||
extern int find_type(char *x,TYPELIB *typelib,unsigned int full_name);
|
||||
extern void make_type(char *to,unsigned int nr,TYPELIB *typelib);
|
||||
extern const char *get_type(TYPELIB *typelib,unsigned int nr);
|
||||
extern TYPELIB *copy_typelib(MEM_ROOT *root, TYPELIB *from);
|
||||
|
||||
extern TYPELIB sql_protocol_typelib;
|
||||
|
||||
|
|
|
@ -2036,6 +2036,13 @@ mysql_stmt_prepare(MYSQL_STMT *stmt, const char *query, ulong length)
|
|||
DBUG_RETURN(1);
|
||||
}
|
||||
|
||||
/*
|
||||
Reset the last error in any case: that would clear the statement
|
||||
if the previous prepare failed.
|
||||
*/
|
||||
stmt->last_errno= 0;
|
||||
stmt->last_error[0]= '\0';
|
||||
|
||||
if ((int) stmt->state > (int) MYSQL_STMT_INIT_DONE)
|
||||
{
|
||||
/* This is second prepare with another statement */
|
||||
|
@ -2049,23 +2056,24 @@ mysql_stmt_prepare(MYSQL_STMT *stmt, const char *query, ulong length)
|
|||
*/
|
||||
stmt->bind_param_done= stmt->bind_result_done= FALSE;
|
||||
stmt->param_count= stmt->field_count= 0;
|
||||
stmt->last_errno= 0;
|
||||
stmt->last_error[0]= '\0';
|
||||
free_root(&stmt->mem_root, MYF(MY_KEEP_PREALLOC));
|
||||
|
||||
int4store(buff, stmt->stmt_id);
|
||||
|
||||
/*
|
||||
Close statement in server
|
||||
|
||||
If there was a 'use' result from another statement, or from
|
||||
mysql_use_result it won't be freed in mysql_stmt_free_result and
|
||||
we should get 'Commands out of sync' here.
|
||||
*/
|
||||
stmt->state= MYSQL_STMT_INIT_DONE;
|
||||
if (stmt_command(mysql, COM_STMT_CLOSE, buff, 4, stmt))
|
||||
{
|
||||
set_stmt_errmsg(stmt, mysql->net.last_error, mysql->net.last_errno,
|
||||
mysql->net.sqlstate);
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
stmt->state= MYSQL_STMT_INIT_DONE;
|
||||
}
|
||||
|
||||
if (stmt_command(mysql, COM_STMT_PREPARE, query, length, stmt))
|
||||
|
|
|
@ -18,8 +18,7 @@ SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX")
|
|||
|
||||
# Need to set USE_TLS, since __declspec(thread) approach to thread local
|
||||
# storage does not work properly in DLLs.
|
||||
ADD_DEFINITIONS(-DUSE_TLS -DHAVE_ROW_BASED_REPLICATION -DMYSQL_SERVER
|
||||
-DEMBEDDED_LIBRARY)
|
||||
ADD_DEFINITIONS(-DUSE_TLS -DMYSQL_SERVER -DEMBEDDED_LIBRARY)
|
||||
|
||||
# The old Windows build method used renamed (.cc -> .cpp) source files, fails
|
||||
# in #include in lib_sql.cc. So disable that using the USING_CMAKE define.
|
||||
|
|
|
@ -14,6 +14,7 @@ show binlog events from 102;
|
|||
# more important than SHOW BINLOG EVENTS, mysqlbinlog (where we
|
||||
# absolutely need variables names to be quoted and strings to be
|
||||
# escaped).
|
||||
flush logs;
|
||||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
||||
--exec $MYSQL_BINLOG --short-form $MYSQLTEST_VARDIR/log/master-bin.000001
|
||||
drop table t2;
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
--source include/have_row_based.inc
|
||||
--source include/have_binlog_format_row.inc
|
||||
--source include/master-slave.inc
|
||||
|
||||
|
|
|
@ -7,7 +7,9 @@
|
|||
connection master;
|
||||
let $VERSION=`select version()`;
|
||||
eval create table t1(a int not null primary key) engine=$engine_type;
|
||||
insert delayed into t1 values (1),(2),(3);
|
||||
insert delayed into t1 values (1);
|
||||
insert delayed into t1 values (2);
|
||||
insert delayed into t1 values (3);
|
||||
flush tables;
|
||||
SELECT * FROM t1 ORDER BY a;
|
||||
sync_slave_with_master;
|
||||
|
|
|
@ -80,28 +80,28 @@ INSERT INTO t1_bit VALUES (1,2);
|
|||
INSERT INTO t1_bit VALUES (2,5);
|
||||
INSERT INTO t1_char VALUES (1,2);
|
||||
INSERT INTO t1_char VALUES (2,5);
|
||||
SELECT * FROM t1_int;
|
||||
SELECT * FROM t1_bit;
|
||||
SELECT * FROM t1_char;
|
||||
SELECT * FROM t1_int ORDER BY a;
|
||||
SELECT * FROM t1_bit ORDER BY a;
|
||||
SELECT * FROM t1_char ORDER BY a;
|
||||
--echo **** On Slave ****
|
||||
sync_slave_with_master;
|
||||
SELECT a,b,x FROM t1_int;
|
||||
SELECT a,b,HEX(x),HEX(y),HEX(z) FROM t1_bit;
|
||||
SELECT a,b,x FROM t1_char;
|
||||
SELECT a,b,x FROM t1_int ORDER BY a;
|
||||
SELECT a,b,HEX(x),HEX(y),HEX(z) FROM t1_bit ORDER BY a;
|
||||
SELECT a,b,x FROM t1_char ORDER BY a;
|
||||
|
||||
--echo **** On Master ****
|
||||
connection master;
|
||||
UPDATE t1_int SET b=2*b WHERE a=2;
|
||||
UPDATE t1_char SET b=2*b WHERE a=2;
|
||||
UPDATE t1_bit SET b=2*b WHERE a=2;
|
||||
SELECT * FROM t1_int;
|
||||
SELECT * FROM t1_bit;
|
||||
SELECT * FROM t1_char;
|
||||
SELECT * FROM t1_int ORDER BY a;
|
||||
SELECT * FROM t1_bit ORDER BY a;
|
||||
SELECT * FROM t1_char ORDER BY a;
|
||||
--echo **** On Slave ****
|
||||
sync_slave_with_master;
|
||||
SELECT a,b,x FROM t1_int;
|
||||
SELECT a,b,HEX(x),HEX(y),HEX(z) FROM t1_bit;
|
||||
SELECT a,b,x FROM t1_char;
|
||||
SELECT a,b,x FROM t1_int ORDER BY a;
|
||||
SELECT a,b,HEX(x),HEX(y),HEX(z) FROM t1_bit ORDER BY a;
|
||||
SELECT a,b,x FROM t1_char ORDER BY a;
|
||||
|
||||
# Each of these inserts should generate an error and stop the slave
|
||||
|
||||
|
@ -188,11 +188,11 @@ sync_slave_with_master;
|
|||
connection master;
|
||||
INSERT INTO t7 VALUES (1),(2),(3);
|
||||
INSERT INTO t8 VALUES (1),(2),(3);
|
||||
SELECT * FROM t7;
|
||||
SELECT * FROM t8;
|
||||
SELECT * FROM t7 ORDER BY a;
|
||||
SELECT * FROM t8 ORDER BY a;
|
||||
sync_slave_with_master;
|
||||
SELECT * FROM t7;
|
||||
SELECT * FROM t8;
|
||||
SELECT * FROM t7 ORDER BY a;
|
||||
SELECT * FROM t8 ORDER BY a;
|
||||
|
||||
# We will now try to update and then delete a row on the master where
|
||||
# the extra field on the slave does not have a default value. This
|
||||
|
@ -216,20 +216,20 @@ INSERT INTO t1_nodef VALUES (2,4,6);
|
|||
--echo **** On Master ****
|
||||
connection master;
|
||||
UPDATE t1_nodef SET b=2*b WHERE a=1;
|
||||
SELECT * FROM t1_nodef;
|
||||
SELECT * FROM t1_nodef ORDER BY a;
|
||||
|
||||
--echo **** On Slave ****
|
||||
sync_slave_with_master;
|
||||
SELECT * FROM t1_nodef;
|
||||
SELECT * FROM t1_nodef ORDER BY a;
|
||||
|
||||
--echo **** On Master ****
|
||||
connection master;
|
||||
DELETE FROM t1_nodef WHERE a=2;
|
||||
SELECT * FROM t1_nodef;
|
||||
SELECT * FROM t1_nodef ORDER BY a;
|
||||
|
||||
--echo **** On Slave ****
|
||||
sync_slave_with_master;
|
||||
SELECT * FROM t1_nodef;
|
||||
SELECT * FROM t1_nodef ORDER BY a;
|
||||
|
||||
--echo **** Cleanup ****
|
||||
connection master;
|
||||
|
|
|
@ -156,6 +156,7 @@ select hex(c1), hex(c2) from t1;
|
|||
|
||||
connection master;
|
||||
# Let's have a look at generated SETs.
|
||||
flush logs;
|
||||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
||||
--exec $MYSQL_BINLOG --short-form $MYSQLTEST_VARDIR/log/master-bin.000001
|
||||
drop table t1;
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
#
|
||||
# Author(s): Mats Kindahl
|
||||
|
||||
--source include/have_row_based.inc
|
||||
--source include/master-slave.inc
|
||||
|
||||
let $format = STATEMENT;
|
||||
|
|
16
mysql-test/include/have_example_plugin.inc
Normal file
16
mysql-test/include/have_example_plugin.inc
Normal file
|
@ -0,0 +1,16 @@
|
|||
#
|
||||
# Check if server has support for loading udf's
|
||||
# i.e it will support dlopen
|
||||
#
|
||||
--require r/have_dynamic_loading.require
|
||||
disable_query_log;
|
||||
show variables like "have_dynamic_loading";
|
||||
enable_query_log;
|
||||
|
||||
#
|
||||
# Check if the variable EXAMPLE_PLUGIN is set
|
||||
#
|
||||
--require r/have_example_plugin.require
|
||||
disable_query_log;
|
||||
eval select LENGTH("$EXAMPLE_PLUGIN") > 0 as "have_example_plugin";
|
||||
enable_query_log;
|
|
@ -24,5 +24,9 @@ flush tables;
|
|||
select support = 'Enabled' as `TRUE` from information_schema.engines where engine = 'ndbcluster';
|
||||
enable_query_log;
|
||||
|
||||
# Check should be here as well...
|
||||
# # Check that second master mysqld has come out of redonly mode
|
||||
# --source include/ndb_not_readonly.inc
|
||||
|
||||
# Set the default connection to 'server1'
|
||||
connection server1;
|
||||
|
|
|
@ -5,3 +5,5 @@ select support = 'Enabled' as `TRUE` from information_schema.engines where engin
|
|||
enable_query_log;
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
-- require r/have_row_based.require
|
||||
disable_query_log;
|
||||
show variables like "have_row_based_replication";
|
||||
enable_query_log;
|
|
@ -2,7 +2,7 @@
|
|||
# Check if server has support for loading udf's
|
||||
# i.e it will support dlopen
|
||||
#
|
||||
--require r/have_udf.require
|
||||
--require r/have_dynamic_loading.require
|
||||
disable_query_log;
|
||||
show variables like "have_dynamic_loading";
|
||||
enable_query_log;
|
||||
|
|
31
mysql-test/include/ndb_not_readonly.inc
Normal file
31
mysql-test/include/ndb_not_readonly.inc
Normal file
|
@ -0,0 +1,31 @@
|
|||
# Check that server has come out ot readonly mode
|
||||
--disable_query_log
|
||||
let $counter= 100;
|
||||
let $mysql_errno= 1;
|
||||
while ($mysql_errno)
|
||||
{
|
||||
--error 0, 1005
|
||||
create table check_read_only(a int) engine=NDB;
|
||||
sleep 0.1;
|
||||
if (!$counter)
|
||||
{
|
||||
die("Failed while waiting for mysqld to come out of readonly mode");
|
||||
}
|
||||
dec $counter;
|
||||
}
|
||||
|
||||
let $counter= 100;
|
||||
let $mysql_errno= 1;
|
||||
while ($mysql_errno)
|
||||
{
|
||||
--error 0, 1036
|
||||
insert into check_read_only values(1);
|
||||
sleep 0.1;
|
||||
if (!$counter)
|
||||
{
|
||||
die("Failed while waiting for mysqld to come out of readonly mode");
|
||||
}
|
||||
dec $counter;
|
||||
}
|
||||
drop table check_read_only;
|
||||
--enable_query_log
|
|
@ -1,4 +0,0 @@
|
|||
-- require r/not_row_based.require
|
||||
disable_query_log;
|
||||
show variables like "have_row_based_replication";
|
||||
enable_query_log;
|
|
@ -302,6 +302,7 @@ sub collect_one_test_case($$$$$$$) {
|
|||
$tinfo->{'timezone'}= "GMT-3"; # for UNIX_TIMESTAMP tests to work
|
||||
|
||||
$tinfo->{'slave_num'}= 0; # Default, no slave
|
||||
$tinfo->{'master_num'}= 1; # Default, 1 master
|
||||
if ( defined mtr_match_prefix($tname,"rpl") )
|
||||
{
|
||||
if ( $::opt_skip_rpl )
|
||||
|
@ -311,13 +312,8 @@ sub collect_one_test_case($$$$$$$) {
|
|||
return;
|
||||
}
|
||||
|
||||
|
||||
$tinfo->{'slave_num'}= 1; # Default for rpl* tests, use one slave
|
||||
|
||||
if ( $tname eq 'rpl_failsafe' or $tname eq 'rpl_chain_temp_table' )
|
||||
{
|
||||
# $tinfo->{'slave_num'}= 3; # Not 3 ? Check old code, strange
|
||||
}
|
||||
}
|
||||
|
||||
if ( defined mtr_match_prefix($tname,"federated") )
|
||||
|
@ -555,6 +551,8 @@ sub collect_one_test_case($$$$$$$) {
|
|||
$tinfo->{'comment'}= "No ndbcluster tests(--skip-ndbcluster)";
|
||||
return;
|
||||
}
|
||||
# Ndb tests run with two mysqld masters
|
||||
$tinfo->{'master_num'}= 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -570,7 +568,7 @@ sub collect_one_test_case($$$$$$$) {
|
|||
|
||||
if ( $tinfo->{'innodb_test'} )
|
||||
{
|
||||
# This is a test that need inndob
|
||||
# This is a test that need innodb
|
||||
if ( $::mysqld_variables{'innodb'} eq "FALSE" )
|
||||
{
|
||||
# innodb is not supported, skip it
|
||||
|
|
|
@ -234,7 +234,8 @@ sub spawn_parent_impl {
|
|||
my $ret_pid= waitpid($pid,0);
|
||||
if ( $ret_pid != $pid )
|
||||
{
|
||||
mtr_error("$path ($pid) got lost somehow");
|
||||
mtr_error("waitpid($pid, 0) returned $ret_pid " .
|
||||
"when waiting for '$path'");
|
||||
}
|
||||
|
||||
return mtr_process_exit_status($?);
|
||||
|
|
|
@ -2160,7 +2160,7 @@ then
|
|||
$MYSQLADMIN --no-defaults --socket=$MASTER_MYSOCK1 -u root -O connect_timeout=5 -O shutdown_timeout=20 shutdown > /dev/null 2>&1
|
||||
$MYSQLADMIN --no-defaults --socket=$SLAVE_MYSOCK -u root -O connect_timeout=5 -O shutdown_timeout=20 shutdown > /dev/null 2>&1
|
||||
$MYSQLADMIN --no-defaults --host=$hostname --port=$MASTER_MYPORT --protocol=tcp -u root -O connect_timeout=5 -O shutdown_timeout=20 shutdown > /dev/null 2>&1
|
||||
$MYSQLADMIN --no-defaults --host=$hostname --protocol=tcp --port=`expr $MASTER_MYPORT+1` -u root -O connect_timeout=5 -O shutdown_timeout=20 shutdown > /dev/null 2>&1
|
||||
$MYSQLADMIN --no-defaults --host=$hostname --protocol=tcp --port=`expr $MASTER_MYPORT + 1` -u root -O connect_timeout=5 -O shutdown_timeout=20 shutdown > /dev/null 2>&1
|
||||
$MYSQLADMIN --no-defaults --host=$hostname --protocol=tcp --port=$SLAVE_MYPORT -u root -O connect_timeout=5 -O shutdown_timeout=20 shutdown > /dev/null 2>&1
|
||||
$MYSQLADMIN --no-defaults --host=$hostname --protocol=tcp --port=`expr $SLAVE_MYPORT + 1` -u root -O connect_timeout=5 -O shutdown_timeout=20 shutdown > /dev/null 2>&1
|
||||
sleep_until_file_deleted 0 $MASTER_MYPID
|
||||
|
|
|
@ -160,6 +160,7 @@ our $exe_im;
|
|||
our $exe_my_print_defaults;
|
||||
our $exe_perror;
|
||||
our $lib_udf_example;
|
||||
our $lib_example_plugin;
|
||||
our $exe_libtool;
|
||||
|
||||
our $opt_bench= 0;
|
||||
|
@ -231,10 +232,12 @@ our $opt_ndbconnectstring_slave;
|
|||
our $opt_record;
|
||||
my $opt_report_features;
|
||||
our $opt_check_testcases;
|
||||
our $opt_mark_progress;
|
||||
|
||||
our $opt_skip;
|
||||
our $opt_skip_rpl;
|
||||
our $max_slave_num= 0;
|
||||
our $max_master_num= 1;
|
||||
our $use_innodb;
|
||||
our $opt_skip_test;
|
||||
our $opt_skip_im;
|
||||
|
@ -413,6 +416,15 @@ sub main () {
|
|||
$max_slave_num= $test->{slave_num};
|
||||
mtr_error("Too many slaves") if $max_slave_num > 3;
|
||||
}
|
||||
|
||||
# Count max number of masters used by a test case
|
||||
if ( $test->{master_num} > $max_master_num)
|
||||
{
|
||||
$max_master_num= $test->{master_num};
|
||||
mtr_error("Too many masters") if $max_master_num > 2;
|
||||
mtr_error("Too few masters") if $max_master_num < 1;
|
||||
}
|
||||
|
||||
$use_innodb||= $test->{'innodb_test'};
|
||||
}
|
||||
|
||||
|
@ -536,6 +548,7 @@ sub command_line_setup () {
|
|||
# Test case authoring
|
||||
'record' => \$opt_record,
|
||||
'check-testcases' => \$opt_check_testcases,
|
||||
'mark-progress' => \$opt_mark_progress,
|
||||
|
||||
# Extra options used when starting mysqld
|
||||
'mysqld=s' => \@opt_extra_mysqld_opt,
|
||||
|
@ -1211,6 +1224,19 @@ sub command_line_setup () {
|
|||
$path_ndb_testrun_log= "$opt_vardir/log/ndb_testrun.log";
|
||||
|
||||
$path_snapshot= "$opt_tmpdir/snapshot_$opt_master_myport/";
|
||||
|
||||
if ( $opt_valgrind and $opt_debug )
|
||||
{
|
||||
# When both --valgrind and --debug is selected, send
|
||||
# all output to the trace file, making it possible to
|
||||
# see the exact location where valgrind complains
|
||||
foreach my $mysqld (@{$master}, @{$slave})
|
||||
{
|
||||
my $sidx= $mysqld->{idx} ? "$mysqld->{idx}" : "";
|
||||
$mysqld->{path_myerr}=
|
||||
"$opt_vardir/log/" . $mysqld->{type} . "$sidx.trace";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#
|
||||
|
@ -1259,9 +1285,10 @@ sub set_mtr_build_thread_ports($) {
|
|||
sub datadir_list_setup () {
|
||||
|
||||
# Make a list of all data_dirs
|
||||
@data_dir_lst = (
|
||||
$master->[0]->{'path_myddir'},
|
||||
$master->[1]->{'path_myddir'});
|
||||
for (my $idx= 0; $idx < $max_master_num; $idx++)
|
||||
{
|
||||
push(@data_dir_lst, $master->[$idx]->{'path_myddir'});
|
||||
}
|
||||
|
||||
for (my $idx= 0; $idx < $max_slave_num; $idx++)
|
||||
{
|
||||
|
@ -1499,6 +1526,11 @@ sub executable_setup () {
|
|||
mtr_file_exists(vs_config_dirs('sql', 'udf_example.dll'),
|
||||
"$glob_basedir/sql/.libs/udf_example.so",);
|
||||
|
||||
# Look for the ha_example library
|
||||
$lib_example_plugin=
|
||||
mtr_file_exists(vs_config_dirs('storage/example', 'ha_example.dll'),
|
||||
"$glob_basedir/storage/example/.libs/ha_example.so",);
|
||||
|
||||
# Look for mysqltest executable
|
||||
if ( $glob_use_embedded_server )
|
||||
{
|
||||
|
@ -1654,6 +1686,14 @@ sub environment_setup () {
|
|||
push(@ld_library_paths, dirname($lib_udf_example));
|
||||
}
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# Add the path where mysqld will find ha_example.so
|
||||
# --------------------------------------------------------------------------
|
||||
if ( $lib_example_plugin )
|
||||
{
|
||||
push(@ld_library_paths, dirname($lib_example_plugin));
|
||||
}
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# Valgrind need to be run with debug libraries otherwise it's almost
|
||||
# impossible to add correct supressions, that means if "/usr/lib/debug"
|
||||
|
@ -1855,7 +1895,7 @@ sub environment_setup () {
|
|||
# ----------------------------------------------------
|
||||
my $cmdline_mysqlbinlog=
|
||||
"$exe_mysqlbinlog" .
|
||||
" --no-defaults --debug-info --local-load=$opt_tmpdir";
|
||||
" --no-defaults --disable-force-if-open --debug-info --local-load=$opt_tmpdir";
|
||||
if ( $mysql_version_id >= 50000 )
|
||||
{
|
||||
$cmdline_mysqlbinlog .=" --character-sets-dir=$path_charsetsdir";
|
||||
|
@ -1928,10 +1968,11 @@ sub environment_setup () {
|
|||
$ENV{'UDF_EXAMPLE_LIB'}=
|
||||
($lib_udf_example ? basename($lib_udf_example) : "");
|
||||
|
||||
$ENV{'LD_LIBRARY_PATH'}=
|
||||
($lib_udf_example ? dirname($lib_udf_example) : "") .
|
||||
($ENV{'LD_LIBRARY_PATH'} ? ":$ENV{'LD_LIBRARY_PATH'}" : "");
|
||||
|
||||
# ----------------------------------------------------
|
||||
# Add the path where mysqld will find ha_example.so
|
||||
# ----------------------------------------------------
|
||||
$ENV{'EXAMPLE_PLUGIN'}=
|
||||
($lib_example_plugin ? basename($lib_example_plugin) : "");
|
||||
|
||||
# ----------------------------------------------------
|
||||
# We are nice and report a bit about our settings
|
||||
|
@ -2730,8 +2771,10 @@ sub mysql_install_db () {
|
|||
|
||||
install_db('master', $master->[0]->{'path_myddir'});
|
||||
|
||||
# FIXME check if testcase really is using second master
|
||||
copy_install_db('master', $master->[1]->{'path_myddir'});
|
||||
if ($max_master_num)
|
||||
{
|
||||
copy_install_db('master', $master->[1]->{'path_myddir'});
|
||||
}
|
||||
|
||||
# Install the number of slave databses needed
|
||||
for (my $idx= 0; $idx < $max_slave_num; $idx++)
|
||||
|
@ -3540,11 +3583,10 @@ sub mysqld_arguments ($$$$$) {
|
|||
if ( $glob_use_embedded_server )
|
||||
{
|
||||
$prefix= "--server-arg=";
|
||||
} else {
|
||||
# We can't pass embedded server --no-defaults
|
||||
mtr_add_arg($args, "--no-defaults");
|
||||
}
|
||||
|
||||
mtr_add_arg($args, "%s--no-defaults", $prefix);
|
||||
|
||||
mtr_add_arg($args, "%s--console", $prefix);
|
||||
mtr_add_arg($args, "%s--basedir=%s", $prefix, $path_my_basedir);
|
||||
mtr_add_arg($args, "%s--character-sets-dir=%s", $prefix, $path_charsetsdir);
|
||||
|
@ -3623,6 +3665,9 @@ sub mysqld_arguments ($$$$$) {
|
|||
# Turn on logging, will be sent to tables
|
||||
mtr_add_arg($args, "%s--log=", $prefix);
|
||||
}
|
||||
|
||||
mtr_add_arg($args, "%s--plugin_dir=%s", $prefix,
|
||||
dirname($lib_example_plugin));
|
||||
}
|
||||
|
||||
if ( $type eq 'slave' )
|
||||
|
@ -4273,7 +4318,8 @@ sub run_testcase_start_servers($) {
|
|||
|
||||
}
|
||||
|
||||
if ( $clusters->[0]->{'pid'} and ! $master->[1]->{'pid'} )
|
||||
if ( $clusters->[0]->{'pid'} and ! $master->[1]->{'pid'} and
|
||||
$tinfo->{'master_num'} > 1 )
|
||||
{
|
||||
# Test needs cluster, start an extra mysqld connected to cluster
|
||||
|
||||
|
@ -4485,6 +4531,10 @@ sub run_mysqltest ($) {
|
|||
mtr_add_arg($args, "--character-sets-dir=%s", $path_charsetsdir);
|
||||
mtr_add_arg($args, "--logdir=%s/log", $opt_vardir);
|
||||
|
||||
# Log line number and time for each line in .test file
|
||||
mtr_add_arg($args, "--mark-progress")
|
||||
if $opt_mark_progress;
|
||||
|
||||
if ($tinfo->{'component_id'} eq 'im')
|
||||
{
|
||||
mtr_add_arg($args, "--socket=%s", $instance_manager->{'path_sock'});
|
||||
|
@ -4940,6 +4990,7 @@ Options for test case authoring
|
|||
|
||||
record TESTNAME (Re)genereate the result file for TESTNAME
|
||||
check-testcases Check testcases for sideeffects
|
||||
mark-progress Log line number and elapsed time to <testname>.progress
|
||||
|
||||
Options that pass on options
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -7,9 +7,12 @@ show binlog events from 102;
|
|||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 102 Table_map 1 141 table_id: # (test.t2)
|
||||
master-bin.000001 141 Write_rows 1 231 table_id: # flags: STMT_END_F
|
||||
flush logs;
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
|
|
@ -400,6 +400,7 @@ insert into t2 select * from t1;
|
|||
select get_lock("a",10);
|
||||
get_lock("a",10)
|
||||
1
|
||||
flush logs;
|
||||
select
|
||||
(@a:=load_file("MYSQLTEST_VARDIR/tmp/mix_innodb_myisam_binlog.output"))
|
||||
is not null;
|
||||
|
@ -407,8 +408,8 @@ is not null;
|
|||
is not null
|
||||
1
|
||||
select
|
||||
@a like "%#%error_code=0%ROLLBACK;%ROLLBACK /* added by mysqlbinlog */;%",
|
||||
@a like "%#%error_code=0%ROLLBACK/*!*/;%ROLLBACK /* added by mysqlbinlog */;%",
|
||||
@a not like "%#%error_code=%error_code=%";
|
||||
@a like "%#%error_code=0%ROLLBACK;%ROLLBACK /* added by mysqlbinlog */;%" @a not like "%#%error_code=%error_code=%"
|
||||
@a like "%#%error_code=0%ROLLBACK/*!*/;%ROLLBACK /* added by mysqlbinlog */;%" @a not like "%#%error_code=%error_code=%"
|
||||
1 1
|
||||
drop table t1, t2;
|
||||
|
|
|
@ -7,17 +7,20 @@ show binlog events from 102;
|
|||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 102 User var 1 142 @`v`=_ucs2 0x006100620063 COLLATE ucs2_general_ci
|
||||
master-bin.000001 142 Query 1 231 use `test`; insert into t2 values (@v)
|
||||
flush logs;
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
SET @`v`:=_ucs2 0x006100620063 COLLATE `ucs2_general_ci`;
|
||||
use test;
|
||||
SET TIMESTAMP=10000;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t2 values (@v);
|
||||
DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
SET @`v`:=_ucs2 0x006100620063 COLLATE `ucs2_general_ci`/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=10000/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
|
||||
SET @@session.sql_mode=0/*!*/;
|
||||
/*!\C latin1 *//*!*/;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
|
||||
insert into t2 values (@v)/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
|
|
@ -367,6 +367,7 @@ insert into t2 select * from t1;
|
|||
select get_lock("a",10);
|
||||
get_lock("a",10)
|
||||
1
|
||||
flush logs;
|
||||
select
|
||||
(@a:=load_file("MYSQLTEST_VARDIR/tmp/mix_innodb_myisam_binlog.output"))
|
||||
is not null;
|
||||
|
@ -374,8 +375,8 @@ is not null;
|
|||
is not null
|
||||
1
|
||||
select
|
||||
@a like "%#%error_code=0%ROLLBACK;%ROLLBACK /* added by mysqlbinlog */;%",
|
||||
@a like "%#%error_code=0%ROLLBACK/*!*/;%ROLLBACK /* added by mysqlbinlog */;%",
|
||||
@a not like "%#%error_code=%error_code=%";
|
||||
@a like "%#%error_code=0%ROLLBACK;%ROLLBACK /* added by mysqlbinlog */;%" @a not like "%#%error_code=%error_code=%"
|
||||
@a like "%#%error_code=0%ROLLBACK/*!*/;%ROLLBACK /* added by mysqlbinlog */;%" @a not like "%#%error_code=%error_code=%"
|
||||
1 1
|
||||
drop table t1, t2;
|
||||
|
|
|
@ -41,6 +41,6 @@ IN ind DECIMAL(10,2))
|
|||
BEGIN
|
||||
INSERT INTO t4 VALUES (ins1, ins2, ind);
|
||||
END
|
||||
master-bin.000001 805 Query 1 1010 use `test`; INSERT INTO t4 VALUES ( NAME_CONST('ins1',_latin1'Foo\'s a Bar'), NAME_CONST('ins2',_cp932 0xED40ED41ED42), NAME_CONST('ind',47.93))
|
||||
master-bin.000001 1010 Query 1 1096 use `test`; DROP PROCEDURE bug18293
|
||||
master-bin.000001 1096 Query 1 1172 use `test`; DROP TABLE t4
|
||||
master-bin.000001 805 Query 1 1021 use `test`; INSERT INTO t4 VALUES ( NAME_CONST('ins1',_latin1 0x466F6F2773206120426172), NAME_CONST('ins2',_cp932 0xED40ED41ED42), NAME_CONST('ind',47.93))
|
||||
master-bin.000001 1021 Query 1 1107 use `test`; DROP PROCEDURE bug18293
|
||||
master-bin.000001 1107 Query 1 1183 use `test`; DROP TABLE t4
|
||||
|
|
11
mysql-test/r/ctype_hebrew.result
Normal file
11
mysql-test/r/ctype_hebrew.result
Normal file
|
@ -0,0 +1,11 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
SET NAMES hebrew;
|
||||
CREATE TABLE t1 (a char(1)) DEFAULT CHARSET=hebrew;
|
||||
INSERT INTO t1 VALUES (0xFD),(0xFE);
|
||||
ALTER TABLE t1 CONVERT TO CHARACTER SET utf8;
|
||||
SELECT HEX(a) FROM t1;
|
||||
HEX(a)
|
||||
E2808E
|
||||
E2808F
|
||||
DROP TABLE t1;
|
||||
End of 4.1 tests
|
|
@ -124,12 +124,34 @@ create table t1 select date_format("2004-01-19 10:10:10", "%Y-%m-%d");
|
|||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`date_format("2004-01-19 10:10:10", "%Y-%m-%d")` varbinary(10) DEFAULT NULL
|
||||
`date_format("2004-01-19 10:10:10", "%Y-%m-%d")` varchar(10) CHARACTER SET utf8 DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
select * from t1;
|
||||
date_format("2004-01-19 10:10:10", "%Y-%m-%d")
|
||||
2004-01-19
|
||||
drop table t1;
|
||||
set names utf8;
|
||||
set LC_TIME_NAMES='fr_FR';
|
||||
create table t1 (s1 char(20) character set latin1);
|
||||
insert into t1 values (date_format('2004-02-02','%M'));
|
||||
select hex(s1) from t1;
|
||||
hex(s1)
|
||||
66E97672696572
|
||||
drop table t1;
|
||||
create table t1 (s1 char(20) character set koi8r);
|
||||
set LC_TIME_NAMES='ru_RU';
|
||||
insert into t1 values (date_format('2004-02-02','%M'));
|
||||
insert into t1 values (date_format('2004-02-02','%b'));
|
||||
insert into t1 values (date_format('2004-02-02','%W'));
|
||||
insert into t1 values (date_format('2004-02-02','%a'));
|
||||
select hex(s1), s1 from t1;
|
||||
hex(s1) s1
|
||||
E6C5D7D2C1CCD1 Февраля
|
||||
E6C5D7 Фев
|
||||
F0CFCEC5C4C5CCD8CEC9CB Понедельник
|
||||
F0CEC4 Пнд
|
||||
drop table t1;
|
||||
set LC_TIME_NAMES='en_US';
|
||||
set names koi8r;
|
||||
create table t1 (s1 char(1) character set utf8);
|
||||
insert into t1 values (_koi8r'ÁÂ');
|
||||
|
|
|
@ -59,6 +59,7 @@ SELECT * FROM slow_event_test;
|
|||
slo_val val
|
||||
SET SESSION long_query_time=1;
|
||||
SET GLOBAL event_scheduler=on;
|
||||
SET GLOBAL long_query_time=20;
|
||||
CREATE EVENT long_event ON SCHEDULE EVERY 1 MINUTE DO INSERT INTO slow_event_test SELECT @@long_query_time, SLEEP(1.5);
|
||||
"Sleep some more time than the actual event run will take"
|
||||
SHOW VARIABLES LIKE 'event_scheduler';
|
||||
|
@ -67,20 +68,22 @@ event_scheduler ON
|
|||
"Check our table. Should see 1 row"
|
||||
SELECT * FROM slow_event_test;
|
||||
slo_val val
|
||||
4 0
|
||||
"Check slow log. Should not see anything because 1.5 is under the threshold of 300 for GLOBAL, though over SESSION which is 2"
|
||||
20 0
|
||||
"Check slow log. Should not see anything because 1.5 is under the threshold of 20 for GLOBAL, though over SESSION which is 1"
|
||||
"This should show that the GLOBAL value is regarded and not the SESSION one of the current connection"
|
||||
SELECT user_host, query_time, db, sql_text FROM mysql.slow_log;
|
||||
user_host query_time db sql_text
|
||||
"Another test to show that GLOBAL is regarded and not SESSION."
|
||||
"This should go to the slow log"
|
||||
DROP EVENT long_event;
|
||||
SET SESSION long_query_time=10;
|
||||
DROP EVENT long_event;
|
||||
SET GLOBAL long_query_time=1;
|
||||
CREATE EVENT long_event2 ON SCHEDULE EVERY 1 MINUTE DO INSERT INTO slow_event_test SELECT @@long_query_time, SLEEP(2);
|
||||
"Sleep some more time than the actual event run will take"
|
||||
"Check our table. Should see 2 rows"
|
||||
SELECT * FROM slow_event_test;
|
||||
slo_val val
|
||||
4 0
|
||||
20 0
|
||||
1 0
|
||||
"Check slow log. Should see 1 row because 4 is over the threshold of 3 for GLOBAL, though under SESSION which is 10"
|
||||
SELECT user_host, query_time, db, sql_text FROM mysql.slow_log;
|
||||
|
|
|
@ -1020,6 +1020,273 @@ t1 CREATE TABLE `t1` (
|
|||
`stddev(0)` double(8,4) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
create table bug22555 (i smallint primary key auto_increment, s1 smallint, s2 smallint, e decimal(30,10), o double);
|
||||
insert into bug22555 (s1, s2, e, o) values (53, 78, 11.4276528, 6.828112), (17, 78, 5.916793, 1.8502951), (18, 76, 2.679231, 9.17975591), (31, 62, 6.07831, 0.1), (19, 41, 5.37463, 15.1), (83, 73, 14.567426, 7.959222), (92, 53, 6.10151, 13.1856852), (7, 12, 13.92272, 3.442007), (92, 35, 11.95358909, 6.01376678), (38, 84, 2.572, 7.904571);
|
||||
select std(s1/s2) from bug22555 group by i;
|
||||
std(s1/s2)
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
select std(e) from bug22555 group by i;
|
||||
std(e)
|
||||
0.00000000000000
|
||||
0.00000000000000
|
||||
0.00000000000000
|
||||
0.00000000000000
|
||||
0.00000000000000
|
||||
0.00000000000000
|
||||
0.00000000000000
|
||||
0.00000000000000
|
||||
0.00000000000000
|
||||
0.00000000000000
|
||||
select std(o) from bug22555 group by i;
|
||||
std(o)
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
drop table bug22555;
|
||||
create table bug22555 (i smallint, s1 smallint, s2 smallint, o1 double, o2 double, e1 decimal, e2 decimal);
|
||||
insert into bug22555 values (1,53,78,53,78,53,78),(2,17,78,17,78,17,78),(3,18,76,18,76,18,76);
|
||||
select i, count(*) from bug22555 group by i;
|
||||
i count(*)
|
||||
1 1
|
||||
2 1
|
||||
3 1
|
||||
select std(s1/s2) from bug22555 where i=1;
|
||||
std(s1/s2)
|
||||
0.00000000
|
||||
select std(s1/s2) from bug22555 where i=2;
|
||||
std(s1/s2)
|
||||
0.00000000
|
||||
select std(s1/s2) from bug22555 where i=3;
|
||||
std(s1/s2)
|
||||
0.00000000
|
||||
select std(s1/s2) from bug22555 where i=1 group by i;
|
||||
std(s1/s2)
|
||||
0.00000000
|
||||
select std(s1/s2) from bug22555 where i=2 group by i;
|
||||
std(s1/s2)
|
||||
0.00000000
|
||||
select std(s1/s2) from bug22555 where i=3 group by i;
|
||||
std(s1/s2)
|
||||
0.00000000
|
||||
select std(s1/s2) from bug22555 group by i order by i;
|
||||
std(s1/s2)
|
||||
0.00000000
|
||||
0.00000000
|
||||
0.00000000
|
||||
select i, count(*), std(o1/o2) from bug22555 group by i order by i;
|
||||
i count(*) std(o1/o2)
|
||||
1 1 0
|
||||
2 1 0
|
||||
3 1 0
|
||||
select i, count(*), std(e1/e2) from bug22555 group by i order by i;
|
||||
i count(*) std(e1/e2)
|
||||
1 1 0.00000000
|
||||
2 1 0.00000000
|
||||
3 1 0.00000000
|
||||
set @saved_div_precision_increment=@@div_precision_increment;
|
||||
set div_precision_increment=19;
|
||||
select i, count(*), variance(s1/s2) from bug22555 group by i order by i;
|
||||
i count(*) variance(s1/s2)
|
||||
1 1 0.000000000000000000000000000000
|
||||
2 1 0.000000000000000000000000000000
|
||||
3 1 0.000000000000000000000000000000
|
||||
select i, count(*), variance(o1/o2) from bug22555 group by i order by i;
|
||||
i count(*) variance(o1/o2)
|
||||
1 1 0
|
||||
2 1 0
|
||||
3 1 0
|
||||
select i, count(*), variance(e1/e2) from bug22555 group by i order by i;
|
||||
i count(*) variance(e1/e2)
|
||||
1 1 0.000000000000000000000000000000
|
||||
2 1 0.000000000000000000000000000000
|
||||
3 1 0.000000000000000000000000000000
|
||||
select i, count(*), std(s1/s2) from bug22555 group by i order by i;
|
||||
i count(*) std(s1/s2)
|
||||
1 1 0.000000000000000000000000000000
|
||||
2 1 0.000000000000000000000000000000
|
||||
3 1 0.000000000000000000000000000000
|
||||
select i, count(*), std(o1/o2) from bug22555 group by i order by i;
|
||||
i count(*) std(o1/o2)
|
||||
1 1 0
|
||||
2 1 0
|
||||
3 1 0
|
||||
select i, count(*), std(e1/e2) from bug22555 group by i order by i;
|
||||
i count(*) std(e1/e2)
|
||||
1 1 0.000000000000000000000000000000
|
||||
2 1 0.000000000000000000000000000000
|
||||
3 1 0.000000000000000000000000000000
|
||||
set div_precision_increment=20;
|
||||
select i, count(*), variance(s1/s2) from bug22555 group by i order by i;
|
||||
i count(*) variance(s1/s2)
|
||||
1 1 0.000000000000000000000000000000
|
||||
2 1 0.000000000000000000000000000000
|
||||
3 1 0.000000000000000000000000000000
|
||||
select i, count(*), variance(o1/o2) from bug22555 group by i order by i;
|
||||
i count(*) variance(o1/o2)
|
||||
1 1 0
|
||||
2 1 0
|
||||
3 1 0
|
||||
select i, count(*), variance(e1/e2) from bug22555 group by i order by i;
|
||||
i count(*) variance(e1/e2)
|
||||
1 1 0.000000000000000000000000000000
|
||||
2 1 0.000000000000000000000000000000
|
||||
3 1 0.000000000000000000000000000000
|
||||
select i, count(*), std(s1/s2) from bug22555 group by i order by i;
|
||||
i count(*) std(s1/s2)
|
||||
1 1 0.000000000000000000000000000000
|
||||
2 1 0.000000000000000000000000000000
|
||||
3 1 0.000000000000000000000000000000
|
||||
select i, count(*), std(o1/o2) from bug22555 group by i order by i;
|
||||
i count(*) std(o1/o2)
|
||||
1 1 0
|
||||
2 1 0
|
||||
3 1 0
|
||||
select i, count(*), std(e1/e2) from bug22555 group by i order by i;
|
||||
i count(*) std(e1/e2)
|
||||
1 1 0.000000000000000000000000000000
|
||||
2 1 0.000000000000000000000000000000
|
||||
3 1 0.000000000000000000000000000000
|
||||
set @@div_precision_increment=@saved_div_precision_increment;
|
||||
insert into bug22555 values (1,53,78,53,78,53,78),(2,17,78,17,78,17,78),(3,18,76,18,76,18,76);
|
||||
insert into bug22555 values (1,53,78,53,78,53,78),(2,17,78,17,78,17,78),(3,18,76,18,76,18,76);
|
||||
insert into bug22555 values (1,53,78,53,78,53,78),(2,17,78,17,78,17,78),(3,18,76,18,76,18,76);
|
||||
select i, count(*), std(s1/s2) from bug22555 group by i order by i;
|
||||
i count(*) std(s1/s2)
|
||||
1 4 0.00000000
|
||||
2 4 0.00000000
|
||||
3 4 0.00000000
|
||||
select i, count(*), std(o1/o2) from bug22555 group by i order by i;
|
||||
i count(*) std(o1/o2)
|
||||
1 4 0
|
||||
2 4 0
|
||||
3 4 0
|
||||
select i, count(*), std(e1/e2) from bug22555 group by i order by i;
|
||||
i count(*) std(e1/e2)
|
||||
1 4 0.00000000
|
||||
2 4 0.00000000
|
||||
3 4 0.00000000
|
||||
select std(s1/s2) from bug22555;
|
||||
std(s1/s2)
|
||||
0.21325764
|
||||
select std(o1/o2) from bug22555;
|
||||
std(o1/o2)
|
||||
0.21325763586649
|
||||
select std(e1/e2) from bug22555;
|
||||
std(e1/e2)
|
||||
0.21325764
|
||||
set @saved_div_precision_increment=@@div_precision_increment;
|
||||
set div_precision_increment=19;
|
||||
select i, count(*), std(s1/s2) from bug22555 group by i order by i;
|
||||
i count(*) std(s1/s2)
|
||||
1 4 0.000000000000000000000000000000
|
||||
2 4 0.000000000000000000000000000000
|
||||
3 4 0.000000000000000000000000000000
|
||||
select i, count(*), std(o1/o2) from bug22555 group by i order by i;
|
||||
i count(*) std(o1/o2)
|
||||
1 4 0
|
||||
2 4 0
|
||||
3 4 0
|
||||
select i, count(*), std(e1/e2) from bug22555 group by i order by i;
|
||||
i count(*) std(e1/e2)
|
||||
1 4 0.000000000000000000000000000000
|
||||
2 4 0.000000000000000000000000000000
|
||||
3 4 0.000000000000000000000000000000
|
||||
select round(std(s1/s2), 17) from bug22555;
|
||||
round(std(s1/s2), 17)
|
||||
0.21325763586649341
|
||||
select std(o1/o2) from bug22555;
|
||||
std(o1/o2)
|
||||
0.21325763586649
|
||||
select round(std(e1/e2), 17) from bug22555;
|
||||
round(std(e1/e2), 17)
|
||||
0.21325763586649341
|
||||
set div_precision_increment=20;
|
||||
select i, count(*), std(s1/s2) from bug22555 group by i order by i;
|
||||
i count(*) std(s1/s2)
|
||||
1 4 0.000000000000000000000000000000
|
||||
2 4 0.000000000000000000000000000000
|
||||
3 4 0.000000000000000000000000000000
|
||||
select i, count(*), std(o1/o2) from bug22555 group by i order by i;
|
||||
i count(*) std(o1/o2)
|
||||
1 4 0
|
||||
2 4 0
|
||||
3 4 0
|
||||
select i, count(*), std(e1/e2) from bug22555 group by i order by i;
|
||||
i count(*) std(e1/e2)
|
||||
1 4 0.000000000000000000000000000000
|
||||
2 4 0.000000000000000000000000000000
|
||||
3 4 0.000000000000000000000000000000
|
||||
select round(std(s1/s2), 17) from bug22555;
|
||||
round(std(s1/s2), 17)
|
||||
0.21325763586649341
|
||||
select std(o1/o2) from bug22555;
|
||||
std(o1/o2)
|
||||
0.21325763586649
|
||||
select round(std(e1/e2), 17) from bug22555;
|
||||
round(std(e1/e2), 17)
|
||||
0.21325763586649341
|
||||
set @@div_precision_increment=@saved_div_precision_increment;
|
||||
drop table bug22555;
|
||||
create table bug22555 (s smallint, o double, e decimal);
|
||||
insert into bug22555 values (1,1,1),(2,2,2),(3,3,3),(6,6,6),(7,7,7);
|
||||
select var_samp(s), var_pop(s) from bug22555;
|
||||
var_samp(s) var_pop(s)
|
||||
6.7000 5.3600
|
||||
select var_samp(o), var_pop(o) from bug22555;
|
||||
var_samp(o) var_pop(o)
|
||||
6.7 5.36
|
||||
select var_samp(e), var_pop(e) from bug22555;
|
||||
var_samp(e) var_pop(e)
|
||||
6.7000 5.3600
|
||||
drop table bug22555;
|
||||
create table bug22555 (s smallint, o double, e decimal);
|
||||
insert into bug22555 values (null,null,null),(null,null,null);
|
||||
select var_samp(s) as 'null', var_pop(s) as 'null' from bug22555;
|
||||
null null
|
||||
NULL NULL
|
||||
select var_samp(o) as 'null', var_pop(o) as 'null' from bug22555;
|
||||
null null
|
||||
NULL NULL
|
||||
select var_samp(e) as 'null', var_pop(e) as 'null' from bug22555;
|
||||
null null
|
||||
NULL NULL
|
||||
insert into bug22555 values (1,1,1);
|
||||
select var_samp(s) as 'null', var_pop(s) as '0' from bug22555;
|
||||
null 0
|
||||
NULL 0.0000
|
||||
select var_samp(o) as 'null', var_pop(o) as '0' from bug22555;
|
||||
null 0
|
||||
NULL 0
|
||||
select var_samp(e) as 'null', var_pop(e) as '0' from bug22555;
|
||||
null 0
|
||||
NULL 0.0000
|
||||
insert into bug22555 values (2,2,2);
|
||||
select var_samp(s) as '0.5', var_pop(s) as '0.25' from bug22555;
|
||||
0.5 0.25
|
||||
0.5000 0.2500
|
||||
select var_samp(o) as '0.5', var_pop(o) as '0.25' from bug22555;
|
||||
0.5 0.25
|
||||
0.5 0.25
|
||||
select var_samp(e) as '0.5', var_pop(e) as '0.25' from bug22555;
|
||||
0.5 0.25
|
||||
0.5000 0.2500
|
||||
drop table bug22555;
|
||||
CREATE TABLE t1 (a INT, b INT);
|
||||
INSERT INTO t1 VALUES (1,1),(1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(1,8);
|
||||
INSERT INTO t1 SELECT a, b+8 FROM t1;
|
||||
|
|
|
@ -350,6 +350,10 @@ select some_id from t1 where some_id not in(-4,-1,3423534,2342342);
|
|||
some_id
|
||||
1
|
||||
2
|
||||
select some_id from t1 where some_id not in('-1', '0');
|
||||
some_id
|
||||
1
|
||||
2
|
||||
drop table t1;
|
||||
End of 5.0 tests
|
||||
create table t1(f1 char(1));
|
||||
|
|
2
mysql-test/r/have_example_plugin.require
Normal file
2
mysql-test/r/have_example_plugin.require
Normal file
|
@ -0,0 +1,2 @@
|
|||
have_example_plugin
|
||||
1
|
|
@ -1,2 +0,0 @@
|
|||
Variable_name Value
|
||||
have_row_based_replication YES
|
|
@ -922,6 +922,7 @@ SET @@myisam_repair_threads=1;
|
|||
SHOW VARIABLES LIKE 'myisam_repair%';
|
||||
Variable_name Value
|
||||
myisam_repair_threads 1
|
||||
End of 4.1 tests
|
||||
set storage_engine=MyISAM;
|
||||
drop table if exists t1,t2,t3;
|
||||
--- Testing varchar ---
|
||||
|
@ -1590,20 +1591,6 @@ show keys from t1;
|
|||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
||||
t1 1 a 1 a A 8 NULL NULL YES BTREE
|
||||
drop table t1;
|
||||
show create table t1;
|
||||
show create table t1;
|
||||
create table t1 (a int) engine=myisam select 42 a;
|
||||
select * from t1;
|
||||
a
|
||||
9
|
||||
select * from t1;
|
||||
a
|
||||
99
|
||||
select * from t1;
|
||||
a
|
||||
42
|
||||
drop table t1;
|
||||
End of 4.1 tests
|
||||
create table t1 (c1 int) engine=myisam pack_keys=0;
|
||||
create table t2 (c1 int) engine=myisam pack_keys=1;
|
||||
create table t3 (c1 int) engine=myisam pack_keys=default;
|
||||
|
|
|
@ -15,31 +15,33 @@ flush logs;
|
|||
--- Local --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
use test;
|
||||
SET TIMESTAMP=1000000000;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
drop table if exists t1,t2;
|
||||
SET TIMESTAMP=1000000000;
|
||||
create table t1 (word varchar(20));
|
||||
SET TIMESTAMP=1000000000;
|
||||
create table t2 (id int auto_increment not null primary key);
|
||||
SET TIMESTAMP=1000000000;
|
||||
insert into t1 values ("abirvalg");
|
||||
SET INSERT_ID=1;
|
||||
SET TIMESTAMP=1000000000;
|
||||
insert into t2 values ();
|
||||
SET TIMESTAMP=1000000000;
|
||||
load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-1-0' INTO table t1;
|
||||
SET TIMESTAMP=1000000000;
|
||||
load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-2-0' INTO table t1;
|
||||
SET TIMESTAMP=1000000000;
|
||||
load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-3-0' INTO table t1;
|
||||
SET TIMESTAMP=1000000000;
|
||||
load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-4-0' INTO table t1;
|
||||
DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
|
||||
SET @@session.sql_mode=0/*!*/;
|
||||
/*!\C latin1 *//*!*/;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
|
||||
drop table if exists t1,t2/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
create table t1 (word varchar(20))/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
create table t2 (id int auto_increment not null primary key)/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
insert into t1 values ("abirvalg")/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
insert into t2 values ()/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-1-0' INTO table t1/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-2-0' INTO table t1/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-3-0' INTO table t1/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-4-0' INTO table t1/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
@ -47,13 +49,15 @@ ROLLBACK /* added by mysqlbinlog */;
|
|||
--- Broken LOAD DATA --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1000000000;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values ("Alas");
|
||||
DELIMITER /*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
|
||||
SET @@session.sql_mode=0/*!*/;
|
||||
/*!\C latin1 *//*!*/;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
|
||||
insert into t1 values ("Alas")/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
@ -61,8 +65,10 @@ ROLLBACK /* added by mysqlbinlog */;
|
|||
--- --database --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
SET INSERT_ID=1;
|
||||
DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
@ -70,13 +76,15 @@ ROLLBACK /* added by mysqlbinlog */;
|
|||
--- --position --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1000000000;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values ("Alas");
|
||||
DELIMITER /*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
|
||||
SET @@session.sql_mode=0/*!*/;
|
||||
/*!\C latin1 *//*!*/;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
|
||||
insert into t1 values ("Alas")/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
@ -84,31 +92,33 @@ ROLLBACK /* added by mysqlbinlog */;
|
|||
--- Remote --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
use test;
|
||||
SET TIMESTAMP=1000000000;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
drop table if exists t1,t2;
|
||||
SET TIMESTAMP=1000000000;
|
||||
create table t1 (word varchar(20));
|
||||
SET TIMESTAMP=1000000000;
|
||||
create table t2 (id int auto_increment not null primary key);
|
||||
SET TIMESTAMP=1000000000;
|
||||
insert into t1 values ("abirvalg");
|
||||
SET INSERT_ID=1;
|
||||
SET TIMESTAMP=1000000000;
|
||||
insert into t2 values ();
|
||||
SET TIMESTAMP=1000000000;
|
||||
load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-1-2' INTO table t1;
|
||||
SET TIMESTAMP=1000000000;
|
||||
load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-2-2' INTO table t1;
|
||||
SET TIMESTAMP=1000000000;
|
||||
load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-3-2' INTO table t1;
|
||||
SET TIMESTAMP=1000000000;
|
||||
load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-4-2' INTO table t1;
|
||||
DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
|
||||
SET @@session.sql_mode=0/*!*/;
|
||||
/*!\C latin1 *//*!*/;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
|
||||
drop table if exists t1,t2/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
create table t1 (word varchar(20))/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
create table t2 (id int auto_increment not null primary key)/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
insert into t1 values ("abirvalg")/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
insert into t2 values ()/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-1-2' INTO table t1/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-2-2' INTO table t1/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-3-2' INTO table t1/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
load data LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-4-2' INTO table t1/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
@ -116,13 +126,15 @@ ROLLBACK /* added by mysqlbinlog */;
|
|||
--- Broken LOAD DATA --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1000000000;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values ("Alas");
|
||||
DELIMITER /*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
|
||||
SET @@session.sql_mode=0/*!*/;
|
||||
/*!\C latin1 *//*!*/;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
|
||||
insert into t1 values ("Alas")/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
@ -130,8 +142,10 @@ ROLLBACK /* added by mysqlbinlog */;
|
|||
--- --database --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
SET INSERT_ID=1;
|
||||
DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
@ -139,13 +153,15 @@ ROLLBACK /* added by mysqlbinlog */;
|
|||
--- --position --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1000000000;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values ("Alas");
|
||||
DELIMITER /*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
|
||||
SET @@session.sql_mode=0/*!*/;
|
||||
/*!\C latin1 *//*!*/;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
|
||||
insert into t1 values ("Alas")/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
@ -153,22 +169,26 @@ ROLLBACK /* added by mysqlbinlog */;
|
|||
--- reading stdin --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
use test;
|
||||
SET TIMESTAMP=1108844556;
|
||||
BEGIN;
|
||||
SET TIMESTAMP=1108844555;
|
||||
insert t1 values (1);
|
||||
DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1108844556/*!*/;
|
||||
BEGIN/*!*/;
|
||||
SET TIMESTAMP=1108844555/*!*/;
|
||||
insert t1 values (1)/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1108844556;
|
||||
BEGIN;
|
||||
SET TIMESTAMP=1108844555;
|
||||
insert t1 values (1);
|
||||
DELIMITER /*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1108844556/*!*/;
|
||||
BEGIN/*!*/;
|
||||
SET TIMESTAMP=1108844555/*!*/;
|
||||
insert t1 values (1)/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
@ -190,8 +210,65 @@ select HEX(f) from t4;
|
|||
HEX(f)
|
||||
835C
|
||||
flush logs;
|
||||
flush logs;
|
||||
select * from t5 /* must be (1),(1) */;
|
||||
a
|
||||
1
|
||||
1
|
||||
flush logs;
|
||||
drop table if exists t5;
|
||||
create table t5 (c1 int, c2 varchar(128) character set latin1 not null);
|
||||
insert into t5 values (1, date_format('2001-01-01','%W'));
|
||||
set lc_time_names=de_DE;
|
||||
insert into t5 values (2, date_format('2001-01-01','%W'));
|
||||
set lc_time_names=en_US;
|
||||
insert into t5 values (3, date_format('2001-01-01','%W'));
|
||||
select * from t5 order by c1;
|
||||
c1 c2
|
||||
1 Monday
|
||||
2 Montag
|
||||
3 Monday
|
||||
flush logs;
|
||||
drop table t5;
|
||||
select * from t5 order by c1;
|
||||
c1 c2
|
||||
1 Monday
|
||||
2 Montag
|
||||
3 Monday
|
||||
drop procedure if exists p1;
|
||||
flush logs;
|
||||
create procedure p1()
|
||||
begin
|
||||
select 1;
|
||||
end;
|
||||
//
|
||||
flush logs;
|
||||
call p1();
|
||||
1
|
||||
1
|
||||
drop procedure p1;
|
||||
call p1();
|
||||
ERROR 42000: PROCEDURE test.p1 does not exist
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
|
||||
SET @@session.sql_mode=0/*!*/;
|
||||
/*!\C latin1 *//*!*/;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
|
||||
CREATE DEFINER=`root`@`localhost` procedure p1()
|
||||
begin
|
||||
select 1;
|
||||
end/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
call p1();
|
||||
1
|
||||
1
|
||||
drop procedure p1;
|
||||
drop table t1, t2, t03, t04, t3, t4, t5;
|
||||
flush logs;
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -6,6 +6,7 @@ update t1 set a=a+2 where a=2;
|
|||
update t1 set a=a+2 where a=3;
|
||||
create table t2 (word varchar(20));
|
||||
load data infile '../std_data_ln/words.dat' into table t2;
|
||||
flush logs;
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
select * from t1;
|
||||
|
|
|
@ -1787,6 +1787,78 @@ CREATE TABLE `t1` (
|
|||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
drop table t1;
|
||||
#
|
||||
# BUG#13926: --order-by-primary fails if PKEY contains quote character
|
||||
#
|
||||
DROP TABLE IF EXISTS `t1`;
|
||||
CREATE TABLE `t1` (
|
||||
`a b` INT,
|
||||
`c"d` INT,
|
||||
`e``f` INT,
|
||||
PRIMARY KEY (`a b`, `c"d`, `e``f`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
insert into t1 values (0815, 4711, 2006);
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO,ANSI' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
DROP TABLE IF EXISTS "t1";
|
||||
CREATE TABLE "t1" (
|
||||
"a b" int(11) NOT NULL DEFAULT '0',
|
||||
"c""d" int(11) NOT NULL DEFAULT '0',
|
||||
"e`f" int(11) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY ("a b","c""d","e`f")
|
||||
);
|
||||
|
||||
LOCK TABLES "t1" WRITE;
|
||||
/*!40000 ALTER TABLE "t1" DISABLE KEYS */;
|
||||
INSERT INTO "t1" VALUES (815,4711,2006);
|
||||
/*!40000 ALTER TABLE "t1" ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8 */;
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
DROP TABLE IF EXISTS `t1`;
|
||||
CREATE TABLE `t1` (
|
||||
`a b` int(11) NOT NULL DEFAULT '0',
|
||||
`c"d` int(11) NOT NULL DEFAULT '0',
|
||||
`e``f` int(11) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`a b`,`c"d`,`e``f`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
LOCK TABLES `t1` WRITE;
|
||||
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
|
||||
INSERT INTO `t1` VALUES (815,4711,2006);
|
||||
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
DROP TABLE `t1`;
|
||||
End of 4.1 tests
|
||||
#
|
||||
# Bug #10213 mysqldump crashes when dumping VIEWs(on MacOS X)
|
||||
|
@ -3123,78 +3195,6 @@ drop user myDB_User@localhost;
|
|||
drop database mysqldump_myDB;
|
||||
use test;
|
||||
#
|
||||
# BUG#13926: --order-by-primary fails if PKEY contains quote character
|
||||
#
|
||||
DROP TABLE IF EXISTS `t1`;
|
||||
CREATE TABLE `t1` (
|
||||
`a b` INT,
|
||||
`c"d` INT,
|
||||
`e``f` INT,
|
||||
PRIMARY KEY (`a b`, `c"d`, `e``f`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
insert into t1 values (0815, 4711, 2006);
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO,ANSI' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
DROP TABLE IF EXISTS "t1";
|
||||
CREATE TABLE "t1" (
|
||||
"a b" int(11) NOT NULL DEFAULT '0',
|
||||
"c""d" int(11) NOT NULL DEFAULT '0',
|
||||
"e`f" int(11) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY ("a b","c""d","e`f")
|
||||
);
|
||||
|
||||
LOCK TABLES "t1" WRITE;
|
||||
/*!40000 ALTER TABLE "t1" DISABLE KEYS */;
|
||||
INSERT INTO "t1" VALUES (815,4711,2006);
|
||||
/*!40000 ALTER TABLE "t1" ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8 */;
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
DROP TABLE IF EXISTS `t1`;
|
||||
CREATE TABLE `t1` (
|
||||
`a b` int(11) NOT NULL DEFAULT '0',
|
||||
`c"d` int(11) NOT NULL DEFAULT '0',
|
||||
`e``f` int(11) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`a b`,`c"d`,`e``f`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
LOCK TABLES `t1` WRITE;
|
||||
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
|
||||
INSERT INTO `t1` VALUES (815,4711,2006);
|
||||
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
DROP TABLE `t1`;
|
||||
#
|
||||
# Bug #19745: mysqldump --xml produces invalid xml
|
||||
#
|
||||
DROP TABLE IF EXISTS t1;
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
reset master;
|
||||
drop table if exists t1;
|
||||
drop database if exists mysqltest;
|
||||
create database mysqltest;
|
||||
|
|
|
@ -87,11 +87,27 @@ x y z
|
|||
rollback;
|
||||
commit;
|
||||
begin;
|
||||
select * from t1 where y = 'one' or y = 'three' for update;
|
||||
x y z
|
||||
# # #
|
||||
# # #
|
||||
begin;
|
||||
select * from t1 where x = 2 for update;
|
||||
x y z
|
||||
2 two 2
|
||||
select * from t1 where x = 1 for update;
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
rollback;
|
||||
commit;
|
||||
begin;
|
||||
select * from t1 where y = 'one' or y = 'three' order by x for update;
|
||||
x y z
|
||||
1 one 1
|
||||
3 three 3
|
||||
begin;
|
||||
select * from t1 where x = 2 for update;
|
||||
x y z
|
||||
2 two 2
|
||||
select * from t1 where x = 1 for update;
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
rollback;
|
||||
|
@ -124,6 +140,22 @@ ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
|||
rollback;
|
||||
commit;
|
||||
begin;
|
||||
select * from t1 where y = 'one' or y = 'three' lock in share mode;
|
||||
x y z
|
||||
# # #
|
||||
# # #
|
||||
begin;
|
||||
select * from t1 where y = 'one' lock in share mode;
|
||||
x y z
|
||||
1 one 1
|
||||
select * from t1 where x = 2 for update;
|
||||
x y z
|
||||
2 two 2
|
||||
select * from t1 where x = 1 for update;
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
rollback;
|
||||
commit;
|
||||
begin;
|
||||
select * from t1 where y = 'one' or y = 'three' order by x lock in share mode;
|
||||
x y z
|
||||
1 one 1
|
||||
|
@ -132,6 +164,9 @@ begin;
|
|||
select * from t1 where y = 'one' lock in share mode;
|
||||
x y z
|
||||
1 one 1
|
||||
select * from t1 where x = 2 for update;
|
||||
x y z
|
||||
2 two 2
|
||||
select * from t1 where x = 1 for update;
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
rollback;
|
||||
|
|
|
@ -73,3 +73,4 @@ select time_stamp>@now from t1;
|
|||
time_stamp>@now
|
||||
1
|
||||
drop table t1;
|
||||
End of 4.1 tests
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
Variable_name Value
|
||||
have_row_based_replication NO
|
15
mysql-test/r/plugin.result
Normal file
15
mysql-test/r/plugin.result
Normal file
|
@ -0,0 +1,15 @@
|
|||
CREATE TABLE t1(a int) ENGINE=EXAMPLE;
|
||||
Warnings:
|
||||
Error 1286 Unknown table engine 'EXAMPLE'
|
||||
DROP TABLE t1;
|
||||
INSTALL PLUGIN example SONAME 'ha_example.so';
|
||||
INSTALL PLUGIN EXAMPLE SONAME 'ha_example.so';
|
||||
ERROR HY000: Function 'EXAMPLE' already exists
|
||||
UNINSTALL PLUGIN example;
|
||||
INSTALL PLUGIN example SONAME 'ha_example.so';
|
||||
CREATE TABLE t1(a int) ENGINE=EXAMPLE;
|
||||
SELECT * FROM t1;
|
||||
a
|
||||
DROP TABLE t1;
|
||||
UNINSTALL PLUGIN non_exist;
|
||||
ERROR 42000: PLUGIN non_exist does not exist
|
|
@ -521,8 +521,8 @@ select count(*) from t1 where x = 18446744073709551601;
|
|||
count(*)
|
||||
1
|
||||
create table t2 (x bigint not null);
|
||||
insert into t2(x) values (cast(0xfffffffffffffff0+0 as signed));
|
||||
insert into t2(x) values (cast(0xfffffffffffffff1+0 as signed));
|
||||
insert into t2(x) values (-16);
|
||||
insert into t2(x) values (-15);
|
||||
select * from t2;
|
||||
x
|
||||
-16
|
||||
|
|
26
mysql-test/r/rpl_charset_sjis.result
Normal file
26
mysql-test/r/rpl_charset_sjis.result
Normal file
|
@ -0,0 +1,26 @@
|
|||
stop slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
drop table if exists t1;
|
||||
drop procedure if exists p1;
|
||||
create table t1 (a varchar(255) character set sjis);
|
||||
create procedure p1 (in a varchar(255) character set sjis) insert into t1 values (a);
|
||||
SET NAMES binary;
|
||||
CALL p1 ('–\\');
|
||||
select "--- on master ---";
|
||||
--- on master ---
|
||||
--- on master ---
|
||||
select hex(a) from t1 ;
|
||||
hex(a)
|
||||
965C
|
||||
select "--- on slave ---";
|
||||
--- on slave ---
|
||||
--- on slave ---
|
||||
select hex(a) from t1;
|
||||
hex(a)
|
||||
965C
|
||||
drop table t1;
|
||||
drop procedure p1;
|
|
@ -20,6 +20,17 @@ set password for rpl_do_grant@localhost=password("does it work?");
|
|||
select password<>_binary'' from mysql.user where user=_binary'rpl_do_grant';
|
||||
password<>_binary''
|
||||
1
|
||||
update mysql.user set password='' where user='rpl_do_grant';
|
||||
flush privileges;
|
||||
select password<>'' from mysql.user where user='rpl_do_grant';
|
||||
password<>''
|
||||
0
|
||||
set sql_mode='ANSI_QUOTES';
|
||||
set password for rpl_do_grant@localhost=password('does it work?');
|
||||
set sql_mode='';
|
||||
select password<>'' from mysql.user where user='rpl_do_grant';
|
||||
password<>''
|
||||
1
|
||||
delete from mysql.user where user=_binary'rpl_do_grant';
|
||||
delete from mysql.db where user=_binary'rpl_do_grant';
|
||||
flush privileges;
|
||||
|
|
20
mysql-test/r/rpl_locale.result
Normal file
20
mysql-test/r/rpl_locale.result
Normal file
|
@ -0,0 +1,20 @@
|
|||
stop slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
create table t1 (s1 char(10));
|
||||
set lc_time_names= 'de_DE';
|
||||
insert into t1 values (date_format('2001-01-01','%W'));
|
||||
set lc_time_names= 'en_US';
|
||||
insert into t1 values (date_format('2001-01-01','%W'));
|
||||
select * from t1;
|
||||
s1
|
||||
Montag
|
||||
Monday
|
||||
select * from t1;
|
||||
s1
|
||||
Montag
|
||||
Monday
|
||||
drop table t1;
|
|
@ -127,7 +127,7 @@ NULL 5 10
|
|||
NULL 6 12
|
||||
CREATE TABLE t7 (UNIQUE(b)) SELECT a,b FROM tt3;
|
||||
ERROR 23000: Duplicate entry '2' for key 'b'
|
||||
SHOW BINLOG EVENTS FROM 1256;
|
||||
SHOW BINLOG EVENTS FROM 1118;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
CREATE TABLE t7 (a INT, b INT UNIQUE);
|
||||
INSERT INTO t7 SELECT a,b FROM tt3;
|
||||
|
@ -212,3 +212,192 @@ Create Table CREATE TABLE `t9` (
|
|||
`a` int(11) DEFAULT NULL,
|
||||
`b` int(11) DEFAULT NULL
|
||||
) ENGINE=MEMORY DEFAULT CHARSET=latin1
|
||||
DROP TABLE IF EXISTS t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
STOP SLAVE;
|
||||
SET GLOBAL storage_engine=@storage_engine;
|
||||
START SLAVE;
|
||||
================ BUG#22864 ================
|
||||
STOP SLAVE;
|
||||
RESET SLAVE;
|
||||
RESET MASTER;
|
||||
START SLAVE;
|
||||
SET AUTOCOMMIT=0;
|
||||
CREATE TABLE t1 (a INT);
|
||||
INSERT INTO t1 VALUES (1),(2),(3);
|
||||
CREATE TABLE t2 ENGINE=INNODB SELECT * FROM t1;
|
||||
ROLLBACK;
|
||||
CREATE TABLE t3 ENGINE=INNODB SELECT * FROM t1;
|
||||
INSERT INTO t3 VALUES (4),(5),(6);
|
||||
ROLLBACK;
|
||||
CREATE TABLE t4 ENGINE=INNODB SELECT * FROM t1;
|
||||
INSERT INTO t1 VALUES (4),(5),(6);
|
||||
ROLLBACK;
|
||||
Warnings:
|
||||
Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
||||
SHOW TABLES;
|
||||
Tables_in_test
|
||||
t1
|
||||
t2
|
||||
t3
|
||||
t4
|
||||
SELECT TABLE_NAME,ENGINE
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_NAME LIKE 't_'
|
||||
ORDER BY TABLE_NAME;
|
||||
TABLE_NAME ENGINE
|
||||
t1 MyISAM
|
||||
t2 InnoDB
|
||||
t3 InnoDB
|
||||
t4 InnoDB
|
||||
SELECT * FROM t1 ORDER BY a;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
SELECT * FROM t2 ORDER BY a;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
SELECT * FROM t3 ORDER BY a;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
SELECT * FROM t4 ORDER BY a;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
SHOW BINLOG EVENTS;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 4 Format_desc 1 102 Server ver: #, Binlog ver: #
|
||||
master-bin.000001 102 Query 1 188 use `test`; CREATE TABLE t1 (a INT)
|
||||
master-bin.000001 188 Table_map 1 227 table_id: # (test.t1)
|
||||
master-bin.000001 227 Write_rows 1 271 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 271 Query 1 339 use `test`; BEGIN
|
||||
master-bin.000001 339 Query 1 125 use `test`; CREATE TABLE `t2` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=InnoDB
|
||||
master-bin.000001 464 Table_map 1 164 table_id: # (test.t2)
|
||||
master-bin.000001 503 Write_rows 1 208 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 547 Xid 1 574 COMMIT /* XID */
|
||||
master-bin.000001 574 Query 1 642 use `test`; BEGIN
|
||||
master-bin.000001 642 Query 1 125 use `test`; CREATE TABLE `t3` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=InnoDB
|
||||
master-bin.000001 767 Table_map 1 164 table_id: # (test.t3)
|
||||
master-bin.000001 806 Write_rows 1 208 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 850 Xid 1 877 COMMIT /* XID */
|
||||
master-bin.000001 877 Query 1 945 use `test`; BEGIN
|
||||
master-bin.000001 945 Query 1 125 use `test`; CREATE TABLE `t4` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=InnoDB
|
||||
master-bin.000001 1070 Table_map 1 164 table_id: # (test.t4)
|
||||
master-bin.000001 1109 Write_rows 1 208 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 1153 Xid 1 1180 COMMIT /* XID */
|
||||
master-bin.000001 1180 Table_map 1 1219 table_id: # (test.t1)
|
||||
master-bin.000001 1219 Write_rows 1 1263 table_id: # flags: STMT_END_F
|
||||
SHOW TABLES;
|
||||
Tables_in_test
|
||||
t1
|
||||
t2
|
||||
t3
|
||||
t4
|
||||
SELECT TABLE_NAME,ENGINE
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_NAME LIKE 't_'
|
||||
ORDER BY TABLE_NAME;
|
||||
TABLE_NAME ENGINE
|
||||
t1 MyISAM
|
||||
t2 InnoDB
|
||||
t3 InnoDB
|
||||
t4 InnoDB
|
||||
SELECT * FROM t1 ORDER BY a;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
SELECT * FROM t2 ORDER BY a;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
SELECT * FROM t3 ORDER BY a;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
SELECT * FROM t4 ORDER BY a;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
DROP TABLE IF EXISTS t1,t2,t3,t4;
|
||||
SET AUTOCOMMIT=1;
|
||||
STOP SLAVE;
|
||||
RESET SLAVE;
|
||||
RESET MASTER;
|
||||
START SLAVE;
|
||||
CREATE TABLE t1 (a INT);
|
||||
INSERT INTO t1 VALUES (1),(2),(3);
|
||||
CREATE TABLE t2 (a INT) ENGINE=INNODB;
|
||||
BEGIN;
|
||||
INSERT INTO t2 SELECT a*a FROM t1;
|
||||
CREATE TEMPORARY TABLE tt1
|
||||
SELECT a+1 AS a
|
||||
FROM t1
|
||||
WHERE a MOD 2 = 1;
|
||||
INSERT INTO t2 SELECT a+2 FROM tt1;
|
||||
COMMIT;
|
||||
SELECT * FROM t2 ORDER BY a;
|
||||
a
|
||||
1
|
||||
4
|
||||
4
|
||||
6
|
||||
9
|
||||
SHOW BINLOG EVENTS;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 4 Format_desc 1 102 Server ver: #, Binlog ver: #
|
||||
master-bin.000001 102 Query 1 188 use `test`; CREATE TABLE t1 (a INT)
|
||||
master-bin.000001 188 Table_map 1 227 table_id: # (test.t1)
|
||||
master-bin.000001 227 Write_rows 1 271 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 271 Query 1 371 use `test`; CREATE TABLE t2 (a INT) ENGINE=INNODB
|
||||
master-bin.000001 371 Query 1 439 use `test`; BEGIN
|
||||
master-bin.000001 439 Table_map 1 39 table_id: # (test.t2)
|
||||
master-bin.000001 478 Write_rows 1 83 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 522 Table_map 1 122 table_id: # (test.t2)
|
||||
master-bin.000001 561 Write_rows 1 161 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 600 Xid 1 627 COMMIT /* XID */
|
||||
SELECT * FROM t2 ORDER BY a;
|
||||
a
|
||||
1
|
||||
4
|
||||
4
|
||||
6
|
||||
9
|
||||
TRUNCATE TABLE t2;
|
||||
BEGIN;
|
||||
INSERT INTO t2 SELECT a*a FROM t1;
|
||||
CREATE TEMPORARY TABLE tt2
|
||||
SELECT a+1 AS a
|
||||
FROM t1
|
||||
WHERE a MOD 2 = 1;
|
||||
INSERT INTO t2 SELECT a+2 FROM tt2;
|
||||
ROLLBACK;
|
||||
SELECT * FROM t2 ORDER BY a;
|
||||
a
|
||||
SHOW BINLOG EVENTS FROM 627;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 627 Query 1 80 use `test`; TRUNCATE TABLE t2
|
||||
master-bin.000001 707 Xid 1 734 COMMIT /* XID */
|
||||
SELECT * FROM t2 ORDER BY a;
|
||||
a
|
||||
DROP TABLE t1,t2;
|
||||
|
|
|
@ -5,7 +5,9 @@ reset slave;
|
|||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
create table t1(a int not null primary key) engine=myisam;
|
||||
insert delayed into t1 values (1),(2),(3);
|
||||
insert delayed into t1 values (1);
|
||||
insert delayed into t1 values (2);
|
||||
insert delayed into t1 values (3);
|
||||
flush tables;
|
||||
SELECT * FROM t1 ORDER BY a;
|
||||
a
|
||||
|
@ -19,8 +21,10 @@ master-bin.000001 102 Query 1 222 use `test`; create table t1(a int not null pri
|
|||
master-bin.000001 222 Table_map 1 261 table_id: # (test.t1)
|
||||
master-bin.000001 261 Write_rows 1 295 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 295 Table_map 1 334 table_id: # (test.t1)
|
||||
master-bin.000001 334 Write_rows 1 373 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 373 Query 1 448 use `test`; flush tables
|
||||
master-bin.000001 334 Write_rows 1 368 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 368 Table_map 1 407 table_id: # (test.t1)
|
||||
master-bin.000001 407 Write_rows 1 441 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 441 Query 1 516 use `test`; flush tables
|
||||
SELECT * FROM t1 ORDER BY a;
|
||||
a
|
||||
1
|
||||
|
|
|
@ -154,13 +154,15 @@ c1 c3 c4 c5
|
|||
--- Test 2 position test --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1000000000;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
CREATE TABLE t3(c1 INT NOT NULL PRIMARY KEY, c2 LONGBLOB, c3 TIMESTAMP, c4 TEXT, c5 FLOAT);
|
||||
DELIMITER /*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
|
||||
SET @@session.sql_mode=0/*!*/;
|
||||
/*!\C latin1 *//*!*/;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
|
||||
CREATE TABLE t3(c1 INT NOT NULL PRIMARY KEY, c2 LONGBLOB, c3 TIMESTAMP, c4 TEXT, c5 FLOAT)/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
@ -168,20 +170,22 @@ ROLLBACK /* added by mysqlbinlog */;
|
|||
--- Test 3 First Remote test --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
use test;
|
||||
SET TIMESTAMP=1000000000;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
DROP TABLE IF EXISTS t1,t2,t3;
|
||||
SET TIMESTAMP=1000000000;
|
||||
CREATE TABLE t1(word VARCHAR(20));
|
||||
SET TIMESTAMP=1000000000;
|
||||
CREATE TABLE t2(id INT AUTO_INCREMENT NOT NULL PRIMARY KEY);
|
||||
SET TIMESTAMP=1000000000;
|
||||
CREATE TABLE t3(c1 INT NOT NULL PRIMARY KEY, c2 LONGBLOB, c3 TIMESTAMP, c4 TEXT, c5 FLOAT);
|
||||
DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
|
||||
SET @@session.sql_mode=0/*!*/;
|
||||
/*!\C latin1 *//*!*/;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
|
||||
DROP TABLE IF EXISTS t1,t2,t3/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
CREATE TABLE t1(word VARCHAR(20))/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
CREATE TABLE t2(id INT AUTO_INCREMENT NOT NULL PRIMARY KEY)/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
CREATE TABLE t3(c1 INT NOT NULL PRIMARY KEY, c2 LONGBLOB, c3 TIMESTAMP, c4 TEXT, c5 FLOAT)/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
@ -189,6 +193,8 @@ ROLLBACK /* added by mysqlbinlog */;
|
|||
--- Test 5 LOAD DATA --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
@ -196,20 +202,22 @@ ROLLBACK /* added by mysqlbinlog */;
|
|||
--- Test 6 reading stdin --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
use test;
|
||||
SET TIMESTAMP=1000000000;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
DROP TABLE IF EXISTS t1,t2,t3;
|
||||
SET TIMESTAMP=1000000000;
|
||||
CREATE TABLE t1(word VARCHAR(20));
|
||||
SET TIMESTAMP=1000000000;
|
||||
CREATE TABLE t2(id INT AUTO_INCREMENT NOT NULL PRIMARY KEY);
|
||||
SET TIMESTAMP=1000000000;
|
||||
CREATE TABLE t3(c1 INT NOT NULL PRIMARY KEY, c2 LONGBLOB, c3 TIMESTAMP, c4 TEXT, c5 FLOAT);
|
||||
DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
|
||||
SET @@session.sql_mode=0/*!*/;
|
||||
/*!\C latin1 *//*!*/;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
|
||||
DROP TABLE IF EXISTS t1,t2,t3/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
CREATE TABLE t1(word VARCHAR(20))/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
CREATE TABLE t2(id INT AUTO_INCREMENT NOT NULL PRIMARY KEY)/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
CREATE TABLE t3(c1 INT NOT NULL PRIMARY KEY, c2 LONGBLOB, c3 TIMESTAMP, c4 TEXT, c5 FLOAT)/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
@ -217,13 +225,15 @@ ROLLBACK /* added by mysqlbinlog */;
|
|||
--- Test 7 reading stdin w/position --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1000000000;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
CREATE TABLE t3(c1 INT NOT NULL PRIMARY KEY, c2 LONGBLOB, c3 TIMESTAMP, c4 TEXT, c5 FLOAT);
|
||||
DELIMITER /*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
|
||||
SET @@session.sql_mode=0/*!*/;
|
||||
/*!\C latin1 *//*!*/;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
|
||||
CREATE TABLE t3(c1 INT NOT NULL PRIMARY KEY, c2 LONGBLOB, c3 TIMESTAMP, c4 TEXT, c5 FLOAT)/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
|
|
@ -46,60 +46,60 @@ INSERT INTO t1_bit VALUES (1,2);
|
|||
INSERT INTO t1_bit VALUES (2,5);
|
||||
INSERT INTO t1_char VALUES (1,2);
|
||||
INSERT INTO t1_char VALUES (2,5);
|
||||
SELECT * FROM t1_int;
|
||||
SELECT * FROM t1_int ORDER BY a;
|
||||
a b
|
||||
1 2
|
||||
2 5
|
||||
SELECT * FROM t1_bit;
|
||||
SELECT * FROM t1_bit ORDER BY a;
|
||||
a b
|
||||
1 2
|
||||
2 5
|
||||
SELECT * FROM t1_char;
|
||||
SELECT * FROM t1_char ORDER BY a;
|
||||
a b
|
||||
1 2
|
||||
2 5
|
||||
**** On Slave ****
|
||||
SELECT a,b,x FROM t1_int;
|
||||
SELECT a,b,x FROM t1_int ORDER BY a;
|
||||
a b x
|
||||
2 5 4711
|
||||
1 2 42
|
||||
SELECT a,b,HEX(x),HEX(y),HEX(z) FROM t1_bit;
|
||||
2 5 4711
|
||||
SELECT a,b,HEX(x),HEX(y),HEX(z) FROM t1_bit ORDER BY a;
|
||||
a b HEX(x) HEX(y) HEX(z)
|
||||
2 5 5 1C 1
|
||||
1 2 3 15 2
|
||||
SELECT a,b,x FROM t1_char;
|
||||
2 5 5 1C 1
|
||||
SELECT a,b,x FROM t1_char ORDER BY a;
|
||||
a b x
|
||||
2 5 Foo is a bar
|
||||
1 2 Just a test
|
||||
2 5 Foo is a bar
|
||||
**** On Master ****
|
||||
UPDATE t1_int SET b=2*b WHERE a=2;
|
||||
UPDATE t1_char SET b=2*b WHERE a=2;
|
||||
UPDATE t1_bit SET b=2*b WHERE a=2;
|
||||
SELECT * FROM t1_int;
|
||||
SELECT * FROM t1_int ORDER BY a;
|
||||
a b
|
||||
1 2
|
||||
2 10
|
||||
SELECT * FROM t1_bit;
|
||||
SELECT * FROM t1_bit ORDER BY a;
|
||||
a b
|
||||
1 2
|
||||
2 10
|
||||
SELECT * FROM t1_char;
|
||||
SELECT * FROM t1_char ORDER BY a;
|
||||
a b
|
||||
1 2
|
||||
2 10
|
||||
**** On Slave ****
|
||||
SELECT a,b,x FROM t1_int;
|
||||
SELECT a,b,x FROM t1_int ORDER BY a;
|
||||
a b x
|
||||
2 10 4711
|
||||
1 2 42
|
||||
SELECT a,b,HEX(x),HEX(y),HEX(z) FROM t1_bit;
|
||||
2 10 4711
|
||||
SELECT a,b,HEX(x),HEX(y),HEX(z) FROM t1_bit ORDER BY a;
|
||||
a b HEX(x) HEX(y) HEX(z)
|
||||
2 10 5 1C 1
|
||||
1 2 3 15 2
|
||||
SELECT a,b,x FROM t1_char;
|
||||
2 10 5 1C 1
|
||||
SELECT a,b,x FROM t1_char ORDER BY a;
|
||||
a b x
|
||||
2 10 Foo is a bar
|
||||
1 2 Just a test
|
||||
2 10 Foo is a bar
|
||||
INSERT INTO t9 VALUES (2);
|
||||
INSERT INTO t1_nodef VALUES (1,2);
|
||||
SHOW SLAVE STATUS;
|
||||
|
@ -327,22 +327,22 @@ Master_SSL_Key
|
|||
Seconds_Behind_Master #
|
||||
INSERT INTO t7 VALUES (1),(2),(3);
|
||||
INSERT INTO t8 VALUES (1),(2),(3);
|
||||
SELECT * FROM t7;
|
||||
SELECT * FROM t7 ORDER BY a;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
SELECT * FROM t8;
|
||||
SELECT * FROM t8 ORDER BY a;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
SELECT * FROM t7;
|
||||
SELECT * FROM t7 ORDER BY a;
|
||||
a e1 e2 e3 e4 e5 e6 e7 e8
|
||||
1 NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
2 NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
3 NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
SELECT * FROM t8;
|
||||
SELECT * FROM t8 ORDER BY a;
|
||||
a e1 e2 e3 e4 e5 e6 e7 e8
|
||||
1 0 0 0 0 0 0 0 0
|
||||
2 0 0 0 0 0 0 0 0
|
||||
|
@ -358,22 +358,22 @@ INSERT INTO t1_nodef VALUES (1,2,3);
|
|||
INSERT INTO t1_nodef VALUES (2,4,6);
|
||||
**** On Master ****
|
||||
UPDATE t1_nodef SET b=2*b WHERE a=1;
|
||||
SELECT * FROM t1_nodef;
|
||||
SELECT * FROM t1_nodef ORDER BY a;
|
||||
a b
|
||||
1 4
|
||||
2 4
|
||||
**** On Slave ****
|
||||
SELECT * FROM t1_nodef;
|
||||
SELECT * FROM t1_nodef ORDER BY a;
|
||||
a b x
|
||||
1 4 3
|
||||
2 4 6
|
||||
**** On Master ****
|
||||
DELETE FROM t1_nodef WHERE a=2;
|
||||
SELECT * FROM t1_nodef;
|
||||
SELECT * FROM t1_nodef ORDER BY a;
|
||||
a b
|
||||
1 4
|
||||
**** On Slave ****
|
||||
SELECT * FROM t1_nodef;
|
||||
SELECT * FROM t1_nodef ORDER BY a;
|
||||
a b x
|
||||
1 4 3
|
||||
**** Cleanup ****
|
||||
|
|
|
@ -46,60 +46,60 @@ INSERT INTO t1_bit VALUES (1,2);
|
|||
INSERT INTO t1_bit VALUES (2,5);
|
||||
INSERT INTO t1_char VALUES (1,2);
|
||||
INSERT INTO t1_char VALUES (2,5);
|
||||
SELECT * FROM t1_int;
|
||||
SELECT * FROM t1_int ORDER BY a;
|
||||
a b
|
||||
1 2
|
||||
2 5
|
||||
SELECT * FROM t1_bit;
|
||||
SELECT * FROM t1_bit ORDER BY a;
|
||||
a b
|
||||
1 2
|
||||
2 5
|
||||
SELECT * FROM t1_char;
|
||||
SELECT * FROM t1_char ORDER BY a;
|
||||
a b
|
||||
1 2
|
||||
2 5
|
||||
**** On Slave ****
|
||||
SELECT a,b,x FROM t1_int;
|
||||
SELECT a,b,x FROM t1_int ORDER BY a;
|
||||
a b x
|
||||
2 5 4711
|
||||
1 2 42
|
||||
SELECT a,b,HEX(x),HEX(y),HEX(z) FROM t1_bit;
|
||||
2 5 4711
|
||||
SELECT a,b,HEX(x),HEX(y),HEX(z) FROM t1_bit ORDER BY a;
|
||||
a b HEX(x) HEX(y) HEX(z)
|
||||
2 5 5 1C 1
|
||||
1 2 3 15 2
|
||||
SELECT a,b,x FROM t1_char;
|
||||
2 5 5 1C 1
|
||||
SELECT a,b,x FROM t1_char ORDER BY a;
|
||||
a b x
|
||||
2 5 Foo is a bar
|
||||
1 2 Just a test
|
||||
2 5 Foo is a bar
|
||||
**** On Master ****
|
||||
UPDATE t1_int SET b=2*b WHERE a=2;
|
||||
UPDATE t1_char SET b=2*b WHERE a=2;
|
||||
UPDATE t1_bit SET b=2*b WHERE a=2;
|
||||
SELECT * FROM t1_int;
|
||||
SELECT * FROM t1_int ORDER BY a;
|
||||
a b
|
||||
1 2
|
||||
2 10
|
||||
SELECT * FROM t1_bit;
|
||||
SELECT * FROM t1_bit ORDER BY a;
|
||||
a b
|
||||
1 2
|
||||
2 10
|
||||
SELECT * FROM t1_char;
|
||||
SELECT * FROM t1_char ORDER BY a;
|
||||
a b
|
||||
1 2
|
||||
2 10
|
||||
**** On Slave ****
|
||||
SELECT a,b,x FROM t1_int;
|
||||
SELECT a,b,x FROM t1_int ORDER BY a;
|
||||
a b x
|
||||
2 10 4711
|
||||
1 2 42
|
||||
SELECT a,b,HEX(x),HEX(y),HEX(z) FROM t1_bit;
|
||||
2 10 4711
|
||||
SELECT a,b,HEX(x),HEX(y),HEX(z) FROM t1_bit ORDER BY a;
|
||||
a b HEX(x) HEX(y) HEX(z)
|
||||
2 10 5 1C 1
|
||||
1 2 3 15 2
|
||||
SELECT a,b,x FROM t1_char;
|
||||
2 10 5 1C 1
|
||||
SELECT a,b,x FROM t1_char ORDER BY a;
|
||||
a b x
|
||||
2 10 Foo is a bar
|
||||
1 2 Just a test
|
||||
2 10 Foo is a bar
|
||||
INSERT INTO t9 VALUES (2);
|
||||
INSERT INTO t1_nodef VALUES (1,2);
|
||||
SHOW SLAVE STATUS;
|
||||
|
@ -327,22 +327,22 @@ Master_SSL_Key
|
|||
Seconds_Behind_Master #
|
||||
INSERT INTO t7 VALUES (1),(2),(3);
|
||||
INSERT INTO t8 VALUES (1),(2),(3);
|
||||
SELECT * FROM t7;
|
||||
SELECT * FROM t7 ORDER BY a;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
SELECT * FROM t8;
|
||||
SELECT * FROM t8 ORDER BY a;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
SELECT * FROM t7;
|
||||
SELECT * FROM t7 ORDER BY a;
|
||||
a e1 e2 e3 e4 e5 e6 e7 e8
|
||||
1 NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
2 NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
3 NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
SELECT * FROM t8;
|
||||
SELECT * FROM t8 ORDER BY a;
|
||||
a e1 e2 e3 e4 e5 e6 e7 e8
|
||||
1 0 0 0 0 0 0 0 0
|
||||
2 0 0 0 0 0 0 0 0
|
||||
|
@ -358,22 +358,22 @@ INSERT INTO t1_nodef VALUES (1,2,3);
|
|||
INSERT INTO t1_nodef VALUES (2,4,6);
|
||||
**** On Master ****
|
||||
UPDATE t1_nodef SET b=2*b WHERE a=1;
|
||||
SELECT * FROM t1_nodef;
|
||||
SELECT * FROM t1_nodef ORDER BY a;
|
||||
a b
|
||||
1 4
|
||||
2 4
|
||||
**** On Slave ****
|
||||
SELECT * FROM t1_nodef;
|
||||
SELECT * FROM t1_nodef ORDER BY a;
|
||||
a b x
|
||||
1 4 3
|
||||
2 4 6
|
||||
**** On Master ****
|
||||
DELETE FROM t1_nodef WHERE a=2;
|
||||
SELECT * FROM t1_nodef;
|
||||
SELECT * FROM t1_nodef ORDER BY a;
|
||||
a b
|
||||
1 4
|
||||
**** On Slave ****
|
||||
SELECT * FROM t1_nodef;
|
||||
SELECT * FROM t1_nodef ORDER BY a;
|
||||
a b x
|
||||
1 4 3
|
||||
**** Cleanup ****
|
||||
|
|
|
@ -269,107 +269,6 @@ insert into t1 values (1);
|
|||
select * from t1;
|
||||
a
|
||||
1
|
||||
show binlog events in 'master-bin.000001' from 102;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query 1 # drop database if exists mysqltest1
|
||||
master-bin.000001 # Query 1 # create database mysqltest1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; create table t1 (a varchar(100))
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` procedure foo()
|
||||
begin
|
||||
declare b int;
|
||||
set b = 8;
|
||||
insert into t1 values (b);
|
||||
insert into t1 values (unix_timestamp());
|
||||
end
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values ( NAME_CONST('b',8))
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values (unix_timestamp())
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; delete from t1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` procedure foo2()
|
||||
select * from mysqltest1.t1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; alter procedure foo2 contains sql
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; drop table t1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; create table t1 (a int)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; create table t2 like t1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` procedure foo3()
|
||||
deterministic
|
||||
insert into t1 values (15)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; grant CREATE ROUTINE, EXECUTE on mysqltest1.* to "zedjzlcsjhd"@127.0.0.1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; grant SELECT on mysqltest1.t1 to "zedjzlcsjhd"@127.0.0.1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; grant SELECT, INSERT on mysqltest1.t2 to "zedjzlcsjhd"@127.0.0.1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`zedjzlcsjhd`@`127.0.0.1` procedure foo4()
|
||||
deterministic
|
||||
begin
|
||||
insert into t2 values(3);
|
||||
insert into t1 values (5);
|
||||
end
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t2 values(3)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values (15)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t2 values(3)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; alter procedure foo4 sql security invoker
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t2 values(3)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values (5)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; delete from t2
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; alter table t2 add unique (a)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; drop procedure foo4
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` procedure foo4()
|
||||
deterministic
|
||||
begin
|
||||
insert into t2 values(20),(20);
|
||||
end
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t2 values(20),(20)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; drop procedure foo4
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; drop procedure foo
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; drop procedure foo2
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; drop procedure foo3
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` function fn1(x int)
|
||||
returns int
|
||||
deterministic
|
||||
begin
|
||||
insert into t1 values (x);
|
||||
return x+2;
|
||||
end
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; delete t1,t2 from t1,t2
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `fn1`(20)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t2 values(fn1(21))
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; drop function fn1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` function fn1()
|
||||
returns int
|
||||
no sql
|
||||
begin
|
||||
return unix_timestamp();
|
||||
end
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; delete from t1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values(fn1())
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`zedjzlcsjhd`@`127.0.0.1` function fn2()
|
||||
returns int
|
||||
no sql
|
||||
begin
|
||||
return unix_timestamp();
|
||||
end
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` function fn3()
|
||||
returns int
|
||||
not deterministic
|
||||
reads sql data
|
||||
begin
|
||||
return 0;
|
||||
end
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; delete from t2
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; alter table t2 add unique (a)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; drop function fn1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` function fn1(x int)
|
||||
returns int
|
||||
begin
|
||||
insert into t2 values(x),(x);
|
||||
return 10;
|
||||
end
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `fn1`(100)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `fn1`(20)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; delete from t1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` trigger trg before insert on t1 for each row set new.a= 10
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values (1)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; delete from t1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; drop trigger trg
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values (1)
|
||||
select * from t1;
|
||||
a
|
||||
1
|
||||
|
@ -465,10 +364,6 @@ RETURN 0
|
|||
DROP PROCEDURE p1;
|
||||
DROP FUNCTION f1;
|
||||
drop table t1;
|
||||
set global log_bin_trust_function_creators=0;
|
||||
set global log_bin_trust_function_creators=0;
|
||||
End of 5.0 tests
|
||||
reset master;
|
||||
drop database if exists mysqltest;
|
||||
drop database if exists mysqltest2;
|
||||
create database mysqltest;
|
||||
|
@ -477,17 +372,165 @@ use mysqltest2;
|
|||
create table t ( t integer );
|
||||
create procedure mysqltest.test() begin end;
|
||||
insert into t values ( 1 );
|
||||
show binlog events in 'master-bin.000001' from 102;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 102 Query 1 203 drop database if exists mysqltest
|
||||
master-bin.000001 203 Query 1 306 drop database if exists mysqltest2
|
||||
master-bin.000001 306 Query 1 399 create database mysqltest
|
||||
master-bin.000001 399 Query 1 494 create database mysqltest2
|
||||
master-bin.000001 494 Query 1 591 use `mysqltest2`; create table t ( t integer )
|
||||
master-bin.000001 591 Query 1 730 use `mysqltest2`; CREATE DEFINER=`root`@`localhost` procedure mysqltest.test() begin end
|
||||
master-bin.000001 730 Query 1 825 use `mysqltest2`; insert into t values ( 1 )
|
||||
create procedure `\\`.test() begin end;
|
||||
ERROR 42000: Unknown database '\\'
|
||||
create function f1 () returns int
|
||||
begin
|
||||
insert into t values (1);
|
||||
return 0;
|
||||
end|
|
||||
use mysqltest;
|
||||
set @a:= mysqltest2.f1();
|
||||
show binlog events in 'master-bin.000001' from 102;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query 1 # drop database if exists mysqltest1
|
||||
master-bin.000001 # Query 1 # create database mysqltest1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; create table t1 (a varchar(100))
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` procedure foo()
|
||||
begin
|
||||
declare b int;
|
||||
set b = 8;
|
||||
insert into t1 values (b);
|
||||
insert into t1 values (unix_timestamp());
|
||||
end
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values ( NAME_CONST('b',8))
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values (unix_timestamp())
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; delete from t1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` procedure foo2()
|
||||
select * from mysqltest1.t1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; alter procedure foo2 contains sql
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; drop table t1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; create table t1 (a int)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; create table t2 like t1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` procedure foo3()
|
||||
deterministic
|
||||
insert into t1 values (15)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; grant CREATE ROUTINE, EXECUTE on mysqltest1.* to "zedjzlcsjhd"@127.0.0.1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; grant SELECT on mysqltest1.t1 to "zedjzlcsjhd"@127.0.0.1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; grant SELECT, INSERT on mysqltest1.t2 to "zedjzlcsjhd"@127.0.0.1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`zedjzlcsjhd`@`127.0.0.1` procedure foo4()
|
||||
deterministic
|
||||
begin
|
||||
insert into t2 values(3);
|
||||
insert into t1 values (5);
|
||||
end
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t2 values(3)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values (15)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t2 values(3)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; alter procedure foo4 sql security invoker
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t2 values(3)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values (5)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; delete from t2
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; alter table t2 add unique (a)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; drop procedure foo4
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` procedure foo4()
|
||||
deterministic
|
||||
begin
|
||||
insert into t2 values(20),(20);
|
||||
end
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t2 values(20),(20)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; drop procedure foo4
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; drop procedure foo
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; drop procedure foo2
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; drop procedure foo3
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` function fn1(x int)
|
||||
returns int
|
||||
deterministic
|
||||
begin
|
||||
insert into t1 values (x);
|
||||
return x+2;
|
||||
end
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; delete t1,t2 from t1,t2
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `mysqltest1`.`fn1`(20)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t2 values(fn1(21))
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; drop function fn1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` function fn1()
|
||||
returns int
|
||||
no sql
|
||||
begin
|
||||
return unix_timestamp();
|
||||
end
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; delete from t1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values(fn1())
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`zedjzlcsjhd`@`127.0.0.1` function fn2()
|
||||
returns int
|
||||
no sql
|
||||
begin
|
||||
return unix_timestamp();
|
||||
end
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` function fn3()
|
||||
returns int
|
||||
not deterministic
|
||||
reads sql data
|
||||
begin
|
||||
return 0;
|
||||
end
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; delete from t2
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; alter table t2 add unique (a)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; drop function fn1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` function fn1(x int)
|
||||
returns int
|
||||
begin
|
||||
insert into t2 values(x),(x);
|
||||
return 10;
|
||||
end
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `mysqltest1`.`fn1`(100)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `mysqltest1`.`fn1`(20)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; delete from t1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` trigger trg before insert on t1 for each row set new.a= 10
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values (1)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; delete from t1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; drop trigger trg
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values (1)
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` procedure foo()
|
||||
not deterministic
|
||||
reads sql data
|
||||
select * from t1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; drop procedure foo
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; drop function fn1
|
||||
master-bin.000001 # Query 1 # drop database mysqltest1
|
||||
master-bin.000001 # Query 1 # drop user "zedjzlcsjhd"@127.0.0.1
|
||||
master-bin.000001 # Query 1 # use `test`; CREATE DEFINER=`root`@`localhost` function f1() returns int reads sql data
|
||||
begin
|
||||
declare var integer;
|
||||
declare c cursor for select a from v1;
|
||||
open c;
|
||||
fetch c into var;
|
||||
close c;
|
||||
return var;
|
||||
end
|
||||
master-bin.000001 # Query 1 # use `test`; CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 1 as a
|
||||
master-bin.000001 # Query 1 # use `test`; create table t1 (a int)
|
||||
master-bin.000001 # Query 1 # use `test`; insert into t1 (a) values (f1())
|
||||
master-bin.000001 # Query 1 # use `test`; drop view v1
|
||||
master-bin.000001 # Query 1 # use `test`; drop function f1
|
||||
master-bin.000001 # Query 1 # use `test`; DROP TABLE IF EXISTS t1
|
||||
master-bin.000001 # Query 1 # use `test`; CREATE TABLE t1(col VARCHAR(10))
|
||||
master-bin.000001 # Query 1 # use `test`; CREATE DEFINER=`root`@`localhost` PROCEDURE p1(arg VARCHAR(10))
|
||||
INSERT INTO t1 VALUES(arg)
|
||||
master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES( NAME_CONST('arg',_latin1'test'))
|
||||
master-bin.000001 # Query 1 # use `test`; DROP PROCEDURE p1
|
||||
master-bin.000001 # Query 1 # use `test`; CREATE DEFINER=`root`@`localhost` PROCEDURE p1() SET @a = 1
|
||||
master-bin.000001 # Query 1 # use `test`; CREATE DEFINER=`root`@`localhost` FUNCTION f1() RETURNS INT RETURN 0
|
||||
master-bin.000001 # Query 1 # use `test`; DROP PROCEDURE p1
|
||||
master-bin.000001 # Query 1 # use `test`; DROP FUNCTION f1
|
||||
master-bin.000001 # Query 1 # use `test`; drop table t1
|
||||
master-bin.000001 # Query 1 # drop database if exists mysqltest
|
||||
master-bin.000001 # Query 1 # drop database if exists mysqltest2
|
||||
master-bin.000001 # Query 1 # create database mysqltest
|
||||
master-bin.000001 # Query 1 # create database mysqltest2
|
||||
master-bin.000001 # Query 1 # use `mysqltest2`; create table t ( t integer )
|
||||
master-bin.000001 # Query 1 # use `mysqltest2`; CREATE DEFINER=`root`@`localhost` procedure mysqltest.test() begin end
|
||||
master-bin.000001 # Query 1 # use `mysqltest2`; insert into t values ( 1 )
|
||||
master-bin.000001 # Query 1 # use `mysqltest2`; CREATE DEFINER=`root`@`localhost` function f1 () returns int
|
||||
begin
|
||||
insert into t values (1);
|
||||
return 0;
|
||||
end
|
||||
master-bin.000001 # Query 1 # use `mysqltest`; SELECT `mysqltest2`.`f1`()
|
||||
set global log_bin_trust_function_creators=0;
|
||||
set global log_bin_trust_function_creators=0;
|
||||
drop database mysqltest;
|
||||
drop database mysqltest2;
|
||||
End of 5.0 tests
|
||||
End of 5.1 tests
|
||||
|
|
|
@ -174,86 +174,89 @@ CDF32C20E7E020F0FBE1E0EBEAF3 CDF32C20E7E020F0FBE1E0EBEAF3
|
|||
select hex(c1), hex(c2) from t1;
|
||||
hex(c1) hex(c2)
|
||||
CDF32C20E7E020F0FBE1E0EBEAF3 CDF32C20E7E020F0FBE1E0EBEAF3
|
||||
flush logs;
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
SET TIMESTAMP=1000000000;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
drop database if exists mysqltest2;
|
||||
SET TIMESTAMP=1000000000;
|
||||
drop database if exists mysqltest3;
|
||||
SET TIMESTAMP=1000000000;
|
||||
create database mysqltest2 character set latin2;
|
||||
SET TIMESTAMP=1000000000;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=30;
|
||||
create database mysqltest3;
|
||||
SET TIMESTAMP=1000000000;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=64;
|
||||
drop database mysqltest3;
|
||||
SET TIMESTAMP=1000000000;
|
||||
create database mysqltest3;
|
||||
use mysqltest2;
|
||||
SET TIMESTAMP=1000000000;
|
||||
create table t1 (a int auto_increment primary key, b varchar(100));
|
||||
SET INSERT_ID=1;
|
||||
SET TIMESTAMP=1000000000;
|
||||
/*!\C cp850 */;
|
||||
SET @@session.character_set_client=4,@@session.collation_connection=27,@@session.collation_server=64;
|
||||
insert into t1 (b) values(@@character_set_server);
|
||||
SET INSERT_ID=2;
|
||||
SET TIMESTAMP=1000000000;
|
||||
insert into t1 (b) values(@@collation_server);
|
||||
SET INSERT_ID=3;
|
||||
SET TIMESTAMP=1000000000;
|
||||
insert into t1 (b) values(@@character_set_client);
|
||||
SET INSERT_ID=4;
|
||||
SET TIMESTAMP=1000000000;
|
||||
insert into t1 (b) values(@@character_set_connection);
|
||||
SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1000000000;
|
||||
insert into t1 (b) values(@@collation_connection);
|
||||
SET TIMESTAMP=1000000000;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=5,@@session.collation_server=64;
|
||||
truncate table t1;
|
||||
SET INSERT_ID=1;
|
||||
SET TIMESTAMP=1000000000;
|
||||
insert into t1 (b) values(@@collation_connection);
|
||||
SET INSERT_ID=2;
|
||||
SET TIMESTAMP=1000000000;
|
||||
insert into t1 (b) values(LEAST("Müller","Muffler"));
|
||||
SET INSERT_ID=3;
|
||||
SET TIMESTAMP=1000000000;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=31,@@session.collation_server=64;
|
||||
insert into t1 (b) values(@@collation_connection);
|
||||
SET INSERT_ID=4;
|
||||
SET TIMESTAMP=1000000000;
|
||||
insert into t1 (b) values(LEAST("Müller","Muffler"));
|
||||
SET TIMESTAMP=1000000000;
|
||||
truncate table t1;
|
||||
SET INSERT_ID=1;
|
||||
SET @`a`:=_cp850 0x4DFC6C6C6572 COLLATE `cp850_general_ci`;
|
||||
SET TIMESTAMP=1000000000;
|
||||
insert into t1 (b) values(collation(@a));
|
||||
SET TIMESTAMP=1000000000;
|
||||
drop database mysqltest2;
|
||||
SET TIMESTAMP=1000000000;
|
||||
drop database mysqltest3;
|
||||
use test;
|
||||
SET TIMESTAMP=1000000000;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=30;
|
||||
CREATE TABLE t1 (c1 VARBINARY(255), c2 VARBINARY(255));
|
||||
SET TIMESTAMP=1000000000;
|
||||
/*!\C koi8r */;
|
||||
SET @@session.character_set_client=7,@@session.collation_connection=51,@@session.collation_server=30;
|
||||
INSERT INTO t1 (c1, c2) VALUES ('îÕ, ÚÁ ÒÙÂÁÌËÕ','îÕ, ÚÁ ÒÙÂÁÌËÕ');
|
||||
DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
|
||||
SET @@session.sql_mode=0/*!*/;
|
||||
/*!\C latin1 *//*!*/;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
|
||||
drop database if exists mysqltest2/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
drop database if exists mysqltest3/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
create database mysqltest2 character set latin2/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
/*!\C latin1 *//*!*/;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=30/*!*/;
|
||||
create database mysqltest3/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
/*!\C latin1 *//*!*/;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=64/*!*/;
|
||||
drop database mysqltest3/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
create database mysqltest3/*!*/;
|
||||
use mysqltest2/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
create table t1 (a int auto_increment primary key, b varchar(100))/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
/*!\C cp850 *//*!*/;
|
||||
SET @@session.character_set_client=4,@@session.collation_connection=27,@@session.collation_server=64/*!*/;
|
||||
insert into t1 (b) values(@@character_set_server)/*!*/;
|
||||
SET INSERT_ID=2/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
insert into t1 (b) values(@@collation_server)/*!*/;
|
||||
SET INSERT_ID=3/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
insert into t1 (b) values(@@character_set_client)/*!*/;
|
||||
SET INSERT_ID=4/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
insert into t1 (b) values(@@character_set_connection)/*!*/;
|
||||
SET INSERT_ID=5/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
insert into t1 (b) values(@@collation_connection)/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
/*!\C latin1 *//*!*/;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=5,@@session.collation_server=64/*!*/;
|
||||
truncate table t1/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
insert into t1 (b) values(@@collation_connection)/*!*/;
|
||||
SET INSERT_ID=2/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
insert into t1 (b) values(LEAST("Müller","Muffler"))/*!*/;
|
||||
SET INSERT_ID=3/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
/*!\C latin1 *//*!*/;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=31,@@session.collation_server=64/*!*/;
|
||||
insert into t1 (b) values(@@collation_connection)/*!*/;
|
||||
SET INSERT_ID=4/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
insert into t1 (b) values(LEAST("Müller","Muffler"))/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
truncate table t1/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
SET @`a`:=_cp850 0x4DFC6C6C6572 COLLATE `cp850_general_ci`/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
insert into t1 (b) values(collation(@a))/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
drop database mysqltest2/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
drop database mysqltest3/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
/*!\C latin1 *//*!*/;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=30/*!*/;
|
||||
CREATE TABLE t1 (c1 VARBINARY(255), c2 VARBINARY(255))/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
/*!\C koi8r *//*!*/;
|
||||
SET @@session.character_set_client=7,@@session.collation_connection=51,@@session.collation_server=30/*!*/;
|
||||
INSERT INTO t1 (c1, c2) VALUES ('îÕ, ÚÁ ÒÙÂÁÌËÕ','îÕ, ÚÁ ÒÙÂÁÌËÕ')/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
|
|
@ -559,7 +559,7 @@ begin
|
|||
insert into t2 select x;
|
||||
return 100;
|
||||
end
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `foo6`(_latin1'foo6_1_')
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `mysqltest1`.`foo6`(_latin1'foo6_1_')
|
||||
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
||||
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
||||
|
@ -620,7 +620,7 @@ master-bin.000001 # Query 1 # use `mysqltest1`; create table t12 select * from t
|
|||
master-bin.000001 # Query 1 # use `mysqltest1`; drop table t1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; create table t1 (a int, b varchar(100), key(a))
|
||||
master-bin.000001 # Intvar 1 # INSERT_ID=4
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `f`(_latin1'try_45_')
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `mysqltest1`.`f`(_latin1'try_45_')
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; create table t13 select * from t1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; drop table t1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; create table t1 (a int primary key auto_increment, b varchar(100))
|
||||
|
@ -660,9 +660,9 @@ set y = (select count(*) from t2);
|
|||
return y;
|
||||
end
|
||||
master-bin.000001 # Intvar 1 # INSERT_ID=4
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `f1`(_latin1'try_53_')
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `mysqltest1`.`f1`(_latin1'try_53_')
|
||||
master-bin.000001 # Intvar 1 # INSERT_ID=5
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `f2`(_latin1'try_54_')
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `mysqltest1`.`f2`(_latin1'try_54_')
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; drop function f2
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` trigger t1_bi before insert on t1 for each row
|
||||
begin
|
||||
|
@ -869,7 +869,7 @@ begin
|
|||
insert into t2 select x;
|
||||
return 100;
|
||||
end
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `foo6`(_latin1'foo6_1_')
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `mysqltest1`.`foo6`(_latin1'foo6_1_')
|
||||
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
||||
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
||||
|
@ -930,7 +930,7 @@ master-bin.000001 # Query 1 # use `mysqltest1`; create table t12 select * from t
|
|||
master-bin.000001 # Query 1 # use `mysqltest1`; drop table t1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; create table t1 (a int, b varchar(100), key(a))
|
||||
master-bin.000001 # Intvar 1 # INSERT_ID=4
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `f`(_latin1'try_45_')
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `mysqltest1`.`f`(_latin1'try_45_')
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; create table t13 select * from t1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; drop table t1
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; create table t1 (a int primary key auto_increment, b varchar(100))
|
||||
|
@ -970,9 +970,9 @@ set y = (select count(*) from t2);
|
|||
return y;
|
||||
end
|
||||
master-bin.000001 # Intvar 1 # INSERT_ID=4
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `f1`(_latin1'try_53_')
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `mysqltest1`.`f1`(_latin1'try_53_')
|
||||
master-bin.000001 # Intvar 1 # INSERT_ID=5
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `f2`(_latin1'try_54_')
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `mysqltest1`.`f2`(_latin1'try_54_')
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; drop function f2
|
||||
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` trigger t1_bi before insert on t1 for each row
|
||||
begin
|
||||
|
|
|
@ -2811,6 +2811,23 @@ SELECT i='1e+01',i=1e+01, i in (1e+01,1e+01), i in ('1e+01','1e+01') FROM t1;
|
|||
i='1e+01' i=1e+01 i in (1e+01,1e+01) i in ('1e+01','1e+01')
|
||||
1 1 1 1
|
||||
DROP TABLE t1;
|
||||
create table t1(a bigint unsigned, b bigint);
|
||||
insert into t1 values (0xfffffffffffffffff, 0xfffffffffffffffff),
|
||||
(0x10000000000000000, 0x10000000000000000),
|
||||
(0x8fffffffffffffff, 0x8fffffffffffffff);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'a' at row 1
|
||||
Warning 1264 Out of range value for column 'b' at row 1
|
||||
Warning 1264 Out of range value for column 'a' at row 2
|
||||
Warning 1264 Out of range value for column 'b' at row 2
|
||||
Warning 1264 Out of range value for column 'b' at row 3
|
||||
select hex(a), hex(b) from t1;
|
||||
hex(a) hex(b)
|
||||
FFFFFFFFFFFFFFFF 7FFFFFFFFFFFFFFF
|
||||
FFFFFFFFFFFFFFFF 7FFFFFFFFFFFFFFF
|
||||
8FFFFFFFFFFFFFFF 7FFFFFFFFFFFFFFF
|
||||
drop table t1;
|
||||
End of 4.1 tests
|
||||
CREATE TABLE t1 (
|
||||
K2C4 varchar(4) character set latin1 collate latin1_bin NOT NULL default '',
|
||||
K4N4 varchar(4) character set latin1 collate latin1_bin NOT NULL default '0000',
|
||||
|
@ -3611,3 +3628,9 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE t2 range si,ai si 5 NULL 2 Using where
|
||||
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
|
||||
DROP TABLE t1,t2,t3;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1(a int);
|
||||
INSERT into t1 values (1), (2), (3);
|
||||
SELECT * FROM t1 LIMIT 2, -1;
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1' at line 1
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -5633,7 +5633,7 @@ drop function if exists pi;
|
|||
create function pi() returns varchar(50)
|
||||
return "pie, my favorite desert.";
|
||||
Warnings:
|
||||
Note 1581 This function 'pi' has the same name as a native function.
|
||||
Note 1581 This function 'pi' has the same name as a native function
|
||||
SET @save_sql_mode=@@sql_mode;
|
||||
SET SQL_MODE='IGNORE_SPACE';
|
||||
select pi(), pi ();
|
||||
|
@ -5682,15 +5682,15 @@ use test;
|
|||
create function `database`() returns varchar(50)
|
||||
return "Stored function database";
|
||||
Warnings:
|
||||
Note 1581 This function 'database' has the same name as a native function.
|
||||
Note 1581 This function 'database' has the same name as a native function
|
||||
create function `current_user`() returns varchar(50)
|
||||
return "Stored function current_user";
|
||||
Warnings:
|
||||
Note 1581 This function 'current_user' has the same name as a native function.
|
||||
Note 1581 This function 'current_user' has the same name as a native function
|
||||
create function md5(x varchar(50)) returns varchar(50)
|
||||
return "Stored function md5";
|
||||
Warnings:
|
||||
Note 1581 This function 'md5' has the same name as a native function.
|
||||
Note 1581 This function 'md5' has the same name as a native function
|
||||
SET SQL_MODE='IGNORE_SPACE';
|
||||
select database(), database ();
|
||||
database() database ()
|
||||
|
@ -5816,4 +5816,20 @@ DROP TABLE bug23760, bug23760_log|
|
|||
DROP PROCEDURE bug23760_update_log|
|
||||
DROP PROCEDURE bug23760_test_row_count|
|
||||
DROP FUNCTION bug23760_rc_test|
|
||||
DROP PROCEDURE IF EXISTS bug24117|
|
||||
DROP TABLE IF EXISTS t3|
|
||||
CREATE TABLE t3(c1 ENUM('abc'))|
|
||||
INSERT INTO t3 VALUES('abc')|
|
||||
CREATE PROCEDURE bug24117()
|
||||
BEGIN
|
||||
DECLARE t3c1 ENUM('abc');
|
||||
DECLARE mycursor CURSOR FOR SELECT c1 FROM t3;
|
||||
OPEN mycursor;
|
||||
FLUSH TABLES;
|
||||
FETCH mycursor INTO t3c1;
|
||||
CLOSE mycursor;
|
||||
END|
|
||||
CALL bug24117()|
|
||||
DROP PROCEDURE bug24117|
|
||||
DROP TABLE t3|
|
||||
drop table t1,t2;
|
||||
|
|
|
@ -7,11 +7,11 @@ return 1;
|
|||
create function x() returns int
|
||||
return 2;
|
||||
Warnings:
|
||||
Note 1581 This function 'x' has the same name as a native function.
|
||||
Note 1581 This function 'x' has the same name as a native function
|
||||
create function y() returns int
|
||||
return 3;
|
||||
Warnings:
|
||||
Note 1581 This function 'y' has the same name as a native function.
|
||||
Note 1581 This function 'y' has the same name as a native function
|
||||
select a();
|
||||
a()
|
||||
1
|
||||
|
|
|
@ -111,3 +111,26 @@ t1 CREATE TABLE `t1` (
|
|||
`i` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TEMPORARY TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/log/'
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TEMPORARY TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/log/'
|
||||
create table t1 (a int) engine=myisam select 42 a;
|
||||
select * from t1;
|
||||
a
|
||||
9
|
||||
select * from t1;
|
||||
a
|
||||
99
|
||||
select * from t1;
|
||||
a
|
||||
42
|
||||
drop table t1;
|
||||
End of 4.1 tests
|
||||
End of 5.0 tests
|
||||
|
|
|
@ -568,7 +568,7 @@ create table t1 (a bit(7));
|
|||
insert into t1 values (0x60);
|
||||
select * from t1;
|
||||
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
|
||||
def test t1 t1 a a 16 7 1 Y 0 0 63
|
||||
def test t1 t1 a a 16 7 1 Y 32 0 63
|
||||
a
|
||||
`
|
||||
drop table t1;
|
||||
|
|
|
@ -406,7 +406,7 @@ create table t1 (a bit(7)) engine=innodb;
|
|||
insert into t1 values (0x60);
|
||||
select * from t1;
|
||||
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
|
||||
def test t1 t1 a a 16 7 1 Y 0 0 63
|
||||
def test t1 t1 a a 16 7 1 Y 32 0 63
|
||||
a
|
||||
`
|
||||
drop table t1;
|
||||
|
|
|
@ -209,7 +209,7 @@ select abs(myfunc_double(3) AS wrong);
|
|||
ERROR 42000: Incorrect parameters in the call to native function 'abs'
|
||||
drop function if exists pi;
|
||||
CREATE FUNCTION pi RETURNS STRING SONAME "should_not_parse.so";
|
||||
ERROR HY000: This function 'pi' has the same name as a native function.
|
||||
ERROR HY000: This function 'pi' has the same name as a native function
|
||||
DROP FUNCTION IF EXISTS metaphon;
|
||||
CREATE FUNCTION metaphon(a int) RETURNS int
|
||||
return 0;
|
||||
|
|
|
@ -13,21 +13,24 @@ master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(@`a b`)
|
|||
master-bin.000001 # User var 1 # @`var1`=_latin1 0x273B616161 COLLATE latin1_swedish_ci
|
||||
master-bin.000001 # User var 1 # @`var2`=_binary 0x61 COLLATE binary
|
||||
master-bin.000001 # Query 1 # use `test`; insert into t1 values (@var1),(@var2)
|
||||
flush logs;
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
SET @`a b`:=_latin1 0x68656C6C6F COLLATE `latin1_swedish_ci`;
|
||||
use test;
|
||||
SET TIMESTAMP=10000;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
INSERT INTO t1 VALUES(@`a b`);
|
||||
SET @`var1`:=_latin1 0x273B616161 COLLATE `latin1_swedish_ci`;
|
||||
SET @`var2`:=_binary 0x61 COLLATE `binary`;
|
||||
SET TIMESTAMP=10000;
|
||||
insert into t1 values (@var1),(@var2);
|
||||
DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
SET @`a b`:=_latin1 0x68656C6C6F COLLATE `latin1_swedish_ci`/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=10000/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
|
||||
SET @@session.sql_mode=0/*!*/;
|
||||
/*!\C latin1 *//*!*/;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
|
||||
INSERT INTO t1 VALUES(@`a b`)/*!*/;
|
||||
SET @`var1`:=_latin1 0x273B616161 COLLATE `latin1_swedish_ci`/*!*/;
|
||||
SET @`var2`:=_binary 0x61 COLLATE `binary`/*!*/;
|
||||
SET TIMESTAMP=10000/*!*/;
|
||||
insert into t1 values (@var1),(@var2)/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
|
|
@ -697,6 +697,63 @@ set names latin1;
|
|||
select @@have_innodb;
|
||||
@@have_innodb
|
||||
#
|
||||
*** Various tests with LC_TIME_NAMES
|
||||
*** LC_TIME_NAMES: testing case insensitivity
|
||||
set @@lc_time_names='ru_ru';
|
||||
select @@lc_time_names;
|
||||
@@lc_time_names
|
||||
ru_RU
|
||||
*** LC_TIME_NAMES: testing with a user variable
|
||||
set @lc='JA_JP';
|
||||
set @@lc_time_names=@lc;
|
||||
select @@lc_time_names;
|
||||
@@lc_time_names
|
||||
ja_JP
|
||||
*** LC_TIME_NAMES: testing with string expressions
|
||||
set lc_time_names=concat('de','_','DE');
|
||||
select @@lc_time_names;
|
||||
@@lc_time_names
|
||||
de_DE
|
||||
set lc_time_names=concat('de','+','DE');
|
||||
ERROR HY000: Unknown locale: 'de+DE'
|
||||
select @@lc_time_names;
|
||||
@@lc_time_names
|
||||
de_DE
|
||||
LC_TIME_NAMES: testing with numeric expressions
|
||||
set @@lc_time_names=1+2;
|
||||
select @@lc_time_names;
|
||||
@@lc_time_names
|
||||
sv_SE
|
||||
set @@lc_time_names=1/0;
|
||||
ERROR 42000: Incorrect argument type to variable 'lc_time_names'
|
||||
select @@lc_time_names;
|
||||
@@lc_time_names
|
||||
sv_SE
|
||||
set lc_time_names=en_US;
|
||||
LC_TIME_NAMES: testing NULL and a negative number:
|
||||
set lc_time_names=NULL;
|
||||
ERROR 42000: Variable 'lc_time_names' can't be set to the value of 'NULL'
|
||||
set lc_time_names=-1;
|
||||
ERROR HY000: Unknown locale: '-1'
|
||||
select @@lc_time_names;
|
||||
@@lc_time_names
|
||||
en_US
|
||||
LC_TIME_NAMES: testing locale with the last ID:
|
||||
set lc_time_names=108;
|
||||
select @@lc_time_names;
|
||||
@@lc_time_names
|
||||
zh_HK
|
||||
LC_TIME_NAMES: testing a number beyond the valid ID range:
|
||||
set lc_time_names=109;
|
||||
ERROR HY000: Unknown locale: '109'
|
||||
select @@lc_time_names;
|
||||
@@lc_time_names
|
||||
zh_HK
|
||||
LC_TIME_NAMES: testing that 0 is en_US:
|
||||
set lc_time_names=0;
|
||||
select @@lc_time_names;
|
||||
@@lc_time_names
|
||||
en_US
|
||||
set @test = @@query_prealloc_size;
|
||||
set @@query_prealloc_size = @test;
|
||||
select @@query_prealloc_size = @test;
|
||||
|
|
|
@ -2675,9 +2675,9 @@ lName varchar(25) NOT NULL,
|
|||
DOB date NOT NULL,
|
||||
uID int unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY);
|
||||
INSERT INTO t1(fName, lName, DOB) VALUES
|
||||
('Hank', 'Hill', '1964-09-29'),
|
||||
('Tom', 'Adams', '1908-02-14'),
|
||||
('Homer', 'Simpson', '1968-03-05');
|
||||
('Alice', 'Hill', date_sub(curdate(), interval 15271 day)),
|
||||
('Bob', 'Adams', date_sub(curdate(), interval 33600 day)),
|
||||
('Carol', 'Simpson', date_sub(curdate(), interval 13700 day));
|
||||
CREATE VIEW v1 AS
|
||||
SELECT (year(now())-year(DOB)) AS Age
|
||||
FROM t1 HAVING Age < 75;
|
||||
|
@ -2686,12 +2686,12 @@ View Create View
|
|||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select (year(now()) - year(`t1`.`DOB`)) AS `Age` from `t1` having (`Age` < 75)
|
||||
SELECT (year(now())-year(DOB)) AS Age FROM t1 HAVING Age < 75;
|
||||
Age
|
||||
43
|
||||
39
|
||||
42
|
||||
38
|
||||
SELECT * FROM v1;
|
||||
Age
|
||||
43
|
||||
39
|
||||
42
|
||||
38
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, a char(6) DEFAULT 'xxx');
|
||||
|
@ -3014,6 +3014,15 @@ i j
|
|||
6 3
|
||||
DROP VIEW v1, v2;
|
||||
DROP TABLE t1;
|
||||
DROP VIEW IF EXISTS v1;
|
||||
CREATE VIEW v1 AS SELECT 'The\ZEnd';
|
||||
SELECT * FROM v1;
|
||||
TheEnd
|
||||
TheEnd
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select _latin1'The\ZEnd' AS `TheEnd`
|
||||
DROP VIEW v1;
|
||||
End of 5.0 tests.
|
||||
DROP DATABASE IF EXISTS `d-1`;
|
||||
CREATE DATABASE `d-1`;
|
||||
|
|
|
@ -166,13 +166,6 @@ show variables like 'max_error_count';
|
|||
Variable_name Value
|
||||
max_error_count 10
|
||||
drop table t1;
|
||||
create table t1 (id int) engine=Innodb;
|
||||
Warnings:
|
||||
Warning 1266 Using storage engine MyISAM for table 't1'
|
||||
alter table t1 engine=Innodb;
|
||||
Warnings:
|
||||
Warning 1266 Using storage engine MyISAM for table 't1'
|
||||
drop table t1;
|
||||
set table_type=MYISAM;
|
||||
Warnings:
|
||||
Warning 1543 The syntax 'table_type' is deprecated and will be removed in MySQL 5.2. Please use 'storage_engine' instead
|
||||
|
|
7
mysql-test/r/warnings_engine_disabled.result
Normal file
7
mysql-test/r/warnings_engine_disabled.result
Normal file
|
@ -0,0 +1,7 @@
|
|||
create table t1 (id int) engine=NDB;
|
||||
Warnings:
|
||||
Warning 1266 Using storage engine MyISAM for table 't1'
|
||||
alter table t1 engine=NDB;
|
||||
Warnings:
|
||||
Warning 1266 Using storage engine MyISAM for table 't1'
|
||||
drop table t1;
|
|
@ -6,6 +6,12 @@ use prn;
|
|||
ERROR 42000: Unknown database 'prn'
|
||||
create table nu (a int);
|
||||
drop table nu;
|
||||
drop table if exists t1;
|
||||
CREATE TABLE t1 ( `ID` int(6) ) data directory 'c:/tmp/' index directory 'c:/tmp/' engine=MyISAM;
|
||||
Warnings:
|
||||
Warning 0 DATA DIRECTORY option ignored
|
||||
Warning 0 INDEX DIRECTORY option ignored
|
||||
drop table t1;
|
||||
create procedure proc_1() install plugin my_plug soname '\\root\\some_plugin.dll';
|
||||
call proc_1();
|
||||
ERROR HY000: No paths allowed for shared library
|
||||
|
|
|
@ -1347,11 +1347,14 @@ CHECK TABLE t2;
|
|||
SELECT * FROM t2;
|
||||
|
||||
|
||||
# We won't know exactly about what is going on internally,
|
||||
# but we will see if the row makes it in!!
|
||||
# Test INSERT DELAYED and wait until the table has one more record
|
||||
SELECT COUNT(auto) FROM t2;
|
||||
INSERT DELAYED INTO t2 VALUES (4,011403,37,'intercepted','audiology','tinily','');
|
||||
FLUSH TABLE t2;
|
||||
SELECT * FROM t2;
|
||||
while (`SELECT COUNT(auto)!=1214 FROM t2`)
|
||||
{
|
||||
sleep 0.1;
|
||||
}
|
||||
SELECT COUNT(auto) FROM t2;
|
||||
|
||||
# Adding test for alter table
|
||||
ALTER TABLE t2 DROP COLUMN fld6;
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
# we check that the error code of the "ROLLBACK" event is 0 and not
|
||||
# ER_SERVER_SHUTDOWN (i.e. disconnection just rolls back transaction
|
||||
# and does not make slave to stop)
|
||||
flush logs;
|
||||
--exec $MYSQL_BINLOG --start-position=516 $MYSQLTEST_VARDIR/log/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mix_innodb_myisam_binlog.output
|
||||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||||
eval select
|
||||
|
@ -26,6 +27,6 @@ eval select
|
|||
is not null;
|
||||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
||||
eval select
|
||||
@a like "%#%error_code=0%ROLLBACK;%ROLLBACK /* added by mysqlbinlog */;%",
|
||||
@a like "%#%error_code=0%ROLLBACK/*!*/;%ROLLBACK /* added by mysqlbinlog */;%",
|
||||
@a not like "%#%error_code=%error_code=%";
|
||||
drop table t1, t2;
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
# we check that the error code of the "ROLLBACK" event is 0 and not
|
||||
# ER_SERVER_SHUTDOWN (i.e. disconnection just rolls back transaction
|
||||
# and does not make slave to stop)
|
||||
flush logs;
|
||||
--exec $MYSQL_BINLOG --start-position=551 $MYSQLTEST_VARDIR/log/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mix_innodb_myisam_binlog.output
|
||||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||||
eval select
|
||||
|
@ -18,6 +19,6 @@ eval select
|
|||
is not null;
|
||||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
||||
eval select
|
||||
@a like "%#%error_code=0%ROLLBACK;%ROLLBACK /* added by mysqlbinlog */;%",
|
||||
@a like "%#%error_code=0%ROLLBACK/*!*/;%ROLLBACK /* added by mysqlbinlog */;%",
|
||||
@a not like "%#%error_code=%error_code=%";
|
||||
drop table t1, t2;
|
||||
|
|
16
mysql-test/t/ctype_hebrew.test
Normal file
16
mysql-test/t/ctype_hebrew.test
Normal file
|
@ -0,0 +1,16 @@
|
|||
#
|
||||
# BUG #24037: Lossy Hebrew to Unicode conversion
|
||||
#
|
||||
# Test if LRM and RLM characters are correctly converted to UTF-8
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--enable_warnings
|
||||
|
||||
SET NAMES hebrew;
|
||||
CREATE TABLE t1 (a char(1)) DEFAULT CHARSET=hebrew;
|
||||
INSERT INTO t1 VALUES (0xFD),(0xFE);
|
||||
ALTER TABLE t1 CONVERT TO CHARACTER SET utf8;
|
||||
SELECT HEX(a) FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo End of 4.1 tests
|
|
@ -93,6 +93,26 @@ show create table t1;
|
|||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#22646 LC_TIME_NAMES: Assignment to non-UTF8 target fails
|
||||
#
|
||||
set names utf8;
|
||||
set LC_TIME_NAMES='fr_FR';
|
||||
create table t1 (s1 char(20) character set latin1);
|
||||
insert into t1 values (date_format('2004-02-02','%M'));
|
||||
select hex(s1) from t1;
|
||||
drop table t1;
|
||||
create table t1 (s1 char(20) character set koi8r);
|
||||
set LC_TIME_NAMES='ru_RU';
|
||||
insert into t1 values (date_format('2004-02-02','%M'));
|
||||
insert into t1 values (date_format('2004-02-02','%b'));
|
||||
insert into t1 values (date_format('2004-02-02','%W'));
|
||||
insert into t1 values (date_format('2004-02-02','%a'));
|
||||
select hex(s1), s1 from t1;
|
||||
drop table t1;
|
||||
set LC_TIME_NAMES='en_US';
|
||||
|
||||
|
||||
#
|
||||
# Bug #2366 Wrong utf8 behaviour when data is truncated
|
||||
#
|
||||
|
|
|
@ -38,4 +38,5 @@ synchronization : Bug#24529 Test 'synchronization' fails on Mac pushb
|
|||
|
||||
flush2 : Bug#24805 Pushbuild can't handle test with --disable-log-bin
|
||||
mysql_upgrade : Bug#25074 mysql_upgrade gives inconsisten results
|
||||
plugin : Bug#25659 memory leak via "plugins" test
|
||||
|
||||
|
|
|
@ -72,17 +72,20 @@ SET SESSION long_query_time=1;
|
|||
SELECT * FROM slow_event_test;
|
||||
SET SESSION long_query_time=1;
|
||||
SET GLOBAL event_scheduler=on;
|
||||
SET GLOBAL long_query_time=20;
|
||||
CREATE EVENT long_event ON SCHEDULE EVERY 1 MINUTE DO INSERT INTO slow_event_test SELECT @@long_query_time, SLEEP(1.5);
|
||||
--echo "Sleep some more time than the actual event run will take"
|
||||
--sleep 2
|
||||
SHOW VARIABLES LIKE 'event_scheduler';
|
||||
--echo "Check our table. Should see 1 row"
|
||||
SELECT * FROM slow_event_test;
|
||||
--echo "Check slow log. Should not see anything because 1.5 is under the threshold of 300 for GLOBAL, though over SESSION which is 2"
|
||||
--echo "Check slow log. Should not see anything because 1.5 is under the threshold of 20 for GLOBAL, though over SESSION which is 1"
|
||||
--echo "This should show that the GLOBAL value is regarded and not the SESSION one of the current connection"
|
||||
SELECT user_host, query_time, db, sql_text FROM mysql.slow_log;
|
||||
--echo "Another test to show that GLOBAL is regarded and not SESSION."
|
||||
--echo "This should go to the slow log"
|
||||
DROP EVENT long_event;
|
||||
SET SESSION long_query_time=10;
|
||||
DROP EVENT long_event;
|
||||
SET GLOBAL long_query_time=1;
|
||||
CREATE EVENT long_event2 ON SCHEDULE EVERY 1 MINUTE DO INSERT INTO slow_event_test SELECT @@long_query_time, SLEEP(2);
|
||||
--echo "Sleep some more time than the actual event run will take"
|
||||
|
|
|
@ -709,6 +709,97 @@ create table t1 select stddev(0);
|
|||
show create table t1;
|
||||
drop table t1;
|
||||
|
||||
|
||||
#
|
||||
# Bug#22555: STDDEV yields positive result for groups with only one row
|
||||
#
|
||||
|
||||
create table bug22555 (i smallint primary key auto_increment, s1 smallint, s2 smallint, e decimal(30,10), o double);
|
||||
insert into bug22555 (s1, s2, e, o) values (53, 78, 11.4276528, 6.828112), (17, 78, 5.916793, 1.8502951), (18, 76, 2.679231, 9.17975591), (31, 62, 6.07831, 0.1), (19, 41, 5.37463, 15.1), (83, 73, 14.567426, 7.959222), (92, 53, 6.10151, 13.1856852), (7, 12, 13.92272, 3.442007), (92, 35, 11.95358909, 6.01376678), (38, 84, 2.572, 7.904571);
|
||||
select std(s1/s2) from bug22555 group by i;
|
||||
select std(e) from bug22555 group by i;
|
||||
select std(o) from bug22555 group by i;
|
||||
drop table bug22555;
|
||||
|
||||
create table bug22555 (i smallint, s1 smallint, s2 smallint, o1 double, o2 double, e1 decimal, e2 decimal);
|
||||
insert into bug22555 values (1,53,78,53,78,53,78),(2,17,78,17,78,17,78),(3,18,76,18,76,18,76);
|
||||
select i, count(*) from bug22555 group by i;
|
||||
select std(s1/s2) from bug22555 where i=1;
|
||||
select std(s1/s2) from bug22555 where i=2;
|
||||
select std(s1/s2) from bug22555 where i=3;
|
||||
select std(s1/s2) from bug22555 where i=1 group by i;
|
||||
select std(s1/s2) from bug22555 where i=2 group by i;
|
||||
select std(s1/s2) from bug22555 where i=3 group by i;
|
||||
select std(s1/s2) from bug22555 group by i order by i;
|
||||
select i, count(*), std(o1/o2) from bug22555 group by i order by i;
|
||||
select i, count(*), std(e1/e2) from bug22555 group by i order by i;
|
||||
set @saved_div_precision_increment=@@div_precision_increment;
|
||||
set div_precision_increment=19;
|
||||
select i, count(*), variance(s1/s2) from bug22555 group by i order by i;
|
||||
select i, count(*), variance(o1/o2) from bug22555 group by i order by i;
|
||||
select i, count(*), variance(e1/e2) from bug22555 group by i order by i;
|
||||
select i, count(*), std(s1/s2) from bug22555 group by i order by i;
|
||||
select i, count(*), std(o1/o2) from bug22555 group by i order by i;
|
||||
select i, count(*), std(e1/e2) from bug22555 group by i order by i;
|
||||
set div_precision_increment=20;
|
||||
select i, count(*), variance(s1/s2) from bug22555 group by i order by i;
|
||||
select i, count(*), variance(o1/o2) from bug22555 group by i order by i;
|
||||
select i, count(*), variance(e1/e2) from bug22555 group by i order by i;
|
||||
select i, count(*), std(s1/s2) from bug22555 group by i order by i;
|
||||
select i, count(*), std(o1/o2) from bug22555 group by i order by i;
|
||||
select i, count(*), std(e1/e2) from bug22555 group by i order by i;
|
||||
set @@div_precision_increment=@saved_div_precision_increment;
|
||||
insert into bug22555 values (1,53,78,53,78,53,78),(2,17,78,17,78,17,78),(3,18,76,18,76,18,76);
|
||||
insert into bug22555 values (1,53,78,53,78,53,78),(2,17,78,17,78,17,78),(3,18,76,18,76,18,76);
|
||||
insert into bug22555 values (1,53,78,53,78,53,78),(2,17,78,17,78,17,78),(3,18,76,18,76,18,76);
|
||||
|
||||
select i, count(*), std(s1/s2) from bug22555 group by i order by i;
|
||||
select i, count(*), std(o1/o2) from bug22555 group by i order by i;
|
||||
select i, count(*), std(e1/e2) from bug22555 group by i order by i;
|
||||
select std(s1/s2) from bug22555;
|
||||
select std(o1/o2) from bug22555;
|
||||
select std(e1/e2) from bug22555;
|
||||
set @saved_div_precision_increment=@@div_precision_increment;
|
||||
set div_precision_increment=19;
|
||||
select i, count(*), std(s1/s2) from bug22555 group by i order by i;
|
||||
select i, count(*), std(o1/o2) from bug22555 group by i order by i;
|
||||
select i, count(*), std(e1/e2) from bug22555 group by i order by i;
|
||||
select round(std(s1/s2), 17) from bug22555;
|
||||
select std(o1/o2) from bug22555;
|
||||
select round(std(e1/e2), 17) from bug22555;
|
||||
set div_precision_increment=20;
|
||||
select i, count(*), std(s1/s2) from bug22555 group by i order by i;
|
||||
select i, count(*), std(o1/o2) from bug22555 group by i order by i;
|
||||
select i, count(*), std(e1/e2) from bug22555 group by i order by i;
|
||||
select round(std(s1/s2), 17) from bug22555;
|
||||
select std(o1/o2) from bug22555;
|
||||
select round(std(e1/e2), 17) from bug22555;
|
||||
set @@div_precision_increment=@saved_div_precision_increment;
|
||||
drop table bug22555;
|
||||
|
||||
create table bug22555 (s smallint, o double, e decimal);
|
||||
insert into bug22555 values (1,1,1),(2,2,2),(3,3,3),(6,6,6),(7,7,7);
|
||||
select var_samp(s), var_pop(s) from bug22555;
|
||||
select var_samp(o), var_pop(o) from bug22555;
|
||||
select var_samp(e), var_pop(e) from bug22555;
|
||||
drop table bug22555;
|
||||
|
||||
create table bug22555 (s smallint, o double, e decimal);
|
||||
insert into bug22555 values (null,null,null),(null,null,null);
|
||||
select var_samp(s) as 'null', var_pop(s) as 'null' from bug22555;
|
||||
select var_samp(o) as 'null', var_pop(o) as 'null' from bug22555;
|
||||
select var_samp(e) as 'null', var_pop(e) as 'null' from bug22555;
|
||||
insert into bug22555 values (1,1,1);
|
||||
select var_samp(s) as 'null', var_pop(s) as '0' from bug22555;
|
||||
select var_samp(o) as 'null', var_pop(o) as '0' from bug22555;
|
||||
select var_samp(e) as 'null', var_pop(e) as '0' from bug22555;
|
||||
insert into bug22555 values (2,2,2);
|
||||
select var_samp(s) as '0.5', var_pop(s) as '0.25' from bug22555;
|
||||
select var_samp(o) as '0.5', var_pop(o) as '0.25' from bug22555;
|
||||
select var_samp(e) as '0.5', var_pop(e) as '0.25' from bug22555;
|
||||
drop table bug22555;
|
||||
|
||||
|
||||
#
|
||||
# Bug #23184: SELECT causes server crash
|
||||
#
|
||||
|
@ -733,4 +824,5 @@ SELECT a,AVG(DISTINCT b) AS average FROM t1 GROUP BY a HAVING average > 50;
|
|||
|
||||
DROP TABLE t1;
|
||||
|
||||
###
|
||||
--echo End of 5.0 tests
|
||||
|
|
|
@ -252,6 +252,13 @@ insert into t1 values (1),(2);
|
|||
select some_id from t1 where some_id not in(2,-1);
|
||||
select some_id from t1 where some_id not in(-4,-1,-4);
|
||||
select some_id from t1 where some_id not in(-4,-1,3423534,2342342);
|
||||
|
||||
#
|
||||
# BUG#24261: crash when WHERE contains NOT IN ('<negative value>') for unsigned column type
|
||||
#
|
||||
|
||||
select some_id from t1 where some_id not in('-1', '0');
|
||||
|
||||
drop table t1;
|
||||
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
#
|
||||
create database mysqltest;
|
||||
create table mysqltest.t1(a int);
|
||||
--exec chmod -r $MYSQLTEST_VARDIR/master-data/mysqltest
|
||||
chmod 0000 $MYSQLTEST_VARDIR/master-data/mysqltest;
|
||||
select table_schema from information_schema.tables where table_schema='mysqltest';
|
||||
--exec chmod +r $MYSQLTEST_VARDIR/master-data/mysqltest
|
||||
exec chmod 0777 $MYSQLTEST_VARDIR/master-data/mysqltest;
|
||||
drop database mysqltest;
|
||||
|
|
|
@ -76,11 +76,14 @@ insert into t2 select id from t1;
|
|||
create table t3 (kill_id int);
|
||||
insert into t3 values(connection_id());
|
||||
|
||||
connect (conn2, localhost, root,,);
|
||||
connection conn2;
|
||||
|
||||
connection conn1;
|
||||
-- disable_result_log
|
||||
send select id from t1 where id in (select distinct id from t2);
|
||||
-- enable_result_log
|
||||
|
||||
connect (conn2, localhost, root,,);
|
||||
connection conn2;
|
||||
select ((@id := kill_id) - kill_id) from t3;
|
||||
-- sleep 1
|
||||
|
|
|
@ -846,6 +846,10 @@ DROP TABLE t1;
|
|||
#
|
||||
SET @@myisam_repair_threads=1;
|
||||
SHOW VARIABLES LIKE 'myisam_repair%';
|
||||
|
||||
--echo End of 4.1 tests
|
||||
|
||||
|
||||
# Test varchar
|
||||
#
|
||||
|
||||
|
@ -942,42 +946,7 @@ alter table t1 enable keys;
|
|||
show keys from t1;
|
||||
|
||||
drop table t1;
|
||||
#
|
||||
# Bug#8706 - temporary table with data directory option fails
|
||||
#
|
||||
connect (session1,localhost,root,,);
|
||||
connect (session2,localhost,root,,);
|
||||
|
||||
connection session1;
|
||||
disable_query_log;
|
||||
eval create temporary table t1 (a int) engine=myisam data directory="$MYSQLTEST_VARDIR/tmp" select 9 a;
|
||||
enable_query_log;
|
||||
disable_result_log;
|
||||
show create table t1;
|
||||
enable_result_log;
|
||||
|
||||
connection session2;
|
||||
disable_query_log;
|
||||
eval create temporary table t1 (a int) engine=myisam data directory="$MYSQLTEST_VARDIR/tmp" select 99 a;
|
||||
enable_query_log;
|
||||
disable_result_log;
|
||||
show create table t1;
|
||||
enable_result_log;
|
||||
|
||||
connection default;
|
||||
create table t1 (a int) engine=myisam select 42 a;
|
||||
|
||||
connection session1;
|
||||
select * from t1;
|
||||
disconnect session1;
|
||||
connection session2;
|
||||
select * from t1;
|
||||
disconnect session2;
|
||||
connection default;
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
--echo End of 4.1 tests
|
||||
|
||||
#
|
||||
# Bug#10056 - PACK_KEYS option take values greater than 1 while creating table
|
||||
|
|
|
@ -145,21 +145,24 @@ drop table t1;
|
|||
#
|
||||
# Bug #19216: Client crashes on long SELECT
|
||||
#
|
||||
--exec echo "select" > $MYSQLTEST_VARDIR/tmp/b19216.tmp
|
||||
# 3400 * 20 makes 68000 columns that is more than the max number that can fit
|
||||
# in a 16 bit number.
|
||||
let $i= 3400;
|
||||
while ($i)
|
||||
{
|
||||
--exec echo "'a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a'," >> $MYSQLTEST_VARDIR/tmp/b19216.tmp
|
||||
dec $i;
|
||||
}
|
||||
# Create large SELECT
|
||||
# - 3400 * 20 makes 68000 columns that is more than the
|
||||
# max number that can fit in a 16 bit number.
|
||||
|
||||
--perl
|
||||
open(FILE,">","$ENV{'MYSQLTEST_VARDIR'}/tmp/b19216.tmp") or die;
|
||||
print FILE "select\n";
|
||||
print FILE "'a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a',\n" x 3400;
|
||||
print FILE "'b';\n";
|
||||
close FILE;
|
||||
EOF
|
||||
|
||||
--exec echo "'b';" >> $MYSQLTEST_VARDIR/tmp/b19216.tmp
|
||||
--disable_query_log
|
||||
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/b19216.tmp >/dev/null
|
||||
--enable_query_log
|
||||
|
||||
--remove_file $MYSQLTEST_VARDIR/tmp/b19216.tmp
|
||||
|
||||
#
|
||||
# Bug #20103: Escaping with backslash does not work
|
||||
#
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue