This commit is contained in:
Igor Babaev 2009-11-09 18:32:39 -08:00
commit d749c7e600
257 changed files with 12403 additions and 2740 deletions

View File

@ -1921,3 +1921,4 @@ sql/share/ukrainian
libmysqld/examples/mysqltest.cc libmysqld/examples/mysqltest.cc
extra/libevent/event-config.h extra/libevent/event-config.h
libmysqld/opt_table_elimination.cc libmysqld/opt_table_elimination.cc
libmysqld/ha_federatedx.cc

View File

@ -146,6 +146,13 @@ then
debug_cflags="$debug_cflags $debug_extra_cflags" debug_cflags="$debug_cflags $debug_extra_cflags"
fi fi
static_link="--with-mysqld-ldflags=-all-static "
static_link="$static_link --with-client-ldflags=-all-static"
# we need local-infile in all binaries for rpl000001
# if you need to disable local-infile in the client, write a build script
# and unset local_infile_configs
local_infile_configs="--enable-local-infile"
# #
# Configuration options. # Configuration options.
# #
@ -154,6 +161,8 @@ base_configs="$base_configs --with-extra-charsets=complex "
base_configs="$base_configs --enable-thread-safe-client " base_configs="$base_configs --enable-thread-safe-client "
base_configs="$base_configs --with-big-tables" base_configs="$base_configs --with-big-tables"
base_configs="$base_configs --with-plugin-maria --with-maria-tmp-tables --without-plugin-innodb_plugin" base_configs="$base_configs --with-plugin-maria --with-maria-tmp-tables --without-plugin-innodb_plugin"
# Compile our client programs with static libraries to allow them to be moved
base_configs="$base_configs --with-mysqld-ldflags=-static --with-client-ldflags=-static"
if test -d "$path/../cmd-line-utils/readline" if test -d "$path/../cmd-line-utils/readline"
then then
@ -163,14 +172,6 @@ then
base_configs="$base_configs --with-libedit" base_configs="$base_configs --with-libedit"
fi fi
static_link="--with-mysqld-ldflags=-all-static "
static_link="$static_link --with-client-ldflags=-all-static"
# we need local-infile in all binaries for rpl000001
# if you need to disable local-infile in the client, write a build script
# and unset local_infile_configs
local_infile_configs="--enable-local-infile"
max_no_embedded_configs="$SSL_LIBRARY --with-plugins=max" max_no_embedded_configs="$SSL_LIBRARY --with-plugins=max"
max_no_qc_configs="$SSL_LIBRARY --with-plugins=max --without-query-cache" max_no_qc_configs="$SSL_LIBRARY --with-plugins=max --without-query-cache"
max_no_ndb_configs="$SSL_LIBRARY --with-plugins=max-no-ndb --with-embedded-server --with-libevent" max_no_ndb_configs="$SSL_LIBRARY --with-plugins=max-no-ndb --with-embedded-server --with-libevent"

View File

@ -70,6 +70,11 @@ check_cpu () {
Alpha*EV6*) Alpha*EV6*)
cpu_arg="ev6"; cpu_arg="ev6";
;; ;;
#Core 2 Duo
*Intel*Core\(TM\)2*)
cpu_arg="nocona"
core2="yes"
;;
# Intel ia32 # Intel ia32
*Intel*Core*|*X[eE][oO][nN]*) *Intel*Core*|*X[eE][oO][nN]*)
# a Xeon is just another pentium4 ... # a Xeon is just another pentium4 ...
@ -134,10 +139,6 @@ check_cpu () {
*i386*) *i386*)
cpu_arg="i386" cpu_arg="i386"
;; ;;
#Core 2 Duo
*Intel*Core\(TM\)2*)
cpu_arg="nocona"
;;
# Intel ia64 # Intel ia64
*Itanium*) *Itanium*)
cpu_arg="itanium" cpu_arg="itanium"

View File

@ -86,7 +86,7 @@ extern "C" {
#endif #endif
#undef bcmp // Fix problem with new readline #undef bcmp // Fix problem with new readline
#if defined( __WIN__) #if defined(__WIN__)
#include <conio.h> #include <conio.h>
#elif !defined(__NETWARE__) #elif !defined(__NETWARE__)
#include <readline/readline.h> #include <readline/readline.h>
@ -106,7 +106,7 @@ extern "C" {
#define cmp_database(cs,A,B) strcmp((A),(B)) #define cmp_database(cs,A,B) strcmp((A),(B))
#endif #endif
#if !defined( __WIN__) && !defined(__NETWARE__) && !defined(THREAD) #if !defined(__WIN__) && !defined(__NETWARE__) && !defined(THREAD)
#define USE_POPEN #define USE_POPEN
#endif #endif
@ -1870,7 +1870,7 @@ static int read_and_execute(bool interactive)
if (opt_outfile && glob_buffer.is_empty()) if (opt_outfile && glob_buffer.is_empty())
fflush(OUTFILE); fflush(OUTFILE);
#if defined( __WIN__) || defined(__NETWARE__) #if defined(__WIN__) || defined(__NETWARE__)
tee_fputs(prompt, stdout); tee_fputs(prompt, stdout);
#if defined(__NETWARE__) #if defined(__NETWARE__)
line=fgets(linebuffer, sizeof(linebuffer)-1, stdin); line=fgets(linebuffer, sizeof(linebuffer)-1, stdin);
@ -1881,7 +1881,7 @@ static int read_and_execute(bool interactive)
if (p != NULL) if (p != NULL)
*p = '\0'; *p = '\0';
} }
#else defined(__WIN__) #else
if (!tmpbuf.is_alloced()) if (!tmpbuf.is_alloced())
tmpbuf.alloc(65535); tmpbuf.alloc(65535);
tmpbuf.length(0); tmpbuf.length(0);
@ -1907,7 +1907,7 @@ static int read_and_execute(bool interactive)
if (opt_outfile) if (opt_outfile)
fputs(prompt, OUTFILE); fputs(prompt, OUTFILE);
line= readline(prompt); line= readline(prompt);
#endif /* defined( __WIN__) || defined(__NETWARE__) */ #endif /* defined(__WIN__) || defined(__NETWARE__) */
/* /*
When Ctrl+d or Ctrl+z is pressed, the line may be NULL on some OS When Ctrl+d or Ctrl+z is pressed, the line may be NULL on some OS
@ -1955,10 +1955,10 @@ static int read_and_execute(bool interactive)
} }
} }
#if defined( __WIN__) || defined(__NETWARE__) #if defined(__WIN__) || defined(__NETWARE__)
buffer.free(); buffer.free();
#endif #endif
#if defined( __WIN__) #if defined(__WIN__)
tmpbuf.free(); tmpbuf.free();
#endif #endif
@ -3835,6 +3835,7 @@ com_edit(String *buffer,char *line __attribute__((unused)))
char errmsg[100]; char errmsg[100];
sprintf(errmsg, "Command '%.40s' failed", buff); sprintf(errmsg, "Command '%.40s' failed", buff);
put_info(errmsg, INFO_ERROR, 0, NullS); put_info(errmsg, INFO_ERROR, 0, NullS);
goto err;
} }
if (!my_stat(filename,&stat_arg,MYF(MY_WME))) if (!my_stat(filename,&stat_arg,MYF(MY_WME)))
@ -4635,7 +4636,7 @@ void tee_putc(int c, FILE *file)
putc(c, OUTFILE); putc(c, OUTFILE);
} }
#if defined( __WIN__) || defined(__NETWARE__) #if defined(__WIN__) || defined(__NETWARE__)
#include <time.h> #include <time.h>
#else #else
#include <sys/times.h> #include <sys/times.h>
@ -4647,7 +4648,7 @@ void tee_putc(int c, FILE *file)
static ulong start_timer(void) static ulong start_timer(void)
{ {
#if defined( __WIN__) || defined(__NETWARE__) #if defined(__WIN__) || defined(__NETWARE__)
return clock(); return clock();
#else #else
struct tms tms_tmp; struct tms tms_tmp;

View File

@ -552,6 +552,7 @@ static int upgrade_already_done(void)
FILE *in; FILE *in;
char upgrade_info_file[FN_REFLEN]= {0}; char upgrade_info_file[FN_REFLEN]= {0};
char buf[sizeof(MYSQL_SERVER_VERSION)+1]; char buf[sizeof(MYSQL_SERVER_VERSION)+1];
char *res;
if (get_upgrade_info_file_name(upgrade_info_file)) if (get_upgrade_info_file_name(upgrade_info_file))
return 0; /* Could not get filename => not sure */ return 0; /* Could not get filename => not sure */

View File

@ -22,6 +22,7 @@
#endif #endif
#include <sys/stat.h> #include <sys/stat.h>
#include <mysql.h> #include <mysql.h>
#include <sql_common.h>
#define ADMIN_VERSION "8.42" #define ADMIN_VERSION "8.42"
#define MAX_MYSQL_VAR 512 #define MAX_MYSQL_VAR 512
@ -353,6 +354,11 @@ int main(int argc,char *argv[])
if (sql_connect(&mysql, option_wait)) if (sql_connect(&mysql, option_wait))
{ {
/*
We couldn't get an initial connection and will definitely exit.
The following just determines the exit-code we'll give.
*/
unsigned int err= mysql_errno(&mysql); unsigned int err= mysql_errno(&mysql);
if (err >= CR_MIN_ERROR && err <= CR_MAX_ERROR) if (err >= CR_MIN_ERROR && err <= CR_MAX_ERROR)
error= 1; error= 1;
@ -371,41 +377,79 @@ int main(int argc,char *argv[])
} }
else else
{ {
while (!interrupted) /*
--count=0 aborts right here. Otherwise iff --sleep=t ("interval")
is given a t!=0, we get an endless loop, or n iterations if --count=n
was given an n!=0. If --sleep wasn't given, we get one iteration.
To wit, --wait loops the connection-attempts, while --sleep loops
the command execution (endlessly if no --count is given).
*/
while (!interrupted && (!opt_count_iterations || nr_iterations))
{ {
new_line = 0; new_line = 0;
if ((error=execute_commands(&mysql,argc,commands)))
if ((error= execute_commands(&mysql,argc,commands)))
{ {
/*
Unknown/malformed command always aborts and can't be --forced.
If the user got confused about the syntax, proceeding would be
dangerous ...
*/
if (error > 0) if (error > 0)
break; /* Wrong command error */ break;
/*
Command was well-formed, but failed on the server. Might succeed
on retry (if conditions on server change etc.), but needs --force
to retry.
*/
if (!option_force) if (!option_force)
break;
} /* if((error= ... */
if (interval) /* --sleep=interval given */
{
/*
If connection was dropped (unintentionally, or due to SHUTDOWN),
re-establish it if --wait ("retry-connect") was given and user
didn't signal for us to die. Otherwise, signal failure.
*/
if (mysql.net.vio == 0)
{ {
if (option_wait && !interrupted) if (option_wait && !interrupted)
{ {
mysql_close(&mysql); sleep(1);
if (!sql_connect(&mysql, option_wait)) sql_connect(&mysql, option_wait);
/*
continue normally and decrease counters so that
"mysqladmin --count=1 --wait=1 shutdown"
cannot loop endlessly.
*/
}
else
{ {
sleep(1); /* Don't retry too rapidly */ /*
continue; /* Retry */ connexion broke, and we have no order to re-establish it. fail.
} */
} if (!option_force)
error=1; error= 1;
break; break;
} }
} } /* lost connection */
if (interval)
{
if (opt_count_iterations && --nr_iterations == 0)
break;
sleep(interval); sleep(interval);
if (new_line) if (new_line)
puts(""); puts("");
} }
else else
break; break; /* no --sleep, done looping */
} } /* command-loop */
} /* got connection */
mysql_close(&mysql); mysql_close(&mysql);
}
my_free(opt_password,MYF(MY_ALLOW_ZERO_PTR)); my_free(opt_password,MYF(MY_ALLOW_ZERO_PTR));
my_free(user,MYF(MY_ALLOW_ZERO_PTR)); my_free(user,MYF(MY_ALLOW_ZERO_PTR));
#ifdef HAVE_SMEM #ifdef HAVE_SMEM
@ -423,6 +467,17 @@ sig_handler endprog(int signal_number __attribute__((unused)))
interrupted=1; interrupted=1;
} }
/**
@brief connect to server, optionally waiting for same to come up
@param mysql connection struct
@param wait wait for server to come up?
(0: no, ~0: forever, n: cycles)
@return Operation result
@retval 0 success
@retval 1 failure
*/
static my_bool sql_connect(MYSQL *mysql, uint wait) static my_bool sql_connect(MYSQL *mysql, uint wait)
{ {
@ -431,7 +486,7 @@ static my_bool sql_connect(MYSQL *mysql, uint wait)
for (;;) for (;;)
{ {
if (mysql_real_connect(mysql,host,user,opt_password,NullS,tcp_port, if (mysql_real_connect(mysql,host,user,opt_password,NullS,tcp_port,
unix_port, 0)) unix_port, CLIENT_REMEMBER_OPTIONS))
{ {
mysql->reconnect= 1; mysql->reconnect= 1;
if (info) if (info)
@ -442,9 +497,9 @@ static my_bool sql_connect(MYSQL *mysql, uint wait)
return 0; return 0;
} }
if (!wait) if (!wait) // was or reached 0, fail
{ {
if (!option_silent) if (!option_silent) // print diagnostics
{ {
if (!host) if (!host)
host= (char*) LOCAL_HOST; host= (char*) LOCAL_HOST;
@ -468,11 +523,18 @@ static my_bool sql_connect(MYSQL *mysql, uint wait)
} }
return 1; return 1;
} }
if (wait != (uint) ~0) if (wait != (uint) ~0)
wait--; /* One less retry */ wait--; /* count down, one less retry */
if ((mysql_errno(mysql) != CR_CONN_HOST_ERROR) && if ((mysql_errno(mysql) != CR_CONN_HOST_ERROR) &&
(mysql_errno(mysql) != CR_CONNECTION_ERROR)) (mysql_errno(mysql) != CR_CONNECTION_ERROR))
{ {
/*
Error is worse than "server doesn't answer (yet?)";
fail even if we still have "wait-coins" unless --force
was also given.
*/
fprintf(stderr,"Got error: %s\n", mysql_error(mysql)); fprintf(stderr,"Got error: %s\n", mysql_error(mysql));
if (!option_force) if (!option_force)
return 1; return 1;
@ -496,11 +558,18 @@ static my_bool sql_connect(MYSQL *mysql, uint wait)
} }
/* /**
Execute a command. @brief Execute all commands
Return 0 on ok
-1 on retryable error @details We try to execute all commands we were given, in the order
1 on fatal error given, but return with non-zero as soon as we encounter trouble.
By that token, individual commands can be considered a conjunction
with boolean short-cut.
@return success?
@retval 0 Yes! ALL commands worked!
@retval 1 No, one failed and will never work (malformed): fatal error!
@retval -1 No, one failed on the server, may work next time!
*/ */
static int execute_commands(MYSQL *mysql,int argc, char **argv) static int execute_commands(MYSQL *mysql,int argc, char **argv)
@ -570,7 +639,6 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
mysql_error(mysql)); mysql_error(mysql));
return -1; return -1;
} }
mysql_close(mysql); /* Close connection to avoid error messages */
argc=1; /* force SHUTDOWN to be the last command */ argc=1; /* force SHUTDOWN to be the last command */
if (got_pidfile) if (got_pidfile)
{ {
@ -1036,14 +1104,16 @@ static void usage(void)
static int drop_db(MYSQL *mysql, const char *db) static int drop_db(MYSQL *mysql, const char *db)
{ {
char name_buff[FN_REFLEN+20], buf[10]; char name_buff[FN_REFLEN+20], buf[10];
char *input;
if (!option_force) if (!option_force)
{ {
puts("Dropping the database is potentially a very bad thing to do."); puts("Dropping the database is potentially a very bad thing to do.");
puts("Any data stored in the database will be destroyed.\n"); puts("Any data stored in the database will be destroyed.\n");
printf("Do you really want to drop the '%s' database [y/N] ",db); printf("Do you really want to drop the '%s' database [y/N] ",db);
fflush(stdout); fflush(stdout);
if (fgets(buf,sizeof(buf)-1,stdin) == 0 || input= fgets(buf, sizeof(buf)-1, stdin);
(*buf != 'y') && (*buf != 'Y')) if (!input || ((*input != 'y') && (*input != 'Y')))
{ {
puts("\nOK, aborting database drop!"); puts("\nOK, aborting database drop!");
return -1; return -1;

View File

@ -5008,7 +5008,7 @@ int main(int argc, char **argv)
exit_code= get_options(&argc, &argv); exit_code= get_options(&argc, &argv);
if (exit_code) if (exit_code)
{ {
free_resources(0); free_resources();
exit(exit_code); exit(exit_code);
} }
@ -5016,14 +5016,14 @@ int main(int argc, char **argv)
{ {
if(!(stderror_file= freopen(log_error_file, "a+", stderr))) if(!(stderror_file= freopen(log_error_file, "a+", stderr)))
{ {
free_resources(0); free_resources();
exit(EX_MYSQLERR); exit(EX_MYSQLERR);
} }
} }
if (connect_to_db(current_host, current_user, opt_password)) if (connect_to_db(current_host, current_user, opt_password))
{ {
free_resources(0); free_resources();
exit(EX_MYSQLERR); exit(EX_MYSQLERR);
} }
if (!path) if (!path)

View File

@ -443,10 +443,12 @@ DYNAMIC_STRING ds_res;
char builtin_echo[FN_REFLEN]; char builtin_echo[FN_REFLEN];
static void cleanup_and_exit(int exit_code) __attribute__((noreturn));
void die(const char *fmt, ...) void die(const char *fmt, ...)
ATTRIBUTE_FORMAT(printf, 1, 2); ATTRIBUTE_FORMAT(printf, 1, 2) __attribute__((noreturn));
void abort_not_supported_test(const char *fmt, ...) void abort_not_supported_test(const char *fmt, ...)
ATTRIBUTE_FORMAT(printf, 1, 2); ATTRIBUTE_FORMAT(printf, 1, 2) __attribute__((noreturn));
void verbose_msg(const char *fmt, ...) void verbose_msg(const char *fmt, ...)
ATTRIBUTE_FORMAT(printf, 1, 2); ATTRIBUTE_FORMAT(printf, 1, 2);
void log_msg(const char *fmt, ...) void log_msg(const char *fmt, ...)
@ -3737,10 +3739,9 @@ void do_wait_for_slave_to_stop(struct st_command *c __attribute__((unused)))
MYSQL* mysql = &cur_con->mysql; MYSQL* mysql = &cur_con->mysql;
for (;;) for (;;)
{ {
MYSQL_RES *res; MYSQL_RES *UNINIT_VAR(res);
MYSQL_ROW row; MYSQL_ROW row;
int done; int done;
LINT_INIT(res);
if (mysql_query(mysql,"show status like 'Slave_running'") || if (mysql_query(mysql,"show status like 'Slave_running'") ||
!(res=mysql_store_result(mysql))) !(res=mysql_store_result(mysql)))
@ -5275,13 +5276,12 @@ my_bool end_of_query(int c)
int read_line(char *buf, int size) int read_line(char *buf, int size)
{ {
char c, last_quote; char c, UNINIT_VAR(last_quote);
char *p= buf, *buf_end= buf + size - 1; char *p= buf, *buf_end= buf + size - 1;
int skip_char= 0; int skip_char= 0;
enum {R_NORMAL, R_Q, R_SLASH_IN_Q, enum {R_NORMAL, R_Q, R_SLASH_IN_Q,
R_COMMENT, R_LINE_START} state= R_LINE_START; R_COMMENT, R_LINE_START} state= R_LINE_START;
DBUG_ENTER("read_line"); DBUG_ENTER("read_line");
LINT_INIT(last_quote);
start_lineno= cur_file->lineno; start_lineno= cur_file->lineno;
DBUG_PRINT("info", ("Starting to read at lineno: %d", start_lineno)); DBUG_PRINT("info", ("Starting to read at lineno: %d", start_lineno));
@ -6530,8 +6530,7 @@ void run_query_normal(struct st_connection *cn, struct st_command *command,
if (!disable_result_log) if (!disable_result_log)
{ {
ulonglong affected_rows; /* Ok to be undef if 'disable_info' is set */ ulonglong UNINIT_VAR(affected_rows); /* Ok to be undef if 'disable_info' is set */
LINT_INIT(affected_rows);
if (res) if (res)
{ {

View File

@ -339,9 +339,7 @@ rl_generic_bind (type, keyseq, data, map)
char *keys; char *keys;
int keys_len; int keys_len;
register int i; register int i;
KEYMAP_ENTRY k; KEYMAP_ENTRY k= { 0, NULL };
k.function = 0;
/* If no keys to bind to, exit right away. */ /* If no keys to bind to, exit right away. */
if (keyseq == 0 || *keyseq == 0) if (keyseq == 0 || *keyseq == 0)
@ -776,7 +774,7 @@ _rl_read_file (filename, sizep)
file_size = (size_t)finfo.st_size; file_size = (size_t)finfo.st_size;
/* check for overflow on very large files */ /* check for overflow on very large files */
if ((sizeof(off_t) > sizeof(size_t) && finfo.st_size > (off_t)(size_t)~0) || if ((sizeof(off_t) > sizeof(size_t) && finfo.st_size > (off_t)(size_t)~0) ||
file_size + 1 < file_size) file_size + 1 < file_size)
{ {
if (file >= 0) if (file >= 0)

View File

@ -186,7 +186,7 @@ read_history_range (filename, from, to)
file_size = (size_t)finfo.st_size; file_size = (size_t)finfo.st_size;
/* check for overflow on very large files */ /* check for overflow on very large files */
if ((sizeof(off_t) > sizeof(size_t) && finfo.st_size > (off_t)(size_t)~0) || if ((sizeof(off_t) > sizeof(size_t) && finfo.st_size > (off_t)(size_t)~0) ||
file_size + 1 < file_size) file_size + 1 < file_size)
{ {
errno = overflow_errno; errno = overflow_errno;
@ -311,6 +311,7 @@ history_truncate_file (fname, lines)
int file, chars_read, rv; int file, chars_read, rv;
struct stat finfo; struct stat finfo;
size_t file_size; size_t file_size;
size_t bytes_written;
buffer = (char *)NULL; buffer = (char *)NULL;
filename = history_filename (fname); filename = history_filename (fname);
@ -340,7 +341,7 @@ history_truncate_file (fname, lines)
file_size = (size_t)finfo.st_size; file_size = (size_t)finfo.st_size;
/* check for overflow on very large files */ /* check for overflow on very large files */
if ((sizeof(off_t) > sizeof(size_t) && finfo.st_size > (off_t)(size_t)~0) || if ((sizeof(off_t) > sizeof(size_t) && finfo.st_size > (off_t)(size_t)~0) ||
file_size + 1 < file_size) file_size + 1 < file_size)
{ {
close (file); close (file);
@ -400,7 +401,7 @@ if ((sizeof(off_t) > sizeof(size_t) && finfo.st_size > (off_t)(size_t)~0) ||
truncate to. */ truncate to. */
if (bp > buffer && ((file = open (filename, O_WRONLY|O_TRUNC|O_BINARY, 0600)) != -1)) if (bp > buffer && ((file = open (filename, O_WRONLY|O_TRUNC|O_BINARY, 0600)) != -1))
{ {
write (file, bp, chars_read - (bp - buffer)); bytes_written= write (file, bp, chars_read - (bp - buffer));
#if defined (__BEOS__) #if defined (__BEOS__)
/* BeOS ignores O_TRUNC. */ /* BeOS ignores O_TRUNC. */

View File

@ -137,7 +137,8 @@ UNDO_LIST *
_rl_copy_undo_list (head) _rl_copy_undo_list (head)
UNDO_LIST *head; UNDO_LIST *head;
{ {
UNDO_LIST *list, *new, *roving, *c; UNDO_LIST *list, *new, *c;
UNDO_LIST *roving= NULL;
list = head; list = head;
new = 0; new = 0;

View File

@ -70,6 +70,11 @@ struct event_base {
/* Internal use only: Functions that might be missing from <sys/queue.h> */ /* Internal use only: Functions that might be missing from <sys/queue.h> */
#ifndef HAVE_TAILQFOREACH #ifndef HAVE_TAILQFOREACH
/* These following macros are copied from BSD sys/queue.h
Copyright (c) 1991, 1993, The Regents of the University of California.
All rights reserved.
*/
#define TAILQ_EMPTY(head) ((head)->tqh_first == NULL)
#define TAILQ_FIRST(head) ((head)->tqh_first) #define TAILQ_FIRST(head) ((head)->tqh_first)
#define TAILQ_END(head) NULL #define TAILQ_END(head) NULL
#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) #define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next)

View File

@ -55,6 +55,7 @@ void Twofish::Process(byte* out, const byte* in, word32 sz)
in += BLOCK_SIZE; in += BLOCK_SIZE;
} }
else if (mode_ == CBC) else if (mode_ == CBC)
{
if (dir_ == ENCRYPTION) if (dir_ == ENCRYPTION)
while (blocks--) { while (blocks--) {
r_[0] ^= *(word32*)in; r_[0] ^= *(word32*)in;
@ -82,6 +83,7 @@ void Twofish::Process(byte* out, const byte* in, word32 sz)
out += BLOCK_SIZE; out += BLOCK_SIZE;
in += BLOCK_SIZE; in += BLOCK_SIZE;
} }
}
} }
#endif // DO_TWOFISH_ASM #endif // DO_TWOFISH_ASM

View File

@ -578,6 +578,25 @@ int __void__;
#define IF_VALGRIND(A,B) (B) #define IF_VALGRIND(A,B) (B)
#endif #endif
/*
Suppress uninitialized variable warning without generating code.
The _cplusplus is a temporary workaround for C++ code pending a fix
for a g++ bug (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34772).
*/
#if defined(_lint) || defined(FORCE_INIT_OF_VARS) || defined(__cplusplus) || \
!defined(__GNUC__)
#define UNINIT_VAR(x) x= 0
#else
#define UNINIT_VAR(x) x= x
#endif
/* Define some useful general macros */
#if !defined(max)
#define max(a, b) ((a) > (b) ? (a) : (b))
#define min(a, b) ((a) < (b) ? (a) : (b))
#endif
#if !defined(HAVE_UINT) #if !defined(HAVE_UINT)
#undef HAVE_UINT #undef HAVE_UINT
#define HAVE_UINT #define HAVE_UINT

View File

@ -1648,8 +1648,7 @@ myodbc_remove_escape(MYSQL *mysql,char *name)
char *to; char *to;
#ifdef USE_MB #ifdef USE_MB
my_bool use_mb_flag=use_mb(mysql->charset); my_bool use_mb_flag=use_mb(mysql->charset);
char *end; char *UNINIT_VAR(end);
LINT_INIT(end);
if (use_mb_flag) if (use_mb_flag)
for (end=name; *end ; end++) ; for (end=name; *end ; end++) ;
#endif #endif

View File

@ -124,7 +124,7 @@ handler.o: handler.cc
# found to append fileslists that collected by configure # found to append fileslists that collected by configure
# to the sources list # to the sources list
ha_federated.o:ha_federated.cc ha_federatedx.o:ha_federatedx.cc
$(CXXCOMPILE) $(LM_CFLAGS) -c $< $(CXXCOMPILE) $(LM_CFLAGS) -c $<
ha_heap.o:ha_heap.cc ha_heap.o:ha_heap.cc

View File

@ -2,12 +2,5 @@ funcs_1.charset_collation_1 # depends on compile-time decisions
binlog.binlog_tmp_table # Bug#45578: Test binlog_tmp_table fails ramdonly on PB2: Unknown table 't2' binlog.binlog_tmp_table # Bug#45578: Test binlog_tmp_table fails ramdonly on PB2: Unknown table 't2'
main.ctype_gbk_binlog # Bug#46010: main.ctype_gbk_binlog fails sporadically : Table 't2' already exists main.ctype_gbk_binlog # Bug#46010: main.ctype_gbk_binlog fails sporadically : Table 't2' already exists
rpl.rpl_row_create_table # Bug#45576: rpl_row_create_table fails on PB2 rpl.rpl_row_create_table # Bug#45576: rpl_row_create_table fails on PB2
rpl.rpl_extraColmaster_myisam # Bug#46013: rpl_extraColmaster_myisam fails on pb2
rpl.rpl_stm_reset_slave # Bug#46014: rpl_stm_reset_slave crashes the server sporadically in pb2
rpl.rpl_extraCol_myisam # Bug#40796
rpl.rpl_extraColmaster_innodb # Bug#40796
rpl.rpl_extraCol_innodb # Bug#40796
rpl_ndb.rpl_ndb_log # Bug#38998 rpl_ndb.rpl_ndb_log # Bug#38998
rpl.rpl_innodb_bug28430 # Bug#46029 rpl.rpl_innodb_bug28430 # Bug#46029
rpl.rpl_row_basic_3innodb # Bug#45243
rpl.rpl_truncate_3innodb # Bug#46030

View File

@ -0,0 +1,710 @@
###################################################################################
# This test checks if transactions that mixes transactional and non-transactional
# tables are correctly handled in statement mode. In an nutshell, we have what
# follows:
#
# 1) "B T T C" generates in binlog the "B T T C" entries.
#
# 2) "B T T R" generates in binlog an "empty" entry.
#
# 3) "B T N C" generates in binlog the "B T N C" entries.
#
# 4) "B T N R" generates in binlog the "B T N R" entries.
#
# 5) "T" generates in binlog the "B T C" entry.
#
# 6) "N" generates in binlog the "N" entry.
#
# 7) "M" generates in binglog the "B M C" entries.
#
# 8) "B N N T C" generates in binglog the "N N B T C" entries.
#
# 9) "B N N T R" generates in binlog the "N N B T R" entries.
#
# 10) "B N N C" generates in binglog the "N N" entries.
#
# 11) "B N N R" generates in binlog the "N N" entries.
#
# 12) "B M T C" generates in the binlog the "B M T C" entries.
#
# 13) "B M T R" generates in the binlog the "B M T R" entries.
###################################################################################
--echo ###################################################################################
--echo # CONFIGURATION
--echo ###################################################################################
connection master;
SET SQL_LOG_BIN=0;
CREATE TABLE nt_1 (a text, b int PRIMARY KEY, c text) ENGINE = MyISAM;
CREATE TABLE nt_2 (a text, b int PRIMARY KEY, c text) ENGINE = MyISAM;
CREATE TABLE nt_3 (a text, b int PRIMARY KEY, c text) ENGINE = MyISAM;
CREATE TABLE nt_4 (a text, b int PRIMARY KEY, c text) ENGINE = MyISAM;
CREATE TABLE tt_1 (a text, b int PRIMARY KEY, c text) ENGINE = Innodb;
CREATE TABLE tt_2 (a text, b int PRIMARY KEY, c text) ENGINE = Innodb;
CREATE TABLE tt_3 (a text, b int PRIMARY KEY, c text) ENGINE = Innodb;
CREATE TABLE tt_4 (a text, b int PRIMARY KEY, c text) ENGINE = Innodb;
SET SQL_LOG_BIN=1;
connection slave;
SET SQL_LOG_BIN=0;
CREATE TABLE nt_1 (a text, b int PRIMARY KEY, c text) ENGINE = MyISAM;
CREATE TABLE nt_2 (a text, b int PRIMARY KEY, c text) ENGINE = MyISAM;
CREATE TABLE nt_3 (a text, b int PRIMARY KEY, c text) ENGINE = MyISAM;
CREATE TABLE nt_4 (a text, b int PRIMARY KEY, c text) ENGINE = MyISAM;
CREATE TABLE tt_1 (a text, b int PRIMARY KEY, c text) ENGINE = Innodb;
CREATE TABLE tt_2 (a text, b int PRIMARY KEY, c text) ENGINE = Innodb;
CREATE TABLE tt_3 (a text, b int PRIMARY KEY, c text) ENGINE = Innodb;
CREATE TABLE tt_4 (a text, b int PRIMARY KEY, c text) ENGINE = Innodb;
SET SQL_LOG_BIN=1;
connection master;
DELIMITER |;
CREATE FUNCTION f1 () RETURNS VARCHAR(64)
BEGIN
RETURN "Testing...";
END|
CREATE FUNCTION f2 () RETURNS VARCHAR(64)
BEGIN
RETURN f1();
END|
CREATE PROCEDURE pc_i_tt_3 (IN x INT, IN y VARCHAR(64))
BEGIN
INSERT INTO tt_3 VALUES (y,x,x);
END|
CREATE TRIGGER tr_i_tt_3_to_nt_3 BEFORE INSERT ON tt_3 FOR EACH ROW
BEGIN
INSERT INTO nt_3 VALUES (NEW.a, NEW.b, NEW.c);
END|
CREATE TRIGGER tr_i_nt_4_to_tt_4 BEFORE INSERT ON nt_4 FOR EACH ROW
BEGIN
INSERT INTO tt_4 VALUES (NEW.a, NEW.b, NEW.c);
END|
DELIMITER ;|
--echo ###################################################################################
--echo # MIXING TRANSACTIONAL and NON-TRANSACTIONAL TABLES
--echo ###################################################################################
connection master;
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
--echo #
--echo #1) "B T T C" generates in binlog the "B T T C" entries.
--echo #
BEGIN;
INSERT INTO tt_1 VALUES ("new text 4", 4, "new text 4");
INSERT INTO tt_2 VALUES ("new text 4", 4, "new text 4");
COMMIT;
--source include/show_binlog_events.inc
--echo
--echo
--echo
--echo
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
--echo #
--echo #1.e) "B T T C" with error in T generates in binlog the "B T T C" entries.
--echo #
INSERT INTO tt_1 VALUES ("new text -2", -2, "new text -2");
BEGIN;
--error ER_DUP_ENTRY
INSERT INTO tt_1 VALUES ("new text -1", -1, "new text -1"), ("new text -2", -2, "new text -2");
INSERT INTO tt_2 VALUES ("new text -3", -3, "new text -3");
COMMIT;
BEGIN;
INSERT INTO tt_2 VALUES ("new text -5", -5, "new text -5");
--error ER_DUP_ENTRY
INSERT INTO tt_2 VALUES ("new text -4", -4, "new text -4"), ("new text -5", -5, "new text -5");
COMMIT;
--source include/show_binlog_events.inc
--echo
--echo
--echo
--echo
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
--echo #
--echo #2) "B T T R" generates in binlog an "empty" entry.
--echo #
BEGIN;
INSERT INTO tt_1 VALUES ("new text 5", 5, "new text 5");
INSERT INTO tt_2 VALUES ("new text 5", 5, "new text 5");
ROLLBACK;
--source include/show_binlog_events.inc
--echo
--echo
--echo
--echo
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
--echo #
--echo #2.e) "B T T R" with error in T generates in binlog an "empty" entry.
--echo #
INSERT INTO tt_1 VALUES ("new text -7", -7, "new text -7");
BEGIN;
--error ER_DUP_ENTRY
INSERT INTO tt_1 VALUES ("new text -6", -6, "new text -6"), ("new text -7", -7, "new text -7");
INSERT INTO tt_2 VALUES ("new text -8", -8, "new text -8");
ROLLBACK;
BEGIN;
INSERT INTO tt_2 VALUES ("new text -10", -10, "new text -10");
--error ER_DUP_ENTRY
INSERT INTO tt_2 VALUES ("new text -9", -9, "new text -9"), ("new text -10", -10, "new text -10");
ROLLBACK;
--source include/show_binlog_events.inc
--echo
--echo
--echo
--echo
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
--echo #
--echo #3) "B T N C" generates in binlog the "B T N C" entries.
--echo #
BEGIN;
INSERT INTO tt_1 VALUES ("new text 6", 6, "new text 6");
INSERT INTO nt_1 VALUES ("new text 6", 6, "new text 6");
COMMIT;
--source include/show_binlog_events.inc
--echo
--echo
--echo
--echo
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
--echo #
--echo #3.e) "B T N C" with error in either T or N generates in binlog the "B T N C" entries.
--echo #
INSERT INTO tt_1 VALUES ("new text -12", -12, "new text -12");
BEGIN;
--error ER_DUP_ENTRY
INSERT INTO tt_1 VALUES ("new text -11", -11, "new text -11"), ("new text -12", -12, "new text -12");
INSERT INTO nt_1 VALUES ("new text -13", -13, "new text -13");
COMMIT;
BEGIN;
INSERT INTO tt_1 VALUES ("new text -14", -14, "new text -14");
INSERT INTO nt_1 VALUES ("new text -16", -16, "new text -16");
--error ER_DUP_ENTRY
INSERT INTO nt_1 VALUES ("new text -15", -15, "new text -15"), ("new text -16", -16, "new text -16");
COMMIT;
--source include/show_binlog_events.inc
--echo
--echo
--echo
--echo
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
--echo #
--echo #4) "B T N R" generates in binlog the "B T N R" entries.
--echo #
BEGIN;
INSERT INTO tt_1 VALUES ("new text 7", 7, "new text 7");
INSERT INTO nt_1 VALUES ("new text 7", 7, "new text 7");
ROLLBACK;
--source include/show_binlog_events.inc
--echo
--echo
--echo
--echo
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
--echo #
--echo #4.e) "B T N R" with error in either T or N generates in binlog the "B T N R" entries.
--echo #
INSERT INTO tt_1 VALUES ("new text -17", -17, "new text -17");
BEGIN;
--error ER_DUP_ENTRY
INSERT INTO tt_1 VALUES ("new text -16", -16, "new text -16"), ("new text -17", -17, "new text -17");
INSERT INTO nt_1 VALUES ("new text -18", -18, "new text -18");
ROLLBACK;
BEGIN;
INSERT INTO tt_1 VALUES ("new text -19", -19, "new text -19");
INSERT INTO nt_1 VALUES ("new text -21", -21, "new text -21");
--error ER_DUP_ENTRY
INSERT INTO nt_1 VALUES ("new text -20", -20, "new text -20"), ("new text -21", -21, "new text -21");
ROLLBACK;
--source include/show_binlog_events.inc
--echo
--echo
--echo
--echo
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
--echo #
--echo #5) "T" generates in binlog the "B T C" entry.
--echo #
INSERT INTO tt_1 VALUES ("new text 8", 8, "new text 8");
--source include/show_binlog_events.inc
--echo
--echo
--echo
--echo
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
--echo #
--echo #5.e) "T" with error in T generates in binlog an "empty" entry.
--echo #
INSERT INTO tt_1 VALUES ("new text -1", -1, "new text -1");
--error ER_DUP_ENTRY
INSERT INTO tt_1 VALUES ("new text -1", -1, "new text -1"), ("new text -22", -22, "new text -22");
--error ER_DUP_ENTRY
INSERT INTO tt_1 VALUES ("new text -23", -23, "new text -23"), ("new text -1", -1, "new text -1");
--source include/show_binlog_events.inc
--echo
--echo
--echo
--echo
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
--echo #
--echo #6) "N" generates in binlog the "N" entry.
--echo #
INSERT INTO nt_1 VALUES ("new text 9", 9, "new text 9");
--source include/show_binlog_events.inc
--echo
--echo
--echo
--echo
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
--echo #
--echo #6.e) "N" with error in N generates in binlog an empty entry if the error
--echo # happens in the first tuple. Otherwise, generates the "N" entry and
--echo # the error is appended.
--echo #
INSERT INTO nt_1 VALUES ("new text -1", -1, "new text -1");
--error ER_DUP_ENTRY
INSERT INTO nt_1 VALUES ("new text -1", -1, "new text -1");
--error ER_DUP_ENTRY
INSERT INTO nt_1 VALUES ("new text -24", -24, "new text -24"), ("new text -1", -1, "new text -1");
--source include/show_binlog_events.inc
--echo
--echo
--echo
--echo
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
--echo #
--echo #7) "M" generates in binglog the "B M C" entries.
--echo #
DELETE FROM nt_1;
INSERT INTO nt_1 SELECT * FROM tt_1;
DELETE FROM tt_1;
INSERT INTO tt_1 SELECT * FROM nt_1;
INSERT INTO tt_3 VALUES ("new text 000", 000, '');
INSERT INTO tt_3 VALUES("new text 100", 100, f1());
INSERT INTO nt_4 VALUES("new text 100", 100, f1());
INSERT INTO tt_3 VALUES("new text 200", 200, f2());
INSERT INTO nt_4 VALUES ("new text 300", 300, '');
INSERT INTO nt_4 VALUES ("new text 400", 400, f1());
INSERT INTO nt_4 VALUES ("new text 500", 500, f2());
CALL pc_i_tt_3(600, "Testing...");
UPDATE nt_3, nt_4, tt_3, tt_4 SET nt_3.a= "new text 1", nt_4.a= "new text 1", tt_3.a= "new text 1", tt_4.a= "new text 1" where nt_3.b = nt_4.b and nt_4.b = tt_3.b and tt_3.b = tt_4.b and tt_4.b = 100;
UPDATE tt_3, tt_4, nt_3, nt_4 SET tt_3.a= "new text 2", tt_4.a= "new text 2", nt_3.a= "new text 2", nt_4.a = "new text 2" where nt_3.b = nt_4.b and nt_4.b = tt_3.b and tt_3.b = tt_4.b and tt_4.b = 100;
UPDATE tt_3, nt_3, nt_4, tt_4 SET tt_3.a= "new text 3", nt_3.a= "new text 3", nt_4.a= "new text 3", tt_4.a = "new text 3" where nt_3.b = nt_4.b and nt_4.b = tt_3.b and tt_3.b = tt_4.b and tt_4.b = 100;
UPDATE tt_3, nt_3, nt_4, tt_4 SET tt_3.a= "new text 4", nt_3.a= "new text 4", nt_4.a= "new text 4", tt_4.a = "new text 4" where nt_3.b = nt_4.b and nt_4.b = tt_3.b and tt_3.b = tt_4.b and tt_4.b = 100;
--source include/show_binlog_events.inc
--echo
--echo
--echo
--echo
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
--echo #
--echo #7.e) "M" with error in M generates in binglog the "B M R" entries.
--echo #
INSERT INTO nt_3 VALUES ("new text -26", -26, '');
SELECT * FROM tt_3;
--error ER_DUP_ENTRY
INSERT INTO tt_3 VALUES ("new text -25", -25, ''), ("new text -26", -26, '');
SELECT * FROM tt_3;
INSERT INTO tt_4 VALUES ("new text -26", -26, '');
SELECT * FROM nt_4;
--error ER_DUP_ENTRY
INSERT INTO nt_4 VALUES ("new text -25", -25, ''), ("new text -26", -26, '');
SELECT * FROM nt_4;
--source include/show_binlog_events.inc
--echo
--echo
--echo
--echo
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
--echo #
--echo #8) "B N N T C" generates in binglog the "N N B T C" entries.
--echo #
BEGIN;
INSERT INTO nt_1 VALUES ("new text 10", 10, "new text 10");
INSERT INTO nt_2 VALUES ("new text 10", 10, "new text 10");
INSERT INTO tt_1 VALUES ("new text 10", 10, "new text 10");
COMMIT;
--source include/show_binlog_events.inc
--echo
--echo
--echo
--echo
--echo #
--echo #8.e) "B N N T R" See 6.e and 9.e.
--echo #
--echo
--echo
--echo
--echo
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
--echo #
--echo #9) "B N N T R" generates in binlog the "N N B T R" entries.
--echo #
BEGIN;
INSERT INTO nt_1 VALUES ("new text 11", 11, "new text 11");
INSERT INTO nt_2 VALUES ("new text 11", 11, "new text 11");
INSERT INTO tt_1 VALUES ("new text 11", 11, "new text 11");
ROLLBACK;
--source include/show_binlog_events.inc
--echo
--echo
--echo
--echo
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
--echo #
--echo #9.e) "B N N T R" with error in N generates in binlog the "N N B T R" entries.
--echo #
BEGIN;
INSERT INTO nt_1 VALUES ("new text -25", -25, "new text -25");
INSERT INTO nt_2 VALUES ("new text -25", -25, "new text -25");
--error ER_DUP_ENTRY
INSERT INTO nt_2 VALUES ("new text -26", -26, "new text -26"), ("new text -25", -25, "new text -25");
INSERT INTO tt_1 VALUES ("new text -27", -27, "new text -27");
ROLLBACK;
--source include/show_binlog_events.inc
--echo
--echo
--echo
--echo
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
--echo #
--echo #10) "B N N C" generates in binglog the "N N" entries.
--echo #
BEGIN;
INSERT INTO nt_1 VALUES ("new text 12", 12, "new text 12");
INSERT INTO nt_2 VALUES ("new text 12", 12, "new text 12");
COMMIT;
--source include/show_binlog_events.inc
--echo
--echo
--echo
--echo
--echo #
--echo #10.e) "B N N C" See 6.e and 9.e.
--echo #
--echo
--echo
--echo
--echo
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
--echo #
--echo #11) "B N N R" generates in binlog the "N N" entries.
--echo #
BEGIN;
INSERT INTO nt_1 VALUES ("new text 13", 13, "new text 13");
INSERT INTO nt_2 VALUES ("new text 13", 13, "new text 13");
ROLLBACK;
--source include/show_binlog_events.inc
--echo
--echo
--echo
--echo
--echo #
--echo #11.e) "B N N R" See 6.e and 9.e.
--echo #
--echo
--echo
--echo
--echo
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
--echo #
--echo #12) "B M T C" generates in the binlog the "B M T C" entries.
--echo #
DELETE FROM nt_1;
BEGIN;
INSERT INTO nt_1 SELECT * FROM tt_1;
INSERT INTO tt_2 VALUES ("new text 14", 14, "new text 14");
COMMIT;
DELETE FROM tt_1;
BEGIN;
INSERT INTO tt_1 SELECT * FROM nt_1;
INSERT INTO tt_2 VALUES ("new text 15", 15, "new text 15");
COMMIT;
BEGIN;
INSERT INTO tt_3 VALUES ("new text 700", 700, '');
INSERT INTO tt_1 VALUES ("new text 800", 800, '');
COMMIT;
BEGIN;
INSERT INTO tt_3 VALUES("new text 900", 900, f1());
INSERT INTO tt_1 VALUES ("new text 1000", 1000, '');
COMMIT;
BEGIN;
INSERT INTO tt_3 VALUES(1100, 1100, f2());
INSERT INTO tt_1 VALUES ("new text 1200", 1200, '');
COMMIT;
BEGIN;
INSERT INTO nt_4 VALUES ("new text 1300", 1300, '');
INSERT INTO tt_1 VALUES ("new text 1400", 1400, '');
COMMIT;
BEGIN;
INSERT INTO nt_4 VALUES("new text 1500", 1500, f1());
INSERT INTO tt_1 VALUES ("new text 1600", 1600, '');
COMMIT;
BEGIN;
INSERT INTO nt_4 VALUES("new text 1700", 1700, f2());
INSERT INTO tt_1 VALUES ("new text 1800", 1800, '');
COMMIT;
BEGIN;
CALL pc_i_tt_3(1900, "Testing...");
INSERT INTO tt_1 VALUES ("new text 2000", 2000, '');
COMMIT;
BEGIN;
UPDATE nt_3, nt_4, tt_3, tt_4 SET nt_3.a= "new text 5", nt_4.a= "new text 5", tt_3.a= "new text 5", tt_4.a= "new text 5" where nt_3.b = nt_4.b and nt_4.b = tt_3.b and tt_3.b = tt_4.b and tt_4.b = 100;
INSERT INTO tt_1 VALUES ("new text 2100", 2100, '');
COMMIT;
BEGIN;
UPDATE tt_3, tt_4, nt_3, nt_4 SET tt_3.a= "new text 6", tt_4.a= "new text 6", nt_3.a= "new text 6", nt_4.a = "new text 6" where nt_3.b = nt_4.b and nt_4.b = tt_3.b and tt_3.b = tt_4.b and tt_4.b = 100;
INSERT INTO tt_1 VALUES ("new text 2200", 2200, '');
COMMIT;
BEGIN;
UPDATE tt_3, nt_3, nt_4, tt_4 SET tt_3.a= "new text 7", nt_3.a= "new text 7", nt_4.a= "new text 7", tt_4.a = "new text 7" where nt_3.b = nt_4.b and nt_4.b = tt_3.b and tt_3.b = tt_4.b and tt_4.b = 100;
INSERT INTO tt_1 VALUES ("new text 2300", 2300, '');
COMMIT;
BEGIN;
UPDATE tt_3, nt_3, nt_4, tt_4 SET tt_3.a= "new text 8", nt_3.a= "new text 8", nt_4.a= "new text 8", tt_4.a = "new text 8" where nt_3.b = nt_4.b and nt_4.b = tt_3.b and tt_3.b = tt_4.b and tt_4.b = 100;
INSERT INTO tt_1 VALUES ("new text 2400", 2400, '');
COMMIT;
--source include/show_binlog_events.inc
--echo
--echo
--echo
--echo
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
--echo #
--echo #12.e) "B M T C" with error in M generates in the binlog the "B M T C" entries.
--echo #
--echo # There is a bug in the slave that needs to be fixed before enabling
--echo # this part of the test. A bug report will be filed referencing this
--echo # test case.
BEGIN;
INSERT INTO nt_3 VALUES ("new text -28", -28, '');
--error ER_DUP_ENTRY
INSERT INTO tt_3 VALUES ("new text -27", -27, ''), ("new text -28", -28, '');
INSERT INTO tt_1 VALUES ("new text -27", -27, '');
COMMIT;
BEGIN;
INSERT INTO tt_4 VALUES ("new text -28", -28, '');
--error ER_DUP_ENTRY
INSERT INTO nt_4 VALUES ("new text -27", -27, ''), ("new text -28", -28, '');
INSERT INTO tt_1 VALUES ("new text -28", -28, '');
COMMIT;
--source include/show_binlog_events.inc
--echo
--echo
--echo
--echo
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
--echo #
--echo #13) "B M T R" generates in the binlog the "B M T R" entries
--echo #
DELETE FROM nt_1;
BEGIN;
INSERT INTO nt_1 SELECT * FROM tt_1;
INSERT INTO tt_2 VALUES ("new text 17", 17, "new text 17");
ROLLBACK;
DELETE FROM tt_1;
BEGIN;
INSERT INTO tt_1 SELECT * FROM nt_1;
INSERT INTO tt_2 VALUES ("new text 18", 18, "new text 18");
ROLLBACK;
INSERT INTO tt_1 SELECT * FROM nt_1;
BEGIN;
INSERT INTO tt_3 VALUES ("new text 2500", 2500, '');
INSERT INTO tt_1 VALUES ("new text 2600", 2600, '');
ROLLBACK;
BEGIN;
INSERT INTO tt_3 VALUES("new text 2700", 2700, f1());
INSERT INTO tt_1 VALUES ("new text 2800", 2800, '');
ROLLBACK;
BEGIN;
INSERT INTO tt_3 VALUES(2900, 2900, f2());
INSERT INTO tt_1 VALUES ("new text 3000", 3000, '');
ROLLBACK;
BEGIN;
INSERT INTO nt_4 VALUES ("new text 3100", 3100, '');
INSERT INTO tt_1 VALUES ("new text 3200", 3200, '');
ROLLBACK;
BEGIN;
INSERT INTO nt_4 VALUES("new text 3300", 3300, f1());
INSERT INTO tt_1 VALUES ("new text 3400", 3400, '');
ROLLBACK;
BEGIN;
INSERT INTO nt_4 VALUES("new text 3500", 3500, f2());
INSERT INTO tt_1 VALUES ("new text 3600", 3600, '');
ROLLBACK;
BEGIN;
CALL pc_i_tt_3(3700, "Testing...");
INSERT INTO tt_1 VALUES ("new text 3700", 3700, '');
ROLLBACK;
BEGIN;
UPDATE nt_3, nt_4, tt_3, tt_4 SET nt_3.a= "new text 9", nt_4.a= "new text 9", tt_3.a= "new text 9", tt_4.a= "new text 9" where nt_3.b = nt_4.b and nt_4.b = tt_3.b and tt_3.b = tt_4.b and tt_4.b = 100;
INSERT INTO tt_1 VALUES ("new text 3800", 3800, '');
ROLLBACK;
BEGIN;
UPDATE tt_3, tt_4, nt_3, nt_4 SET tt_3.a= "new text 10", tt_4.a= "new text 10", nt_3.a= "new text 10", nt_4.a = "new text 10" where nt_3.b = nt_4.b and nt_4.b = tt_3.b and tt_3.b = tt_4.b and tt_4.b = 100;
INSERT INTO tt_1 VALUES ("new text 3900", 3900, '');
ROLLBACK;
BEGIN;
UPDATE tt_3, nt_3, nt_4, tt_4 SET tt_3.a= "new text 11", nt_3.a= "new text 11", nt_4.a= "new text 11", tt_4.a = "new text 11" where nt_3.b = nt_4.b and nt_4.b = tt_3.b and tt_3.b = tt_4.b and tt_4.b = 100;
INSERT INTO tt_1 VALUES ("new text 4000", 4000, '');
ROLLBACK;
BEGIN;
UPDATE tt_3, nt_3, nt_4, tt_4 SET tt_3.a= "new text 12", nt_3.a= "new text 12", nt_4.a= "new text 12", tt_4.a = "new text 12" where nt_3.b = nt_4.b and nt_4.b = tt_3.b and tt_3.b = tt_4.b and tt_4.b = 100;
INSERT INTO tt_1 VALUES ("new text 4100", 4100, '');
ROLLBACK;
--source include/show_binlog_events.inc
--echo
--echo
--echo
--echo
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
--echo #
--echo #13.e) "B M T R" with error in M generates in the binlog the "B M T R" entries.
--echo #
BEGIN;
INSERT INTO nt_3 VALUES ("new text -30", -30, '');
--error ER_DUP_ENTRY
INSERT INTO tt_3 VALUES ("new text -29", -29, ''), ("new text -30", -30, '');
INSERT INTO tt_1 VALUES ("new text -30", -30, '');
ROLLBACK;
BEGIN;
INSERT INTO tt_4 VALUES ("new text -30", -30, '');
--error ER_DUP_ENTRY
INSERT INTO nt_4 VALUES ("new text -29", -29, ''), ("new text -30", -30, '');
INSERT INTO tt_1 VALUES ("new text -31", -31, '');
ROLLBACK;
--source include/show_binlog_events.inc
connection master;
sync_slave_with_master;
--exec $MYSQL_DUMP --compact --order-by-primary --skip-extended-insert --no-create-info test > $MYSQLTEST_VARDIR/tmp/test-master.sql
--exec $MYSQL_DUMP_SLAVE --compact --order-by-primary --skip-extended-insert --no-create-info test > $MYSQLTEST_VARDIR/tmp/test-slave.sql
--diff_files $MYSQLTEST_VARDIR/tmp/test-master.sql $MYSQLTEST_VARDIR/tmp/test-slave.sql
--echo ###################################################################################
--echo # CLEAN
--echo ###################################################################################
connection master;
DROP TABLE tt_1;
DROP TABLE tt_2;
DROP TABLE tt_3;
DROP TABLE tt_4;
DROP TABLE nt_1;
DROP TABLE nt_2;
DROP TABLE nt_3;
DROP TABLE nt_4;
DROP PROCEDURE pc_i_tt_3;
DROP FUNCTION f1;
DROP FUNCTION f2;
sync_slave_with_master;

View File

@ -725,9 +725,9 @@ call p_verify_status_increment(4, 4, 4, 4);
alter table t3 add column (b int); alter table t3 add column (b int);
call p_verify_status_increment(2, 0, 2, 0); call p_verify_status_increment(2, 0, 2, 0);
alter table t3 rename t4; alter table t3 rename t4;
call p_verify_status_increment(1, 0, 1, 0); call p_verify_status_increment(2, 2, 2, 2);
rename table t4 to t3; rename table t4 to t3;
call p_verify_status_increment(1, 0, 1, 0); call p_verify_status_increment(2, 2, 2, 2);
truncate table t3; truncate table t3;
call p_verify_status_increment(4, 4, 4, 4); call p_verify_status_increment(4, 4, 4, 4);
create view v1 as select * from t2; create view v1 as select * from t2;

View File

@ -0,0 +1,69 @@
# Created for verifying bug#20577.
# expects TABLE t1 (... , a DATE, ...)
--sorted_result
SELECT * FROM t1 WHERE a < '1001-01-01';
--sorted_result
SELECT * FROM t1 WHERE a <= '1001-01-01';
--sorted_result
SELECT * FROM t1 WHERE a >= '1001-01-01';
--sorted_result
SELECT * FROM t1 WHERE a > '1001-01-01';
--sorted_result
SELECT * FROM t1 WHERE a = '1001-01-01';
--sorted_result
SELECT * FROM t1 WHERE a < '1001-00-00';
--sorted_result
SELECT * FROM t1 WHERE a <= '1001-00-00';
--sorted_result
SELECT * FROM t1 WHERE a >= '1001-00-00';
--sorted_result
SELECT * FROM t1 WHERE a > '1001-00-00';
--sorted_result
SELECT * FROM t1 WHERE a = '1001-00-00';
--echo # Disabling warnings for the invalid date
--disable_warnings
--sorted_result
SELECT * FROM t1 WHERE a < '1999-02-31';
--sorted_result
SELECT * FROM t1 WHERE a <= '1999-02-31';
--sorted_result
SELECT * FROM t1 WHERE a >= '1999-02-31';
--sorted_result
SELECT * FROM t1 WHERE a > '1999-02-31';
--sorted_result
SELECT * FROM t1 WHERE a = '1999-02-31';
--enable_warnings
--sorted_result
SELECT * FROM t1 WHERE a BETWEEN '0000-00-00' AND '1002-00-00';
--sorted_result
SELECT * FROM t1 WHERE a BETWEEN '0000-00-00' AND '1001-01-01';
--sorted_result
SELECT * FROM t1 WHERE a BETWEEN '0001-01-02' AND '1002-00-00';
--sorted_result
SELECT * FROM t1 WHERE a BETWEEN '0001-01-01' AND '1001-01-01';
if ($explain_partitions)
{
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < '1001-01-01';
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= '1001-01-01';
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= '1001-01-01';
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > '1001-01-01';
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = '1001-01-01';
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < '1001-00-00';
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= '1001-00-00';
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= '1001-00-00';
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > '1001-00-00';
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = '1001-00-00';
--echo # Disabling warnings for the invalid date
--disable_warnings
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < '1999-02-31';
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= '1999-02-31';
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= '1999-02-31';
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > '1999-02-31';
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = '1999-02-31';
--enable_warnings
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a BETWEEN '0000-00-00' AND '1002-00-00';
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a BETWEEN '0000-00-00' AND '1001-01-01';
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a BETWEEN '0001-01-02' AND '1002-00-00';
EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a BETWEEN '0001-01-01' AND '1001-01-01';
}

View File

@ -0,0 +1,35 @@
connection master;
--disable_warnings
DROP DATABASE IF EXISTS mysqltest;
--enable_warnings
CREATE DATABASE mysqltest CHARSET UTF8;
USE mysqltest;
CREATE TABLE t (cl varchar(100)) CHARSET UTF8;
if (!$LOAD_LOCAL)
{
LOAD DATA INFILE '../../std_data/loaddata_utf8.dat' INTO TABLE t
FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
}
if ($LOAD_LOCAL)
{
LOAD DATA LOCAL INFILE './std_data/loaddata_utf8.dat' INTO TABLE t
FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
}
save_master_pos;
echo ----------content on master----------;
SELECT hex(cl) FROM t;
connection slave;
sync_with_master;
echo ----------content on slave----------;
USE mysqltest;
SELECT hex(cl) FROM t;
connection master;
DROP DATABASE mysqltest;
save_master_pos;
connection slave;
sync_with_master;

View File

@ -249,6 +249,10 @@ sub collect_one_suite($)
$suitedir= my_find_dir($::basedir, $suitedir= my_find_dir($::basedir,
["mysql-test/suite", ["mysql-test/suite",
"mysql-test", "mysql-test",
"share/mysql-test/suite",
"share/mysql-test",
"share/mysql/mysql-test/suite",
"share/mysql/mysql-test",
# Look in storage engine specific suite dirs # Look in storage engine specific suite dirs
"storage/*/mysql-test-suites" "storage/*/mysql-test-suites"
], ],

View File

@ -127,7 +127,6 @@ my $path_config_file; # The generated config file, var/my.cnf
our $opt_vs_config = $ENV{'MTR_VS_CONFIG'}; our $opt_vs_config = $ENV{'MTR_VS_CONFIG'};
my $DEFAULT_SUITES= "binlog,federated,main,maria,rpl,innodb,parts"; my $DEFAULT_SUITES= "binlog,federated,main,maria,rpl,innodb,parts";
my $opt_suites;
our $opt_usage; our $opt_usage;
our $opt_list_options; our $opt_list_options;
@ -1001,6 +1000,12 @@ sub command_line_setup {
{ {
$basedir= dirname($basedir); $basedir= dirname($basedir);
} }
# For .deb, it's like RPM, but installed in /usr/share/mysql/mysql-test.
# So move up one more directory level yet.
if ( ! $source_dist and ! -d "$basedir/bin" )
{
$basedir= dirname($basedir);
}
# Look for the client binaries directory # Look for the client binaries directory
if ($path_client_bindir) if ($path_client_bindir)

View File

@ -143,16 +143,6 @@ t1 1 n4 1 n4 A NULL NULL NULL YES BTREE disabled
t1 1 n4 2 n1 A NULL NULL NULL BTREE disabled t1 1 n4 2 n1 A NULL NULL NULL BTREE disabled
t1 1 n4 3 n2 A NULL NULL NULL YES BTREE disabled t1 1 n4 3 n2 A NULL NULL NULL YES BTREE disabled
t1 1 n4 4 n3 A NULL NULL NULL YES BTREE disabled t1 1 n4 4 n3 A NULL NULL NULL YES BTREE disabled
insert into t1 values(10,RAND()*1000,RAND()*1000,RAND());
insert into t1 values(9,RAND()*1000,RAND()*1000,RAND());
insert into t1 values(8,RAND()*1000,RAND()*1000,RAND());
insert into t1 values(7,RAND()*1000,RAND()*1000,RAND());
insert into t1 values(6,RAND()*1000,RAND()*1000,RAND());
insert into t1 values(5,RAND()*1000,RAND()*1000,RAND());
insert into t1 values(4,RAND()*1000,RAND()*1000,RAND());
insert into t1 values(3,RAND()*1000,RAND()*1000,RAND());
insert into t1 values(2,RAND()*1000,RAND()*1000,RAND());
insert into t1 values(1,RAND()*1000,RAND()*1000,RAND());
alter table t1 enable keys; alter table t1 enable keys;
show keys from t1; show keys from t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
@ -183,106 +173,6 @@ i int(10) unsigned NO PRI NULL auto_increment
c char(10) YES NULL c char(10) YES NULL
drop table t1; drop table t1;
create table t1 (a int, b int); create table t1 (a int, b int);
insert into t1 values(1,100), (2,100), (3, 100);
insert into t1 values(1,99), (2,99), (3, 99);
insert into t1 values(1,98), (2,98), (3, 98);
insert into t1 values(1,97), (2,97), (3, 97);
insert into t1 values(1,96), (2,96), (3, 96);
insert into t1 values(1,95), (2,95), (3, 95);
insert into t1 values(1,94), (2,94), (3, 94);
insert into t1 values(1,93), (2,93), (3, 93);
insert into t1 values(1,92), (2,92), (3, 92);
insert into t1 values(1,91), (2,91), (3, 91);
insert into t1 values(1,90), (2,90), (3, 90);
insert into t1 values(1,89), (2,89), (3, 89);
insert into t1 values(1,88), (2,88), (3, 88);
insert into t1 values(1,87), (2,87), (3, 87);
insert into t1 values(1,86), (2,86), (3, 86);
insert into t1 values(1,85), (2,85), (3, 85);
insert into t1 values(1,84), (2,84), (3, 84);
insert into t1 values(1,83), (2,83), (3, 83);
insert into t1 values(1,82), (2,82), (3, 82);
insert into t1 values(1,81), (2,81), (3, 81);
insert into t1 values(1,80), (2,80), (3, 80);
insert into t1 values(1,79), (2,79), (3, 79);
insert into t1 values(1,78), (2,78), (3, 78);
insert into t1 values(1,77), (2,77), (3, 77);
insert into t1 values(1,76), (2,76), (3, 76);
insert into t1 values(1,75), (2,75), (3, 75);
insert into t1 values(1,74), (2,74), (3, 74);
insert into t1 values(1,73), (2,73), (3, 73);
insert into t1 values(1,72), (2,72), (3, 72);
insert into t1 values(1,71), (2,71), (3, 71);
insert into t1 values(1,70), (2,70), (3, 70);
insert into t1 values(1,69), (2,69), (3, 69);
insert into t1 values(1,68), (2,68), (3, 68);
insert into t1 values(1,67), (2,67), (3, 67);
insert into t1 values(1,66), (2,66), (3, 66);
insert into t1 values(1,65), (2,65), (3, 65);
insert into t1 values(1,64), (2,64), (3, 64);
insert into t1 values(1,63), (2,63), (3, 63);
insert into t1 values(1,62), (2,62), (3, 62);
insert into t1 values(1,61), (2,61), (3, 61);
insert into t1 values(1,60), (2,60), (3, 60);
insert into t1 values(1,59), (2,59), (3, 59);
insert into t1 values(1,58), (2,58), (3, 58);
insert into t1 values(1,57), (2,57), (3, 57);
insert into t1 values(1,56), (2,56), (3, 56);
insert into t1 values(1,55), (2,55), (3, 55);
insert into t1 values(1,54), (2,54), (3, 54);
insert into t1 values(1,53), (2,53), (3, 53);
insert into t1 values(1,52), (2,52), (3, 52);
insert into t1 values(1,51), (2,51), (3, 51);
insert into t1 values(1,50), (2,50), (3, 50);
insert into t1 values(1,49), (2,49), (3, 49);
insert into t1 values(1,48), (2,48), (3, 48);
insert into t1 values(1,47), (2,47), (3, 47);
insert into t1 values(1,46), (2,46), (3, 46);
insert into t1 values(1,45), (2,45), (3, 45);
insert into t1 values(1,44), (2,44), (3, 44);
insert into t1 values(1,43), (2,43), (3, 43);
insert into t1 values(1,42), (2,42), (3, 42);
insert into t1 values(1,41), (2,41), (3, 41);
insert into t1 values(1,40), (2,40), (3, 40);
insert into t1 values(1,39), (2,39), (3, 39);
insert into t1 values(1,38), (2,38), (3, 38);
insert into t1 values(1,37), (2,37), (3, 37);
insert into t1 values(1,36), (2,36), (3, 36);
insert into t1 values(1,35), (2,35), (3, 35);
insert into t1 values(1,34), (2,34), (3, 34);
insert into t1 values(1,33), (2,33), (3, 33);
insert into t1 values(1,32), (2,32), (3, 32);
insert into t1 values(1,31), (2,31), (3, 31);
insert into t1 values(1,30), (2,30), (3, 30);
insert into t1 values(1,29), (2,29), (3, 29);
insert into t1 values(1,28), (2,28), (3, 28);
insert into t1 values(1,27), (2,27), (3, 27);
insert into t1 values(1,26), (2,26), (3, 26);
insert into t1 values(1,25), (2,25), (3, 25);
insert into t1 values(1,24), (2,24), (3, 24);
insert into t1 values(1,23), (2,23), (3, 23);
insert into t1 values(1,22), (2,22), (3, 22);
insert into t1 values(1,21), (2,21), (3, 21);
insert into t1 values(1,20), (2,20), (3, 20);
insert into t1 values(1,19), (2,19), (3, 19);
insert into t1 values(1,18), (2,18), (3, 18);
insert into t1 values(1,17), (2,17), (3, 17);
insert into t1 values(1,16), (2,16), (3, 16);
insert into t1 values(1,15), (2,15), (3, 15);
insert into t1 values(1,14), (2,14), (3, 14);
insert into t1 values(1,13), (2,13), (3, 13);
insert into t1 values(1,12), (2,12), (3, 12);
insert into t1 values(1,11), (2,11), (3, 11);
insert into t1 values(1,10), (2,10), (3, 10);
insert into t1 values(1,9), (2,9), (3, 9);
insert into t1 values(1,8), (2,8), (3, 8);
insert into t1 values(1,7), (2,7), (3, 7);
insert into t1 values(1,6), (2,6), (3, 6);
insert into t1 values(1,5), (2,5), (3, 5);
insert into t1 values(1,4), (2,4), (3, 4);
insert into t1 values(1,3), (2,3), (3, 3);
insert into t1 values(1,2), (2,2), (3, 2);
insert into t1 values(1,1), (2,1), (3, 1);
alter table t1 add unique (a,b), add key (b); alter table t1 add unique (a,b), add key (b);
show keys from t1; show keys from t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment

View File

@ -28,9 +28,7 @@ test.t1.bool N Y 1 1 0 0 1.0000 NULL ENUM('N','Y') NOT NULL
test.t1.d 2002-03-03 2002-03-05 10 10 0 0 10.0000 NULL ENUM('2002-03-03','2002-03-04','2002-03-05') NOT NULL test.t1.d 2002-03-03 2002-03-05 10 10 0 0 10.0000 NULL ENUM('2002-03-03','2002-03-04','2002-03-05') NOT NULL
drop table t1,t2; drop table t1,t2;
EXPLAIN SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(); EXPLAIN SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE();
id select_type table type possible_keys key key_len ref rows Extra ERROR HY000: Incorrect usage of PROCEDURE and subquery
1 PRIMARY <derived2> system NULL NULL NULL NULL 1
2 DERIVED NULL NULL NULL NULL NULL NULL NULL No tables used
create table t1 (a int not null); create table t1 (a int not null);
create table t2 select * from t1 where 0=1 procedure analyse(); create table t2 select * from t1 where 0=1 procedure analyse();
show create table t2; show create table t2;
@ -153,4 +151,9 @@ select f3 from t1 procedure analyse(1, 1);
Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_value_or_avg_length Std Optimal_fieldtype Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_value_or_avg_length Std Optimal_fieldtype
test.t1.f3 5.99999 9.55555 7 7 0 0 7.77777 1.77778 FLOAT(6,5) NOT NULL test.t1.f3 5.99999 9.55555 7 7 0 0 7.77777 1.77778 FLOAT(6,5) NOT NULL
drop table t1; drop table t1;
CREATE TABLE t1(a INT,b INT,c INT,d INT,e INT,f INT,g INT,h INT,i INT,j INT,k INT);
INSERT INTO t1 VALUES ();
SELECT * FROM (SELECT * FROM t1) d PROCEDURE ANALYSE();
ERROR HY000: Incorrect usage of PROCEDURE and subquery
DROP TABLE t1;
End of 4.1 tests End of 4.1 tests

View File

@ -462,3 +462,17 @@ select last_insert_id();
last_insert_id() last_insert_id()
3 3
drop table t1; drop table t1;
#
# Bug#46616: Assertion `!table->auto_increment_field_not_null' on view
# manipulations
#
CREATE TABLE t1 ( a INT );
INSERT INTO t1 VALUES (1), (1);
CREATE TABLE t2 ( a INT AUTO_INCREMENT KEY );
CREATE TABLE IF NOT EXISTS t2 AS SELECT a FROM t1;
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
UPDATE t2 SET a = 2;
SELECT a FROM t2;
a
2
DROP TABLE t1, t2;

View File

@ -841,17 +841,17 @@ call p_verify_status_increment(2, 0, 2, 0);
SUCCESS SUCCESS
alter table t3 rename t4; alter table t3 rename t4;
call p_verify_status_increment(1, 0, 1, 0); call p_verify_status_increment(2, 2, 2, 2);
SUCCESS SUCCESS
rename table t4 to t3; rename table t4 to t3;
call p_verify_status_increment(1, 0, 1, 0); call p_verify_status_increment(2, 2, 2, 2);
SUCCESS SUCCESS
truncate table t3; truncate table t3;
call p_verify_status_increment(4, 4, 4, 4); call p_verify_status_increment(4, 4, 4, 4);
ERROR SUCCESS
Expected commit increment: 4 actual: 2
create view v1 as select * from t2; create view v1 as select * from t2;
call p_verify_status_increment(1, 0, 1, 0); call p_verify_status_increment(1, 0, 1, 0);
SUCCESS SUCCESS

View File

@ -0,0 +1,2 @@
Variable_name Value
have_partitioning DISABLED

View File

@ -116,10 +116,6 @@ CREATE TEMPORARY TABLE t_history (attempt SMALLINT,
start_ts DATETIME, end_ts DATETIME, start_ts DATETIME, end_ts DATETIME,
start_cached INTEGER, end_cached INTEGER); start_cached INTEGER, end_cached INTEGER);
CREATE TABLE t1 (f1 BIGINT); CREATE TABLE t1 (f1 BIGINT);
INSERT INTO t1 VALUES (1);
INSERT INTO t1 VALUES (1);
INSERT INTO t1 VALUES (1);
INSERT INTO t1 VALUES (1);
INSERT INTO t_history INSERT INTO t_history
SET attempt = 4 - 4 + 1, start_ts = NOW(), SET attempt = 4 - 4 + 1, start_ts = NOW(),
start_cached = 0; start_cached = 0;

View File

@ -12,156 +12,6 @@ t1 CREATE TABLE `t1` (
PRIMARY KEY (`fid`), PRIMARY KEY (`fid`),
SPATIAL KEY `g` (`g`) SPATIAL KEY `g` (`g`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(150 150, 150 150)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(149 149, 151 151)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(148 148, 152 152)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(147 147, 153 153)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(146 146, 154 154)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(145 145, 155 155)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(144 144, 156 156)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(143 143, 157 157)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(142 142, 158 158)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(141 141, 159 159)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(140 140, 160 160)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(139 139, 161 161)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(138 138, 162 162)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(137 137, 163 163)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(136 136, 164 164)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(135 135, 165 165)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(134 134, 166 166)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(133 133, 167 167)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(132 132, 168 168)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(131 131, 169 169)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(130 130, 170 170)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(129 129, 171 171)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(128 128, 172 172)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(127 127, 173 173)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(126 126, 174 174)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(125 125, 175 175)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(124 124, 176 176)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(123 123, 177 177)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(122 122, 178 178)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(121 121, 179 179)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(120 120, 180 180)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(119 119, 181 181)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(118 118, 182 182)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(117 117, 183 183)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(116 116, 184 184)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(115 115, 185 185)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(114 114, 186 186)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(113 113, 187 187)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(112 112, 188 188)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(111 111, 189 189)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(110 110, 190 190)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(109 109, 191 191)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(108 108, 192 192)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(107 107, 193 193)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(106 106, 194 194)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(105 105, 195 195)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(104 104, 196 196)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(103 103, 197 197)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(102 102, 198 198)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(101 101, 199 199)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(100 100, 200 200)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(99 99, 201 201)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(98 98, 202 202)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(97 97, 203 203)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(96 96, 204 204)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(95 95, 205 205)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(94 94, 206 206)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(93 93, 207 207)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(92 92, 208 208)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(91 91, 209 209)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(90 90, 210 210)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(89 89, 211 211)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(88 88, 212 212)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(87 87, 213 213)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(86 86, 214 214)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(85 85, 215 215)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(84 84, 216 216)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(83 83, 217 217)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(82 82, 218 218)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(81 81, 219 219)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(80 80, 220 220)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(79 79, 221 221)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(78 78, 222 222)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(77 77, 223 223)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(76 76, 224 224)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(75 75, 225 225)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(74 74, 226 226)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(73 73, 227 227)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(72 72, 228 228)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(71 71, 229 229)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(70 70, 230 230)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(69 69, 231 231)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(68 68, 232 232)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(67 67, 233 233)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(66 66, 234 234)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(65 65, 235 235)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(64 64, 236 236)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(63 63, 237 237)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(62 62, 238 238)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(61 61, 239 239)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(60 60, 240 240)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(59 59, 241 241)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(58 58, 242 242)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(57 57, 243 243)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(56 56, 244 244)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(55 55, 245 245)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(54 54, 246 246)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(53 53, 247 247)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(52 52, 248 248)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(51 51, 249 249)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(50 50, 250 250)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(49 49, 251 251)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(48 48, 252 252)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(47 47, 253 253)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(46 46, 254 254)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(45 45, 255 255)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(44 44, 256 256)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(43 43, 257 257)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(42 42, 258 258)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(41 41, 259 259)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(40 40, 260 260)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(39 39, 261 261)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(38 38, 262 262)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(37 37, 263 263)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(36 36, 264 264)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(35 35, 265 265)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(34 34, 266 266)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(33 33, 267 267)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(32 32, 268 268)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(31 31, 269 269)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(30 30, 270 270)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(29 29, 271 271)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(28 28, 272 272)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(27 27, 273 273)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(26 26, 274 274)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(25 25, 275 275)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(24 24, 276 276)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(23 23, 277 277)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(22 22, 278 278)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(21 21, 279 279)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(20 20, 280 280)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(19 19, 281 281)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(18 18, 282 282)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(17 17, 283 283)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(16 16, 284 284)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(15 15, 285 285)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(14 14, 286 286)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(13 13, 287 287)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(12 12, 288 288)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(11 11, 289 289)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(10 10, 290 290)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(9 9, 291 291)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(8 8, 292 292)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(7 7, 293 293)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(6 6, 294 294)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(5 5, 295 295)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(4 4, 296 296)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(3 3, 297 297)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(2 2, 298 298)'));
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(1 1, 299 299)'));
SELECT count(*) FROM t1; SELECT count(*) FROM t1;
count(*) count(*)
150 150
@ -186,106 +36,6 @@ CREATE TABLE t2 (
fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY, fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
g GEOMETRY NOT NULL g GEOMETRY NOT NULL
) ENGINE=MyISAM; ) ENGINE=MyISAM;
INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 10 * 10 - 9), Point(10 * 10, 10 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 9 * 10 - 9), Point(10 * 10, 9 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 8 * 10 - 9), Point(10 * 10, 8 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 7 * 10 - 9), Point(10 * 10, 7 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 6 * 10 - 9), Point(10 * 10, 6 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 5 * 10 - 9), Point(10 * 10, 5 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 4 * 10 - 9), Point(10 * 10, 4 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 3 * 10 - 9), Point(10 * 10, 3 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 2 * 10 - 9), Point(10 * 10, 2 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 1 * 10 - 9), Point(10 * 10, 1 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 10 * 10 - 9), Point(9 * 10, 10 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 9 * 10 - 9), Point(9 * 10, 9 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 8 * 10 - 9), Point(9 * 10, 8 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 7 * 10 - 9), Point(9 * 10, 7 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 6 * 10 - 9), Point(9 * 10, 6 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 5 * 10 - 9), Point(9 * 10, 5 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 4 * 10 - 9), Point(9 * 10, 4 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 3 * 10 - 9), Point(9 * 10, 3 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 2 * 10 - 9), Point(9 * 10, 2 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 1 * 10 - 9), Point(9 * 10, 1 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 10 * 10 - 9), Point(8 * 10, 10 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 9 * 10 - 9), Point(8 * 10, 9 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 8 * 10 - 9), Point(8 * 10, 8 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 7 * 10 - 9), Point(8 * 10, 7 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 6 * 10 - 9), Point(8 * 10, 6 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 5 * 10 - 9), Point(8 * 10, 5 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 4 * 10 - 9), Point(8 * 10, 4 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 3 * 10 - 9), Point(8 * 10, 3 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 2 * 10 - 9), Point(8 * 10, 2 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 1 * 10 - 9), Point(8 * 10, 1 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 10 * 10 - 9), Point(7 * 10, 10 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 9 * 10 - 9), Point(7 * 10, 9 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 8 * 10 - 9), Point(7 * 10, 8 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 7 * 10 - 9), Point(7 * 10, 7 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 6 * 10 - 9), Point(7 * 10, 6 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 5 * 10 - 9), Point(7 * 10, 5 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 4 * 10 - 9), Point(7 * 10, 4 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 3 * 10 - 9), Point(7 * 10, 3 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 2 * 10 - 9), Point(7 * 10, 2 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 1 * 10 - 9), Point(7 * 10, 1 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 10 * 10 - 9), Point(6 * 10, 10 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 9 * 10 - 9), Point(6 * 10, 9 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 8 * 10 - 9), Point(6 * 10, 8 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 7 * 10 - 9), Point(6 * 10, 7 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 6 * 10 - 9), Point(6 * 10, 6 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 5 * 10 - 9), Point(6 * 10, 5 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 4 * 10 - 9), Point(6 * 10, 4 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 3 * 10 - 9), Point(6 * 10, 3 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 2 * 10 - 9), Point(6 * 10, 2 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 1 * 10 - 9), Point(6 * 10, 1 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 10 * 10 - 9), Point(5 * 10, 10 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 9 * 10 - 9), Point(5 * 10, 9 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 8 * 10 - 9), Point(5 * 10, 8 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 7 * 10 - 9), Point(5 * 10, 7 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 6 * 10 - 9), Point(5 * 10, 6 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 5 * 10 - 9), Point(5 * 10, 5 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 4 * 10 - 9), Point(5 * 10, 4 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 3 * 10 - 9), Point(5 * 10, 3 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 2 * 10 - 9), Point(5 * 10, 2 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 1 * 10 - 9), Point(5 * 10, 1 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 10 * 10 - 9), Point(4 * 10, 10 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 9 * 10 - 9), Point(4 * 10, 9 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 8 * 10 - 9), Point(4 * 10, 8 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 7 * 10 - 9), Point(4 * 10, 7 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 6 * 10 - 9), Point(4 * 10, 6 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 5 * 10 - 9), Point(4 * 10, 5 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 4 * 10 - 9), Point(4 * 10, 4 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 3 * 10 - 9), Point(4 * 10, 3 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 2 * 10 - 9), Point(4 * 10, 2 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 1 * 10 - 9), Point(4 * 10, 1 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 10 * 10 - 9), Point(3 * 10, 10 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 9 * 10 - 9), Point(3 * 10, 9 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 8 * 10 - 9), Point(3 * 10, 8 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 7 * 10 - 9), Point(3 * 10, 7 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 6 * 10 - 9), Point(3 * 10, 6 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 5 * 10 - 9), Point(3 * 10, 5 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 4 * 10 - 9), Point(3 * 10, 4 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 3 * 10 - 9), Point(3 * 10, 3 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 2 * 10 - 9), Point(3 * 10, 2 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 1 * 10 - 9), Point(3 * 10, 1 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 10 * 10 - 9), Point(2 * 10, 10 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 9 * 10 - 9), Point(2 * 10, 9 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 8 * 10 - 9), Point(2 * 10, 8 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 7 * 10 - 9), Point(2 * 10, 7 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 6 * 10 - 9), Point(2 * 10, 6 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 5 * 10 - 9), Point(2 * 10, 5 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 4 * 10 - 9), Point(2 * 10, 4 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 3 * 10 - 9), Point(2 * 10, 3 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 2 * 10 - 9), Point(2 * 10, 2 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 1 * 10 - 9), Point(2 * 10, 1 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 10 * 10 - 9), Point(1 * 10, 10 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 9 * 10 - 9), Point(1 * 10, 9 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 8 * 10 - 9), Point(1 * 10, 8 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 7 * 10 - 9), Point(1 * 10, 7 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 6 * 10 - 9), Point(1 * 10, 6 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 5 * 10 - 9), Point(1 * 10, 5 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 4 * 10 - 9), Point(1 * 10, 4 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 3 * 10 - 9), Point(1 * 10, 3 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 2 * 10 - 9), Point(1 * 10, 2 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 1 * 10 - 9), Point(1 * 10, 1 * 10)));
ALTER TABLE t2 ADD SPATIAL KEY(g); ALTER TABLE t2 ADD SPATIAL KEY(g);
SHOW CREATE TABLE t2; SHOW CREATE TABLE t2;
Table Create Table Table Create Table
@ -309,404 +59,204 @@ fid AsText(g)
56 LINESTRING(41 41,50 50) 56 LINESTRING(41 41,50 50)
45 LINESTRING(51 51,60 60) 45 LINESTRING(51 51,60 60)
55 LINESTRING(41 51,50 60) 55 LINESTRING(41 51,50 60)
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(10 * 10 - 9, 10 * 10 - 9), Point(10 * 10, 10 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(10 * 10 - 9, 9 * 10 - 9), Point(10 * 10, 9 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(10 * 10 - 9, 8 * 10 - 9), Point(10 * 10, 8 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(10 * 10 - 9, 7 * 10 - 9), Point(10 * 10, 7 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(10 * 10 - 9, 6 * 10 - 9), Point(10 * 10, 6 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(10 * 10 - 9, 5 * 10 - 9), Point(10 * 10, 5 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(10 * 10 - 9, 4 * 10 - 9), Point(10 * 10, 4 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(10 * 10 - 9, 3 * 10 - 9), Point(10 * 10, 3 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(10 * 10 - 9, 2 * 10 - 9), Point(10 * 10, 2 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(10 * 10 - 9, 1 * 10 - 9), Point(10 * 10, 1 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(9 * 10 - 9, 10 * 10 - 9), Point(9 * 10, 10 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(9 * 10 - 9, 9 * 10 - 9), Point(9 * 10, 9 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(9 * 10 - 9, 8 * 10 - 9), Point(9 * 10, 8 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(9 * 10 - 9, 7 * 10 - 9), Point(9 * 10, 7 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(9 * 10 - 9, 6 * 10 - 9), Point(9 * 10, 6 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(9 * 10 - 9, 5 * 10 - 9), Point(9 * 10, 5 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(9 * 10 - 9, 4 * 10 - 9), Point(9 * 10, 4 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(9 * 10 - 9, 3 * 10 - 9), Point(9 * 10, 3 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(9 * 10 - 9, 2 * 10 - 9), Point(9 * 10, 2 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(9 * 10 - 9, 1 * 10 - 9), Point(9 * 10, 1 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(8 * 10 - 9, 10 * 10 - 9), Point(8 * 10, 10 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(8 * 10 - 9, 9 * 10 - 9), Point(8 * 10, 9 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(8 * 10 - 9, 8 * 10 - 9), Point(8 * 10, 8 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(8 * 10 - 9, 7 * 10 - 9), Point(8 * 10, 7 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(8 * 10 - 9, 6 * 10 - 9), Point(8 * 10, 6 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(8 * 10 - 9, 5 * 10 - 9), Point(8 * 10, 5 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(8 * 10 - 9, 4 * 10 - 9), Point(8 * 10, 4 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(8 * 10 - 9, 3 * 10 - 9), Point(8 * 10, 3 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(8 * 10 - 9, 2 * 10 - 9), Point(8 * 10, 2 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(8 * 10 - 9, 1 * 10 - 9), Point(8 * 10, 1 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(7 * 10 - 9, 10 * 10 - 9), Point(7 * 10, 10 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(7 * 10 - 9, 9 * 10 - 9), Point(7 * 10, 9 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(7 * 10 - 9, 8 * 10 - 9), Point(7 * 10, 8 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(7 * 10 - 9, 7 * 10 - 9), Point(7 * 10, 7 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(7 * 10 - 9, 6 * 10 - 9), Point(7 * 10, 6 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(7 * 10 - 9, 5 * 10 - 9), Point(7 * 10, 5 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(7 * 10 - 9, 4 * 10 - 9), Point(7 * 10, 4 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(7 * 10 - 9, 3 * 10 - 9), Point(7 * 10, 3 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(7 * 10 - 9, 2 * 10 - 9), Point(7 * 10, 2 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(7 * 10 - 9, 1 * 10 - 9), Point(7 * 10, 1 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(6 * 10 - 9, 10 * 10 - 9), Point(6 * 10, 10 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(6 * 10 - 9, 9 * 10 - 9), Point(6 * 10, 9 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(6 * 10 - 9, 8 * 10 - 9), Point(6 * 10, 8 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(6 * 10 - 9, 7 * 10 - 9), Point(6 * 10, 7 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(6 * 10 - 9, 6 * 10 - 9), Point(6 * 10, 6 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(6 * 10 - 9, 5 * 10 - 9), Point(6 * 10, 5 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(6 * 10 - 9, 4 * 10 - 9), Point(6 * 10, 4 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(6 * 10 - 9, 3 * 10 - 9), Point(6 * 10, 3 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(6 * 10 - 9, 2 * 10 - 9), Point(6 * 10, 2 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(6 * 10 - 9, 1 * 10 - 9), Point(6 * 10, 1 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(5 * 10 - 9, 10 * 10 - 9), Point(5 * 10, 10 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(5 * 10 - 9, 9 * 10 - 9), Point(5 * 10, 9 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(5 * 10 - 9, 8 * 10 - 9), Point(5 * 10, 8 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(5 * 10 - 9, 7 * 10 - 9), Point(5 * 10, 7 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(5 * 10 - 9, 6 * 10 - 9), Point(5 * 10, 6 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(5 * 10 - 9, 5 * 10 - 9), Point(5 * 10, 5 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(5 * 10 - 9, 4 * 10 - 9), Point(5 * 10, 4 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(5 * 10 - 9, 3 * 10 - 9), Point(5 * 10, 3 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(5 * 10 - 9, 2 * 10 - 9), Point(5 * 10, 2 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(5 * 10 - 9, 1 * 10 - 9), Point(5 * 10, 1 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(4 * 10 - 9, 10 * 10 - 9), Point(4 * 10, 10 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(4 * 10 - 9, 9 * 10 - 9), Point(4 * 10, 9 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(4 * 10 - 9, 8 * 10 - 9), Point(4 * 10, 8 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(4 * 10 - 9, 7 * 10 - 9), Point(4 * 10, 7 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(4 * 10 - 9, 6 * 10 - 9), Point(4 * 10, 6 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(4 * 10 - 9, 5 * 10 - 9), Point(4 * 10, 5 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(4 * 10 - 9, 4 * 10 - 9), Point(4 * 10, 4 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(4 * 10 - 9, 3 * 10 - 9), Point(4 * 10, 3 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(4 * 10 - 9, 2 * 10 - 9), Point(4 * 10, 2 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(4 * 10 - 9, 1 * 10 - 9), Point(4 * 10, 1 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(3 * 10 - 9, 10 * 10 - 9), Point(3 * 10, 10 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(3 * 10 - 9, 9 * 10 - 9), Point(3 * 10, 9 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(3 * 10 - 9, 8 * 10 - 9), Point(3 * 10, 8 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(3 * 10 - 9, 7 * 10 - 9), Point(3 * 10, 7 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(3 * 10 - 9, 6 * 10 - 9), Point(3 * 10, 6 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(3 * 10 - 9, 5 * 10 - 9), Point(3 * 10, 5 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(3 * 10 - 9, 4 * 10 - 9), Point(3 * 10, 4 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(3 * 10 - 9, 3 * 10 - 9), Point(3 * 10, 3 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(3 * 10 - 9, 2 * 10 - 9), Point(3 * 10, 2 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(3 * 10 - 9, 1 * 10 - 9), Point(3 * 10, 1 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(2 * 10 - 9, 10 * 10 - 9), Point(2 * 10, 10 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(2 * 10 - 9, 9 * 10 - 9), Point(2 * 10, 9 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(2 * 10 - 9, 8 * 10 - 9), Point(2 * 10, 8 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(2 * 10 - 9, 7 * 10 - 9), Point(2 * 10, 7 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(2 * 10 - 9, 6 * 10 - 9), Point(2 * 10, 6 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(2 * 10 - 9, 5 * 10 - 9), Point(2 * 10, 5 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(2 * 10 - 9, 4 * 10 - 9), Point(2 * 10, 4 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(2 * 10 - 9, 3 * 10 - 9), Point(2 * 10, 3 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(2 * 10 - 9, 2 * 10 - 9), Point(2 * 10, 2 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(2 * 10 - 9, 1 * 10 - 9), Point(2 * 10, 1 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(1 * 10 - 9, 10 * 10 - 9), Point(1 * 10, 10 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(1 * 10 - 9, 9 * 10 - 9), Point(1 * 10, 9 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(1 * 10 - 9, 8 * 10 - 9), Point(1 * 10, 8 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(1 * 10 - 9, 7 * 10 - 9), Point(1 * 10, 7 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(1 * 10 - 9, 6 * 10 - 9), Point(1 * 10, 6 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(1 * 10 - 9, 5 * 10 - 9), Point(1 * 10, 5 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(1 * 10 - 9, 4 * 10 - 9), Point(1 * 10, 4 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(1 * 10 - 9, 3 * 10 - 9), Point(1 * 10, 3 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(1 * 10 - 9, 2 * 10 - 9), Point(1 * 10, 2 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(1 * 10 - 9, 1 * 10 - 9), Point(1 * 10, 1 * 10))));
SELECT count(*) FROM t2;
count(*) count(*)
100 100
DROP TABLE t2; DROP TABLE t2;

View File

@ -2502,3 +2502,15 @@ a MAX(b)
2 1 2 1
DROP TABLE t; DROP TABLE t;
End of 5.0 tests End of 5.0 tests
#
# Bug #46607: Assertion failed: (cond_type == Item::FUNC_ITEM) results in
# server crash
#
CREATE TABLE t (a INT, b INT, INDEX (a,b));
INSERT INTO t VALUES (2,0), (2,0), (2,1), (2,1);
INSERT INTO t SELECT * FROM t;
SELECT a, MAX(b) FROM t WHERE b GROUP BY a;
a MAX(b)
2 1
DROP TABLE t;
End of 5.1 tests

View File

@ -741,3 +741,19 @@ USE information_schema;
HANDLER COLUMNS OPEN; HANDLER COLUMNS OPEN;
ERROR HY000: Incorrect usage of HANDLER OPEN and information_schema ERROR HY000: Incorrect usage of HANDLER OPEN and information_schema
USE test; USE test;
#
# BUG #46456: HANDLER OPEN + TRUNCATE + DROP (temporary) TABLE, crash
#
CREATE TABLE t1 AS SELECT 1 AS f1;
HANDLER t1 OPEN;
TRUNCATE t1;
HANDLER t1 READ FIRST;
ERROR 42S02: Unknown table 't1' in HANDLER
DROP TABLE t1;
CREATE TEMPORARY TABLE t1 AS SELECT 1 AS f1;
HANDLER t1 OPEN;
TRUNCATE t1;
HANDLER t1 READ FIRST;
ERROR 42S02: Unknown table 't1' in HANDLER
DROP TABLE t1;
End of 5.1 tests

View File

@ -3,3 +3,30 @@ SET @old_innodb_file_per_table=@@innodb_file_per_table;
SET @old_innodb_file_format_check=@@innodb_file_format_check; SET @old_innodb_file_format_check=@@innodb_file_format_check;
SET GLOBAL innodb_file_format='Barracuda'; SET GLOBAL innodb_file_format='Barracuda';
SET GLOBAL innodb_file_per_table=ON; SET GLOBAL innodb_file_per_table=ON;
DROP TABLE IF EXISTS `test1`;
CREATE TABLE IF NOT EXISTS `test1` (
`a` int primary key auto_increment,
`b` int default 0,
`c` char(100) default 'testtest'
) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
set autocommit=0;
CREATE PROCEDURE insert_many(p1 int)
BEGIN
SET @x = 0;
SET @y = 0;
REPEAT
insert into test1 set b=1;
SET @x = @x + 1;
SET @y = @y + 1;
IF @y >= 1000 THEN
commit;
SET @y = 0;
END IF;
UNTIL @x >= p1 END REPEAT;
END|
DROP PROCEDURE insert_many;
ALTER TABLE test1 ENGINE=MyISAM;
DROP TABLE test1;
SET GLOBAL innodb_file_format=@old_innodb_file_format;
SET GLOBAL innodb_file_per_table=@old_innodb_file_per_table;
SET GLOBAL innodb_file_format_check=@old_innodb_file_format_check;

View File

@ -1,3 +1,5 @@
SET @odl_sync_frm = @@global.sync_frm;
SET @@global.sync_frm = OFF;
DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t1;
CREATE TABLE t1( a INT, b INT ); CREATE TABLE t1( a INT, b INT );
INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3), (4, 4); INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3), (4, 4);
@ -17,3 +19,4 @@ ALTER TABLE t1 ADD COLUMN a INT;
# 2.2.1. normal mode # 2.2.1. normal mode
# 2.2.2. PS mode # 2.2.2. PS mode
DROP TABLE t1; DROP TABLE t1;
SET @@global.sync_frm = @odl_sync_frm;

View File

@ -1,3 +1,5 @@
SET @odl_sync_frm = @@global.sync_frm;
SET @@global.sync_frm = OFF;
DROP TABLE IF EXISTS t1,t2,t3; DROP TABLE IF EXISTS t1,t2,t3;
CREATE TABLE t1 ( CREATE TABLE t1 (
a int(11) unsigned default NULL, a int(11) unsigned default NULL,
@ -15,3 +17,4 @@ CREATE TABLE t3 SELECT * FROM t1;
# normal mode # normal mode
# PS mode # PS mode
DROP TABLE t1, t2, t3; DROP TABLE t1, t2, t3;
SET @@global.sync_frm = @odl_sync_frm;

View File

@ -1846,56 +1846,6 @@ c1
DROP TABLE t1, t2, t3; DROP TABLE t1, t2, t3;
CREATE TABLE t1 (id INTEGER, grp TINYINT, id_rev INTEGER); CREATE TABLE t1 (id INTEGER, grp TINYINT, id_rev INTEGER);
SET @rnd_max= 2147483647; SET @rnd_max= 2147483647;
SET @rnd= RAND();
SET @id = CAST(@rnd * @rnd_max AS UNSIGNED);
SET @id_rev= @rnd_max - @id;
SET @grp= CAST(127.0 * @rnd AS UNSIGNED);
INSERT INTO t1 (id, grp, id_rev) VALUES (@id, @grp, @id_rev);
SET @rnd= RAND();
SET @id = CAST(@rnd * @rnd_max AS UNSIGNED);
SET @id_rev= @rnd_max - @id;
SET @grp= CAST(127.0 * @rnd AS UNSIGNED);
INSERT INTO t1 (id, grp, id_rev) VALUES (@id, @grp, @id_rev);
SET @rnd= RAND();
SET @id = CAST(@rnd * @rnd_max AS UNSIGNED);
SET @id_rev= @rnd_max - @id;
SET @grp= CAST(127.0 * @rnd AS UNSIGNED);
INSERT INTO t1 (id, grp, id_rev) VALUES (@id, @grp, @id_rev);
SET @rnd= RAND();
SET @id = CAST(@rnd * @rnd_max AS UNSIGNED);
SET @id_rev= @rnd_max - @id;
SET @grp= CAST(127.0 * @rnd AS UNSIGNED);
INSERT INTO t1 (id, grp, id_rev) VALUES (@id, @grp, @id_rev);
SET @rnd= RAND();
SET @id = CAST(@rnd * @rnd_max AS UNSIGNED);
SET @id_rev= @rnd_max - @id;
SET @grp= CAST(127.0 * @rnd AS UNSIGNED);
INSERT INTO t1 (id, grp, id_rev) VALUES (@id, @grp, @id_rev);
SET @rnd= RAND();
SET @id = CAST(@rnd * @rnd_max AS UNSIGNED);
SET @id_rev= @rnd_max - @id;
SET @grp= CAST(127.0 * @rnd AS UNSIGNED);
INSERT INTO t1 (id, grp, id_rev) VALUES (@id, @grp, @id_rev);
SET @rnd= RAND();
SET @id = CAST(@rnd * @rnd_max AS UNSIGNED);
SET @id_rev= @rnd_max - @id;
SET @grp= CAST(127.0 * @rnd AS UNSIGNED);
INSERT INTO t1 (id, grp, id_rev) VALUES (@id, @grp, @id_rev);
SET @rnd= RAND();
SET @id = CAST(@rnd * @rnd_max AS UNSIGNED);
SET @id_rev= @rnd_max - @id;
SET @grp= CAST(127.0 * @rnd AS UNSIGNED);
INSERT INTO t1 (id, grp, id_rev) VALUES (@id, @grp, @id_rev);
SET @rnd= RAND();
SET @id = CAST(@rnd * @rnd_max AS UNSIGNED);
SET @id_rev= @rnd_max - @id;
SET @grp= CAST(127.0 * @rnd AS UNSIGNED);
INSERT INTO t1 (id, grp, id_rev) VALUES (@id, @grp, @id_rev);
SET @rnd= RAND();
SET @id = CAST(@rnd * @rnd_max AS UNSIGNED);
SET @id_rev= @rnd_max - @id;
SET @grp= CAST(127.0 * @rnd AS UNSIGNED);
INSERT INTO t1 (id, grp, id_rev) VALUES (@id, @grp, @id_rev);
set @@read_buffer_size=2*1024*1024; set @@read_buffer_size=2*1024*1024;
CREATE TABLE t2 SELECT * FROM t1; CREATE TABLE t2 SELECT * FROM t1;
INSERT INTO t1 (id, grp, id_rev) SELECT id, grp, id_rev FROM t2; INSERT INTO t1 (id, grp, id_rev) SELECT id, grp, id_rev FROM t2;
@ -2209,4 +2159,16 @@ ERROR HY000: Table storage engine for 'm1' doesn't have this option
DROP TABLE m1,t1,t2,t3,t4,t5,t6,t7; DROP TABLE m1,t1,t2,t3,t4,t5,t6,t7;
SELECT 1 FROM m1; SELECT 1 FROM m1;
ERROR 42S02: Table 'test.m1' doesn't exist ERROR 42S02: Table 'test.m1' doesn't exist
#
# Bug #46614: Assertion in show_create_trigger()
#
CREATE TABLE t1(a int);
CREATE TABLE t2(a int);
CREATE TABLE t3(a int) ENGINE = MERGE UNION(t1, t2);
CREATE TRIGGER tr1 AFTER INSERT ON t3 FOR EACH ROW CALL foo();
SHOW CREATE TRIGGER tr1;
Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation
tr1 CREATE DEFINER=`root`@`localhost` TRIGGER tr1 AFTER INSERT ON t3 FOR EACH ROW CALL foo() latin1 latin1_swedish_ci latin1_swedish_ci
DROP TRIGGER tr1;
DROP TABLE t1, t2, t3;
End of 5.1 tests End of 5.1 tests

View File

@ -12,16 +12,6 @@ CREATE TABLE `t2` (
KEY (id1), KEY(id) KEY (id1), KEY(id)
) ENGINE=MyISAM; ) ENGINE=MyISAM;
INSERT INTO t2 (id) VALUES (123); INSERT INTO t2 (id) VALUES (123);
INSERT INTO t2 (id) SELECT id FROM t2;
INSERT INTO t2 (id) SELECT id FROM t2;
INSERT INTO t2 (id) SELECT id FROM t2;
INSERT INTO t2 (id) SELECT id FROM t2;
INSERT INTO t2 (id) SELECT id FROM t2;
INSERT INTO t2 (id) SELECT id FROM t2;
INSERT INTO t2 (id) SELECT id FROM t2;
INSERT INTO t2 (id) SELECT id FROM t2;
INSERT INTO t2 (id) SELECT id FROM t2;
INSERT INTO t2 (id) SELECT id FROM t2;
# Switch to insert Connection # Switch to insert Connection
SET SESSION debug='+d,wait_in_enable_indexes'; SET SESSION debug='+d,wait_in_enable_indexes';
# Send insert data # Send insert data

View File

@ -215,7 +215,7 @@ COMMIT/*!*/;
# at # # at #
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0 #010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
SET TIMESTAMP=1000000000/*!*/; SET TIMESTAMP=1000000000/*!*/;
TRUNCATE TABLE t1 BEGIN
/*!*/; /*!*/;
# at # # at #
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0 #010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
@ -223,6 +223,22 @@ SET TIMESTAMP=1000000000/*!*/;
TRUNCATE TABLE t1 TRUNCATE TABLE t1
/*!*/; /*!*/;
# at # # at #
#010909 4:46:40 server id 1 end_log_pos # Xid = #
COMMIT/*!*/;
# at #
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
SET TIMESTAMP=1000000000/*!*/;
BEGIN
/*!*/;
# at #
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
SET TIMESTAMP=1000000000/*!*/;
TRUNCATE TABLE t1
/*!*/;
# at #
#010909 4:46:40 server id 1 end_log_pos # Xid = #
COMMIT/*!*/;
# at #
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0 #010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
SET TIMESTAMP=1000000000/*!*/; SET TIMESTAMP=1000000000/*!*/;
BEGIN BEGIN
@ -331,9 +347,17 @@ COMMIT/*!*/;
# at # # at #
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0 #010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
SET TIMESTAMP=1000000000/*!*/; SET TIMESTAMP=1000000000/*!*/;
BEGIN
/*!*/;
# at #
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
SET TIMESTAMP=1000000000/*!*/;
TRUNCATE TABLE t1 TRUNCATE TABLE t1
/*!*/; /*!*/;
# at # # at #
#010909 4:46:40 server id 1 end_log_pos # Xid = #
COMMIT/*!*/;
# at #
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0 #010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
SET TIMESTAMP=1000000000/*!*/; SET TIMESTAMP=1000000000/*!*/;
TRUNCATE TABLE t2 TRUNCATE TABLE t2
@ -449,9 +473,17 @@ ROLLBACK
# at # # at #
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0 #010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
SET TIMESTAMP=1000000000/*!*/; SET TIMESTAMP=1000000000/*!*/;
BEGIN
/*!*/;
# at #
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
SET TIMESTAMP=1000000000/*!*/;
TRUNCATE TABLE t1 TRUNCATE TABLE t1
/*!*/; /*!*/;
# at # # at #
#010909 4:46:40 server id 1 end_log_pos # Xid = #
COMMIT/*!*/;
# at #
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0 #010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
SET TIMESTAMP=1000000000/*!*/; SET TIMESTAMP=1000000000/*!*/;
TRUNCATE TABLE t2 TRUNCATE TABLE t2

View File

@ -1,3 +1,48 @@
DROP TABLE IF EXISTS t1;
FLUSH TABLES;
SELECT * FROM t1;
ERROR 42000: Unknown table engine 'partition'
TRUNCATE TABLE t1;
ERROR 42000: Unknown table engine 'partition'
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 analyze Error Unknown table engine 'partition'
test.t1 analyze error Corrupt
CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check Error Unknown table engine 'partition'
test.t1 check error Corrupt
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 optimize Error Unknown table engine 'partition'
test.t1 optimize error Corrupt
REPAIR TABLE t1;
Table Op Msg_type Msg_text
test.t1 repair Error Unknown table engine 'partition'
test.t1 repair error Corrupt
ALTER TABLE t1 REPAIR PARTITION ALL;
Table Op Msg_type Msg_text
test.t1 repair Error Unknown table engine 'partition'
test.t1 repair error Corrupt
ALTER TABLE t1 CHECK PARTITION ALL;
Table Op Msg_type Msg_text
test.t1 check Error Unknown table engine 'partition'
test.t1 check error Corrupt
ALTER TABLE t1 OPTIMIZE PARTITION ALL;
Table Op Msg_type Msg_text
test.t1 optimize Error Unknown table engine 'partition'
test.t1 optimize error Corrupt
ALTER TABLE t1 ANALYZE PARTITION ALL;
Table Op Msg_type Msg_text
test.t1 analyze Error Unknown table engine 'partition'
test.t1 analyze error Corrupt
ALTER TABLE t1 REBUILD PARTITION ALL;
ERROR 42000: Unknown table engine 'partition'
ALTER TABLE t1 ENGINE Memory;
ERROR 42000: Unknown table engine 'partition'
ALTER TABLE t1 ADD (new INT);
ERROR 42000: Unknown table engine 'partition'
DROP TABLE t1;
CREATE TABLE t1 ( CREATE TABLE t1 (
firstname VARCHAR(25) NOT NULL, firstname VARCHAR(25) NOT NULL,
lastname VARCHAR(25) NOT NULL, lastname VARCHAR(25) NOT NULL,

View File

@ -1,4 +1,55 @@
drop table if exists t1, t2; drop table if exists t1, t2;
CREATE TABLE t1 (
a int NOT NULL,
b int NOT NULL);
CREATE TABLE t2 (
a int NOT NULL,
b int NOT NULL,
INDEX(b)
)
PARTITION BY HASH(a) PARTITIONS 2;
INSERT INTO t1 VALUES (399, 22);
INSERT INTO t2 VALUES (1, 22), (1, 42);
INSERT INTO t2 SELECT 1, 399 FROM t2, t1
WHERE t1.b = t2.b;
DROP TABLE t1, t2;
CREATE TABLE t1 (
a timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
b varchar(10),
PRIMARY KEY (a)
)
PARTITION BY RANGE (to_days(a)) (
PARTITION p1 VALUES LESS THAN (733407),
PARTITION pmax VALUES LESS THAN MAXVALUE
);
INSERT INTO t1 VALUES ('2007-07-30 17:35:48', 'p1');
INSERT INTO t1 VALUES ('2009-07-14 17:35:55', 'pmax');
INSERT INTO t1 VALUES ('2009-09-21 17:31:42', 'pmax');
SELECT * FROM t1;
a b
2007-07-30 17:35:48 p1
2009-07-14 17:35:55 pmax
2009-09-21 17:31:42 pmax
ALTER TABLE t1 REORGANIZE PARTITION pmax INTO (
PARTITION p3 VALUES LESS THAN (733969),
PARTITION pmax VALUES LESS THAN MAXVALUE);
SELECT * FROM t1;
a b
2007-07-30 17:35:48 p1
2009-07-14 17:35:55 pmax
2009-09-21 17:31:42 pmax
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`b` varchar(10) DEFAULT NULL,
PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
/*!50100 PARTITION BY RANGE (to_days(a))
(PARTITION p1 VALUES LESS THAN (733407) ENGINE = MyISAM,
PARTITION p3 VALUES LESS THAN (733969) ENGINE = MyISAM,
PARTITION pmax VALUES LESS THAN MAXVALUE ENGINE = MyISAM) */
DROP TABLE t1;
CREATE TABLE t1 (a INT, FOREIGN KEY (a) REFERENCES t0 (a)) CREATE TABLE t1 (a INT, FOREIGN KEY (a) REFERENCES t0 (a))
ENGINE=MyISAM ENGINE=MyISAM
PARTITION BY HASH (a); PARTITION BY HASH (a);

View File

@ -0,0 +1,93 @@
DROP TABLE IF EXISTS t1;
FLUSH TABLES;
SELECT * FROM t1;
ERROR HY000: The MySQL server is running with the --skip-partition option so it cannot execute this statement
TRUNCATE TABLE t1;
ERROR HY000: The MySQL server is running with the --skip-partition option so it cannot execute this statement
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 analyze Error The MySQL server is running with the --skip-partition option so it cannot execute this statement
test.t1 analyze error Corrupt
CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check Error The MySQL server is running with the --skip-partition option so it cannot execute this statement
test.t1 check error Corrupt
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 optimize Error The MySQL server is running with the --skip-partition option so it cannot execute this statement
test.t1 optimize error Corrupt
REPAIR TABLE t1;
Table Op Msg_type Msg_text
test.t1 repair Error The MySQL server is running with the --skip-partition option so it cannot execute this statement
test.t1 repair error Corrupt
ALTER TABLE t1 REPAIR PARTITION ALL;
Table Op Msg_type Msg_text
test.t1 repair Error The MySQL server is running with the --skip-partition option so it cannot execute this statement
test.t1 repair error Corrupt
ALTER TABLE t1 CHECK PARTITION ALL;
Table Op Msg_type Msg_text
test.t1 check Error The MySQL server is running with the --skip-partition option so it cannot execute this statement
test.t1 check error Corrupt
ALTER TABLE t1 OPTIMIZE PARTITION ALL;
Table Op Msg_type Msg_text
test.t1 optimize Error The MySQL server is running with the --skip-partition option so it cannot execute this statement
test.t1 optimize error Corrupt
ALTER TABLE t1 ANALYZE PARTITION ALL;
Table Op Msg_type Msg_text
test.t1 analyze Error The MySQL server is running with the --skip-partition option so it cannot execute this statement
test.t1 analyze error Corrupt
ALTER TABLE t1 REBUILD PARTITION ALL;
ERROR HY000: The MySQL server is running with the --skip-partition option so it cannot execute this statement
ALTER TABLE t1 ENGINE Memory;
ERROR HY000: The MySQL server is running with the --skip-partition option so it cannot execute this statement
ALTER TABLE t1 ADD (new INT);
ERROR HY000: The MySQL server is running with the --skip-partition option so it cannot execute this statement
DROP TABLE t1;
CREATE TABLE t1 (
firstname VARCHAR(25) NOT NULL,
lastname VARCHAR(25) NOT NULL,
username VARCHAR(16) NOT NULL,
email VARCHAR(35),
joined DATE NOT NULL
)
PARTITION BY KEY(joined)
PARTITIONS 6;
ERROR HY000: The MySQL server is running with the --skip-partition option so it cannot execute this statement
ALTER TABLE t1 PARTITION BY KEY(joined) PARTITIONS 2;
ERROR HY000: The MySQL server is running with the --skip-partition option so it cannot execute this statement
drop table t1;
ERROR 42S02: Unknown table 't1'
CREATE TABLE t1 (
firstname VARCHAR(25) NOT NULL,
lastname VARCHAR(25) NOT NULL,
username VARCHAR(16) NOT NULL,
email VARCHAR(35),
joined DATE NOT NULL
)
PARTITION BY RANGE( YEAR(joined) ) (
PARTITION p0 VALUES LESS THAN (1960),
PARTITION p1 VALUES LESS THAN (1970),
PARTITION p2 VALUES LESS THAN (1980),
PARTITION p3 VALUES LESS THAN (1990),
PARTITION p4 VALUES LESS THAN MAXVALUE
);
ERROR HY000: The MySQL server is running with the --skip-partition option so it cannot execute this statement
drop table t1;
ERROR 42S02: Unknown table 't1'
CREATE TABLE t1 (id INT, purchased DATE)
PARTITION BY RANGE( YEAR(purchased) )
SUBPARTITION BY HASH( TO_DAYS(purchased) )
SUBPARTITIONS 2 (
PARTITION p0 VALUES LESS THAN (1990),
PARTITION p1 VALUES LESS THAN (2000),
PARTITION p2 VALUES LESS THAN MAXVALUE
);
ERROR HY000: The MySQL server is running with the --skip-partition option so it cannot execute this statement
drop table t1;
ERROR 42S02: Unknown table 't1'
create table t1 (a varchar(10) charset latin1 collate latin1_bin);
insert into t1 values (''),(' '),('a'),('a '),('a ');
explain partitions select * from t1 where a='a ' OR a='a';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 5 Using where
drop table t1;

File diff suppressed because it is too large Load Diff

View File

@ -745,7 +745,7 @@ a
EXPLAIN PARTITIONS SELECT * FROM t1 EXPLAIN PARTITIONS SELECT * FROM t1
WHERE a >= '2004-07-01' AND a <= '2004-09-30'; WHERE a >= '2004-07-01' AND a <= '2004-09-30';
id select_type table partitions type possible_keys key key_len ref rows Extra id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p407,p408,p409 ALL NULL NULL NULL NULL 9 Using where 1 SIMPLE t1 p3xx,p407,p408,p409 ALL NULL NULL NULL NULL 18 Using where
SELECT * from t1 SELECT * from t1
WHERE (a >= '2004-07-01' AND a <= '2004-09-30') OR WHERE (a >= '2004-07-01' AND a <= '2004-09-30') OR
(a >= '2005-07-01' AND a <= '2005-09-30'); (a >= '2005-07-01' AND a <= '2005-09-30');
@ -772,7 +772,7 @@ EXPLAIN PARTITIONS SELECT * from t1
WHERE (a >= '2004-07-01' AND a <= '2004-09-30') OR WHERE (a >= '2004-07-01' AND a <= '2004-09-30') OR
(a >= '2005-07-01' AND a <= '2005-09-30'); (a >= '2005-07-01' AND a <= '2005-09-30');
id select_type table partitions type possible_keys key key_len ref rows Extra id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p407,p408,p409,p507,p508,p509 ALL NULL NULL NULL NULL 18 Using where 1 SIMPLE t1 p3xx,p407,p408,p409,p507,p508,p509 ALL NULL NULL NULL NULL 27 Using where
DROP TABLE t1; DROP TABLE t1;
create table t1 (a int); create table t1 (a int);
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);

View File

@ -75,7 +75,7 @@ SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a));
select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1)); select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1));
ERROR HY000: Incorrect usage of PROCEDURE and subquery ERROR HY000: Incorrect usage of PROCEDURE and subquery
SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1)); SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1));
ERROR HY000: Incorrect parameters to procedure 'ANALYSE' ERROR HY000: Incorrect usage of PROCEDURE and subquery
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL; SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL;
ERROR 42S22: Unknown column 'a' in 'field list' ERROR 42S22: Unknown column 'a' in 'field list'
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NOT NULL; SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NOT NULL;
@ -4383,6 +4383,34 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY C ALL NULL NULL NULL NULL 20 100.00 Using where 1 PRIMARY C ALL NULL NULL NULL NULL 20 100.00 Using where
DROP TABLE C; DROP TABLE C;
# End of test for bug#45061. # End of test for bug#45061.
#
# Bug #46749: Segfault in add_key_fields() with outer subquery level
# field references
#
CREATE TABLE t1 (
a int,
b int,
UNIQUE (a), KEY (b)
);
INSERT INTO t1 VALUES (1,1), (2,1);
CREATE TABLE st1 like t1;
INSERT INTO st1 VALUES (1,1), (2,1);
CREATE TABLE st2 like t1;
INSERT INTO st2 VALUES (1,1), (2,1);
EXPLAIN
SELECT MAX(b), (SELECT COUNT(*) FROM st1,st2 WHERE st2.b <= t1.b)
FROM t1
WHERE a = 230;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
2 DEPENDENT SUBQUERY st1 index NULL a 5 NULL 2 Using index
2 DEPENDENT SUBQUERY st2 index b b 5 NULL 2 Using where; Using index; Using join buffer
SELECT MAX(b), (SELECT COUNT(*) FROM st1,st2 WHERE st2.b <= t1.b)
FROM t1
WHERE a = 230;
MAX(b) (SELECT COUNT(*) FROM st1,st2 WHERE st2.b <= t1.b)
NULL 0
DROP TABLE t1, st1, st2;
End of 5.0 tests. End of 5.0 tests.
CREATE TABLE t1 (a INT, b INT); CREATE TABLE t1 (a INT, b INT);
INSERT INTO t1 VALUES (2,22),(1,11),(2,22); INSERT INTO t1 VALUES (2,22),(1,11),(2,22);

View File

@ -0,0 +1,22 @@
drop table if exists t1, t2;
create table t1 (a int);
insert into t1 values (0),(1),(2),(3);
create table t2 (a int primary key, b int)
as select a, a as b from t1 where a in (1,2);
explain select t1.a from t1 left join t2 on t2.a=t1.a;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 4
set optimizer_switch='table_elimination=off';
explain select t1.a from t1 left join t2 on t2.a=t1.a;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 4
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using index
set optimizer_switch='table_elimination=on';
explain select t1.a from t1 left join t2 on t2.a=t1.a;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 4
set optimizer_switch='table_elimination=default';
explain select t1.a from t1 left join t2 on t2.a=t1.a;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 4
drop table t1, t2;

View File

@ -1495,9 +1495,9 @@ CREATE TABLE t1 (a int DEFAULT NULL, b int DEFAULT NULL);
INSERT INTO t1 VALUES (3,30), (1,10), (2,10); INSERT INTO t1 VALUES (3,30), (1,10), (2,10);
SELECT a+CAST(1 AS decimal(65,30)) AS aa, SUM(b) FROM t1 GROUP BY aa; SELECT a+CAST(1 AS decimal(65,30)) AS aa, SUM(b) FROM t1 GROUP BY aa;
aa SUM(b) aa SUM(b)
2.000000000000000000000000000000 10 2.00000000000000000000000000000 10
3.000000000000000000000000000000 10 3.00000000000000000000000000000 10
4.000000000000000000000000000000 30 4.00000000000000000000000000000 30
SELECT a+CAST(1 AS decimal(65,31)) AS aa, SUM(b) FROM t1 GROUP BY aa; SELECT a+CAST(1 AS decimal(65,31)) AS aa, SUM(b) FROM t1 GROUP BY aa;
ERROR 42000: Too big scale 31 specified for column '1'. Maximum is 30. ERROR 42000: Too big scale 31 specified for column '1'. Maximum is 30.
DROP TABLE t1; DROP TABLE t1;
@ -1521,13 +1521,13 @@ f1
DROP TABLE t1; DROP TABLE t1;
CREATE TABLE t1 SELECT 123451234512345123451234512345123451234512345.678906789067890678906789067890678906789067890 AS f1; CREATE TABLE t1 SELECT 123451234512345123451234512345123451234512345.678906789067890678906789067890678906789067890 AS f1;
Warnings: Warnings:
Warning 1264 Out of range value for column 'f1' at row 1 Note 1265 Data truncated for column 'f1' at row 1
DESC t1; DESC t1;
Field Type Null Key Default Extra Field Type Null Key Default Extra
f1 decimal(65,30) NO 0.000000000000000000000000000000 f1 decimal(65,20) NO 0.00000000000000000000
SELECT f1 FROM t1; SELECT f1 FROM t1;
f1 f1
99999999999999999999999999999999999.999999999999999999999999999999 123451234512345123451234512345123451234512345.67890678906789067891
DROP TABLE t1; DROP TABLE t1;
select (1.20396873 * 0.89550000 * 0.68000000 * 1.08721696 * 0.99500000 * select (1.20396873 * 0.89550000 * 0.68000000 * 1.08721696 * 0.99500000 *
1.01500000 * 1.01500000 * 0.99500000); 1.01500000 * 1.01500000 * 0.99500000);
@ -1595,7 +1595,7 @@ Warnings:
Note 1265 Data truncated for column 'my_col' at row 1 Note 1265 Data truncated for column 'my_col' at row 1
DESCRIBE t1; DESCRIBE t1;
Field Type Null Key Default Extra Field Type Null Key Default Extra
my_col decimal(65,30) NO 0.000000000000000000000000000000 my_col decimal(32,30) NO 0.000000000000000000000000000000
SELECT my_col FROM t1; SELECT my_col FROM t1;
my_col my_col
1.123456789123456789123456789123 1.123456789123456789123456789123
@ -1625,8 +1625,212 @@ Warnings:
Note 1265 Data truncated for column 'my_col' at row 1 Note 1265 Data truncated for column 'my_col' at row 1
DESCRIBE t1; DESCRIBE t1;
Field Type Null Key Default Extra Field Type Null Key Default Extra
my_col decimal(65,30) YES NULL my_col decimal(30,30) YES NULL
SELECT my_col FROM t1; SELECT my_col FROM t1;
my_col my_col
0.012345687012345687012345687012 0.012345687012345687012345687012
DROP TABLE t1; DROP TABLE t1;
#
# Bug#45261: Crash, stored procedure + decimal
#
DROP TABLE IF EXISTS t1;
CREATE TABLE t1 SELECT
/* 81 */ 100000000000000000000000000000000000000000000000000000000000000000000000000000001
AS c1;
Warnings:
Warning 1264 Out of range value for column 'c1' at row 1
DESC t1;
Field Type Null Key Default Extra
c1 decimal(65,0) NO 0
SELECT * FROM t1;
c1
99999999999999999999999999999999999999999999999999999999999999999
DROP TABLE t1;
CREATE TABLE t1 SELECT
/* 81 */ 100000000000000000000000000000000000000000000000000000000000000000000000000000001.
AS c1;
Warnings:
Warning 1264 Out of range value for column 'c1' at row 1
DESC t1;
Field Type Null Key Default Extra
c1 decimal(65,0) NO 0
SELECT * FROM t1;
c1
99999999999999999999999999999999999999999999999999999999999999999
DROP TABLE t1;
CREATE TABLE t1 SELECT
/* 81 */ 100000000000000000000000000000000000000000000000000000000000000000000000000000001.1 /* 1 */
AS c1;
Warnings:
Warning 1264 Out of range value for column 'c1' at row 1
DESC t1;
Field Type Null Key Default Extra
c1 decimal(65,0) NO 0
SELECT * FROM t1;
c1
99999999999999999999999999999999999999999999999999999999999999999
DROP TABLE t1;
CREATE TABLE t1 SELECT
/* 82 */ 1000000000000000000000000000000000000000000000000000000000000000000000000000000001
AS c1;
Warnings:
Error 1292 Truncated incorrect DECIMAL value: ''
DESC t1;
Field Type Null Key Default Extra
c1 decimal(65,0) NO 0
SELECT * FROM t1;
c1
99999999999999999999999999999999999999999999999999999999999999999
DROP TABLE t1;
CREATE TABLE t1 SELECT
/* 40 */ 1000000000000000000000000000000000000001.1000000000000000000000000000000000000001 /* 40 */
AS c1;
DESC t1;
Field Type Null Key Default Extra
c1 decimal(65,25) NO 0.0000000000000000000000000
SELECT * FROM t1;
c1
1000000000000000000000000000000000000001.1000000000000000000000000
DROP TABLE t1;
CREATE TABLE t1 SELECT
/* 1 */ 1.10000000000000000000000000000000000000000000000000000000000000000000000000000001 /* 80 */
AS c1;
DESC t1;
Field Type Null Key Default Extra
c1 decimal(31,30) NO 0.000000000000000000000000000000
SELECT * FROM t1;
c1
1.100000000000000000000000000000
DROP TABLE t1;
CREATE TABLE t1 SELECT
/* 1 */ 1.100000000000000000000000000000000000000000000000000000000000000000000000000000001 /* 81 */
AS c1;
DESC t1;
Field Type Null Key Default Extra
c1 decimal(31,30) NO 0.000000000000000000000000000000
SELECT * FROM t1;
c1
1.100000000000000000000000000000
DROP TABLE t1;
CREATE TABLE t1 SELECT
.100000000000000000000000000000000000000000000000000000000000000000000000000000001 /* 81 */
AS c1;
Warnings:
Note 1265 Data truncated for column 'c1' at row 1
DESC t1;
Field Type Null Key Default Extra
c1 decimal(30,30) NO 0.000000000000000000000000000000
SELECT * FROM t1;
c1
0.100000000000000000000000000000
DROP TABLE t1;
CREATE TABLE t1 SELECT
/* 45 */ 123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345 /* 45 */
AS c1;
Warnings:
Note 1265 Data truncated for column 'c1' at row 1
DESC t1;
Field Type Null Key Default Extra
c1 decimal(65,20) NO 0.00000000000000000000
SELECT * FROM t1;
c1
123456789012345678901234567890123456789012345.12345678901234567890
DROP TABLE t1;
CREATE TABLE t1 SELECT
/* 65 */ 12345678901234567890123456789012345678901234567890123456789012345.1 /* 1 */
AS c1;
Warnings:
Note 1265 Data truncated for column 'c1' at row 1
DESC t1;
Field Type Null Key Default Extra
c1 decimal(65,0) NO 0
SELECT * FROM t1;
c1
12345678901234567890123456789012345678901234567890123456789012345
DROP TABLE t1;
CREATE TABLE t1 SELECT
/* 66 */ 123456789012345678901234567890123456789012345678901234567890123456.1 /* 1 */
AS c1;
Warnings:
Warning 1264 Out of range value for column 'c1' at row 1
DESC t1;
Field Type Null Key Default Extra
c1 decimal(65,0) NO 0
SELECT * FROM t1;
c1
99999999999999999999999999999999999999999999999999999999999999999
DROP TABLE t1;
CREATE TABLE t1 SELECT
.123456789012345678901234567890123456789012345678901234567890123456 /* 66 */
AS c1;
Warnings:
Note 1265 Data truncated for column 'c1' at row 1
DESC t1;
Field Type Null Key Default Extra
c1 decimal(30,30) NO 0.000000000000000000000000000000
SELECT * FROM t1;
c1
0.123456789012345678901234567890
DROP TABLE t1;
CREATE TABLE t1 AS SELECT 123.1234567890123456789012345678901 /* 31 */ AS c1;
Warnings:
Note 1265 Data truncated for column 'c1' at row 1
DESC t1;
Field Type Null Key Default Extra
c1 decimal(33,30) NO 0.000000000000000000000000000000
SELECT * FROM t1;
c1
123.123456789012345678901234567890
DROP TABLE t1;
CREATE TABLE t1 SELECT 1.1 + CAST(1 AS DECIMAL(65,30)) AS c1;
DESC t1;
Field Type Null Key Default Extra
c1 decimal(65,29) NO 0.00000000000000000000000000000
SELECT * FROM t1;
c1
2.10000000000000000000000000000
DROP TABLE t1;
#
# Test that the integer and decimal parts are properly calculated.
#
CREATE TABLE t1 (a DECIMAL(30,30));
INSERT INTO t1 VALUES (0.1),(0.2),(0.3);
CREATE TABLE t2 SELECT MIN(a + 0.0000000000000000000000000000001) AS c1 FROM t1;
Warnings:
Note 1265 Data truncated for column 'c1' at row 3
DESC t2;
Field Type Null Key Default Extra
c1 decimal(32,30) YES NULL
DROP TABLE t1,t2;
CREATE TABLE t1 (a DECIMAL(30,30));
INSERT INTO t1 VALUES (0.1),(0.2),(0.3);
CREATE TABLE t2 SELECT IFNULL(a + 0.0000000000000000000000000000001, NULL) AS c1 FROM t1;
Warnings:
Note 1265 Data truncated for column 'c1' at row 1
Note 1265 Data truncated for column 'c1' at row 2
Note 1265 Data truncated for column 'c1' at row 3
DESC t2;
Field Type Null Key Default Extra
c1 decimal(32,30) YES NULL
DROP TABLE t1,t2;
CREATE TABLE t1 (a DECIMAL(30,30));
INSERT INTO t1 VALUES (0.1),(0.2),(0.3);
CREATE TABLE t2 SELECT CASE a WHEN 0.1 THEN 0.0000000000000000000000000000000000000000000000000000000000000000001 END AS c1 FROM t1;
Warnings:
Note 1265 Data truncated for column 'c1' at row 1
DESC t2;
Field Type Null Key Default Extra
c1 decimal(31,30) YES NULL
DROP TABLE t1,t2;
#
# Test that variables get maximum precision.
#
SET @decimal= 1.1;
CREATE TABLE t1 SELECT @decimal AS c1;
DESC t1;
Field Type Null Key Default Extra
c1 decimal(65,30) YES NULL
SELECT * FROM t1;
c1
1.100000000000000000000000000000
DROP TABLE t1;

View File

@ -3718,117 +3718,6 @@ DROP TABLE t1;
# -- End of test case for Bug#40825 # -- End of test case for Bug#40825
#
# Bug #45806 crash when replacing into a view with a join!
#
CREATE TABLE t1(a INT UNIQUE);
CREATE VIEW v1 AS SELECT t1.a FROM t1, t1 AS a;
INSERT INTO t1 VALUES (1), (2);
REPLACE INTO v1(a) SELECT 1 FROM t1,t1 AS c;
SELECT * FROM v1;
a
1
2
1
2
REPLACE INTO v1(a) SELECT 3 FROM t1,t1 AS c;
SELECT * FROM v1;
a
1
2
3
1
2
3
1
2
3
DELETE FROM t1 WHERE a=3;
INSERT INTO v1(a) SELECT 1 FROM t1,t1 AS c
ON DUPLICATE KEY UPDATE `v1`.`a`= 1;
SELECT * FROM v1;
a
1
2
1
2
CREATE VIEW v2 AS SELECT t1.a FROM t1, v1 AS a;
REPLACE INTO v2(a) SELECT 1 FROM t1,t1 AS c;
SELECT * FROM v2;
a
1
2
1
2
1
2
1
2
REPLACE INTO v2(a) SELECT 3 FROM t1,t1 AS c;
SELECT * FROM v2;
a
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
INSERT INTO v2(a) SELECT 1 FROM t1,t1 AS c
ON DUPLICATE KEY UPDATE `v2`.`a`= 1;
SELECT * FROM v2;
a
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
DROP VIEW v1;
DROP VIEW v2;
DROP TABLE t1;
# -- End of test case for Bug#45806
# ----------------------------------------------------------------- # -----------------------------------------------------------------
# -- End of 5.0 tests. # -- End of 5.0 tests.
# ----------------------------------------------------------------- # -----------------------------------------------------------------

View File

@ -0,0 +1,3 @@
一二三
四五六
七八九

Binary file not shown.

View File

@ -379,7 +379,9 @@ master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Table_map # # table_id: # (test.t1)
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `test`; TRUNCATE table t2 master-bin.000001 # Query # # use `test`; TRUNCATE table t2
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Table_map # # table_id: # (test.t1)
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
@ -838,8 +840,10 @@ UPDATE t4,t3 SET t4.a=t3.a + bug27417(1) /* top level non-ta table */;
ERROR 23000: Duplicate entry '2' for key 'PRIMARY' ERROR 23000: Duplicate entry '2' for key 'PRIMARY'
show binlog events from <binlog_start>; show binlog events from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Intvar # # INSERT_ID=6 master-bin.000001 # Intvar # # INSERT_ID=6
master-bin.000001 # Query # # use `test`; UPDATE t4,t3 SET t4.a=t3.a + bug27417(1) /* top level non-ta table */ master-bin.000001 # Query # # use `test`; UPDATE t4,t3 SET t4.a=t3.a + bug27417(1) /* top level non-ta table */
master-bin.000001 # Query # # ROLLBACK
select count(*) from t1 /* must be 4 */; select count(*) from t1 /* must be 4 */;
count(*) count(*)
4 4

View File

@ -17,5 +17,5 @@ master-bin.000001 # Query # # create database `drop-temp+table-test`
master-bin.000001 # Query # # use `drop-temp+table-test`; create temporary table shortn1 (a int) master-bin.000001 # Query # # use `drop-temp+table-test`; create temporary table shortn1 (a int)
master-bin.000001 # Query # # use `drop-temp+table-test`; create temporary table `table:name` (a int) master-bin.000001 # Query # # use `drop-temp+table-test`; create temporary table `table:name` (a int)
master-bin.000001 # Query # # use `drop-temp+table-test`; create temporary table shortn2 (a int) master-bin.000001 # Query # # use `drop-temp+table-test`; create temporary table shortn2 (a int)
master-bin.000001 # Query # # use `drop-temp+table-test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `drop-temp+table-test`.`shortn2`,`drop-temp+table-test`.`table:name`,`drop-temp+table-test`.`shortn1` master-bin.000001 # Query # # use `drop-temp+table-test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `shortn2`,`table:name`,`shortn1`
drop database `drop-temp+table-test`; drop database `drop-temp+table-test`;

View File

@ -258,7 +258,7 @@ master-bin.000001 # Query # # use `test`; create table t0 (n int)
master-bin.000001 # Query # # use `test`; insert t0 select * from t1 master-bin.000001 # Query # # use `test`; insert t0 select * from t1
master-bin.000001 # Query # # use `test`; insert into t0 select GET_LOCK("lock1",null) master-bin.000001 # Query # # use `test`; insert into t0 select GET_LOCK("lock1",null)
master-bin.000001 # Query # # use `test`; create table t2 (n int) engine=innodb master-bin.000001 # Query # # use `test`; create table t2 (n int) engine=innodb
master-bin.000001 # Query # # use `test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `test`.`t1`,`test`.`ti` master-bin.000001 # Query # # use `test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `t1`,`ti`
do release_lock("lock1"); do release_lock("lock1");
drop table t0,t2; drop table t0,t2;
set autocommit=0; set autocommit=0;
@ -346,7 +346,9 @@ master-bin.000001 # Query # # use `test`; INSERT INTO t1 values (3,3)
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS t2 master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS t2
master-bin.000001 # Query # # use `test`; CREATE TABLE t2 (a int, b int, primary key (a)) engine=innodb master-bin.000001 # Query # # use `test`; CREATE TABLE t2 (a int, b int, primary key (a)) engine=innodb
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (4,4) master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (4,4)
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `test`; TRUNCATE table t2 master-bin.000001 # Query # # use `test`; TRUNCATE table t2
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (5,5) master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (5,5)
master-bin.000001 # Query # # use `test`; DROP TABLE t2 master-bin.000001 # Query # # use `test`; DROP TABLE t2
master-bin.000001 # Query # # use `test`; INSERT INTO t1 values (6,6) master-bin.000001 # Query # # use `test`; INSERT INTO t1 values (6,6)
@ -545,8 +547,10 @@ UPDATE t4,t3 SET t4.a=t3.a + bug27417(1) /* top level non-ta table */;
ERROR 23000: Duplicate entry '2' for key 'PRIMARY' ERROR 23000: Duplicate entry '2' for key 'PRIMARY'
show binlog events from <binlog_start>; show binlog events from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Intvar # # INSERT_ID=6 master-bin.000001 # Intvar # # INSERT_ID=6
master-bin.000001 # Query # # use `test`; UPDATE t4,t3 SET t4.a=t3.a + bug27417(1) /* top level non-ta table */ master-bin.000001 # Query # # use `test`; UPDATE t4,t3 SET t4.a=t3.a + bug27417(1) /* top level non-ta table */
master-bin.000001 # Query # # ROLLBACK
/* the output must denote there is the query */; /* the output must denote there is the query */;
select count(*) from t1 /* must be 4 */; select count(*) from t1 /* must be 4 */;
count(*) count(*)
@ -782,8 +786,10 @@ UPDATE t4,t3 SET t4.a=t3.a + bug27417(1) /* top level non-ta table */;
ERROR 23000: Duplicate entry '2' for key 'PRIMARY' ERROR 23000: Duplicate entry '2' for key 'PRIMARY'
show binlog events from <binlog_start>; show binlog events from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Intvar # # INSERT_ID=6 master-bin.000001 # Intvar # # INSERT_ID=6
master-bin.000001 # Query # # use `test`; UPDATE t4,t3 SET t4.a=t3.a + bug27417(1) /* top level non-ta table */ master-bin.000001 # Query # # use `test`; UPDATE t4,t3 SET t4.a=t3.a + bug27417(1) /* top level non-ta table */
master-bin.000001 # Query # # ROLLBACK
select count(*) from t1 /* must be 4 */; select count(*) from t1 /* must be 4 */;
count(*) count(*)
4 4

View File

@ -9,4 +9,5 @@
# Do not use any TAB characters for whitespace. # Do not use any TAB characters for whitespace.
# #
############################################################################## ##############################################################################
federated_transactions : Bug#29523 Transactions do not work federated_server : needs fixup

View File

@ -47,9 +47,10 @@ CREATE TABLE federated.t1 (
) )
ENGINE="FEDERATED" DEFAULT CHARSET=latin1 ENGINE="FEDERATED" DEFAULT CHARSET=latin1
CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t3'; CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t3';
SELECT * FROM federated.t1; ERROR HY000: Can't create federated table. Foreign data src error: database: 'federated' username: 'root' hostname: '127.0.0.1'
ERROR HY000: The foreign data source you are trying to reference does not exist. Data source error: error: 1146 'Table 'federated.t3' doesn't exist' DROP TABLE IF EXISTS federated.t1;
DROP TABLE federated.t1; Warnings:
Note 1051 Unknown table 't1'
CREATE TABLE federated.t1 ( CREATE TABLE federated.t1 (
`id` int(20) NOT NULL, `id` int(20) NOT NULL,
`group` int NOT NULL default 0, `group` int NOT NULL default 0,
@ -59,9 +60,10 @@ CREATE TABLE federated.t1 (
) )
ENGINE="FEDERATED" DEFAULT CHARSET=latin1 ENGINE="FEDERATED" DEFAULT CHARSET=latin1
CONNECTION='mysql://user:pass@127.0.0.1:SLAVE_PORT/federated/t1'; CONNECTION='mysql://user:pass@127.0.0.1:SLAVE_PORT/federated/t1';
SELECT * FROM federated.t1; ERROR HY000: Can't create federated table. Foreign data src error: database: 'federated' username: 'user' hostname: '127.0.0.1'
ERROR HY000: Unable to connect to foreign data source: Access denied for user 'user'@'localhost' (using password: YES) DROP TABLE IF EXISTS federated.t1;
DROP TABLE federated.t1; Warnings:
Note 1051 Unknown table 't1'
CREATE TABLE federated.t1 ( CREATE TABLE federated.t1 (
`id` int(20) NOT NULL, `id` int(20) NOT NULL,
`group` int NOT NULL default 0, `group` int NOT NULL default 0,
@ -1944,15 +1946,7 @@ Bug#18287 create federated table always times out, error 1159 ' '
Test that self-references work Test that self-references work
create table federated.t1 (a int primary key); fix LOCK_open before reenabling test for Bug#18287
create table federated.t2 (a int primary key)
ENGINE=FEDERATED
connection='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
insert into federated.t1 (a) values (1);
select * from federated.t2;
a
1
drop table federated.t1, federated.t2;
CREATE TABLE federated.t1 (a INT PRIMARY KEY) DEFAULT CHARSET=utf8; CREATE TABLE federated.t1 (a INT PRIMARY KEY) DEFAULT CHARSET=utf8;
CREATE TABLE federated.t1 (a INT PRIMARY KEY) CREATE TABLE federated.t1 (a INT PRIMARY KEY)
ENGINE=FEDERATED ENGINE=FEDERATED
@ -1960,13 +1954,11 @@ CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1'
DEFAULT CHARSET=utf8; DEFAULT CHARSET=utf8;
SELECT transactions FROM information_schema.engines WHERE engine="FEDERATED"; SELECT transactions FROM information_schema.engines WHERE engine="FEDERATED";
transactions transactions
NO YES
INSERT INTO federated.t1 VALUES (1); INSERT INTO federated.t1 VALUES (1);
SET autocommit=0; SET autocommit=0;
INSERT INTO federated.t1 VALUES (2); INSERT INTO federated.t1 VALUES (2);
ROLLBACK; ROLLBACK;
Warnings:
Warning 1196 Some non-transactional changed tables couldn't be rolled back
SET autocommit=1; SET autocommit=1;
SELECT * FROM federated.t1; SELECT * FROM federated.t1;
a a
@ -2157,6 +2149,6 @@ End of 5.1 tests
SET @@GLOBAL.CONCURRENT_INSERT= @OLD_MASTER_CONCURRENT_INSERT; SET @@GLOBAL.CONCURRENT_INSERT= @OLD_MASTER_CONCURRENT_INSERT;
SET @@GLOBAL.CONCURRENT_INSERT= @OLD_SLAVE_CONCURRENT_INSERT; SET @@GLOBAL.CONCURRENT_INSERT= @OLD_SLAVE_CONCURRENT_INSERT;
DROP TABLE IF EXISTS federated.t1; DROP TABLE IF EXISTS federated.t1;
DROP DATABASE federated; DROP DATABASE IF EXISTS federated;
DROP TABLE IF EXISTS federated.t1; DROP TABLE IF EXISTS federated.t1;
DROP DATABASE federated; DROP DATABASE IF EXISTS federated;

View File

@ -57,6 +57,7 @@ CREATE TABLE federated.t1 (
# test non-existant table # test non-existant table
--replace_result $SLAVE_MYPORT SLAVE_PORT --replace_result $SLAVE_MYPORT SLAVE_PORT
--error ER_CANT_CREATE_FEDERATED_TABLE
eval CREATE TABLE federated.t1 ( eval CREATE TABLE federated.t1 (
`id` int(20) NOT NULL, `id` int(20) NOT NULL,
`group` int NOT NULL default 0, `group` int NOT NULL default 0,
@ -66,12 +67,11 @@ eval CREATE TABLE federated.t1 (
) )
ENGINE="FEDERATED" DEFAULT CHARSET=latin1 ENGINE="FEDERATED" DEFAULT CHARSET=latin1
CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t3'; CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t3';
--error ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST DROP TABLE IF EXISTS federated.t1;
SELECT * FROM federated.t1;
DROP TABLE federated.t1;
# test bad user/password # test bad user/password
--replace_result $SLAVE_MYPORT SLAVE_PORT --replace_result $SLAVE_MYPORT SLAVE_PORT
--error ER_CANT_CREATE_FEDERATED_TABLE
eval CREATE TABLE federated.t1 ( eval CREATE TABLE federated.t1 (
`id` int(20) NOT NULL, `id` int(20) NOT NULL,
`group` int NOT NULL default 0, `group` int NOT NULL default 0,
@ -81,9 +81,7 @@ eval CREATE TABLE federated.t1 (
) )
ENGINE="FEDERATED" DEFAULT CHARSET=latin1 ENGINE="FEDERATED" DEFAULT CHARSET=latin1
CONNECTION='mysql://user:pass@127.0.0.1:$SLAVE_MYPORT/federated/t1'; CONNECTION='mysql://user:pass@127.0.0.1:$SLAVE_MYPORT/federated/t1';
--error ER_CONNECT_TO_FOREIGN_DATA_SOURCE DROP TABLE IF EXISTS federated.t1;
SELECT * FROM federated.t1;
DROP TABLE federated.t1;
# # correct connection, same named tables # # correct connection, same named tables
--replace_result $SLAVE_MYPORT SLAVE_PORT --replace_result $SLAVE_MYPORT SLAVE_PORT
@ -1806,6 +1804,8 @@ drop table federated.t1;
--echo --echo
--echo Test that self-references work --echo Test that self-references work
--echo --echo
--echo fix LOCK_open before reenabling test for Bug#18287
--disable_parsing
connection slave; connection slave;
create table federated.t1 (a int primary key); create table federated.t1 (a int primary key);
--replace_result $SLAVE_MYPORT SLAVE_PORT --replace_result $SLAVE_MYPORT SLAVE_PORT
@ -1815,7 +1815,7 @@ eval create table federated.t2 (a int primary key)
insert into federated.t1 (a) values (1); insert into federated.t1 (a) values (1);
select * from federated.t2; select * from federated.t2;
drop table federated.t1, federated.t2; drop table federated.t1, federated.t2;
--enable_parsing
# #
# BUG#29875 Disable support for transactions # BUG#29875 Disable support for transactions
# #

View File

@ -34,6 +34,6 @@ id name
DROP TABLE federated.t1; DROP TABLE federated.t1;
DROP TABLE federated.archive_table; DROP TABLE federated.archive_table;
DROP TABLE IF EXISTS federated.t1; DROP TABLE IF EXISTS federated.t1;
DROP DATABASE federated; DROP DATABASE IF EXISTS federated;
DROP TABLE IF EXISTS federated.t1; DROP TABLE IF EXISTS federated.t1;
DROP DATABASE federated; DROP DATABASE IF EXISTS federated;

View File

@ -25,6 +25,6 @@ foo bar
DROP TABLE federated.t1; DROP TABLE federated.t1;
DROP TABLE federated.bug_13118_table; DROP TABLE federated.bug_13118_table;
DROP TABLE IF EXISTS federated.t1; DROP TABLE IF EXISTS federated.t1;
DROP DATABASE federated; DROP DATABASE IF EXISTS federated;
DROP TABLE IF EXISTS federated.t1; DROP TABLE IF EXISTS federated.t1;
DROP DATABASE federated; DROP DATABASE IF EXISTS federated;

View File

@ -48,6 +48,6 @@ SET @@GLOBAL.CONCURRENT_INSERT= @OLD_MASTER_CONCURRENT_INSERT;
DROP TABLE federated.t1; DROP TABLE federated.t1;
SET @@GLOBAL.CONCURRENT_INSERT= @OLD_SLAVE_CONCURRENT_INSERT; SET @@GLOBAL.CONCURRENT_INSERT= @OLD_SLAVE_CONCURRENT_INSERT;
DROP TABLE IF EXISTS federated.t1; DROP TABLE IF EXISTS federated.t1;
DROP DATABASE federated; DROP DATABASE IF EXISTS federated;
DROP TABLE IF EXISTS federated.t1; DROP TABLE IF EXISTS federated.t1;
DROP DATABASE federated; DROP DATABASE IF EXISTS federated;

View File

@ -1,9 +1,9 @@
connection master; connection master;
--disable_warnings --disable_warnings
DROP TABLE IF EXISTS federated.t1; DROP TABLE IF EXISTS federated.t1;
DROP DATABASE federated; DROP DATABASE IF EXISTS federated;
connection slave; connection slave;
DROP TABLE IF EXISTS federated.t1; DROP TABLE IF EXISTS federated.t1;
DROP DATABASE federated; DROP DATABASE IF EXISTS federated;
--enable_warnings --enable_warnings

View File

@ -20,6 +20,6 @@ a b
drop table federated.t1; drop table federated.t1;
drop table federated.t1; drop table federated.t1;
DROP TABLE IF EXISTS federated.t1; DROP TABLE IF EXISTS federated.t1;
DROP DATABASE federated; DROP DATABASE IF EXISTS federated;
DROP TABLE IF EXISTS federated.t1; DROP TABLE IF EXISTS federated.t1;
DROP DATABASE federated; DROP DATABASE IF EXISTS federated;

View File

@ -178,8 +178,8 @@ INSERT INTO db_bogus.t1 VALUES ('2','this is bogus');
create server 's1' foreign data wrapper 'mysql' options create server 's1' foreign data wrapper 'mysql' options
(HOST '127.0.0.1', (HOST '127.0.0.1',
DATABASE 'db_legitimate', DATABASE 'db_legitimate',
USER 'root', USER 'test_fed',
PASSWORD '', PASSWORD 'foo',
PORT SLAVE_PORT, PORT SLAVE_PORT,
SOCKET '', SOCKET '',
OWNER 'root'); OWNER 'root');

View File

@ -3,6 +3,7 @@
# Slow test, don't run during staging part # Slow test, don't run during staging part
-- source include/not_staging.inc -- source include/not_staging.inc
-- source include/big_test.inc
-- source federated.inc -- source federated.inc
connection slave; connection slave;
@ -182,13 +183,17 @@ CREATE TABLE db_bogus.t1 (
; ;
INSERT INTO db_bogus.t1 VALUES ('2','this is bogus'); INSERT INTO db_bogus.t1 VALUES ('2','this is bogus');
connection slave;
create user test_fed@localhost identified by 'foo';
grant all on db_legitimate.* to test_fed@localhost;
connection master; connection master;
--replace_result $SLAVE_MYPORT SLAVE_PORT --replace_result $SLAVE_MYPORT SLAVE_PORT
eval create server 's1' foreign data wrapper 'mysql' options eval create server 's1' foreign data wrapper 'mysql' options
(HOST '127.0.0.1', (HOST '127.0.0.1',
DATABASE 'db_legitimate', DATABASE 'db_legitimate',
USER 'root', USER 'test_fed',
PASSWORD '', PASSWORD 'foo',
PORT $SLAVE_MYPORT, PORT $SLAVE_MYPORT,
SOCKET '', SOCKET '',
OWNER 'root'); OWNER 'root');

View File

@ -1,13 +1,4 @@
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;
stop slave;
DROP DATABASE IF EXISTS federated;
CREATE DATABASE federated; CREATE DATABASE federated;
DROP DATABASE IF EXISTS federated;
CREATE DATABASE federated; CREATE DATABASE federated;
DROP TABLE IF EXISTS federated.t1; DROP TABLE IF EXISTS federated.t1;
Warnings: Warnings:

View File

@ -2,7 +2,7 @@ SELECT * FROM information_schema.engines
WHERE ENGINE = 'FEDERATED'; WHERE ENGINE = 'FEDERATED';
ENGINE FEDERATED ENGINE FEDERATED
SUPPORT YES SUPPORT YES
COMMENT Federated MySQL storage engine COMMENT FederatedX pluggable storage engine
TRANSACTIONS NO TRANSACTIONS YES
XA NO XA NO
SAVEPOINTS NO SAVEPOINTS YES

View File

@ -152,6 +152,7 @@ ENGINE = MEMORY;
--echo # Logging of <max_row> INSERTs into t0_template suppressed --echo # Logging of <max_row> INSERTs into t0_template suppressed
--disable_query_log --disable_query_log
let $num= `SELECT @max_row`; let $num= `SELECT @max_row`;
begin;
while ($num) while ($num)
{ {
eval INSERT INTO t0_template eval INSERT INTO t0_template
@ -160,6 +161,7 @@ f_charbig = '===$num===';
dec $num; dec $num;
} }
commit;
--enable_query_log --enable_query_log
# Auxiliary table used for comparisons of table definitions and file lists # Auxiliary table used for comparisons of table definitions and file lists

View File

@ -32,11 +32,13 @@ delete from t2;
let $count=$maxrows; let $count=$maxrows;
--echo $maxrows inserts; --echo $maxrows inserts;
--disable_query_log --disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t2 values ($count); eval insert into t2 values ($count);
dec $count; dec $count;
} }
commit;
--enable_query_log --enable_query_log
select count(*) from t2; select count(*) from t2;
drop table t2; drop table t2;

View File

@ -22,13 +22,16 @@ show create table t2;
let $count=26; let $count=26;
let $letter=0; let $letter=0;
--echo $count inserts; --echo $count inserts;
#--disable_query_log --disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t2 values (repeat(char(ascii('a')+$letter),$count+54)); eval insert into t2 values (repeat(char(ascii('a')+$letter),$count+54));
dec $count; dec $count;
inc $letter; inc $letter;
} }
commit;
--enable_query_log
select count(*) from t2; select count(*) from t2;
select hex(a) from t2; select hex(a) from t2;
drop table t2; drop table t2;
@ -48,13 +51,16 @@ show create table t3;
let $count=26; let $count=26;
let $letter=0; let $letter=0;
--echo $count inserts; --echo $count inserts;
#--disable_query_log --disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t3 values (repeat(char(ascii('a')+$letter),$count+54)); eval insert into t3 values (repeat(char(ascii('a')+$letter),$count+54));
dec $count; dec $count;
inc $letter; inc $letter;
} }
commit;
--enable_query_log
select count(*) from t3; select count(*) from t3;
select hex(a) from t3; select hex(a) from t3;
drop table t3; drop table t3;
@ -73,14 +79,16 @@ show create table t4;
let $count=26; let $count=26;
let $letter=0; let $letter=0;
--echo $count inserts; --echo $count inserts;
#--disable_query_log --disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t4 values (repeat(char(ascii('a')+$letter),$count+54)); eval insert into t4 values (repeat(char(ascii('a')+$letter),$count+54));
dec $count; dec $count;
inc $letter; inc $letter;
} }
commit;
--enable_query_log
select count(*) from t4; select count(*) from t4;
select hex(a) from t4; select hex(a) from t4;
drop table t4; drop table t4;

View File

@ -74,11 +74,13 @@ show create table t3;
let $count=255; let $count=255;
--echo $count inserts; --echo $count inserts;
--disable_query_log --disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t3 values ($count); eval insert into t3 values ($count);
dec $count; dec $count;
} }
commit;
--enable_query_log --enable_query_log
select hex(a) from t3 where a=b'01010101'; select hex(a) from t3 where a=b'01010101';
delete from t3 where a=b'01010101'; delete from t3 where a=b'01010101';
@ -96,11 +98,13 @@ show create table t4;
let $count=32; let $count=32;
--echo $count inserts; --echo $count inserts;
--disable_query_log --disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t4 values ($count); eval insert into t4 values ($count);
dec $count; dec $count;
} }
commit;
--enable_query_log --enable_query_log
select hex(a) from t4 where a=b'00000001'; select hex(a) from t4 where a=b'00000001';
delete from t4 where a=b'00000001'; delete from t4 where a=b'00000001';

View File

@ -21,13 +21,16 @@ show create table t2;
let $count=26; let $count=26;
let $letter=0; let $letter=0;
--echo $count inserts; --echo $count inserts;
#--disable_query_log --disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t2 values (repeat(char(ascii('a')+$letter),$count+54)); eval insert into t2 values (repeat(char(ascii('a')+$letter),$count+54));
dec $count; dec $count;
inc $letter; inc $letter;
} }
commit;
--enable_query_log
select count(*) from t2; select count(*) from t2;
select * from t2; select * from t2;
drop table t2; drop table t2;
@ -47,13 +50,16 @@ show create table t3;
let $count=26; let $count=26;
let $letter=0; let $letter=0;
--echo $count inserts; --echo $count inserts;
#--disable_query_log --disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t3 values (repeat(char(ascii('a')+$letter),$count+54)); eval insert into t3 values (repeat(char(ascii('a')+$letter),$count+54));
dec $count; dec $count;
inc $letter; inc $letter;
} }
commit;
--enable_query_log
select count(*) from t3; select count(*) from t3;
select a from t3; select a from t3;
drop table t3; drop table t3;
@ -71,13 +77,16 @@ show create table t4;
let $count=26; let $count=26;
let $letter=0; let $letter=0;
--echo $count inserts; --echo $count inserts;
#--disable_query_log --disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t4 values (repeat(char(ascii('a')+$letter),$count+54)); eval insert into t4 values (repeat(char(ascii('a')+$letter),$count+54));
dec $count; dec $count;
inc $letter; inc $letter;
} }
commit;
--enable_query_log
select count(*) from t4; select count(*) from t4;
select a from t4; select a from t4;
drop table t4; drop table t4;

View File

@ -23,7 +23,8 @@ select * from t2;
delete from t2; delete from t2;
let $count=28; let $count=28;
--echo $count inserts; --echo $count inserts;
#--disable_query_log --disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t2 values (19700101+$count-1); eval insert into t2 values (19700101+$count-1);
@ -31,7 +32,8 @@ eval insert into t2 values (19700201+$count-1);
eval insert into t2 values (19700301+$count-1); eval insert into t2 values (19700301+$count-1);
dec $count; dec $count;
} }
#--enable_query_log commit;
--enable_query_log
select count(*) from t2; select count(*) from t2;
select * from t2; select * from t2;
drop table t2; drop table t2;
@ -47,11 +49,15 @@ partition quarter4 values less than (13)
show create table t3; show create table t3;
let $count=12; let $count=12;
--echo $count inserts; --echo $count inserts;
--disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t3 values (adddate(19700101,interval $count-1 month)); eval insert into t3 values (adddate(19700101,interval $count-1 month));
dec $count; dec $count;
} }
commit;
--enable_query_log
select count(*) from t3; select count(*) from t3;
select * from t3; select * from t3;
drop table t3; drop table t3;
@ -67,11 +73,15 @@ partition quarter4 values in (10,11,12)
show create table t4; show create table t4;
let $count=12; let $count=12;
--echo $count inserts; --echo $count inserts;
--disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t4 values (adddate(19700101,interval $count-1 month)); eval insert into t4 values (adddate(19700101,interval $count-1 month));
dec $count; dec $count;
} }
commit;
--enable_query_log
select count(*) from t4; select count(*) from t4;
select * from t4; select * from t4;
drop table t4; drop table t4;

View File

@ -23,12 +23,15 @@ select * from t2;
delete from t2; delete from t2;
let $count=59; let $count=59;
--echo $count inserts; --echo $count inserts;
#--disable_query_log --disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t2 values (19700101000000+$count); eval insert into t2 values (19700101000000+$count);
dec $count; dec $count;
} }
commit;
--enable_query_log
select count(*) from t2; select count(*) from t2;
select * from t2; select * from t2;
drop table t2; drop table t2;
@ -44,11 +47,15 @@ partition quarter4 values less than (13)
show create table t3; show create table t3;
let $count=12; let $count=12;
--echo $count inserts; --echo $count inserts;
--disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t3 values (adddate(19700101000000,interval $count-1 month)); eval insert into t3 values (adddate(19700101000000,interval $count-1 month));
dec $count; dec $count;
} }
commit;
--enable_query_log
select count(*) from t3; select count(*) from t3;
select * from t3; select * from t3;
drop table t3; drop table t3;
@ -64,11 +71,15 @@ partition quarter4 values in (10,11,12)
show create table t4; show create table t4;
let $count=12; let $count=12;
--echo $count inserts; --echo $count inserts;
--disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t4 values (adddate(19700101000000,interval $count-1 month)); eval insert into t4 values (adddate(19700101000000,interval $count-1 month));
dec $count; dec $count;
} }
commit;
--enable_query_log
select count(*) from t4; select count(*) from t4;
select * from t4; select * from t4;
drop table t4; drop table t4;

View File

@ -24,6 +24,7 @@ delete from t2;
let $count=$maxrows; let $count=$maxrows;
--echo $count*3 inserts; --echo $count*3 inserts;
--disable_query_log --disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t2 values ($count); eval insert into t2 values ($count);
@ -31,6 +32,7 @@ eval insert into t2 values ($count+0.333333333);
eval insert into t2 values ($count+0.755555555); eval insert into t2 values ($count+0.755555555);
dec $count; dec $count;
} }
commit;
--enable_query_log --enable_query_log
select count(*) from t2; select count(*) from t2;
drop table t2; drop table t2;
@ -53,6 +55,8 @@ partition pa10 values less than (10)
show create table t3; show create table t3;
let $count=9; let $count=9;
--echo $count*3 inserts; --echo $count*3 inserts;
--disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t3 values ($count); eval insert into t3 values ($count);
@ -60,6 +64,7 @@ eval insert into t3 values ($count+0.333333333);
eval insert into t3 values ($count+0.755555555); eval insert into t3 values ($count+0.755555555);
dec $count; dec $count;
} }
commit;
--enable_query_log --enable_query_log
select count(*) from t3; select count(*) from t3;
drop table t3; drop table t3;
@ -75,6 +80,8 @@ partition pa10 values in (9,10)
show create table t4; show create table t4;
let $count=9; let $count=9;
--echo $count*3 inserts; --echo $count*3 inserts;
--disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t4 values ($count); eval insert into t4 values ($count);
@ -82,6 +89,7 @@ eval insert into t4 values ($count+0.333333333);
eval insert into t4 values ($count+0.755555555); eval insert into t4 values ($count+0.755555555);
dec $count; dec $count;
} }
commit;
--enable_query_log --enable_query_log
select count(*) from t4; select count(*) from t4;
drop table t4; drop table t4;

View File

@ -24,6 +24,7 @@ delete from t2;
let $count=$maxrows; let $count=$maxrows;
--echo $maxrows*3 inserts; --echo $maxrows*3 inserts;
--disable_query_log --disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t2 values ($count); eval insert into t2 values ($count);
@ -31,6 +32,7 @@ eval insert into t2 values ($count+0.33);
eval insert into t2 values ($count+0.75); eval insert into t2 values ($count+0.75);
dec $count; dec $count;
} }
commit;
--enable_query_log --enable_query_log
select count(*) from t2; select count(*) from t2;
drop table t2; drop table t2;
@ -52,6 +54,8 @@ partition pa10 values less than (10)
show create table t3; show create table t3;
let $count=9; let $count=9;
--echo $count*3 inserts; --echo $count*3 inserts;
--disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t3 values ($count); eval insert into t3 values ($count);
@ -59,6 +63,8 @@ eval insert into t3 values ($count+0.33);
eval insert into t3 values ($count+0.75); eval insert into t3 values ($count+0.75);
dec $count; dec $count;
} }
commit;
--enable_query_log
select count(*) from t3; select count(*) from t3;
select * from t3; select * from t3;
drop table t3; drop table t3;
@ -72,6 +78,8 @@ partition pa10 values in (7,8,9,10)
show create table t4; show create table t4;
let $count=9; let $count=9;
--echo $count*3 inserts; --echo $count*3 inserts;
--disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t4 values ($count); eval insert into t4 values ($count);
@ -79,6 +87,8 @@ eval insert into t4 values ($count+0.33);
eval insert into t4 values ($count+0.75); eval insert into t4 values ($count+0.75);
dec $count; dec $count;
} }
commit;
--enable_query_log
select count(*) from t4; select count(*) from t4;
select * from t4; select * from t4;
drop table t4; drop table t4;

View File

@ -26,12 +26,15 @@ partition by key (a) partitions 27;
show create table t2; show create table t2;
let $letter=26; let $letter=26;
--echo $count inserts; --echo $count inserts;
#--disable_query_log --disable_query_log
begin;
while ($letter) while ($letter)
{ {
eval insert into t2 values (char(ascii('A')+$letter)); eval insert into t2 values (char(ascii('A')+$letter));
dec $letter; dec $letter;
} }
commit;
--enable_query_log
insert into t2 values ('1'),('2'),('3'),('4'),('5'),('6'),('7'),('8'),('9'),('0'); insert into t2 values ('1'),('2'),('3'),('4'),('5'),('6'),('7'),('8'),('9'),('0');
select count(*) from t2; select count(*) from t2;
select * from t2; select * from t2;
@ -55,12 +58,15 @@ partition pa36 values less than (37)
show create table t3; show create table t3;
let $letter=36; let $letter=36;
--echo $count inserts; --echo $count inserts;
#--disable_query_log --disable_query_log
begin;
while ($letter) while ($letter)
{ {
#eval insert into t3 values ($letter); #eval insert into t3 values ($letter);
dec $letter; dec $letter;
} }
commit;
--enable_query_log
select count(*) from t3; select count(*) from t3;
select * from t3; select * from t3;
drop table t3; drop table t3;

View File

@ -28,6 +28,7 @@ delete from t2;
let $count=$maxrows; let $count=$maxrows;
--echo $maxrows*3 inserts; --echo $maxrows*3 inserts;
--disable_query_log --disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t2 values ($count); eval insert into t2 values ($count);
@ -35,6 +36,7 @@ eval insert into t2 values ($count+0.33);
eval insert into t2 values ($count+0.75); eval insert into t2 values ($count+0.75);
dec $count; dec $count;
} }
commit;
--enable_query_log --enable_query_log
select count(*) from t2; select count(*) from t2;
drop table t2; drop table t2;
@ -55,6 +57,8 @@ partition pa10 values less than (10)
show create table t3; show create table t3;
let $count=9; let $count=9;
--echo $count*3 inserts; --echo $count*3 inserts;
--disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t3 values ($count); eval insert into t3 values ($count);
@ -62,6 +66,8 @@ eval insert into t3 values ($count+0.33);
eval insert into t3 values ($count+0.75); eval insert into t3 values ($count+0.75);
dec $count; dec $count;
} }
commit;
--enable_query_log
select count(*) from t3; select count(*) from t3;
select * from t3; select * from t3;
drop table t3; drop table t3;
@ -75,6 +81,8 @@ partition pa10 values in (7,8,9,10)
show create table t4; show create table t4;
let $count=9; let $count=9;
--echo $count*3 inserts; --echo $count*3 inserts;
--disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t4 values ($count); eval insert into t4 values ($count);
@ -82,6 +90,8 @@ eval insert into t4 values ($count+0.33);
eval insert into t4 values ($count+0.75); eval insert into t4 values ($count+0.75);
dec $count; dec $count;
} }
commit;
--enable_query_log
select count(*) from t4; select count(*) from t4;
select * from t4; select * from t4;
drop table t4; drop table t4;

View File

@ -28,11 +28,13 @@ delete from t2;
let $count=$maxrows; let $count=$maxrows;
--echo $count inserts; --echo $count inserts;
--disable_query_log --disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t2 values ($count); eval insert into t2 values ($count);
dec $count; dec $count;
} }
commit;
--enable_query_log --enable_query_log
select count(*) from t2; select count(*) from t2;
drop table t2; drop table t2;

View File

@ -28,11 +28,13 @@ delete from t2;
let $count=$maxrows; let $count=$maxrows;
--echo $maxrows inserts; --echo $maxrows inserts;
--disable_query_log --disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t2 values ($count); eval insert into t2 values ($count);
dec $count; dec $count;
} }
commit;
--enable_query_log --enable_query_log
select count(*) from t2; select count(*) from t2;
drop table t2; drop table t2;

View File

@ -28,11 +28,13 @@ delete from t2;
let $count=$maxrows; let $count=$maxrows;
--echo $count inserts; --echo $count inserts;
--disable_query_log --disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t2 values ($count); eval insert into t2 values ($count);
dec $count; dec $count;
} }
commit;
--enable_query_log --enable_query_log
select count(*) from t2; select count(*) from t2;
drop table t2; drop table t2;

View File

@ -23,12 +23,15 @@ select * from t2;
delete from t2; delete from t2;
let $count=59; let $count=59;
--echo $count inserts; --echo $count inserts;
#--disable_query_log --disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t2 values (000100+$count); eval insert into t2 values (000100+$count);
dec $count; dec $count;
} }
commit;
--enable_query_log
select count(*) from t2; select count(*) from t2;
select * from t2; select * from t2;
drop table t2; drop table t2;
@ -44,11 +47,15 @@ partition quarter4 values less than (61)
show create table t3; show create table t3;
let $count=59; let $count=59;
--echo $count inserts; --echo $count inserts;
--disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t3 values (100000+$count); eval insert into t3 values (100000+$count);
dec $count; dec $count;
} }
commit;
--enable_query_log
select count(*) from t3; select count(*) from t3;
select * from t3; select * from t3;
drop table t3; drop table t3;
@ -64,11 +71,15 @@ partition quarter4 values in (46,47,48,49,50,51,52,53,54,55,56,57,58,59,60)
show create table t4; show create table t4;
let $count=59; let $count=59;
--echo $count inserts; --echo $count inserts;
--disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t4 values (100000+$count); eval insert into t4 values (100000+$count);
dec $count; dec $count;
} }
commit;
--enable_query_log
select count(*) from t4; select count(*) from t4;
select * from t4; select * from t4;
drop table t4; drop table t4;

View File

@ -23,12 +23,15 @@ select * from t2;
delete from t2; delete from t2;
let $count=59; let $count=59;
--echo $count inserts; --echo $count inserts;
#--disable_query_log --disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t2 values (19710101000000+$count); eval insert into t2 values (19710101000000+$count);
dec $count; dec $count;
} }
commit;
--enable_query_log
select count(*) from t2; select count(*) from t2;
select * from t2; select * from t2;
drop table t2; drop table t2;
@ -44,11 +47,15 @@ partition quarter4 values less than (13)
show create table t3; show create table t3;
let $count=12; let $count=12;
--echo $count inserts; --echo $count inserts;
--disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t3 values (date_add('1970-01-01 00:00:00',interval $count-1 month)); eval insert into t3 values (date_add('1970-01-01 00:00:00',interval $count-1 month));
dec $count; dec $count;
} }
commit;
--enable_query_log
select count(*) from t3; select count(*) from t3;
select * from t3; select * from t3;
drop table t3; drop table t3;
@ -64,11 +71,15 @@ partition quarter4 values in (10,11,12)
show create table t4; show create table t4;
let $count=12; let $count=12;
--echo $count inserts; --echo $count inserts;
--disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t4 values (date_add('1970-01-01 00:00:00',interval $count-1 month)); eval insert into t4 values (date_add('1970-01-01 00:00:00',interval $count-1 month));
dec $count; dec $count;
} }
commit;
--enable_query_log
select count(*) from t4; select count(*) from t4;
select * from t4; select * from t4;
drop table t4; drop table t4;

View File

@ -28,11 +28,13 @@ delete from t2;
let $count=255; let $count=255;
--echo 255 inserts; --echo 255 inserts;
--disable_query_log --disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t2 values ($count); eval insert into t2 values ($count);
dec $count; dec $count;
} }
commit;
--enable_query_log --enable_query_log
select count(*) from t2; select count(*) from t2;
drop table t2; drop table t2;

View File

@ -21,13 +21,16 @@ show create table t2;
let $count=26; let $count=26;
let $letter=0; let $letter=0;
--echo $count inserts; --echo $count inserts;
#--disable_query_log --disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t2 values (repeat(char(ascii('a')+$letter),$count*$count)); eval insert into t2 values (repeat(char(ascii('a')+$letter),$count*$count));
dec $count; dec $count;
inc $letter; inc $letter;
} }
commit;
--enable_query_log
select count(*) from t2; select count(*) from t2;
select * from t2; select * from t2;
drop table t2; drop table t2;
@ -47,13 +50,16 @@ show create table t3;
let $count=26; let $count=26;
let $letter=0; let $letter=0;
--echo $count inserts; --echo $count inserts;
#--disable_query_log --disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t3 values (repeat(char(ascii('a')+$letter),$count+54)); eval insert into t3 values (repeat(char(ascii('a')+$letter),$count+54));
dec $count; dec $count;
inc $letter; inc $letter;
} }
commit;
--enable_query_log
select count(*) from t3; select count(*) from t3;
select hex(a) from t3; select hex(a) from t3;
drop table t3; drop table t3;
@ -71,13 +77,16 @@ show create table t4;
let $count=26; let $count=26;
let $letter=0; let $letter=0;
--echo $count inserts; --echo $count inserts;
#--disable_query_log --disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t4 values (repeat(char(ascii('a')+$letter),$count+54)); eval insert into t4 values (repeat(char(ascii('a')+$letter),$count+54));
dec $count; dec $count;
inc $letter; inc $letter;
} }
commit;
--enable_query_log
select count(*) from t4; select count(*) from t4;
select hex(a) from t4; select hex(a) from t4;
drop table t4; drop table t4;

View File

@ -21,13 +21,16 @@ show create table t2;
let $count=26; let $count=26;
let $letter=0; let $letter=0;
--echo $count inserts; --echo $count inserts;
#--disable_query_log --disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t2 values (repeat(char(ascii('a')+$letter),$count*$count)); eval insert into t2 values (repeat(char(ascii('a')+$letter),$count*$count));
dec $count; dec $count;
inc $letter; inc $letter;
} }
commit;
--enable_query_log
select count(*) from t2; select count(*) from t2;
select * from t2; select * from t2;
drop table t2; drop table t2;
@ -46,13 +49,16 @@ show create table t3;
let $count=26; let $count=26;
let $letter=0; let $letter=0;
--echo $count inserts; --echo $count inserts;
#--disable_query_log --disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t3 values (repeat(char(ascii('a')+$letter),$count+54)); eval insert into t3 values (repeat(char(ascii('a')+$letter),$count+54));
dec $count; dec $count;
inc $letter; inc $letter;
} }
commit;
--enable_query_log
select count(*) from t3; select count(*) from t3;
select * from t3; select * from t3;
drop table t3; drop table t3;
@ -70,13 +76,16 @@ show create table t4;
let $count=26; let $count=26;
let $letter=0; let $letter=0;
--echo $count inserts; --echo $count inserts;
#--disable_query_log --disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t4 values (repeat(char(ascii('a')+$letter),$count+54)); eval insert into t4 values (repeat(char(ascii('a')+$letter),$count+54));
dec $count; dec $count;
inc $letter; inc $letter;
} }
commit;
--enable_query_log
select count(*) from t4; select count(*) from t4;
select * from t4; select * from t4;
drop table t4; drop table t4;

View File

@ -24,11 +24,13 @@ delete from t2;
let $count=255; let $count=255;
--echo $count inserts; --echo $count inserts;
--disable_query_log --disable_query_log
begin;
while ($count) while ($count)
{ {
eval insert into t2 values (1901+$count); eval insert into t2 values (1901+$count);
dec $count; dec $count;
} }
commit;
--enable_query_log --enable_query_log
select count(*) from t2; select count(*) from t2;
select * from t2; select * from t2;

View File

@ -60,65 +60,6 @@ a
2020-12-31 10:11:12 2020-12-31 10:11:12
delete from t2; delete from t2;
59 inserts; 59 inserts;
insert into t2 values (19710101000000+59);
insert into t2 values (19710101000000+58);
insert into t2 values (19710101000000+57);
insert into t2 values (19710101000000+56);
insert into t2 values (19710101000000+55);
insert into t2 values (19710101000000+54);
insert into t2 values (19710101000000+53);
insert into t2 values (19710101000000+52);
insert into t2 values (19710101000000+51);
insert into t2 values (19710101000000+50);
insert into t2 values (19710101000000+49);
insert into t2 values (19710101000000+48);
insert into t2 values (19710101000000+47);
insert into t2 values (19710101000000+46);
insert into t2 values (19710101000000+45);
insert into t2 values (19710101000000+44);
insert into t2 values (19710101000000+43);
insert into t2 values (19710101000000+42);
insert into t2 values (19710101000000+41);
insert into t2 values (19710101000000+40);
insert into t2 values (19710101000000+39);
insert into t2 values (19710101000000+38);
insert into t2 values (19710101000000+37);
insert into t2 values (19710101000000+36);
insert into t2 values (19710101000000+35);
insert into t2 values (19710101000000+34);
insert into t2 values (19710101000000+33);
insert into t2 values (19710101000000+32);
insert into t2 values (19710101000000+31);
insert into t2 values (19710101000000+30);
insert into t2 values (19710101000000+29);
insert into t2 values (19710101000000+28);
insert into t2 values (19710101000000+27);
insert into t2 values (19710101000000+26);
insert into t2 values (19710101000000+25);
insert into t2 values (19710101000000+24);
insert into t2 values (19710101000000+23);
insert into t2 values (19710101000000+22);
insert into t2 values (19710101000000+21);
insert into t2 values (19710101000000+20);
insert into t2 values (19710101000000+19);
insert into t2 values (19710101000000+18);
insert into t2 values (19710101000000+17);
insert into t2 values (19710101000000+16);
insert into t2 values (19710101000000+15);
insert into t2 values (19710101000000+14);
insert into t2 values (19710101000000+13);
insert into t2 values (19710101000000+12);
insert into t2 values (19710101000000+11);
insert into t2 values (19710101000000+10);
insert into t2 values (19710101000000+9);
insert into t2 values (19710101000000+8);
insert into t2 values (19710101000000+7);
insert into t2 values (19710101000000+6);
insert into t2 values (19710101000000+5);
insert into t2 values (19710101000000+4);
insert into t2 values (19710101000000+3);
insert into t2 values (19710101000000+2);
insert into t2 values (19710101000000+1);
select count(*) from t2; select count(*) from t2;
count(*) count(*)
59 59
@ -206,18 +147,6 @@ SUBPARTITIONS 3
PARTITION quarter3 VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION quarter3 VALUES LESS THAN (10) ENGINE = InnoDB,
PARTITION quarter4 VALUES LESS THAN (13) ENGINE = InnoDB) */ PARTITION quarter4 VALUES LESS THAN (13) ENGINE = InnoDB) */
12 inserts; 12 inserts;
insert into t3 values (date_add('1970-01-01 00:00:00',interval 12-1 month));
insert into t3 values (date_add('1970-01-01 00:00:00',interval 11-1 month));
insert into t3 values (date_add('1970-01-01 00:00:00',interval 10-1 month));
insert into t3 values (date_add('1970-01-01 00:00:00',interval 9-1 month));
insert into t3 values (date_add('1970-01-01 00:00:00',interval 8-1 month));
insert into t3 values (date_add('1970-01-01 00:00:00',interval 7-1 month));
insert into t3 values (date_add('1970-01-01 00:00:00',interval 6-1 month));
insert into t3 values (date_add('1970-01-01 00:00:00',interval 5-1 month));
insert into t3 values (date_add('1970-01-01 00:00:00',interval 4-1 month));
insert into t3 values (date_add('1970-01-01 00:00:00',interval 3-1 month));
insert into t3 values (date_add('1970-01-01 00:00:00',interval 2-1 month));
insert into t3 values (date_add('1970-01-01 00:00:00',interval 1-1 month));
Warnings: Warnings:
Warning 1264 Out of range value for column 'a' at row 1 Warning 1264 Out of range value for column 'a' at row 1
select count(*) from t3; select count(*) from t3;
@ -260,18 +189,6 @@ SUBPARTITIONS 3
PARTITION quarter3 VALUES IN (7,8,9) ENGINE = InnoDB, PARTITION quarter3 VALUES IN (7,8,9) ENGINE = InnoDB,
PARTITION quarter4 VALUES IN (10,11,12) ENGINE = InnoDB) */ PARTITION quarter4 VALUES IN (10,11,12) ENGINE = InnoDB) */
12 inserts; 12 inserts;
insert into t4 values (date_add('1970-01-01 00:00:00',interval 12-1 month));
insert into t4 values (date_add('1970-01-01 00:00:00',interval 11-1 month));
insert into t4 values (date_add('1970-01-01 00:00:00',interval 10-1 month));
insert into t4 values (date_add('1970-01-01 00:00:00',interval 9-1 month));
insert into t4 values (date_add('1970-01-01 00:00:00',interval 8-1 month));
insert into t4 values (date_add('1970-01-01 00:00:00',interval 7-1 month));
insert into t4 values (date_add('1970-01-01 00:00:00',interval 6-1 month));
insert into t4 values (date_add('1970-01-01 00:00:00',interval 5-1 month));
insert into t4 values (date_add('1970-01-01 00:00:00',interval 4-1 month));
insert into t4 values (date_add('1970-01-01 00:00:00',interval 3-1 month));
insert into t4 values (date_add('1970-01-01 00:00:00',interval 2-1 month));
insert into t4 values (date_add('1970-01-01 00:00:00',interval 1-1 month));
Warnings: Warnings:
Warning 1264 Out of range value for column 'a' at row 1 Warning 1264 Out of range value for column 'a' at row 1
select count(*) from t4; select count(*) from t4;
@ -354,90 +271,6 @@ a
2020-12-31 2020-12-31
delete from t2; delete from t2;
28 inserts; 28 inserts;
insert into t2 values (19700101+28-1);
insert into t2 values (19700201+28-1);
insert into t2 values (19700301+28-1);
insert into t2 values (19700101+27-1);
insert into t2 values (19700201+27-1);
insert into t2 values (19700301+27-1);
insert into t2 values (19700101+26-1);
insert into t2 values (19700201+26-1);
insert into t2 values (19700301+26-1);
insert into t2 values (19700101+25-1);
insert into t2 values (19700201+25-1);
insert into t2 values (19700301+25-1);
insert into t2 values (19700101+24-1);
insert into t2 values (19700201+24-1);
insert into t2 values (19700301+24-1);
insert into t2 values (19700101+23-1);
insert into t2 values (19700201+23-1);
insert into t2 values (19700301+23-1);
insert into t2 values (19700101+22-1);
insert into t2 values (19700201+22-1);
insert into t2 values (19700301+22-1);
insert into t2 values (19700101+21-1);
insert into t2 values (19700201+21-1);
insert into t2 values (19700301+21-1);
insert into t2 values (19700101+20-1);
insert into t2 values (19700201+20-1);
insert into t2 values (19700301+20-1);
insert into t2 values (19700101+19-1);
insert into t2 values (19700201+19-1);
insert into t2 values (19700301+19-1);
insert into t2 values (19700101+18-1);
insert into t2 values (19700201+18-1);
insert into t2 values (19700301+18-1);
insert into t2 values (19700101+17-1);
insert into t2 values (19700201+17-1);
insert into t2 values (19700301+17-1);
insert into t2 values (19700101+16-1);
insert into t2 values (19700201+16-1);
insert into t2 values (19700301+16-1);
insert into t2 values (19700101+15-1);
insert into t2 values (19700201+15-1);
insert into t2 values (19700301+15-1);
insert into t2 values (19700101+14-1);
insert into t2 values (19700201+14-1);
insert into t2 values (19700301+14-1);
insert into t2 values (19700101+13-1);
insert into t2 values (19700201+13-1);
insert into t2 values (19700301+13-1);
insert into t2 values (19700101+12-1);
insert into t2 values (19700201+12-1);
insert into t2 values (19700301+12-1);
insert into t2 values (19700101+11-1);
insert into t2 values (19700201+11-1);
insert into t2 values (19700301+11-1);
insert into t2 values (19700101+10-1);
insert into t2 values (19700201+10-1);
insert into t2 values (19700301+10-1);
insert into t2 values (19700101+9-1);
insert into t2 values (19700201+9-1);
insert into t2 values (19700301+9-1);
insert into t2 values (19700101+8-1);
insert into t2 values (19700201+8-1);
insert into t2 values (19700301+8-1);
insert into t2 values (19700101+7-1);
insert into t2 values (19700201+7-1);
insert into t2 values (19700301+7-1);
insert into t2 values (19700101+6-1);
insert into t2 values (19700201+6-1);
insert into t2 values (19700301+6-1);
insert into t2 values (19700101+5-1);
insert into t2 values (19700201+5-1);
insert into t2 values (19700301+5-1);
insert into t2 values (19700101+4-1);
insert into t2 values (19700201+4-1);
insert into t2 values (19700301+4-1);
insert into t2 values (19700101+3-1);
insert into t2 values (19700201+3-1);
insert into t2 values (19700301+3-1);
insert into t2 values (19700101+2-1);
insert into t2 values (19700201+2-1);
insert into t2 values (19700301+2-1);
insert into t2 values (19700101+1-1);
insert into t2 values (19700201+1-1);
insert into t2 values (19700301+1-1);
select count(*) from t2; select count(*) from t2;
count(*) count(*)
84 84
@ -550,18 +383,6 @@ SUBPARTITIONS 3
PARTITION quarter3 VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION quarter3 VALUES LESS THAN (10) ENGINE = InnoDB,
PARTITION quarter4 VALUES LESS THAN (13) ENGINE = InnoDB) */ PARTITION quarter4 VALUES LESS THAN (13) ENGINE = InnoDB) */
12 inserts; 12 inserts;
insert into t3 values (adddate(19700101,interval 12-1 month));
insert into t3 values (adddate(19700101,interval 11-1 month));
insert into t3 values (adddate(19700101,interval 10-1 month));
insert into t3 values (adddate(19700101,interval 9-1 month));
insert into t3 values (adddate(19700101,interval 8-1 month));
insert into t3 values (adddate(19700101,interval 7-1 month));
insert into t3 values (adddate(19700101,interval 6-1 month));
insert into t3 values (adddate(19700101,interval 5-1 month));
insert into t3 values (adddate(19700101,interval 4-1 month));
insert into t3 values (adddate(19700101,interval 3-1 month));
insert into t3 values (adddate(19700101,interval 2-1 month));
insert into t3 values (adddate(19700101,interval 1-1 month));
select count(*) from t3; select count(*) from t3;
count(*) count(*)
12 12
@ -602,18 +423,6 @@ SUBPARTITIONS 3
PARTITION quarter3 VALUES IN (7,8,9) ENGINE = InnoDB, PARTITION quarter3 VALUES IN (7,8,9) ENGINE = InnoDB,
PARTITION quarter4 VALUES IN (10,11,12) ENGINE = InnoDB) */ PARTITION quarter4 VALUES IN (10,11,12) ENGINE = InnoDB) */
12 inserts; 12 inserts;
insert into t4 values (adddate(19700101,interval 12-1 month));
insert into t4 values (adddate(19700101,interval 11-1 month));
insert into t4 values (adddate(19700101,interval 10-1 month));
insert into t4 values (adddate(19700101,interval 9-1 month));
insert into t4 values (adddate(19700101,interval 8-1 month));
insert into t4 values (adddate(19700101,interval 7-1 month));
insert into t4 values (adddate(19700101,interval 6-1 month));
insert into t4 values (adddate(19700101,interval 5-1 month));
insert into t4 values (adddate(19700101,interval 4-1 month));
insert into t4 values (adddate(19700101,interval 3-1 month));
insert into t4 values (adddate(19700101,interval 2-1 month));
insert into t4 values (adddate(19700101,interval 1-1 month));
select count(*) from t4; select count(*) from t4;
count(*) count(*)
12 12
@ -694,65 +503,6 @@ a
14:15:16 14:15:16
delete from t2; delete from t2;
59 inserts; 59 inserts;
insert into t2 values (000100+59);
insert into t2 values (000100+58);
insert into t2 values (000100+57);
insert into t2 values (000100+56);
insert into t2 values (000100+55);
insert into t2 values (000100+54);
insert into t2 values (000100+53);
insert into t2 values (000100+52);
insert into t2 values (000100+51);
insert into t2 values (000100+50);
insert into t2 values (000100+49);
insert into t2 values (000100+48);
insert into t2 values (000100+47);
insert into t2 values (000100+46);
insert into t2 values (000100+45);
insert into t2 values (000100+44);
insert into t2 values (000100+43);
insert into t2 values (000100+42);
insert into t2 values (000100+41);
insert into t2 values (000100+40);
insert into t2 values (000100+39);
insert into t2 values (000100+38);
insert into t2 values (000100+37);
insert into t2 values (000100+36);
insert into t2 values (000100+35);
insert into t2 values (000100+34);
insert into t2 values (000100+33);
insert into t2 values (000100+32);
insert into t2 values (000100+31);
insert into t2 values (000100+30);
insert into t2 values (000100+29);
insert into t2 values (000100+28);
insert into t2 values (000100+27);
insert into t2 values (000100+26);
insert into t2 values (000100+25);
insert into t2 values (000100+24);
insert into t2 values (000100+23);
insert into t2 values (000100+22);
insert into t2 values (000100+21);
insert into t2 values (000100+20);
insert into t2 values (000100+19);
insert into t2 values (000100+18);
insert into t2 values (000100+17);
insert into t2 values (000100+16);
insert into t2 values (000100+15);
insert into t2 values (000100+14);
insert into t2 values (000100+13);
insert into t2 values (000100+12);
insert into t2 values (000100+11);
insert into t2 values (000100+10);
insert into t2 values (000100+9);
insert into t2 values (000100+8);
insert into t2 values (000100+7);
insert into t2 values (000100+6);
insert into t2 values (000100+5);
insert into t2 values (000100+4);
insert into t2 values (000100+3);
insert into t2 values (000100+2);
insert into t2 values (000100+1);
select count(*) from t2; select count(*) from t2;
count(*) count(*)
59 59
@ -840,65 +590,6 @@ SUBPARTITIONS 3
PARTITION quarter3 VALUES LESS THAN (46) ENGINE = InnoDB, PARTITION quarter3 VALUES LESS THAN (46) ENGINE = InnoDB,
PARTITION quarter4 VALUES LESS THAN (61) ENGINE = InnoDB) */ PARTITION quarter4 VALUES LESS THAN (61) ENGINE = InnoDB) */
59 inserts; 59 inserts;
insert into t3 values (100000+59);
insert into t3 values (100000+58);
insert into t3 values (100000+57);
insert into t3 values (100000+56);
insert into t3 values (100000+55);
insert into t3 values (100000+54);
insert into t3 values (100000+53);
insert into t3 values (100000+52);
insert into t3 values (100000+51);
insert into t3 values (100000+50);
insert into t3 values (100000+49);
insert into t3 values (100000+48);
insert into t3 values (100000+47);
insert into t3 values (100000+46);
insert into t3 values (100000+45);
insert into t3 values (100000+44);
insert into t3 values (100000+43);
insert into t3 values (100000+42);
insert into t3 values (100000+41);
insert into t3 values (100000+40);
insert into t3 values (100000+39);
insert into t3 values (100000+38);
insert into t3 values (100000+37);
insert into t3 values (100000+36);
insert into t3 values (100000+35);
insert into t3 values (100000+34);
insert into t3 values (100000+33);
insert into t3 values (100000+32);
insert into t3 values (100000+31);
insert into t3 values (100000+30);
insert into t3 values (100000+29);
insert into t3 values (100000+28);
insert into t3 values (100000+27);
insert into t3 values (100000+26);
insert into t3 values (100000+25);
insert into t3 values (100000+24);
insert into t3 values (100000+23);
insert into t3 values (100000+22);
insert into t3 values (100000+21);
insert into t3 values (100000+20);
insert into t3 values (100000+19);
insert into t3 values (100000+18);
insert into t3 values (100000+17);
insert into t3 values (100000+16);
insert into t3 values (100000+15);
insert into t3 values (100000+14);
insert into t3 values (100000+13);
insert into t3 values (100000+12);
insert into t3 values (100000+11);
insert into t3 values (100000+10);
insert into t3 values (100000+9);
insert into t3 values (100000+8);
insert into t3 values (100000+7);
insert into t3 values (100000+6);
insert into t3 values (100000+5);
insert into t3 values (100000+4);
insert into t3 values (100000+3);
insert into t3 values (100000+2);
insert into t3 values (100000+1);
select count(*) from t3; select count(*) from t3;
count(*) count(*)
59 59
@ -986,65 +677,6 @@ SUBPARTITIONS 3
PARTITION quarter3 VALUES IN (31,32,33,34,35,36,37,38,39,40,41,42,43,44,45) ENGINE = InnoDB, PARTITION quarter3 VALUES IN (31,32,33,34,35,36,37,38,39,40,41,42,43,44,45) ENGINE = InnoDB,
PARTITION quarter4 VALUES IN (46,47,48,49,50,51,52,53,54,55,56,57,58,59,60) ENGINE = InnoDB) */ PARTITION quarter4 VALUES IN (46,47,48,49,50,51,52,53,54,55,56,57,58,59,60) ENGINE = InnoDB) */
59 inserts; 59 inserts;
insert into t4 values (100000+59);
insert into t4 values (100000+58);
insert into t4 values (100000+57);
insert into t4 values (100000+56);
insert into t4 values (100000+55);
insert into t4 values (100000+54);
insert into t4 values (100000+53);
insert into t4 values (100000+52);
insert into t4 values (100000+51);
insert into t4 values (100000+50);
insert into t4 values (100000+49);
insert into t4 values (100000+48);
insert into t4 values (100000+47);
insert into t4 values (100000+46);
insert into t4 values (100000+45);
insert into t4 values (100000+44);
insert into t4 values (100000+43);
insert into t4 values (100000+42);
insert into t4 values (100000+41);
insert into t4 values (100000+40);
insert into t4 values (100000+39);
insert into t4 values (100000+38);
insert into t4 values (100000+37);
insert into t4 values (100000+36);
insert into t4 values (100000+35);
insert into t4 values (100000+34);
insert into t4 values (100000+33);
insert into t4 values (100000+32);
insert into t4 values (100000+31);
insert into t4 values (100000+30);
insert into t4 values (100000+29);
insert into t4 values (100000+28);
insert into t4 values (100000+27);
insert into t4 values (100000+26);
insert into t4 values (100000+25);
insert into t4 values (100000+24);
insert into t4 values (100000+23);
insert into t4 values (100000+22);
insert into t4 values (100000+21);
insert into t4 values (100000+20);
insert into t4 values (100000+19);
insert into t4 values (100000+18);
insert into t4 values (100000+17);
insert into t4 values (100000+16);
insert into t4 values (100000+15);
insert into t4 values (100000+14);
insert into t4 values (100000+13);
insert into t4 values (100000+12);
insert into t4 values (100000+11);
insert into t4 values (100000+10);
insert into t4 values (100000+9);
insert into t4 values (100000+8);
insert into t4 values (100000+7);
insert into t4 values (100000+6);
insert into t4 values (100000+5);
insert into t4 values (100000+4);
insert into t4 values (100000+3);
insert into t4 values (100000+2);
insert into t4 values (100000+1);
select count(*) from t4; select count(*) from t4;
count(*) count(*)
59 59
@ -1172,65 +804,6 @@ a
2020-12-31 10:11:12 2020-12-31 10:11:12
delete from t2; delete from t2;
59 inserts; 59 inserts;
insert into t2 values (19700101000000+59);
insert into t2 values (19700101000000+58);
insert into t2 values (19700101000000+57);
insert into t2 values (19700101000000+56);
insert into t2 values (19700101000000+55);
insert into t2 values (19700101000000+54);
insert into t2 values (19700101000000+53);
insert into t2 values (19700101000000+52);
insert into t2 values (19700101000000+51);
insert into t2 values (19700101000000+50);
insert into t2 values (19700101000000+49);
insert into t2 values (19700101000000+48);
insert into t2 values (19700101000000+47);
insert into t2 values (19700101000000+46);
insert into t2 values (19700101000000+45);
insert into t2 values (19700101000000+44);
insert into t2 values (19700101000000+43);
insert into t2 values (19700101000000+42);
insert into t2 values (19700101000000+41);
insert into t2 values (19700101000000+40);
insert into t2 values (19700101000000+39);
insert into t2 values (19700101000000+38);
insert into t2 values (19700101000000+37);
insert into t2 values (19700101000000+36);
insert into t2 values (19700101000000+35);
insert into t2 values (19700101000000+34);
insert into t2 values (19700101000000+33);
insert into t2 values (19700101000000+32);
insert into t2 values (19700101000000+31);
insert into t2 values (19700101000000+30);
insert into t2 values (19700101000000+29);
insert into t2 values (19700101000000+28);
insert into t2 values (19700101000000+27);
insert into t2 values (19700101000000+26);
insert into t2 values (19700101000000+25);
insert into t2 values (19700101000000+24);
insert into t2 values (19700101000000+23);
insert into t2 values (19700101000000+22);
insert into t2 values (19700101000000+21);
insert into t2 values (19700101000000+20);
insert into t2 values (19700101000000+19);
insert into t2 values (19700101000000+18);
insert into t2 values (19700101000000+17);
insert into t2 values (19700101000000+16);
insert into t2 values (19700101000000+15);
insert into t2 values (19700101000000+14);
insert into t2 values (19700101000000+13);
insert into t2 values (19700101000000+12);
insert into t2 values (19700101000000+11);
insert into t2 values (19700101000000+10);
insert into t2 values (19700101000000+9);
insert into t2 values (19700101000000+8);
insert into t2 values (19700101000000+7);
insert into t2 values (19700101000000+6);
insert into t2 values (19700101000000+5);
insert into t2 values (19700101000000+4);
insert into t2 values (19700101000000+3);
insert into t2 values (19700101000000+2);
insert into t2 values (19700101000000+1);
select count(*) from t2; select count(*) from t2;
count(*) count(*)
59 59
@ -1318,18 +891,6 @@ SUBPARTITIONS 3
PARTITION quarter3 VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION quarter3 VALUES LESS THAN (10) ENGINE = InnoDB,
PARTITION quarter4 VALUES LESS THAN (13) ENGINE = InnoDB) */ PARTITION quarter4 VALUES LESS THAN (13) ENGINE = InnoDB) */
12 inserts; 12 inserts;
insert into t3 values (adddate(19700101000000,interval 12-1 month));
insert into t3 values (adddate(19700101000000,interval 11-1 month));
insert into t3 values (adddate(19700101000000,interval 10-1 month));
insert into t3 values (adddate(19700101000000,interval 9-1 month));
insert into t3 values (adddate(19700101000000,interval 8-1 month));
insert into t3 values (adddate(19700101000000,interval 7-1 month));
insert into t3 values (adddate(19700101000000,interval 6-1 month));
insert into t3 values (adddate(19700101000000,interval 5-1 month));
insert into t3 values (adddate(19700101000000,interval 4-1 month));
insert into t3 values (adddate(19700101000000,interval 3-1 month));
insert into t3 values (adddate(19700101000000,interval 2-1 month));
insert into t3 values (adddate(19700101000000,interval 1-1 month));
select count(*) from t3; select count(*) from t3;
count(*) count(*)
12 12
@ -1370,18 +931,6 @@ SUBPARTITIONS 3
PARTITION quarter3 VALUES IN (7,8,9) ENGINE = InnoDB, PARTITION quarter3 VALUES IN (7,8,9) ENGINE = InnoDB,
PARTITION quarter4 VALUES IN (10,11,12) ENGINE = InnoDB) */ PARTITION quarter4 VALUES IN (10,11,12) ENGINE = InnoDB) */
12 inserts; 12 inserts;
insert into t4 values (adddate(19700101000000,interval 12-1 month));
insert into t4 values (adddate(19700101000000,interval 11-1 month));
insert into t4 values (adddate(19700101000000,interval 10-1 month));
insert into t4 values (adddate(19700101000000,interval 9-1 month));
insert into t4 values (adddate(19700101000000,interval 8-1 month));
insert into t4 values (adddate(19700101000000,interval 7-1 month));
insert into t4 values (adddate(19700101000000,interval 6-1 month));
insert into t4 values (adddate(19700101000000,interval 5-1 month));
insert into t4 values (adddate(19700101000000,interval 4-1 month));
insert into t4 values (adddate(19700101000000,interval 3-1 month));
insert into t4 values (adddate(19700101000000,interval 2-1 month));
insert into t4 values (adddate(19700101000000,interval 1-1 month));
select count(*) from t4; select count(*) from t4;
count(*) count(*)
12 12

View File

@ -60,65 +60,6 @@ a
2020-12-31 10:11:12 2020-12-31 10:11:12
delete from t2; delete from t2;
59 inserts; 59 inserts;
insert into t2 values (19710101000000+59);
insert into t2 values (19710101000000+58);
insert into t2 values (19710101000000+57);
insert into t2 values (19710101000000+56);
insert into t2 values (19710101000000+55);
insert into t2 values (19710101000000+54);
insert into t2 values (19710101000000+53);
insert into t2 values (19710101000000+52);
insert into t2 values (19710101000000+51);
insert into t2 values (19710101000000+50);
insert into t2 values (19710101000000+49);
insert into t2 values (19710101000000+48);
insert into t2 values (19710101000000+47);
insert into t2 values (19710101000000+46);
insert into t2 values (19710101000000+45);
insert into t2 values (19710101000000+44);
insert into t2 values (19710101000000+43);
insert into t2 values (19710101000000+42);
insert into t2 values (19710101000000+41);
insert into t2 values (19710101000000+40);
insert into t2 values (19710101000000+39);
insert into t2 values (19710101000000+38);
insert into t2 values (19710101000000+37);
insert into t2 values (19710101000000+36);
insert into t2 values (19710101000000+35);
insert into t2 values (19710101000000+34);
insert into t2 values (19710101000000+33);
insert into t2 values (19710101000000+32);
insert into t2 values (19710101000000+31);
insert into t2 values (19710101000000+30);
insert into t2 values (19710101000000+29);
insert into t2 values (19710101000000+28);
insert into t2 values (19710101000000+27);
insert into t2 values (19710101000000+26);
insert into t2 values (19710101000000+25);
insert into t2 values (19710101000000+24);
insert into t2 values (19710101000000+23);
insert into t2 values (19710101000000+22);
insert into t2 values (19710101000000+21);
insert into t2 values (19710101000000+20);
insert into t2 values (19710101000000+19);
insert into t2 values (19710101000000+18);
insert into t2 values (19710101000000+17);
insert into t2 values (19710101000000+16);
insert into t2 values (19710101000000+15);
insert into t2 values (19710101000000+14);
insert into t2 values (19710101000000+13);
insert into t2 values (19710101000000+12);
insert into t2 values (19710101000000+11);
insert into t2 values (19710101000000+10);
insert into t2 values (19710101000000+9);
insert into t2 values (19710101000000+8);
insert into t2 values (19710101000000+7);
insert into t2 values (19710101000000+6);
insert into t2 values (19710101000000+5);
insert into t2 values (19710101000000+4);
insert into t2 values (19710101000000+3);
insert into t2 values (19710101000000+2);
insert into t2 values (19710101000000+1);
select count(*) from t2; select count(*) from t2;
count(*) count(*)
59 59
@ -206,18 +147,6 @@ SUBPARTITIONS 3
PARTITION quarter3 VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION quarter3 VALUES LESS THAN (10) ENGINE = MyISAM,
PARTITION quarter4 VALUES LESS THAN (13) ENGINE = MyISAM) */ PARTITION quarter4 VALUES LESS THAN (13) ENGINE = MyISAM) */
12 inserts; 12 inserts;
insert into t3 values (date_add('1970-01-01 00:00:00',interval 12-1 month));
insert into t3 values (date_add('1970-01-01 00:00:00',interval 11-1 month));
insert into t3 values (date_add('1970-01-01 00:00:00',interval 10-1 month));
insert into t3 values (date_add('1970-01-01 00:00:00',interval 9-1 month));
insert into t3 values (date_add('1970-01-01 00:00:00',interval 8-1 month));
insert into t3 values (date_add('1970-01-01 00:00:00',interval 7-1 month));
insert into t3 values (date_add('1970-01-01 00:00:00',interval 6-1 month));
insert into t3 values (date_add('1970-01-01 00:00:00',interval 5-1 month));
insert into t3 values (date_add('1970-01-01 00:00:00',interval 4-1 month));
insert into t3 values (date_add('1970-01-01 00:00:00',interval 3-1 month));
insert into t3 values (date_add('1970-01-01 00:00:00',interval 2-1 month));
insert into t3 values (date_add('1970-01-01 00:00:00',interval 1-1 month));
Warnings: Warnings:
Warning 1264 Out of range value for column 'a' at row 1 Warning 1264 Out of range value for column 'a' at row 1
select count(*) from t3; select count(*) from t3;
@ -260,18 +189,6 @@ SUBPARTITIONS 3
PARTITION quarter3 VALUES IN (7,8,9) ENGINE = MyISAM, PARTITION quarter3 VALUES IN (7,8,9) ENGINE = MyISAM,
PARTITION quarter4 VALUES IN (10,11,12) ENGINE = MyISAM) */ PARTITION quarter4 VALUES IN (10,11,12) ENGINE = MyISAM) */
12 inserts; 12 inserts;
insert into t4 values (date_add('1970-01-01 00:00:00',interval 12-1 month));
insert into t4 values (date_add('1970-01-01 00:00:00',interval 11-1 month));
insert into t4 values (date_add('1970-01-01 00:00:00',interval 10-1 month));
insert into t4 values (date_add('1970-01-01 00:00:00',interval 9-1 month));
insert into t4 values (date_add('1970-01-01 00:00:00',interval 8-1 month));
insert into t4 values (date_add('1970-01-01 00:00:00',interval 7-1 month));
insert into t4 values (date_add('1970-01-01 00:00:00',interval 6-1 month));
insert into t4 values (date_add('1970-01-01 00:00:00',interval 5-1 month));
insert into t4 values (date_add('1970-01-01 00:00:00',interval 4-1 month));
insert into t4 values (date_add('1970-01-01 00:00:00',interval 3-1 month));
insert into t4 values (date_add('1970-01-01 00:00:00',interval 2-1 month));
insert into t4 values (date_add('1970-01-01 00:00:00',interval 1-1 month));
Warnings: Warnings:
Warning 1264 Out of range value for column 'a' at row 1 Warning 1264 Out of range value for column 'a' at row 1
select count(*) from t4; select count(*) from t4;
@ -354,90 +271,6 @@ a
2020-12-31 2020-12-31
delete from t2; delete from t2;
28 inserts; 28 inserts;
insert into t2 values (19700101+28-1);
insert into t2 values (19700201+28-1);
insert into t2 values (19700301+28-1);
insert into t2 values (19700101+27-1);
insert into t2 values (19700201+27-1);
insert into t2 values (19700301+27-1);
insert into t2 values (19700101+26-1);
insert into t2 values (19700201+26-1);
insert into t2 values (19700301+26-1);
insert into t2 values (19700101+25-1);
insert into t2 values (19700201+25-1);
insert into t2 values (19700301+25-1);
insert into t2 values (19700101+24-1);
insert into t2 values (19700201+24-1);
insert into t2 values (19700301+24-1);
insert into t2 values (19700101+23-1);
insert into t2 values (19700201+23-1);
insert into t2 values (19700301+23-1);
insert into t2 values (19700101+22-1);
insert into t2 values (19700201+22-1);
insert into t2 values (19700301+22-1);
insert into t2 values (19700101+21-1);
insert into t2 values (19700201+21-1);
insert into t2 values (19700301+21-1);
insert into t2 values (19700101+20-1);
insert into t2 values (19700201+20-1);
insert into t2 values (19700301+20-1);
insert into t2 values (19700101+19-1);
insert into t2 values (19700201+19-1);
insert into t2 values (19700301+19-1);
insert into t2 values (19700101+18-1);
insert into t2 values (19700201+18-1);
insert into t2 values (19700301+18-1);
insert into t2 values (19700101+17-1);
insert into t2 values (19700201+17-1);
insert into t2 values (19700301+17-1);
insert into t2 values (19700101+16-1);
insert into t2 values (19700201+16-1);
insert into t2 values (19700301+16-1);
insert into t2 values (19700101+15-1);
insert into t2 values (19700201+15-1);
insert into t2 values (19700301+15-1);
insert into t2 values (19700101+14-1);
insert into t2 values (19700201+14-1);
insert into t2 values (19700301+14-1);
insert into t2 values (19700101+13-1);
insert into t2 values (19700201+13-1);
insert into t2 values (19700301+13-1);
insert into t2 values (19700101+12-1);
insert into t2 values (19700201+12-1);
insert into t2 values (19700301+12-1);
insert into t2 values (19700101+11-1);
insert into t2 values (19700201+11-1);
insert into t2 values (19700301+11-1);
insert into t2 values (19700101+10-1);
insert into t2 values (19700201+10-1);
insert into t2 values (19700301+10-1);
insert into t2 values (19700101+9-1);
insert into t2 values (19700201+9-1);
insert into t2 values (19700301+9-1);
insert into t2 values (19700101+8-1);
insert into t2 values (19700201+8-1);
insert into t2 values (19700301+8-1);
insert into t2 values (19700101+7-1);
insert into t2 values (19700201+7-1);
insert into t2 values (19700301+7-1);
insert into t2 values (19700101+6-1);
insert into t2 values (19700201+6-1);
insert into t2 values (19700301+6-1);
insert into t2 values (19700101+5-1);
insert into t2 values (19700201+5-1);
insert into t2 values (19700301+5-1);
insert into t2 values (19700101+4-1);
insert into t2 values (19700201+4-1);
insert into t2 values (19700301+4-1);
insert into t2 values (19700101+3-1);
insert into t2 values (19700201+3-1);
insert into t2 values (19700301+3-1);
insert into t2 values (19700101+2-1);
insert into t2 values (19700201+2-1);
insert into t2 values (19700301+2-1);
insert into t2 values (19700101+1-1);
insert into t2 values (19700201+1-1);
insert into t2 values (19700301+1-1);
select count(*) from t2; select count(*) from t2;
count(*) count(*)
84 84
@ -550,18 +383,6 @@ SUBPARTITIONS 3
PARTITION quarter3 VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION quarter3 VALUES LESS THAN (10) ENGINE = MyISAM,
PARTITION quarter4 VALUES LESS THAN (13) ENGINE = MyISAM) */ PARTITION quarter4 VALUES LESS THAN (13) ENGINE = MyISAM) */
12 inserts; 12 inserts;
insert into t3 values (adddate(19700101,interval 12-1 month));
insert into t3 values (adddate(19700101,interval 11-1 month));
insert into t3 values (adddate(19700101,interval 10-1 month));
insert into t3 values (adddate(19700101,interval 9-1 month));
insert into t3 values (adddate(19700101,interval 8-1 month));
insert into t3 values (adddate(19700101,interval 7-1 month));
insert into t3 values (adddate(19700101,interval 6-1 month));
insert into t3 values (adddate(19700101,interval 5-1 month));
insert into t3 values (adddate(19700101,interval 4-1 month));
insert into t3 values (adddate(19700101,interval 3-1 month));
insert into t3 values (adddate(19700101,interval 2-1 month));
insert into t3 values (adddate(19700101,interval 1-1 month));
select count(*) from t3; select count(*) from t3;
count(*) count(*)
12 12
@ -602,18 +423,6 @@ SUBPARTITIONS 3
PARTITION quarter3 VALUES IN (7,8,9) ENGINE = MyISAM, PARTITION quarter3 VALUES IN (7,8,9) ENGINE = MyISAM,
PARTITION quarter4 VALUES IN (10,11,12) ENGINE = MyISAM) */ PARTITION quarter4 VALUES IN (10,11,12) ENGINE = MyISAM) */
12 inserts; 12 inserts;
insert into t4 values (adddate(19700101,interval 12-1 month));
insert into t4 values (adddate(19700101,interval 11-1 month));
insert into t4 values (adddate(19700101,interval 10-1 month));
insert into t4 values (adddate(19700101,interval 9-1 month));
insert into t4 values (adddate(19700101,interval 8-1 month));
insert into t4 values (adddate(19700101,interval 7-1 month));
insert into t4 values (adddate(19700101,interval 6-1 month));
insert into t4 values (adddate(19700101,interval 5-1 month));
insert into t4 values (adddate(19700101,interval 4-1 month));
insert into t4 values (adddate(19700101,interval 3-1 month));
insert into t4 values (adddate(19700101,interval 2-1 month));
insert into t4 values (adddate(19700101,interval 1-1 month));
select count(*) from t4; select count(*) from t4;
count(*) count(*)
12 12
@ -694,65 +503,6 @@ a
14:15:16 14:15:16
delete from t2; delete from t2;
59 inserts; 59 inserts;
insert into t2 values (000100+59);
insert into t2 values (000100+58);
insert into t2 values (000100+57);
insert into t2 values (000100+56);
insert into t2 values (000100+55);
insert into t2 values (000100+54);
insert into t2 values (000100+53);
insert into t2 values (000100+52);
insert into t2 values (000100+51);
insert into t2 values (000100+50);
insert into t2 values (000100+49);
insert into t2 values (000100+48);
insert into t2 values (000100+47);
insert into t2 values (000100+46);
insert into t2 values (000100+45);
insert into t2 values (000100+44);
insert into t2 values (000100+43);
insert into t2 values (000100+42);
insert into t2 values (000100+41);
insert into t2 values (000100+40);
insert into t2 values (000100+39);
insert into t2 values (000100+38);
insert into t2 values (000100+37);
insert into t2 values (000100+36);
insert into t2 values (000100+35);
insert into t2 values (000100+34);
insert into t2 values (000100+33);
insert into t2 values (000100+32);
insert into t2 values (000100+31);
insert into t2 values (000100+30);
insert into t2 values (000100+29);
insert into t2 values (000100+28);
insert into t2 values (000100+27);
insert into t2 values (000100+26);
insert into t2 values (000100+25);
insert into t2 values (000100+24);
insert into t2 values (000100+23);
insert into t2 values (000100+22);
insert into t2 values (000100+21);
insert into t2 values (000100+20);
insert into t2 values (000100+19);
insert into t2 values (000100+18);
insert into t2 values (000100+17);
insert into t2 values (000100+16);
insert into t2 values (000100+15);
insert into t2 values (000100+14);
insert into t2 values (000100+13);
insert into t2 values (000100+12);
insert into t2 values (000100+11);
insert into t2 values (000100+10);
insert into t2 values (000100+9);
insert into t2 values (000100+8);
insert into t2 values (000100+7);
insert into t2 values (000100+6);
insert into t2 values (000100+5);
insert into t2 values (000100+4);
insert into t2 values (000100+3);
insert into t2 values (000100+2);
insert into t2 values (000100+1);
select count(*) from t2; select count(*) from t2;
count(*) count(*)
59 59
@ -840,65 +590,6 @@ SUBPARTITIONS 3
PARTITION quarter3 VALUES LESS THAN (46) ENGINE = MyISAM, PARTITION quarter3 VALUES LESS THAN (46) ENGINE = MyISAM,
PARTITION quarter4 VALUES LESS THAN (61) ENGINE = MyISAM) */ PARTITION quarter4 VALUES LESS THAN (61) ENGINE = MyISAM) */
59 inserts; 59 inserts;
insert into t3 values (100000+59);
insert into t3 values (100000+58);
insert into t3 values (100000+57);
insert into t3 values (100000+56);
insert into t3 values (100000+55);
insert into t3 values (100000+54);
insert into t3 values (100000+53);
insert into t3 values (100000+52);
insert into t3 values (100000+51);
insert into t3 values (100000+50);
insert into t3 values (100000+49);
insert into t3 values (100000+48);
insert into t3 values (100000+47);
insert into t3 values (100000+46);
insert into t3 values (100000+45);
insert into t3 values (100000+44);
insert into t3 values (100000+43);
insert into t3 values (100000+42);
insert into t3 values (100000+41);
insert into t3 values (100000+40);
insert into t3 values (100000+39);
insert into t3 values (100000+38);
insert into t3 values (100000+37);
insert into t3 values (100000+36);
insert into t3 values (100000+35);
insert into t3 values (100000+34);
insert into t3 values (100000+33);
insert into t3 values (100000+32);
insert into t3 values (100000+31);
insert into t3 values (100000+30);
insert into t3 values (100000+29);
insert into t3 values (100000+28);
insert into t3 values (100000+27);
insert into t3 values (100000+26);
insert into t3 values (100000+25);
insert into t3 values (100000+24);
insert into t3 values (100000+23);
insert into t3 values (100000+22);
insert into t3 values (100000+21);
insert into t3 values (100000+20);
insert into t3 values (100000+19);
insert into t3 values (100000+18);
insert into t3 values (100000+17);
insert into t3 values (100000+16);
insert into t3 values (100000+15);
insert into t3 values (100000+14);
insert into t3 values (100000+13);
insert into t3 values (100000+12);
insert into t3 values (100000+11);
insert into t3 values (100000+10);
insert into t3 values (100000+9);
insert into t3 values (100000+8);
insert into t3 values (100000+7);
insert into t3 values (100000+6);
insert into t3 values (100000+5);
insert into t3 values (100000+4);
insert into t3 values (100000+3);
insert into t3 values (100000+2);
insert into t3 values (100000+1);
select count(*) from t3; select count(*) from t3;
count(*) count(*)
59 59
@ -986,65 +677,6 @@ SUBPARTITIONS 3
PARTITION quarter3 VALUES IN (31,32,33,34,35,36,37,38,39,40,41,42,43,44,45) ENGINE = MyISAM, PARTITION quarter3 VALUES IN (31,32,33,34,35,36,37,38,39,40,41,42,43,44,45) ENGINE = MyISAM,
PARTITION quarter4 VALUES IN (46,47,48,49,50,51,52,53,54,55,56,57,58,59,60) ENGINE = MyISAM) */ PARTITION quarter4 VALUES IN (46,47,48,49,50,51,52,53,54,55,56,57,58,59,60) ENGINE = MyISAM) */
59 inserts; 59 inserts;
insert into t4 values (100000+59);
insert into t4 values (100000+58);
insert into t4 values (100000+57);
insert into t4 values (100000+56);
insert into t4 values (100000+55);
insert into t4 values (100000+54);
insert into t4 values (100000+53);
insert into t4 values (100000+52);
insert into t4 values (100000+51);
insert into t4 values (100000+50);
insert into t4 values (100000+49);
insert into t4 values (100000+48);
insert into t4 values (100000+47);
insert into t4 values (100000+46);
insert into t4 values (100000+45);
insert into t4 values (100000+44);
insert into t4 values (100000+43);
insert into t4 values (100000+42);
insert into t4 values (100000+41);
insert into t4 values (100000+40);
insert into t4 values (100000+39);
insert into t4 values (100000+38);
insert into t4 values (100000+37);
insert into t4 values (100000+36);
insert into t4 values (100000+35);
insert into t4 values (100000+34);
insert into t4 values (100000+33);
insert into t4 values (100000+32);
insert into t4 values (100000+31);
insert into t4 values (100000+30);
insert into t4 values (100000+29);
insert into t4 values (100000+28);
insert into t4 values (100000+27);
insert into t4 values (100000+26);
insert into t4 values (100000+25);
insert into t4 values (100000+24);
insert into t4 values (100000+23);
insert into t4 values (100000+22);
insert into t4 values (100000+21);
insert into t4 values (100000+20);
insert into t4 values (100000+19);
insert into t4 values (100000+18);
insert into t4 values (100000+17);
insert into t4 values (100000+16);
insert into t4 values (100000+15);
insert into t4 values (100000+14);
insert into t4 values (100000+13);
insert into t4 values (100000+12);
insert into t4 values (100000+11);
insert into t4 values (100000+10);
insert into t4 values (100000+9);
insert into t4 values (100000+8);
insert into t4 values (100000+7);
insert into t4 values (100000+6);
insert into t4 values (100000+5);
insert into t4 values (100000+4);
insert into t4 values (100000+3);
insert into t4 values (100000+2);
insert into t4 values (100000+1);
select count(*) from t4; select count(*) from t4;
count(*) count(*)
59 59
@ -1172,65 +804,6 @@ a
2020-12-31 10:11:12 2020-12-31 10:11:12
delete from t2; delete from t2;
59 inserts; 59 inserts;
insert into t2 values (19700101000000+59);
insert into t2 values (19700101000000+58);
insert into t2 values (19700101000000+57);
insert into t2 values (19700101000000+56);
insert into t2 values (19700101000000+55);
insert into t2 values (19700101000000+54);
insert into t2 values (19700101000000+53);
insert into t2 values (19700101000000+52);
insert into t2 values (19700101000000+51);
insert into t2 values (19700101000000+50);
insert into t2 values (19700101000000+49);
insert into t2 values (19700101000000+48);
insert into t2 values (19700101000000+47);
insert into t2 values (19700101000000+46);
insert into t2 values (19700101000000+45);
insert into t2 values (19700101000000+44);
insert into t2 values (19700101000000+43);
insert into t2 values (19700101000000+42);
insert into t2 values (19700101000000+41);
insert into t2 values (19700101000000+40);
insert into t2 values (19700101000000+39);
insert into t2 values (19700101000000+38);
insert into t2 values (19700101000000+37);
insert into t2 values (19700101000000+36);
insert into t2 values (19700101000000+35);
insert into t2 values (19700101000000+34);
insert into t2 values (19700101000000+33);
insert into t2 values (19700101000000+32);
insert into t2 values (19700101000000+31);
insert into t2 values (19700101000000+30);
insert into t2 values (19700101000000+29);
insert into t2 values (19700101000000+28);
insert into t2 values (19700101000000+27);
insert into t2 values (19700101000000+26);
insert into t2 values (19700101000000+25);
insert into t2 values (19700101000000+24);
insert into t2 values (19700101000000+23);
insert into t2 values (19700101000000+22);
insert into t2 values (19700101000000+21);
insert into t2 values (19700101000000+20);
insert into t2 values (19700101000000+19);
insert into t2 values (19700101000000+18);
insert into t2 values (19700101000000+17);
insert into t2 values (19700101000000+16);
insert into t2 values (19700101000000+15);
insert into t2 values (19700101000000+14);
insert into t2 values (19700101000000+13);
insert into t2 values (19700101000000+12);
insert into t2 values (19700101000000+11);
insert into t2 values (19700101000000+10);
insert into t2 values (19700101000000+9);
insert into t2 values (19700101000000+8);
insert into t2 values (19700101000000+7);
insert into t2 values (19700101000000+6);
insert into t2 values (19700101000000+5);
insert into t2 values (19700101000000+4);
insert into t2 values (19700101000000+3);
insert into t2 values (19700101000000+2);
insert into t2 values (19700101000000+1);
select count(*) from t2; select count(*) from t2;
count(*) count(*)
59 59
@ -1318,18 +891,6 @@ SUBPARTITIONS 3
PARTITION quarter3 VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION quarter3 VALUES LESS THAN (10) ENGINE = MyISAM,
PARTITION quarter4 VALUES LESS THAN (13) ENGINE = MyISAM) */ PARTITION quarter4 VALUES LESS THAN (13) ENGINE = MyISAM) */
12 inserts; 12 inserts;
insert into t3 values (adddate(19700101000000,interval 12-1 month));
insert into t3 values (adddate(19700101000000,interval 11-1 month));
insert into t3 values (adddate(19700101000000,interval 10-1 month));
insert into t3 values (adddate(19700101000000,interval 9-1 month));
insert into t3 values (adddate(19700101000000,interval 8-1 month));
insert into t3 values (adddate(19700101000000,interval 7-1 month));
insert into t3 values (adddate(19700101000000,interval 6-1 month));
insert into t3 values (adddate(19700101000000,interval 5-1 month));
insert into t3 values (adddate(19700101000000,interval 4-1 month));
insert into t3 values (adddate(19700101000000,interval 3-1 month));
insert into t3 values (adddate(19700101000000,interval 2-1 month));
insert into t3 values (adddate(19700101000000,interval 1-1 month));
select count(*) from t3; select count(*) from t3;
count(*) count(*)
12 12
@ -1370,18 +931,6 @@ SUBPARTITIONS 3
PARTITION quarter3 VALUES IN (7,8,9) ENGINE = MyISAM, PARTITION quarter3 VALUES IN (7,8,9) ENGINE = MyISAM,
PARTITION quarter4 VALUES IN (10,11,12) ENGINE = MyISAM) */ PARTITION quarter4 VALUES IN (10,11,12) ENGINE = MyISAM) */
12 inserts; 12 inserts;
insert into t4 values (adddate(19700101000000,interval 12-1 month));
insert into t4 values (adddate(19700101000000,interval 11-1 month));
insert into t4 values (adddate(19700101000000,interval 10-1 month));
insert into t4 values (adddate(19700101000000,interval 9-1 month));
insert into t4 values (adddate(19700101000000,interval 8-1 month));
insert into t4 values (adddate(19700101000000,interval 7-1 month));
insert into t4 values (adddate(19700101000000,interval 6-1 month));
insert into t4 values (adddate(19700101000000,interval 5-1 month));
insert into t4 values (adddate(19700101000000,interval 4-1 month));
insert into t4 values (adddate(19700101000000,interval 3-1 month));
insert into t4 values (adddate(19700101000000,interval 2-1 month));
insert into t4 values (adddate(19700101000000,interval 1-1 month));
select count(*) from t4; select count(*) from t4;
count(*) count(*)
12 12

View File

@ -25,6 +25,8 @@
let $debug= 0; let $debug= 0;
let $do_long_tests= 1; let $do_long_tests= 1;
#
--source include/big_test.inc
# The server must support partitioning. # The server must support partitioning.
--source include/have_partition.inc --source include/have_partition.inc

View File

@ -43,6 +43,8 @@ SET @max_row = 20;
let $more_trigger_tests= 0; let $more_trigger_tests= 0;
let $more_pk_ui_tests= 0; let $more_pk_ui_tests= 0;
# Slow running test
--source include/big_test.inc
# This test relies on connecting externally from mysqltest, doesn't # This test relies on connecting externally from mysqltest, doesn't
# work with embedded. # work with embedded.
--source include/not_embedded.inc --source include/not_embedded.inc

View File

@ -40,6 +40,8 @@ SET @max_row = 20;
let $more_trigger_tests= 0; let $more_trigger_tests= 0;
let $more_pk_ui_tests= 0; let $more_pk_ui_tests= 0;
# Slow running test
--source include/big_test.inc
# This test relies on connecting externally from mysqltest, doesn't # This test relies on connecting externally from mysqltest, doesn't
# work with embedded. # work with embedded.
--source include/not_embedded.inc --source include/not_embedded.inc

View File

@ -710,7 +710,7 @@ a
EXPLAIN PARTITIONS SELECT * FROM t1 EXPLAIN PARTITIONS SELECT * FROM t1
WHERE a >= '2004-07-01' AND a <= '2004-09-30'; WHERE a >= '2004-07-01' AND a <= '2004-09-30';
id select_type table partitions type possible_keys key key_len ref rows Extra id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p407,p408,p409 ALL NULL NULL NULL NULL 9 Using where 1 SIMPLE t1 p3xx,p407,p408,p409 ALL NULL NULL NULL NULL 18 Using where
SELECT * from t1 SELECT * from t1
WHERE (a >= '2004-07-01' AND a <= '2004-09-30') OR WHERE (a >= '2004-07-01' AND a <= '2004-09-30') OR
(a >= '2005-07-01' AND a <= '2005-09-30'); (a >= '2005-07-01' AND a <= '2005-09-30');
@ -737,5 +737,5 @@ EXPLAIN PARTITIONS SELECT * from t1
WHERE (a >= '2004-07-01' AND a <= '2004-09-30') OR WHERE (a >= '2004-07-01' AND a <= '2004-09-30') OR
(a >= '2005-07-01' AND a <= '2005-09-30'); (a >= '2005-07-01' AND a <= '2005-09-30');
id select_type table partitions type possible_keys key key_len ref rows Extra id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p407,p408,p409,p507,p508,p509 ALL NULL NULL NULL NULL 18 Using where 1 SIMPLE t1 p3xx,p407,p408,p409,p507,p508,p509 ALL NULL NULL NULL NULL 27 Using where
DROP TABLE t1; DROP TABLE t1;

View File

@ -75,7 +75,7 @@ SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a));
select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1)); select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1));
ERROR HY000: Incorrect usage of PROCEDURE and subquery ERROR HY000: Incorrect usage of PROCEDURE and subquery
SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1)); SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1));
ERROR HY000: Incorrect parameters to procedure 'ANALYSE' ERROR HY000: Incorrect usage of PROCEDURE and subquery
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL; SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL;
ERROR 42S22: Unknown column 'a' in 'field list' ERROR 42S22: Unknown column 'a' in 'field list'
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NOT NULL; SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NOT NULL;

View File

@ -30,7 +30,7 @@ SELECT 1 IN (SELECT 1);
SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a)); SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a));
-- error 1221 -- error 1221
select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1)); select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1));
-- error 1108 -- error ER_WRONG_USAGE
SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1)); SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1));
-- error ER_BAD_FIELD_ERROR -- error ER_BAD_FIELD_ERROR
SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL; SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL;

View File

@ -101,6 +101,8 @@ master-bin.000001 # Query # # use `test`; UPDATE t SET f = 'dark blue 1' WHERE f
master-bin.000001 # Query # # use `test`; INSERT INTO t VALUES (6 + (1 * 10),"brown") master-bin.000001 # Query # # use `test`; INSERT INTO t VALUES (6 + (1 * 10),"brown")
master-bin.000001 # Query # # use `test`; INSERT INTO n VALUES (now(),"brown") master-bin.000001 # Query # # use `test`; INSERT INTO n VALUES (now(),"brown")
master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Xid # # COMMIT /* XID */
source include/diff_master_slave.inc;
source include/diff_master_slave.inc;
######################################################################## ########################################################################
# Cleanup # Cleanup
######################################################################## ########################################################################

View File

@ -0,0 +1,33 @@
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 DATABASE IF EXISTS mysqltest;
CREATE DATABASE IF NOT EXISTS mysqltest;
USE mysqltest;
CREATE TABLE IF NOT EXISTS t(c1 int);
CREATE TABLE IF NOT EXISTS t1 LIKE t;
CREATE TABLE IF NOT EXISTS t2 SELECT * FROM t;
CREATE EVENT IF NOT EXISTS e
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR
DO SELECT now();
DROP DATABASE mysqltest;
CREATE DATABASE IF NOT EXISTS mysqltest;
USE mysqltest;
CREATE TABLE IF NOT EXISTS t(c1 int);
CREATE TABLE IF NOT EXISTS t1 LIKE t;
CREATE TABLE IF NOT EXISTS t2 SELECT * FROM t;
CREATE EVENT IF NOT EXISTS e
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR
DO SELECT now();
SHOW TABLES in mysqltest;
Tables_in_mysqltest
t
t1
t2
SHOW EVENTS in mysqltest;
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
mysqltest e root@localhost SYSTEM ONE TIME # NULL NULL NULL NULL SLAVESIDE_DISABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
DROP DATABASE IF EXISTS mysqltest;

View File

@ -0,0 +1,22 @@
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 DATABASE IF EXISTS mysqltest;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp(c1 int);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp(c1 int);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp1 LIKE tmp;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp1 LIKE tmp;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp2 SELECT * FROM tmp;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp2 SELECT * FROM tmp;
show binlog events from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # DROP DATABASE IF EXISTS mysqltest
master-bin.000001 # Query # # use `test`; CREATE TEMPORARY TABLE IF NOT EXISTS tmp(c1 int)
master-bin.000001 # Query # # use `test`; CREATE TEMPORARY TABLE IF NOT EXISTS tmp(c1 int)
master-bin.000001 # Query # # use `test`; CREATE TEMPORARY TABLE IF NOT EXISTS tmp1 LIKE tmp
master-bin.000001 # Query # # use `test`; CREATE TEMPORARY TABLE IF NOT EXISTS tmp1 LIKE tmp
master-bin.000001 # Query # # use `test`; CREATE TEMPORARY TABLE IF NOT EXISTS tmp2 SELECT * FROM tmp
master-bin.000001 # Query # # use `test`; CREATE TEMPORARY TABLE IF NOT EXISTS tmp2 SELECT * FROM tmp

View File

@ -43,7 +43,7 @@ master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS db_bug_13684.t
master-bin.000001 # Query # # DROP DATABASE IF EXISTS db_bug_13684 master-bin.000001 # Query # # DROP DATABASE IF EXISTS db_bug_13684
master-bin.000001 # Query # # CREATE DATABASE db_bug_13684 master-bin.000001 # Query # # CREATE DATABASE db_bug_13684
master-bin.000001 # Query # # use `test`; CREATE TABLE db_bug_13684.t (a int) master-bin.000001 # Query # # use `test`; CREATE TABLE db_bug_13684.t (a int)
master-bin.000001 # Query # # use `test`; CREATE EVENT db_bug_13684.e master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` EVENT db_bug_13684.e
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR
DO DO
UPDATE db_bug_13684.t SET a = a + 1 UPDATE db_bug_13684.t SET a = a + 1
@ -75,7 +75,7 @@ master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS db_bug_13684.t
master-bin.000001 # Query # # DROP DATABASE IF EXISTS db_bug_13684 master-bin.000001 # Query # # DROP DATABASE IF EXISTS db_bug_13684
master-bin.000001 # Query # # CREATE DATABASE db_bug_13684 master-bin.000001 # Query # # CREATE DATABASE db_bug_13684
master-bin.000001 # Query # # use `test`; CREATE TABLE db_bug_13684.t (a int) master-bin.000001 # Query # # use `test`; CREATE TABLE db_bug_13684.t (a int)
master-bin.000001 # Query # # use `test`; CREATE EVENT db_bug_13684.e master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` EVENT db_bug_13684.e
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR
DO DO
UPDATE db_bug_13684.t SET a = a + 1 UPDATE db_bug_13684.t SET a = a + 1

View File

@ -5,6 +5,7 @@ reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave; start slave;
create database if not exists mysqltest; create database if not exists mysqltest;
use mysqltest;
create temporary table mysqltest.t1 (n int)ENGINE=MyISAM; create temporary table mysqltest.t1 (n int)ENGINE=MyISAM;
create temporary table mysqltest.t2 (n int)ENGINE=MyISAM; create temporary table mysqltest.t2 (n int)ENGINE=MyISAM;
show status like 'Slave_open_temp_tables'; show status like 'Slave_open_temp_tables';

View File

@ -191,5 +191,63 @@ select * from t28953;
END;| END;|
ALTER EVENT event1 RENAME TO event2; ALTER EVENT event1 RENAME TO event2;
DROP EVENT event2; DROP EVENT event2;
CREATE TABLE test.t1(details CHAR(30));
CREATE EVENT /*!50000 event44331_1 */
ON SCHEDULE AT CURRENT_TIMESTAMP
ON COMPLETION PRESERVE DISABLE
DO INSERT INTO test.t1 VALUES('event event44331_1 fired - no definer');
CREATE DEFINER=CURRENT_USER /*!50000 EVENT event44331_2 */
ON SCHEDULE AT CURRENT_TIMESTAMP
ON COMPLETION PRESERVE DISABLE
DO INSERT INTO test.t1 VALUES('event event44331_2 fired - DEFINER=CURRENT_USER');
CREATE DEFINER=CURRENT_USER() EVENT event44331_3
ON SCHEDULE AT CURRENT_TIMESTAMP
ON COMPLETION PRESERVE DISABLE
DO INSERT INTO test.t1 VALUES('event event44331_3 fired - DEFINER=CURRENT_USER() function');
CREATE /*!50000 DEFINER='user44331' */ EVENT event44331_4
ON SCHEDULE AT CURRENT_TIMESTAMP
ON COMPLETION PRESERVE DISABLE
DO INSERT INTO test.t1 VALUES('event event44331_4 fired - DEFINER=user1');
Warnings:
Note 1449 The user specified as a definer ('user44331'@'%') does not exist
#on master
select EVENT_SCHEMA, EVENT_NAME, DEFINER from information_schema.events
where EVENT_NAME='event44331_1';
EVENT_SCHEMA EVENT_NAME DEFINER
test event44331_1 root@localhost
select EVENT_SCHEMA, EVENT_NAME, DEFINER from information_schema.events
where EVENT_NAME='event44331_2';
EVENT_SCHEMA EVENT_NAME DEFINER
test event44331_2 root@localhost
select EVENT_SCHEMA, EVENT_NAME, DEFINER from information_schema.events
where EVENT_NAME='event44331_3';
EVENT_SCHEMA EVENT_NAME DEFINER
test event44331_3 root@localhost
select EVENT_SCHEMA, EVENT_NAME, DEFINER from information_schema.events
where EVENT_NAME='event44331_4';
EVENT_SCHEMA EVENT_NAME DEFINER
test event44331_4 user44331@%
#on slave
select EVENT_SCHEMA, EVENT_NAME, DEFINER from information_schema.events
where EVENT_NAME='event44331_1';
EVENT_SCHEMA EVENT_NAME DEFINER
test event44331_1 root@localhost
select EVENT_SCHEMA, EVENT_NAME, DEFINER from information_schema.events
where EVENT_NAME='event44331_2';
EVENT_SCHEMA EVENT_NAME DEFINER
test event44331_2 root@localhost
select EVENT_SCHEMA, EVENT_NAME, DEFINER from information_schema.events
where EVENT_NAME='event44331_3';
EVENT_SCHEMA EVENT_NAME DEFINER
test event44331_3 root@localhost
select EVENT_SCHEMA, EVENT_NAME, DEFINER from information_schema.events
where EVENT_NAME='event44331_4';
EVENT_SCHEMA EVENT_NAME DEFINER
test event44331_4 user44331@%
SET @@global.event_scheduler= @old_event_scheduler; SET @@global.event_scheduler= @old_event_scheduler;
DROP TABLE t28953; DROP TABLE t28953;
DROP TABLE t1;
DROP EVENT event44331_1;
DROP EVENT event44331_2;
DROP EVENT event44331_3;
DROP EVENT event44331_4;

Some files were not shown because too many files have changed in this diff Show More