mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mockturtle.local:/home/dlenev/src/mysql-5.0-rt-merge
This commit is contained in:
19
.bzrignore
19
.bzrignore
@ -4,6 +4,7 @@
|
|||||||
*.bb
|
*.bb
|
||||||
*.bbg
|
*.bbg
|
||||||
*.bin
|
*.bin
|
||||||
|
*.cmake
|
||||||
*.core
|
*.core
|
||||||
*.d
|
*.d
|
||||||
*.da
|
*.da
|
||||||
@ -17,6 +18,7 @@
|
|||||||
*.map
|
*.map
|
||||||
*.o
|
*.o
|
||||||
*.obj
|
*.obj
|
||||||
|
*.old
|
||||||
*.pch
|
*.pch
|
||||||
*.pdb
|
*.pdb
|
||||||
*.reject
|
*.reject
|
||||||
@ -25,11 +27,23 @@
|
|||||||
*.so
|
*.so
|
||||||
*.so.*
|
*.so.*
|
||||||
*.spec
|
*.spec
|
||||||
|
*.user
|
||||||
|
*.vcproj
|
||||||
|
*/*.dir/*
|
||||||
*/*_pure_*warnings
|
*/*_pure_*warnings
|
||||||
|
*/.deps
|
||||||
|
*/.libs/*
|
||||||
*/.pure
|
*/.pure
|
||||||
|
*/debug/*
|
||||||
|
*/release/*
|
||||||
*~
|
*~
|
||||||
.*.swp
|
.*.swp
|
||||||
|
./CMakeCache.txt
|
||||||
|
./MySql.ncb
|
||||||
|
./MySql.sln
|
||||||
|
./MySql.suo
|
||||||
./README.build-files
|
./README.build-files
|
||||||
|
./cmakecache.txt
|
||||||
./config.h
|
./config.h
|
||||||
./copy_mysql_files.bat
|
./copy_mysql_files.bat
|
||||||
./fix-project-files
|
./fix-project-files
|
||||||
@ -65,6 +79,7 @@ BitKeeper/post-commit-manual
|
|||||||
BitKeeper/tmp/*
|
BitKeeper/tmp/*
|
||||||
BitKeeper/tmp/bkr3sAHD
|
BitKeeper/tmp/bkr3sAHD
|
||||||
BitKeeper/tmp/gone
|
BitKeeper/tmp/gone
|
||||||
|
CMakeFiles/*
|
||||||
COPYING
|
COPYING
|
||||||
COPYING.LIB
|
COPYING.LIB
|
||||||
Docs/#manual.texi#
|
Docs/#manual.texi#
|
||||||
@ -1195,6 +1210,7 @@ strings/ctype_autoconf.c
|
|||||||
strings/ctype_extra_sources.c
|
strings/ctype_extra_sources.c
|
||||||
strings/str_test
|
strings/str_test
|
||||||
strings/test_decimal
|
strings/test_decimal
|
||||||
|
support-files/*.ini
|
||||||
support-files/MacOSX/Description.plist
|
support-files/MacOSX/Description.plist
|
||||||
support-files/MacOSX/Info.plist
|
support-files/MacOSX/Info.plist
|
||||||
support-files/MacOSX/ReadMe.txt
|
support-files/MacOSX/ReadMe.txt
|
||||||
@ -1297,5 +1313,8 @@ vio/test-sslserver
|
|||||||
vio/viotest-ssl
|
vio/viotest-ssl
|
||||||
vio/viotest-sslconnect.cpp
|
vio/viotest-sslconnect.cpp
|
||||||
vio/viotest.cpp
|
vio/viotest.cpp
|
||||||
|
win/configure.data
|
||||||
|
win/vs71cache.txt
|
||||||
|
win/vs8cache.txt
|
||||||
zlib/*.ds?
|
zlib/*.ds?
|
||||||
zlib/*.vcproj
|
zlib/*.vcproj
|
||||||
|
@ -4,3 +4,4 @@
|
|||||||
44f33f3aj5KW5qweQeekY1LU0E9ZCg
|
44f33f3aj5KW5qweQeekY1LU0E9ZCg
|
||||||
45001f7c3b2hhCXDKfUvzkX9TNe6VA
|
45001f7c3b2hhCXDKfUvzkX9TNe6VA
|
||||||
45002051rHJfMEXAIMiAZV0clxvKSA
|
45002051rHJfMEXAIMiAZV0clxvKSA
|
||||||
|
4513d8e4Af4dQWuk13sArwofRgFDQw
|
||||||
|
@ -75,5 +75,6 @@ hours:
|
|||||||
[tomas:]checkout:get
|
[tomas:]checkout:get
|
||||||
[guilhem:]checkout:get
|
[guilhem:]checkout:get
|
||||||
[pekka:]checkout:get
|
[pekka:]checkout:get
|
||||||
|
[msvensson:]checkout:get
|
||||||
checkout:edit
|
checkout:edit
|
||||||
eoln:unix
|
eoln:unix
|
||||||
|
@ -6,6 +6,13 @@ COMMITS=commits@lists.mysql.com
|
|||||||
DOCS=docs-commit@mysql.com
|
DOCS=docs-commit@mysql.com
|
||||||
LIMIT=10000
|
LIMIT=10000
|
||||||
VERSION="5.0"
|
VERSION="5.0"
|
||||||
|
BKROOT=`bk root`
|
||||||
|
|
||||||
|
if [ -x /usr/sbin/sendmail ]; then
|
||||||
|
SENDMAIL=/usr/sbin/sendmail
|
||||||
|
else
|
||||||
|
SENDMAIL=sendmail
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$REAL_EMAIL" = "" ]
|
if [ "$REAL_EMAIL" = "" ]
|
||||||
then
|
then
|
||||||
@ -58,7 +65,9 @@ $BH
|
|||||||
EOF
|
EOF
|
||||||
bk changes -v -r+
|
bk changes -v -r+
|
||||||
bk cset -r+ -d
|
bk cset -r+ -d
|
||||||
) | /usr/sbin/sendmail -t
|
) > $BKROOT/BitKeeper/tmp/dev_public.txt
|
||||||
|
|
||||||
|
$SENDMAIL -t < $BKROOT/BitKeeper/tmp/dev_public.txt
|
||||||
|
|
||||||
#++
|
#++
|
||||||
# commits@ mail
|
# commits@ mail
|
||||||
@ -82,7 +91,9 @@ see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
|
|||||||
EOF
|
EOF
|
||||||
bk changes -v -r+
|
bk changes -v -r+
|
||||||
bk cset -r+ -d
|
bk cset -r+ -d
|
||||||
) | head -n $LIMIT | /usr/sbin/sendmail -t
|
) | bk sed -e ${LIMIT}q > $BKROOT/BitKeeper/tmp/commits.txt
|
||||||
|
|
||||||
|
$SENDMAIL -t < $BKROOT/BitKeeper/tmp/commits.txt
|
||||||
|
|
||||||
#++
|
#++
|
||||||
# docs-commit@ mail
|
# docs-commit@ mail
|
||||||
@ -102,7 +113,8 @@ Subject: bk commit - $VERSION tree (Manual) ($CHANGESET)$BS
|
|||||||
EOF
|
EOF
|
||||||
bk changes -v -r+
|
bk changes -v -r+
|
||||||
bk cset -r+ -d
|
bk cset -r+ -d
|
||||||
) | /usr/sbin/sendmail -t
|
) > $BKROOT/BitKeeper/tmp/docs.txt
|
||||||
|
$SENDMAIL -t < $BKROOT/BitKeeper/tmp/docs.txt
|
||||||
fi
|
fi
|
||||||
|
|
||||||
else
|
else
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
noinst_SCRIPTS = Support/generate-text-files.pl
|
noinst_SCRIPTS = Support/generate-text-files.pl
|
||||||
|
|
||||||
EXTRA_DIST = $(noinst_SCRIPTS) mysql.info INSTALL-BINARY
|
EXTRA_DIST = $(noinst_SCRIPTS) manual.chm mysql.info INSTALL-BINARY
|
||||||
|
|
||||||
TXT_FILES= ../INSTALL-SOURCE ../INSTALL-WIN-SOURCE ../EXCEPTIONS-CLIENT \
|
TXT_FILES= ../INSTALL-SOURCE ../INSTALL-WIN-SOURCE ../EXCEPTIONS-CLIENT \
|
||||||
INSTALL-BINARY ../support-files/MacOSX/ReadMe.txt
|
INSTALL-BINARY ../support-files/MacOSX/ReadMe.txt
|
||||||
|
14
Docs/manual.chm
Normal file
14
Docs/manual.chm
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
|
||||||
|
*********************************************************
|
||||||
|
|
||||||
|
This is a dummy placeholder file for "manual.chm" in the
|
||||||
|
MySQL source trees.
|
||||||
|
|
||||||
|
Note, that the documentation has been moved into a separate
|
||||||
|
BitKeeper source tree named "mysqldoc" - do not attempt to edit this
|
||||||
|
file! All changes to it should be done in the mysqldoc tree.
|
||||||
|
|
||||||
|
This dummy file is being replaced with the actual file from the
|
||||||
|
mysqldoc tree when building the official source distribution.
|
||||||
|
|
||||||
|
*********************************************************
|
@ -66,6 +66,9 @@ TARGET_LINK_LIBRARIES(mysqldump mysqlclient mysys dbug yassl taocrypt zlib wsock
|
|||||||
ADD_EXECUTABLE(mysqlimport mysqlimport.c)
|
ADD_EXECUTABLE(mysqlimport mysqlimport.c)
|
||||||
TARGET_LINK_LIBRARIES(mysqlimport mysqlclient mysys dbug yassl taocrypt zlib wsock32)
|
TARGET_LINK_LIBRARIES(mysqlimport mysqlclient mysys dbug yassl taocrypt zlib wsock32)
|
||||||
|
|
||||||
|
ADD_EXECUTABLE(mysql_upgrade mysql_upgrade.c)
|
||||||
|
TARGET_LINK_LIBRARIES(mysql_upgrade mysqlclient mysys dbug yassl taocrypt zlib wsock32)
|
||||||
|
|
||||||
ADD_EXECUTABLE(mysqlshow mysqlshow.c)
|
ADD_EXECUTABLE(mysqlshow mysqlshow.c)
|
||||||
TARGET_LINK_LIBRARIES(mysqlshow mysqlclient mysys dbug yassl taocrypt zlib wsock32)
|
TARGET_LINK_LIBRARIES(mysqlshow mysqlclient mysys dbug yassl taocrypt zlib wsock32)
|
||||||
|
|
||||||
|
@ -2321,10 +2321,8 @@ print_table_data(MYSQL_RES *result)
|
|||||||
MYSQL_ROW cur;
|
MYSQL_ROW cur;
|
||||||
MYSQL_FIELD *field;
|
MYSQL_FIELD *field;
|
||||||
bool *num_flag;
|
bool *num_flag;
|
||||||
bool *not_null_flag;
|
|
||||||
|
|
||||||
num_flag=(bool*) my_alloca(sizeof(bool)*mysql_num_fields(result));
|
num_flag=(bool*) my_alloca(sizeof(bool)*mysql_num_fields(result));
|
||||||
not_null_flag=(bool*) my_alloca(sizeof(bool)*mysql_num_fields(result));
|
|
||||||
if (info_flag)
|
if (info_flag)
|
||||||
{
|
{
|
||||||
print_field_types(result);
|
print_field_types(result);
|
||||||
@ -2363,7 +2361,6 @@ print_table_data(MYSQL_RES *result)
|
|||||||
MAX_COLUMN_LENGTH),
|
MAX_COLUMN_LENGTH),
|
||||||
field->name);
|
field->name);
|
||||||
num_flag[off]= IS_NUM(field->type);
|
num_flag[off]= IS_NUM(field->type);
|
||||||
not_null_flag[off]= IS_NOT_NULL(field->flags);
|
|
||||||
}
|
}
|
||||||
(void) tee_fputs("\n", PAGER);
|
(void) tee_fputs("\n", PAGER);
|
||||||
tee_puts((char*) separator.ptr(), PAGER);
|
tee_puts((char*) separator.ptr(), PAGER);
|
||||||
@ -2384,7 +2381,7 @@ print_table_data(MYSQL_RES *result)
|
|||||||
uint extra_padding;
|
uint extra_padding;
|
||||||
|
|
||||||
/* If this column may have a null value, use "NULL" for empty. */
|
/* If this column may have a null value, use "NULL" for empty. */
|
||||||
if (! not_null_flag[off] && (cur[off] == NULL))
|
if (cur[off] == NULL)
|
||||||
{
|
{
|
||||||
buffer= "NULL";
|
buffer= "NULL";
|
||||||
data_length= 4;
|
data_length= 4;
|
||||||
@ -2424,7 +2421,6 @@ print_table_data(MYSQL_RES *result)
|
|||||||
}
|
}
|
||||||
tee_puts((char*) separator.ptr(), PAGER);
|
tee_puts((char*) separator.ptr(), PAGER);
|
||||||
my_afree((gptr) num_flag);
|
my_afree((gptr) num_flag);
|
||||||
my_afree((gptr) not_null_flag);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -200,7 +200,7 @@ retry_open:
|
|||||||
}
|
}
|
||||||
buffer_end= strnmov(buffer, "\n[client]", sizeof(buffer));
|
buffer_end= strnmov(buffer, "\n[client]", sizeof(buffer));
|
||||||
if (opt_password)
|
if (opt_password)
|
||||||
buffer_end= strxnmov(buffer, sizeof(buffer),
|
buffer_end= strxnmov(buffer_end, sizeof(buffer),
|
||||||
"\npassword=", opt_password, NullS);
|
"\npassword=", opt_password, NullS);
|
||||||
error= my_write(defaults_file, buffer, (int) (buffer_end - buffer),
|
error= my_write(defaults_file, buffer, (int) (buffer_end - buffer),
|
||||||
MYF(MY_WME | MY_FNABP));
|
MYF(MY_WME | MY_FNABP));
|
||||||
|
@ -85,7 +85,7 @@ static char *alloc_query_str(ulong size);
|
|||||||
static char *field_escape(char *to,const char *from,uint length);
|
static char *field_escape(char *to,const char *from,uint length);
|
||||||
static my_bool verbose= 0, opt_no_create_info= 0, opt_no_data= 0,
|
static my_bool verbose= 0, opt_no_create_info= 0, opt_no_data= 0,
|
||||||
quick= 1, extended_insert= 1,
|
quick= 1, extended_insert= 1,
|
||||||
lock_tables=1,ignore_errors=0,flush_logs=0,
|
lock_tables=1,ignore_errors=0,flush_logs=0,flush_privileges=0,
|
||||||
opt_drop=1,opt_keywords=0,opt_lock=1,opt_compress=0,
|
opt_drop=1,opt_keywords=0,opt_lock=1,opt_compress=0,
|
||||||
opt_delayed=0,create_options=1,opt_quoted=0,opt_databases=0,
|
opt_delayed=0,create_options=1,opt_quoted=0,opt_databases=0,
|
||||||
opt_alldbs=0,opt_create_db=0,opt_lock_all_tables=0,
|
opt_alldbs=0,opt_create_db=0,opt_lock_all_tables=0,
|
||||||
@ -256,6 +256,12 @@ static struct my_option my_long_options[] =
|
|||||||
"--lock-all-tables or --master-data with --flush-logs",
|
"--lock-all-tables or --master-data with --flush-logs",
|
||||||
(gptr*) &flush_logs, (gptr*) &flush_logs, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0,
|
(gptr*) &flush_logs, (gptr*) &flush_logs, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0,
|
||||||
0, 0},
|
0, 0},
|
||||||
|
{"flush-privileges", OPT_ESC, "Emit a FLUSH PRIVILEGES statement "
|
||||||
|
"after dumping the mysql database. This option should be used any "
|
||||||
|
"time the dump contains the mysql database and any other database "
|
||||||
|
"that depends on the data in the mysql database for proper restore. ",
|
||||||
|
(gptr*) &flush_privileges, (gptr*) &flush_privileges, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0,
|
||||||
|
0, 0},
|
||||||
{"force", 'f', "Continue even if we get an sql-error.",
|
{"force", 'f', "Continue even if we get an sql-error.",
|
||||||
(gptr*) &ignore_errors, (gptr*) &ignore_errors, 0, GET_BOOL, NO_ARG,
|
(gptr*) &ignore_errors, (gptr*) &ignore_errors, 0, GET_BOOL, NO_ARG,
|
||||||
0, 0, 0, 0, 0, 0},
|
0, 0, 0, 0, 0, 0},
|
||||||
@ -652,13 +658,13 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
|||||||
tty_password=1;
|
tty_password=1;
|
||||||
break;
|
break;
|
||||||
case 'r':
|
case 'r':
|
||||||
if (!(md_result_file = my_fopen(argument, O_WRONLY | FILE_BINARY,
|
if (!(md_result_file= my_fopen(argument, O_WRONLY | FILE_BINARY,
|
||||||
MYF(MY_WME))))
|
MYF(MY_WME))))
|
||||||
exit(1);
|
exit(1);
|
||||||
break;
|
break;
|
||||||
case 'W':
|
case 'W':
|
||||||
#ifdef __WIN__
|
#ifdef __WIN__
|
||||||
opt_protocol = MYSQL_PROTOCOL_PIPE;
|
opt_protocol= MYSQL_PROTOCOL_PIPE;
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case 'N':
|
case 'N':
|
||||||
@ -673,7 +679,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
|||||||
#include <sslopt-case.h>
|
#include <sslopt-case.h>
|
||||||
case 'V': print_version(); exit(0);
|
case 'V': print_version(); exit(0);
|
||||||
case 'X':
|
case 'X':
|
||||||
opt_xml = 1;
|
opt_xml= 1;
|
||||||
extended_insert= opt_drop= opt_lock=
|
extended_insert= opt_drop= opt_lock=
|
||||||
opt_disable_keys= opt_autocommit= opt_create_db= 0;
|
opt_disable_keys= opt_autocommit= opt_create_db= 0;
|
||||||
break;
|
break;
|
||||||
@ -1436,7 +1442,7 @@ static uint get_table_structure(char *table, char *db, char *table_type,
|
|||||||
const char *insert_option;
|
const char *insert_option;
|
||||||
char name_buff[NAME_LEN+3],table_buff[NAME_LEN*2+3];
|
char name_buff[NAME_LEN+3],table_buff[NAME_LEN*2+3];
|
||||||
char table_buff2[NAME_LEN*2+3], query_buff[512];
|
char table_buff2[NAME_LEN*2+3], query_buff[512];
|
||||||
FILE *sql_file = md_result_file;
|
FILE *sql_file= md_result_file;
|
||||||
int len;
|
int len;
|
||||||
MYSQL_RES *result;
|
MYSQL_RES *result;
|
||||||
MYSQL_ROW row;
|
MYSQL_ROW row;
|
||||||
@ -1480,7 +1486,7 @@ static uint get_table_structure(char *table, char *db, char *table_type,
|
|||||||
opt_quoted_table= quote_name(table, table_buff2, 0);
|
opt_quoted_table= quote_name(table, table_buff2, 0);
|
||||||
|
|
||||||
if (opt_order_by_primary)
|
if (opt_order_by_primary)
|
||||||
order_by = primary_key_fields(result_table);
|
order_by= primary_key_fields(result_table);
|
||||||
|
|
||||||
if (!opt_xml && !mysql_query_with_error_report(mysql, 0, query_buff))
|
if (!opt_xml && !mysql_query_with_error_report(mysql, 0, query_buff))
|
||||||
{
|
{
|
||||||
@ -1532,7 +1538,7 @@ static uint get_table_structure(char *table, char *db, char *table_type,
|
|||||||
field= mysql_fetch_field_direct(result, 0);
|
field= mysql_fetch_field_direct(result, 0);
|
||||||
if (strcmp(field->name, "View") == 0)
|
if (strcmp(field->name, "View") == 0)
|
||||||
{
|
{
|
||||||
char *scv_buff = NULL;
|
char *scv_buff= NULL;
|
||||||
|
|
||||||
verbose_msg("-- It's a view, create dummy table for view\n");
|
verbose_msg("-- It's a view, create dummy table for view\n");
|
||||||
|
|
||||||
@ -1933,7 +1939,7 @@ static void dump_triggers_for_table (char *table, char *db)
|
|||||||
char name_buff[NAME_LEN*4+3], table_buff[NAME_LEN*2+3];
|
char name_buff[NAME_LEN*4+3], table_buff[NAME_LEN*2+3];
|
||||||
char query_buff[512];
|
char query_buff[512];
|
||||||
uint old_opt_compatible_mode=opt_compatible_mode;
|
uint old_opt_compatible_mode=opt_compatible_mode;
|
||||||
FILE *sql_file = md_result_file;
|
FILE *sql_file= md_result_file;
|
||||||
MYSQL_RES *result;
|
MYSQL_RES *result;
|
||||||
MYSQL_ROW row;
|
MYSQL_ROW row;
|
||||||
|
|
||||||
@ -2177,15 +2183,15 @@ static void dump_table(char *table, char *db)
|
|||||||
end= strmov(end,buff);
|
end= strmov(end,buff);
|
||||||
if (where || order_by)
|
if (where || order_by)
|
||||||
{
|
{
|
||||||
query = alloc_query_str((ulong) ((end - query) + 1 +
|
query= alloc_query_str((ulong) ((end - query) + 1 +
|
||||||
(where ? strlen(where) + 7 : 0) +
|
(where ? strlen(where) + 7 : 0) +
|
||||||
(order_by ? strlen(order_by) + 10 : 0)));
|
(order_by ? strlen(order_by) + 10 : 0)));
|
||||||
end = strmov(query, query_buf);
|
end= strmov(query, query_buf);
|
||||||
|
|
||||||
if (where)
|
if (where)
|
||||||
end = strxmov(end, " WHERE ", where, NullS);
|
end= strxmov(end, " WHERE ", where, NullS);
|
||||||
if (order_by)
|
if (order_by)
|
||||||
end = strxmov(end, " ORDER BY ", order_by, NullS);
|
end= strxmov(end, " ORDER BY ", order_by, NullS);
|
||||||
}
|
}
|
||||||
if (mysql_real_query(mysql, query, (uint) (end - query)))
|
if (mysql_real_query(mysql, query, (uint) (end - query)))
|
||||||
{
|
{
|
||||||
@ -2206,10 +2212,10 @@ static void dump_table(char *table, char *db)
|
|||||||
result_table);
|
result_table);
|
||||||
if (where || order_by)
|
if (where || order_by)
|
||||||
{
|
{
|
||||||
query = alloc_query_str((ulong) (strlen(query) + 1 +
|
query= alloc_query_str((ulong) (strlen(query) + 1 +
|
||||||
(where ? strlen(where) + 7 : 0) +
|
(where ? strlen(where) + 7 : 0) +
|
||||||
(order_by ? strlen(order_by) + 10 : 0)));
|
(order_by ? strlen(order_by) + 10 : 0)));
|
||||||
end = strmov(query, query_buf);
|
end= strmov(query, query_buf);
|
||||||
|
|
||||||
if (where)
|
if (where)
|
||||||
{
|
{
|
||||||
@ -2218,7 +2224,7 @@ static void dump_table(char *table, char *db)
|
|||||||
fprintf(md_result_file, "-- WHERE: %s\n", where);
|
fprintf(md_result_file, "-- WHERE: %s\n", where);
|
||||||
check_io(md_result_file);
|
check_io(md_result_file);
|
||||||
}
|
}
|
||||||
end = strxmov(end, " WHERE ", where, NullS);
|
end= strxmov(end, " WHERE ", where, NullS);
|
||||||
}
|
}
|
||||||
if (order_by)
|
if (order_by)
|
||||||
{
|
{
|
||||||
@ -2227,7 +2233,7 @@ static void dump_table(char *table, char *db)
|
|||||||
fprintf(md_result_file, "-- ORDER BY: %s\n", order_by);
|
fprintf(md_result_file, "-- ORDER BY: %s\n", order_by);
|
||||||
check_io(md_result_file);
|
check_io(md_result_file);
|
||||||
}
|
}
|
||||||
end = strxmov(end, " ORDER BY ", order_by, NullS);
|
end= strxmov(end, " ORDER BY ", order_by, NullS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!opt_xml && !opt_compact)
|
if (!opt_xml && !opt_compact)
|
||||||
@ -2303,12 +2309,12 @@ static void dump_table(char *table, char *db)
|
|||||||
check_io(md_result_file);
|
check_io(md_result_file);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < mysql_num_fields(res); i++)
|
for (i= 0; i < mysql_num_fields(res); i++)
|
||||||
{
|
{
|
||||||
int is_blob;
|
int is_blob;
|
||||||
ulong length= lengths[i];
|
ulong length= lengths[i];
|
||||||
|
|
||||||
if (!(field = mysql_fetch_field(res)))
|
if (!(field= mysql_fetch_field(res)))
|
||||||
{
|
{
|
||||||
my_snprintf(query, QUERY_LENGTH,
|
my_snprintf(query, QUERY_LENGTH,
|
||||||
"%s: Not enough fields from table %s! Aborting.\n",
|
"%s: Not enough fields from table %s! Aborting.\n",
|
||||||
@ -2380,7 +2386,7 @@ static void dump_table(char *table, char *db)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* change any strings ("inf", "-inf", "nan") into NULL */
|
/* change any strings ("inf", "-inf", "nan") into NULL */
|
||||||
char *ptr = row[i];
|
char *ptr= row[i];
|
||||||
if (my_isalpha(charset_info, *ptr) || (*ptr == '-' &&
|
if (my_isalpha(charset_info, *ptr) || (*ptr == '-' &&
|
||||||
my_isalpha(charset_info, ptr[1])))
|
my_isalpha(charset_info, ptr[1])))
|
||||||
dynstr_append(&extended_row, "NULL");
|
dynstr_append(&extended_row, "NULL");
|
||||||
@ -2440,7 +2446,7 @@ static void dump_table(char *table, char *db)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* change any strings ("inf", "-inf", "nan") into NULL */
|
/* change any strings ("inf", "-inf", "nan") into NULL */
|
||||||
char *ptr = row[i];
|
char *ptr= row[i];
|
||||||
if (opt_xml)
|
if (opt_xml)
|
||||||
{
|
{
|
||||||
print_xml_tag1(md_result_file, "\t\t", "field name=",
|
print_xml_tag1(md_result_file, "\t\t", "field name=",
|
||||||
@ -2486,10 +2492,10 @@ static void dump_table(char *table, char *db)
|
|||||||
{
|
{
|
||||||
ulong row_length;
|
ulong row_length;
|
||||||
dynstr_append(&extended_row,")");
|
dynstr_append(&extended_row,")");
|
||||||
row_length = 2 + extended_row.length;
|
row_length= 2 + extended_row.length;
|
||||||
if (total_length + row_length < opt_net_buffer_length)
|
if (total_length + row_length < opt_net_buffer_length)
|
||||||
{
|
{
|
||||||
total_length += row_length;
|
total_length+= row_length;
|
||||||
fputc(',',md_result_file); /* Always row break */
|
fputc(',',md_result_file); /* Always row break */
|
||||||
fputs(extended_row.str,md_result_file);
|
fputs(extended_row.str,md_result_file);
|
||||||
}
|
}
|
||||||
@ -2501,7 +2507,7 @@ static void dump_table(char *table, char *db)
|
|||||||
|
|
||||||
fputs(insert_pat.str,md_result_file);
|
fputs(insert_pat.str,md_result_file);
|
||||||
fputs(extended_row.str,md_result_file);
|
fputs(extended_row.str,md_result_file);
|
||||||
total_length = row_length+init_length;
|
total_length= row_length+init_length;
|
||||||
}
|
}
|
||||||
check_io(md_result_file);
|
check_io(md_result_file);
|
||||||
}
|
}
|
||||||
@ -2566,15 +2572,15 @@ err:
|
|||||||
|
|
||||||
static char *getTableName(int reset)
|
static char *getTableName(int reset)
|
||||||
{
|
{
|
||||||
static MYSQL_RES *res = NULL;
|
static MYSQL_RES *res= NULL;
|
||||||
MYSQL_ROW row;
|
MYSQL_ROW row;
|
||||||
|
|
||||||
if (!res)
|
if (!res)
|
||||||
{
|
{
|
||||||
if (!(res = mysql_list_tables(mysql,NullS)))
|
if (!(res= mysql_list_tables(mysql,NullS)))
|
||||||
return(NULL);
|
return(NULL);
|
||||||
}
|
}
|
||||||
if ((row = mysql_fetch_row(res)))
|
if ((row= mysql_fetch_row(res)))
|
||||||
return((char*) row[0]);
|
return((char*) row[0]);
|
||||||
|
|
||||||
if (reset)
|
if (reset)
|
||||||
@ -2582,7 +2588,7 @@ static char *getTableName(int reset)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
mysql_free_result(res);
|
mysql_free_result(res);
|
||||||
res = NULL;
|
res= NULL;
|
||||||
}
|
}
|
||||||
return(NULL);
|
return(NULL);
|
||||||
} /* getTableName */
|
} /* getTableName */
|
||||||
@ -2596,7 +2602,7 @@ static int dump_all_databases()
|
|||||||
|
|
||||||
if (mysql_query_with_error_report(mysql, &tableres, "SHOW DATABASES"))
|
if (mysql_query_with_error_report(mysql, &tableres, "SHOW DATABASES"))
|
||||||
return 1;
|
return 1;
|
||||||
while ((row = mysql_fetch_row(tableres)))
|
while ((row= mysql_fetch_row(tableres)))
|
||||||
{
|
{
|
||||||
if (dump_all_tables_in_db(row[0]))
|
if (dump_all_tables_in_db(row[0]))
|
||||||
result=1;
|
result=1;
|
||||||
@ -2604,13 +2610,13 @@ static int dump_all_databases()
|
|||||||
if (seen_views)
|
if (seen_views)
|
||||||
{
|
{
|
||||||
if (mysql_query(mysql, "SHOW DATABASES") ||
|
if (mysql_query(mysql, "SHOW DATABASES") ||
|
||||||
!(tableres = mysql_store_result(mysql)))
|
!(tableres= mysql_store_result(mysql)))
|
||||||
{
|
{
|
||||||
my_printf_error(0, "Error: Couldn't execute 'SHOW DATABASES': %s",
|
my_printf_error(0, "Error: Couldn't execute 'SHOW DATABASES': %s",
|
||||||
MYF(0), mysql_error(mysql));
|
MYF(0), mysql_error(mysql));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
while ((row = mysql_fetch_row(tableres)))
|
while ((row= mysql_fetch_row(tableres)))
|
||||||
{
|
{
|
||||||
if (dump_all_views_in_db(row[0]))
|
if (dump_all_views_in_db(row[0]))
|
||||||
result=1;
|
result=1;
|
||||||
@ -2767,6 +2773,7 @@ static int dump_all_tables_in_db(char *database)
|
|||||||
|
|
||||||
char hash_key[2*NAME_LEN+2]; /* "db.tablename" */
|
char hash_key[2*NAME_LEN+2]; /* "db.tablename" */
|
||||||
char *afterdot;
|
char *afterdot;
|
||||||
|
int using_mysql_db= my_strcasecmp(&my_charset_latin1, database, "mysql");
|
||||||
|
|
||||||
afterdot= strmov(hash_key, database);
|
afterdot= strmov(hash_key, database);
|
||||||
*afterdot++= '.';
|
*afterdot++= '.';
|
||||||
@ -2821,6 +2828,11 @@ static int dump_all_tables_in_db(char *database)
|
|||||||
}
|
}
|
||||||
if (lock_tables)
|
if (lock_tables)
|
||||||
VOID(mysql_query_with_error_report(mysql, 0, "UNLOCK TABLES"));
|
VOID(mysql_query_with_error_report(mysql, 0, "UNLOCK TABLES"));
|
||||||
|
if (flush_privileges && using_mysql_db == 0)
|
||||||
|
{
|
||||||
|
fprintf(md_result_file,"\n--\n-- Flush Grant Tables \n--\n");
|
||||||
|
fprintf(md_result_file,"\n/*! FLUSH PRIVILEGES */;\n");
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
} /* dump_all_tables_in_db */
|
} /* dump_all_tables_in_db */
|
||||||
|
|
||||||
@ -3036,7 +3048,7 @@ static int do_show_master_status(MYSQL *mysql_con)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
row = mysql_fetch_row(master);
|
row= mysql_fetch_row(master);
|
||||||
if (row && row[0] && row[1])
|
if (row && row[0] && row[1])
|
||||||
{
|
{
|
||||||
/* SHOW MASTER STATUS reports file and position */
|
/* SHOW MASTER STATUS reports file and position */
|
||||||
@ -3163,7 +3175,7 @@ static void print_value(FILE *file, MYSQL_RES *result, MYSQL_ROW row,
|
|||||||
MYSQL_FIELD *field;
|
MYSQL_FIELD *field;
|
||||||
mysql_field_seek(result, 0);
|
mysql_field_seek(result, 0);
|
||||||
|
|
||||||
for ( ; (field = mysql_fetch_field(result)) ; row++)
|
for ( ; (field= mysql_fetch_field(result)) ; row++)
|
||||||
{
|
{
|
||||||
if (!strcmp(field->name,name))
|
if (!strcmp(field->name,name))
|
||||||
{
|
{
|
||||||
@ -3291,17 +3303,19 @@ char check_if_ignore_table(const char *table_name, char *table_type)
|
|||||||
|
|
||||||
static char *primary_key_fields(const char *table_name)
|
static char *primary_key_fields(const char *table_name)
|
||||||
{
|
{
|
||||||
MYSQL_RES *res = NULL;
|
MYSQL_RES *res= NULL;
|
||||||
MYSQL_ROW row;
|
MYSQL_ROW row;
|
||||||
/* SHOW KEYS FROM + table name * 2 (escaped) + 2 quotes + \0 */
|
/* SHOW KEYS FROM + table name * 2 (escaped) + 2 quotes + \0 */
|
||||||
char show_keys_buff[15 + NAME_LEN * 2 + 3];
|
char show_keys_buff[15 + NAME_LEN * 2 + 3];
|
||||||
uint result_length = 0;
|
uint result_length= 0;
|
||||||
char *result = 0;
|
char *result= 0;
|
||||||
|
char buff[NAME_LEN * 2 + 3];
|
||||||
|
char *quoted_field;
|
||||||
|
|
||||||
my_snprintf(show_keys_buff, sizeof(show_keys_buff),
|
my_snprintf(show_keys_buff, sizeof(show_keys_buff),
|
||||||
"SHOW KEYS FROM %s", table_name);
|
"SHOW KEYS FROM %s", table_name);
|
||||||
if (mysql_query(mysql, show_keys_buff) ||
|
if (mysql_query(mysql, show_keys_buff) ||
|
||||||
!(res = mysql_store_result(mysql)))
|
!(res= mysql_store_result(mysql)))
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Warning: Couldn't read keys from table %s;"
|
fprintf(stderr, "Warning: Couldn't read keys from table %s;"
|
||||||
" records are NOT sorted (%s)\n",
|
" records are NOT sorted (%s)\n",
|
||||||
@ -3316,12 +3330,14 @@ static char *primary_key_fields(const char *table_name)
|
|||||||
* row, and UNIQUE keys come before others. So we only need to check
|
* row, and UNIQUE keys come before others. So we only need to check
|
||||||
* the first key, not all keys.
|
* the first key, not all keys.
|
||||||
*/
|
*/
|
||||||
if ((row = mysql_fetch_row(res)) && atoi(row[1]) == 0)
|
if ((row= mysql_fetch_row(res)) && atoi(row[1]) == 0)
|
||||||
{
|
{
|
||||||
/* Key is unique */
|
/* Key is unique */
|
||||||
do
|
do
|
||||||
result_length += strlen(row[4]) + 1; /* + 1 for ',' or \0 */
|
{
|
||||||
while ((row = mysql_fetch_row(res)) && atoi(row[3]) > 1);
|
quoted_field= quote_name(row[4], buff, 0);
|
||||||
|
result_length+= strlen(quoted_field) + 1; /* + 1 for ',' or \0 */
|
||||||
|
} while ((row= mysql_fetch_row(res)) && atoi(row[3]) > 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Build the ORDER BY clause result */
|
/* Build the ORDER BY clause result */
|
||||||
@ -3329,17 +3345,21 @@ static char *primary_key_fields(const char *table_name)
|
|||||||
{
|
{
|
||||||
char *end;
|
char *end;
|
||||||
/* result (terminating \0 is already in result_length) */
|
/* result (terminating \0 is already in result_length) */
|
||||||
result = my_malloc(result_length + 10, MYF(MY_WME));
|
result= my_malloc(result_length + 10, MYF(MY_WME));
|
||||||
if (!result)
|
if (!result)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Error: Not enough memory to store ORDER BY clause\n");
|
fprintf(stderr, "Error: Not enough memory to store ORDER BY clause\n");
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
mysql_data_seek(res, 0);
|
mysql_data_seek(res, 0);
|
||||||
row = mysql_fetch_row(res);
|
row= mysql_fetch_row(res);
|
||||||
end = strmov(result, row[4]);
|
quoted_field= quote_name(row[4], buff, 0);
|
||||||
while ((row = mysql_fetch_row(res)) && atoi(row[3]) > 1)
|
end= strmov(result, quoted_field);
|
||||||
end = strxmov(end, ",", row[4], NullS);
|
while ((row= mysql_fetch_row(res)) && atoi(row[3]) > 1)
|
||||||
|
{
|
||||||
|
quoted_field= quote_name(row[4], buff, 0);
|
||||||
|
end= strxmov(end, ",", quoted_field, NullS);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
@ -3407,7 +3427,7 @@ static my_bool get_view_structure(char *table, char* db)
|
|||||||
char table_buff[NAME_LEN*2+3];
|
char table_buff[NAME_LEN*2+3];
|
||||||
char table_buff2[NAME_LEN*2+3];
|
char table_buff2[NAME_LEN*2+3];
|
||||||
char query[QUERY_LENGTH];
|
char query[QUERY_LENGTH];
|
||||||
FILE *sql_file = md_result_file;
|
FILE *sql_file= md_result_file;
|
||||||
DBUG_ENTER("get_view_structure");
|
DBUG_ENTER("get_view_structure");
|
||||||
|
|
||||||
if (opt_no_create_info) /* Don't write table creation info */
|
if (opt_no_create_info) /* Don't write table creation info */
|
||||||
|
@ -454,7 +454,7 @@ AC_PATH_PROG(PS, ps, ps)
|
|||||||
AC_MSG_CHECKING("how to check if pid exists")
|
AC_MSG_CHECKING("how to check if pid exists")
|
||||||
PS=$ac_cv_path_PS
|
PS=$ac_cv_path_PS
|
||||||
# Linux style
|
# Linux style
|
||||||
if $PS p $$ 2> /dev/null | grep $0 > /dev/null
|
if $PS p $$ 2> /dev/null | grep `echo $0 | sed s/\-//` > /dev/null
|
||||||
then
|
then
|
||||||
FIND_PROC="$PS p \$\$PID | grep -v grep | grep \$\$MYSQLD > /dev/null"
|
FIND_PROC="$PS p \$\$PID | grep -v grep | grep \$\$MYSQLD > /dev/null"
|
||||||
# Solaris
|
# Solaris
|
||||||
@ -1216,6 +1216,7 @@ EOF
|
|||||||
#
|
#
|
||||||
echo -n "making sure specific build files are writable... "
|
echo -n "making sure specific build files are writable... "
|
||||||
for file in \
|
for file in \
|
||||||
|
Docs/manual.chm \
|
||||||
Docs/mysql.info \
|
Docs/mysql.info \
|
||||||
Docs/INSTALL-BINARY \
|
Docs/INSTALL-BINARY \
|
||||||
INSTALL-SOURCE \
|
INSTALL-SOURCE \
|
||||||
@ -1946,7 +1947,7 @@ esac
|
|||||||
|
|
||||||
# isinf() could be a function or a macro (HPUX)
|
# isinf() could be a function or a macro (HPUX)
|
||||||
AC_MSG_CHECKING(for isinf with <math.h>)
|
AC_MSG_CHECKING(for isinf with <math.h>)
|
||||||
AC_TRY_LINK([#include <math.h>], [float f = 0.0; isinf(f)],
|
AC_TRY_LINK([#include <math.h>], [float f = 0.0; int r = isinf(f); return r],
|
||||||
AC_MSG_RESULT(yes)
|
AC_MSG_RESULT(yes)
|
||||||
AC_DEFINE(HAVE_ISINF, [1], [isinf() macro or function]),
|
AC_DEFINE(HAVE_ISINF, [1], [isinf() macro or function]),
|
||||||
AC_MSG_RESULT(no))
|
AC_MSG_RESULT(no))
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
#endif /* _WIN32 */
|
#endif /* _WIN32 */
|
||||||
|
|
||||||
|
|
||||||
#if !defined(_SOCKLEN_T) && (defined(__MACH__) || defined(_WIN32))
|
#if !defined(_SOCKLEN_T) && defined(_WIN32)
|
||||||
typedef int socklen_t;
|
typedef int socklen_t;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -357,8 +357,10 @@ enum ha_base_keytype {
|
|||||||
#define HA_ERR_TABLE_DEF_CHANGED 159 /* The table changed in storage engine */
|
#define HA_ERR_TABLE_DEF_CHANGED 159 /* The table changed in storage engine */
|
||||||
#define HA_ERR_TABLE_NEEDS_UPGRADE 160 /* The table changed in storage engine */
|
#define HA_ERR_TABLE_NEEDS_UPGRADE 160 /* The table changed in storage engine */
|
||||||
#define HA_ERR_TABLE_READONLY 161 /* The table is not writable */
|
#define HA_ERR_TABLE_READONLY 161 /* The table is not writable */
|
||||||
|
#define HA_ERR_AUTOINC_READ_FAILED 162/* Failed to get the next autoinc value */
|
||||||
|
#define HA_ERR_AUTOINC_ERANGE 163 /* Failed to set the row autoinc value */
|
||||||
|
|
||||||
#define HA_ERR_LAST 161 /*Copy last error nr.*/
|
#define HA_ERR_LAST 163 /*Copy last error nr.*/
|
||||||
/* Add error numbers before HA_ERR_LAST and change it accordingly. */
|
/* Add error numbers before HA_ERR_LAST and change it accordingly. */
|
||||||
#define HA_ERR_ERRORS (HA_ERR_LAST - HA_ERR_FIRST + 1)
|
#define HA_ERR_ERRORS (HA_ERR_LAST - HA_ERR_FIRST + 1)
|
||||||
|
|
||||||
|
@ -111,7 +111,7 @@
|
|||||||
|
|
||||||
|
|
||||||
/* Fix problem with S_ISLNK() on Linux */
|
/* Fix problem with S_ISLNK() on Linux */
|
||||||
#if defined(TARGET_OS_LINUX)
|
#if defined(TARGET_OS_LINUX) || defined(__GLIBC__)
|
||||||
#undef _GNU_SOURCE
|
#undef _GNU_SOURCE
|
||||||
#define _GNU_SOURCE 1
|
#define _GNU_SOURCE 1
|
||||||
#endif
|
#endif
|
||||||
|
@ -61,6 +61,14 @@ C_MODE_START
|
|||||||
|
|
||||||
#if defined(MSDOS) || defined(__WIN__)
|
#if defined(MSDOS) || defined(__WIN__)
|
||||||
#define O_NONBLOCK 1 /* For emulation of fcntl() */
|
#define O_NONBLOCK 1 /* For emulation of fcntl() */
|
||||||
|
|
||||||
|
/*
|
||||||
|
SHUT_RDWR is called SD_BOTH in windows and
|
||||||
|
is defined to 2 in winsock2.h
|
||||||
|
#define SD_BOTH 0x02
|
||||||
|
*/
|
||||||
|
#define SHUT_RDWR 0x02
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -26,9 +26,6 @@
|
|||||||
#define USERNAME_LENGTH 16
|
#define USERNAME_LENGTH 16
|
||||||
#define SERVER_VERSION_LENGTH 60
|
#define SERVER_VERSION_LENGTH 60
|
||||||
#define SQLSTATE_LENGTH 5
|
#define SQLSTATE_LENGTH 5
|
||||||
#define SYSTEM_CHARSET_MBMAXLEN 3
|
|
||||||
#define NAME_BYTE_LEN NAME_LEN*SYSTEM_CHARSET_MBMAXLEN
|
|
||||||
#define USERNAME_BYTE_LENGTH USERNAME_LENGTH*SYSTEM_CHARSET_MBMAXLEN
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
USER_HOST_BUFF_SIZE -- length of string buffer, that is enough to contain
|
USER_HOST_BUFF_SIZE -- length of string buffer, that is enough to contain
|
||||||
@ -36,7 +33,7 @@
|
|||||||
MySQL standard format:
|
MySQL standard format:
|
||||||
user_name_part@host_name_part\0
|
user_name_part@host_name_part\0
|
||||||
*/
|
*/
|
||||||
#define USER_HOST_BUFF_SIZE HOSTNAME_LENGTH + USERNAME_BYTE_LENGTH + 2
|
#define USER_HOST_BUFF_SIZE HOSTNAME_LENGTH + USERNAME_LENGTH + 2
|
||||||
|
|
||||||
#define LOCAL_HOST "localhost"
|
#define LOCAL_HOST "localhost"
|
||||||
#define LOCAL_HOST_NAMEDPIPE "."
|
#define LOCAL_HOST_NAMEDPIPE "."
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
/* Functions to compressed records */
|
/* Functions to compressed records */
|
||||||
|
|
||||||
#include "myisamdef.h"
|
#include "fulltext.h"
|
||||||
|
|
||||||
#define IS_CHAR ((uint) 32768) /* Bit if char (not offset) in tree */
|
#define IS_CHAR ((uint) 32768) /* Bit if char (not offset) in tree */
|
||||||
|
|
||||||
@ -230,11 +230,19 @@ my_bool _mi_read_pack_info(MI_INFO *info, pbool fix_keys)
|
|||||||
{
|
{
|
||||||
for (i=0 ; i < share->base.keys ; i++)
|
for (i=0 ; i < share->base.keys ; i++)
|
||||||
{
|
{
|
||||||
share->keyinfo[i].keylength+=(uint16) diff_length;
|
MI_KEYDEF *keyinfo= &share->keyinfo[i];
|
||||||
share->keyinfo[i].minlength+=(uint16) diff_length;
|
keyinfo->keylength+= (uint16) diff_length;
|
||||||
share->keyinfo[i].maxlength+=(uint16) diff_length;
|
keyinfo->minlength+= (uint16) diff_length;
|
||||||
share->keyinfo[i].seg[share->keyinfo[i].keysegs].length=
|
keyinfo->maxlength+= (uint16) diff_length;
|
||||||
(uint16) rec_reflength;
|
keyinfo->seg[keyinfo->flag & HA_FULLTEXT ?
|
||||||
|
FT_SEGS : keyinfo->keysegs].length= (uint16) rec_reflength;
|
||||||
|
}
|
||||||
|
if (share->ft2_keyinfo.seg)
|
||||||
|
{
|
||||||
|
MI_KEYDEF *ft2_keyinfo= &share->ft2_keyinfo;
|
||||||
|
ft2_keyinfo->keylength+= (uint16) diff_length;
|
||||||
|
ft2_keyinfo->minlength+= (uint16) diff_length;
|
||||||
|
ft2_keyinfo->maxlength+= (uint16) diff_length;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,32 +94,45 @@ int mi_rkey(MI_INFO *info, byte *buf, int inx, const byte *key, uint key_len,
|
|||||||
myisam_read_vec[search_flag], info->s->state.key_root[inx]))
|
myisam_read_vec[search_flag], info->s->state.key_root[inx]))
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
If we are searching for an exact key (including the data pointer)
|
If we searching for a partial key (or using >, >=, < or <=) and
|
||||||
and this was added by an concurrent insert,
|
the data is outside of the data file, we need to continue searching
|
||||||
then the result is "key not found".
|
for the first key inside the data file
|
||||||
*/
|
*/
|
||||||
if ((search_flag == HA_READ_KEY_EXACT) &&
|
if (info->lastpos >= info->state->data_file_length &&
|
||||||
(info->lastpos >= info->state->data_file_length))
|
(search_flag != HA_READ_KEY_EXACT ||
|
||||||
|
last_used_keyseg != keyinfo->seg + keyinfo->keysegs))
|
||||||
{
|
{
|
||||||
my_errno= HA_ERR_KEY_NOT_FOUND;
|
do
|
||||||
info->lastpos= HA_OFFSET_ERROR;
|
{
|
||||||
}
|
uint not_used[2];
|
||||||
else while (info->lastpos >= info->state->data_file_length)
|
/*
|
||||||
{
|
Skip rows that are inserted by other threads since we got a lock
|
||||||
/*
|
Note that this can only happen if we are not searching after an
|
||||||
Skip rows that are inserted by other threads since we got a lock
|
full length exact key, because the keys are sorted
|
||||||
Note that this can only happen if we are not searching after an
|
according to position
|
||||||
exact key, because the keys are sorted according to position
|
*/
|
||||||
*/
|
if (_mi_search_next(info, keyinfo, info->lastkey,
|
||||||
if (_mi_search_next(info, keyinfo, info->lastkey,
|
info->lastkey_length,
|
||||||
info->lastkey_length,
|
myisam_readnext_vec[search_flag],
|
||||||
myisam_readnext_vec[search_flag],
|
info->s->state.key_root[inx]))
|
||||||
info->s->state.key_root[inx]))
|
break;
|
||||||
break;
|
/*
|
||||||
|
Check that the found key does still match the search.
|
||||||
|
_mi_search_next() delivers the next key regardless of its
|
||||||
|
value.
|
||||||
|
*/
|
||||||
|
if (search_flag == HA_READ_KEY_EXACT &&
|
||||||
|
ha_key_cmp(keyinfo->seg, key_buff, info->lastkey, use_key_length,
|
||||||
|
SEARCH_FIND, not_used))
|
||||||
|
{
|
||||||
|
my_errno= HA_ERR_KEY_NOT_FOUND;
|
||||||
|
info->lastpos= HA_OFFSET_ERROR;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} while (info->lastpos >= info->state->data_file_length);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (share->concurrent_insert)
|
if (share->concurrent_insert)
|
||||||
rw_unlock(&share->key_root_lock[inx]);
|
rw_unlock(&share->key_root_lock[inx]);
|
||||||
|
|
||||||
|
@ -8,46 +8,46 @@ myisamchk: MyISAM file test2
|
|||||||
myisamchk: warning: Datafile is almost full, 65532 of 65534 used
|
myisamchk: warning: Datafile is almost full, 65532 of 65534 used
|
||||||
MyISAM-table 'test2' is usable but should be fixed
|
MyISAM-table 'test2' is usable but should be fixed
|
||||||
Commands Used count Errors Recover errors
|
Commands Used count Errors Recover errors
|
||||||
open 1 0 0
|
open 7 0 0
|
||||||
write 50 0 0
|
write 350 0 0
|
||||||
update 5 0 0
|
update 35 0 0
|
||||||
delete 50 0 0
|
delete 350 0 0
|
||||||
close 1 0 0
|
close 7 0 0
|
||||||
extra 6 0 0
|
extra 42 0 0
|
||||||
Total 113 0 0
|
Total 791 0 0
|
||||||
Commands Used count Errors Recover errors
|
Commands Used count Errors Recover errors
|
||||||
open 2 0 0
|
open 8 0 0
|
||||||
write 100 0 0
|
write 400 0 0
|
||||||
update 10 0 0
|
update 40 0 0
|
||||||
delete 100 0 0
|
delete 400 0 0
|
||||||
close 2 0 0
|
close 8 0 0
|
||||||
extra 12 0 0
|
extra 48 0 0
|
||||||
Total 226 0 0
|
Total 904 0 0
|
||||||
|
|
||||||
real 0m0.791s
|
real 0m0.221s
|
||||||
user 0m0.137s
|
user 0m0.120s
|
||||||
sys 0m0.117s
|
sys 0m0.100s
|
||||||
|
|
||||||
real 0m0.659s
|
real 0m0.222s
|
||||||
user 0m0.252s
|
user 0m0.140s
|
||||||
sys 0m0.102s
|
sys 0m0.084s
|
||||||
|
|
||||||
real 0m0.571s
|
real 0m0.232s
|
||||||
user 0m0.188s
|
user 0m0.112s
|
||||||
sys 0m0.098s
|
sys 0m0.120s
|
||||||
|
|
||||||
real 0m1.111s
|
real 0m0.163s
|
||||||
user 0m0.236s
|
user 0m0.116s
|
||||||
sys 0m0.037s
|
sys 0m0.036s
|
||||||
|
|
||||||
real 0m0.621s
|
real 0m0.159s
|
||||||
user 0m0.242s
|
user 0m0.136s
|
||||||
sys 0m0.022s
|
sys 0m0.020s
|
||||||
|
|
||||||
real 0m0.698s
|
real 0m0.147s
|
||||||
user 0m0.248s
|
user 0m0.132s
|
||||||
sys 0m0.021s
|
sys 0m0.016s
|
||||||
|
|
||||||
real 0m0.683s
|
real 0m0.211s
|
||||||
user 0m0.265s
|
user 0m0.124s
|
||||||
sys 0m0.079s
|
sys 0m0.088s
|
||||||
|
@ -79,7 +79,8 @@ myisamchk$suffix -se test1
|
|||||||
|
|
||||||
# check of myisampack / myisamchk
|
# check of myisampack / myisamchk
|
||||||
myisampack$suffix --force -s test1
|
myisampack$suffix --force -s test1
|
||||||
myisamchk$suffix -es test1
|
# Ignore error for index file
|
||||||
|
myisamchk$suffix -es test1 2>&1 >& /dev/null
|
||||||
myisamchk$suffix -rqs test1
|
myisamchk$suffix -rqs test1
|
||||||
myisamchk$suffix -es test1
|
myisamchk$suffix -es test1
|
||||||
myisamchk$suffix -rs test1
|
myisamchk$suffix -rs test1
|
||||||
|
28
mysql-test/include/strict_autoinc.inc
Normal file
28
mysql-test/include/strict_autoinc.inc
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
#
|
||||||
|
# Test for strict-mode autoincrement
|
||||||
|
#
|
||||||
|
|
||||||
|
set @org_mode=@@sql_mode;
|
||||||
|
eval create table t1
|
||||||
|
(
|
||||||
|
`a` tinyint(4) NOT NULL auto_increment,
|
||||||
|
primary key (`a`)
|
||||||
|
) engine = $type ;
|
||||||
|
set @@sql_mode='strict_all_tables';
|
||||||
|
--error ER_WARN_DATA_OUT_OF_RANGE
|
||||||
|
insert into t1 values(1000);
|
||||||
|
select count(*) from t1;
|
||||||
|
|
||||||
|
set auto_increment_increment=1000;
|
||||||
|
set auto_increment_offset=700;
|
||||||
|
--error ER_WARN_DATA_OUT_OF_RANGE
|
||||||
|
insert into t1 values(null);
|
||||||
|
select count(*) from t1;
|
||||||
|
|
||||||
|
set @@sql_mode=@org_mode;
|
||||||
|
insert into t1 values(null);
|
||||||
|
select * from t1;
|
||||||
|
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
# End of test
|
@ -134,7 +134,6 @@ our @mysqld_src_dirs=
|
|||||||
our $glob_win32= 0; # OS and native Win32 executables
|
our $glob_win32= 0; # OS and native Win32 executables
|
||||||
our $glob_win32_perl= 0; # ActiveState Win32 Perl
|
our $glob_win32_perl= 0; # ActiveState Win32 Perl
|
||||||
our $glob_cygwin_perl= 0; # Cygwin Perl
|
our $glob_cygwin_perl= 0; # Cygwin Perl
|
||||||
our $glob_cygwin_shell= undef;
|
|
||||||
our $glob_mysql_test_dir= undef;
|
our $glob_mysql_test_dir= undef;
|
||||||
our $glob_mysql_bench_dir= undef;
|
our $glob_mysql_bench_dir= undef;
|
||||||
our $glob_hostname= undef;
|
our $glob_hostname= undef;
|
||||||
@ -465,10 +464,7 @@ sub initial_setup () {
|
|||||||
{
|
{
|
||||||
# Windows programs like 'mysqld' needs Windows paths
|
# Windows programs like 'mysqld' needs Windows paths
|
||||||
$glob_mysql_test_dir= `cygpath -m "$glob_mysql_test_dir"`;
|
$glob_mysql_test_dir= `cygpath -m "$glob_mysql_test_dir"`;
|
||||||
my $shell= $ENV{'SHELL'} || "/bin/bash";
|
|
||||||
$glob_cygwin_shell= `cygpath -w "$shell"`; # The Windows path c:\...
|
|
||||||
chomp($glob_mysql_test_dir);
|
chomp($glob_mysql_test_dir);
|
||||||
chomp($glob_cygwin_shell);
|
|
||||||
}
|
}
|
||||||
$glob_basedir= dirname($glob_mysql_test_dir);
|
$glob_basedir= dirname($glob_mysql_test_dir);
|
||||||
$glob_mysql_bench_dir= "$glob_basedir/mysql-bench"; # FIXME make configurable
|
$glob_mysql_bench_dir= "$glob_basedir/mysql-bench"; # FIXME make configurable
|
||||||
@ -1117,7 +1113,9 @@ sub executable_setup () {
|
|||||||
$path_ndb_tools_dir= mtr_path_exists("$glob_basedir/ndb/tools");
|
$path_ndb_tools_dir= mtr_path_exists("$glob_basedir/ndb/tools");
|
||||||
$exe_ndb_mgm= "$glob_basedir/ndb/src/mgmclient/ndb_mgm";
|
$exe_ndb_mgm= "$glob_basedir/ndb/src/mgmclient/ndb_mgm";
|
||||||
$lib_udf_example=
|
$lib_udf_example=
|
||||||
mtr_file_exists("$glob_basedir/sql/.libs/udf_example.so");
|
mtr_file_exists("$glob_basedir/sql/.libs/udf_example.so",
|
||||||
|
"$glob_basedir/sql/release/udf_example.dll",
|
||||||
|
"$glob_basedir/sql/debug/udf_example.dll");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -773,3 +773,5 @@ Warnings:
|
|||||||
Warning 1071 Specified key was too long; max key length is 765 bytes
|
Warning 1071 Specified key was too long; max key length is 765 bytes
|
||||||
insert into t1 values('aaa');
|
insert into t1 values('aaa');
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
create table t1 (upgrade int);
|
||||||
|
drop table t1;
|
||||||
|
@ -1340,19 +1340,6 @@ select a from t1 group by a;
|
|||||||
a
|
a
|
||||||
e
|
e
|
||||||
drop table t1;
|
drop table t1;
|
||||||
set names utf8;
|
|
||||||
grant select on test.* to юзер_юзер@localhost;
|
|
||||||
user()
|
|
||||||
юзер_юзер@localhost
|
|
||||||
revoke all on test.* from юзер_юзер@localhost;
|
|
||||||
drop user юзер_юзер@localhost;
|
|
||||||
create database имя_базы_в_кодировке_утф8_длиной_больше_чем_45;
|
|
||||||
use имя_базы_в_кодировке_утф8_длиной_больше_чем_45;
|
|
||||||
select database();
|
|
||||||
database()
|
|
||||||
имя_базы_в_кодировке_утф8_длиной_больше_чем_45
|
|
||||||
drop database имя_базы_в_кодировке_утф8_длиной_больше_чем_45;
|
|
||||||
use test;
|
|
||||||
CREATE TABLE t1(id varchar(20) NOT NULL) DEFAULT CHARSET=utf8;
|
CREATE TABLE t1(id varchar(20) NOT NULL) DEFAULT CHARSET=utf8;
|
||||||
INSERT INTO t1 VALUES ('xxx'), ('aa'), ('yyy'), ('aa');
|
INSERT INTO t1 VALUES ('xxx'), ('aa'), ('yyy'), ('aa');
|
||||||
SELECT id FROM t1;
|
SELECT id FROM t1;
|
||||||
|
@ -172,6 +172,10 @@ a
|
|||||||
0
|
0
|
||||||
2
|
2
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
create table t1 (a int);
|
||||||
|
delete `4.t1` from t1 as `4.t1` where `4.t1`.a = 5;
|
||||||
|
delete FROM `4.t1` USING t1 as `4.t1` where `4.t1`.a = 5;
|
||||||
|
drop table t1;
|
||||||
CREATE TABLE t1 (a int not null,b int not null);
|
CREATE TABLE t1 (a int not null,b int not null);
|
||||||
CREATE TABLE t2 (a int not null, b int not null, primary key (a,b));
|
CREATE TABLE t2 (a int not null, b int not null, primary key (a,b));
|
||||||
CREATE TABLE t3 (a int not null, b int not null, primary key (a,b));
|
CREATE TABLE t3 (a int not null, b int not null, primary key (a,b));
|
||||||
|
@ -566,14 +566,14 @@ COUNT(*) GROUP_CONCAT(DISTINCT t2.somename SEPARATOR ' |')
|
|||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
select * from (select group_concat('c') from DUAL) t;
|
select * from (select group_concat('c') from DUAL) t;
|
||||||
group_concat('c')
|
group_concat('c')
|
||||||
NULL
|
c
|
||||||
create table t1 ( a int not null default 0);
|
create table t1 ( a int not null default 0);
|
||||||
select * from (select group_concat(a) from t1) t2;
|
select * from (select group_concat(a) from t1) t2;
|
||||||
group_concat(a)
|
group_concat(a)
|
||||||
NULL
|
NULL
|
||||||
select group_concat('x') UNION ALL select 1;
|
select group_concat('x') UNION ALL select 1;
|
||||||
group_concat('x')
|
group_concat('x')
|
||||||
NULL
|
x
|
||||||
1
|
1
|
||||||
drop table t1;
|
drop table t1;
|
||||||
CREATE TABLE t1 (id int, a varchar(9));
|
CREATE TABLE t1 (id int, a varchar(9));
|
||||||
|
@ -856,6 +856,22 @@ EXPLAIN SELECT MAX(b) FROM t1;
|
|||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 4
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 4
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a INT, b INT);
|
||||||
|
INSERT INTO t1 VALUES (1,1),(1,2),(2,3);
|
||||||
|
SELECT (SELECT COUNT(DISTINCT t1.b)) FROM t1 GROUP BY t1.a;
|
||||||
|
(SELECT COUNT(DISTINCT t1.b))
|
||||||
|
0
|
||||||
|
2
|
||||||
|
SELECT (SELECT COUNT(DISTINCT 12)) FROM t1 GROUP BY t1.a;
|
||||||
|
(SELECT COUNT(DISTINCT 12))
|
||||||
|
1
|
||||||
|
1
|
||||||
|
SELECT AVG(2), BIT_AND(2), BIT_OR(2), BIT_XOR(2), COUNT(*), COUNT(12),
|
||||||
|
COUNT(DISTINCT 12), MIN(2),MAX(2),STD(2), VARIANCE(2),SUM(2),
|
||||||
|
GROUP_CONCAT(2),GROUP_CONCAT(DISTINCT 2);
|
||||||
|
AVG(2) BIT_AND(2) BIT_OR(2) BIT_XOR(2) COUNT(*) COUNT(12) COUNT(DISTINCT 12) MIN(2) MAX(2) STD(2) VARIANCE(2) SUM(2) GROUP_CONCAT(2) GROUP_CONCAT(DISTINCT 2)
|
||||||
|
2.00000 2 2 2 1 1 1 2 2 0.00000 0.00000 2 2 2
|
||||||
|
DROP TABLE t1;
|
||||||
create table t2 (ff double);
|
create table t2 (ff double);
|
||||||
insert into t2 values (2.2);
|
insert into t2 values (2.2);
|
||||||
select cast(sum(distinct ff) as decimal(5,2)) from t2;
|
select cast(sum(distinct ff) as decimal(5,2)) from t2;
|
||||||
|
@ -1113,4 +1113,39 @@ conv("18383815659218730760",10,10) + 0
|
|||||||
select "18383815659218730760" + 0;
|
select "18383815659218730760" + 0;
|
||||||
"18383815659218730760" + 0
|
"18383815659218730760" + 0
|
||||||
1.8383815659219e+19
|
1.8383815659219e+19
|
||||||
|
CREATE TABLE t1 (code varchar(10));
|
||||||
|
INSERT INTO t1 VALUES ('a12'), ('A12'), ('a13');
|
||||||
|
SELECT ASCII(code), code FROM t1 WHERE code='A12';
|
||||||
|
ASCII(code) code
|
||||||
|
97 a12
|
||||||
|
65 A12
|
||||||
|
SELECT ASCII(code), code FROM t1 WHERE code='A12' AND ASCII(code)=65;
|
||||||
|
ASCII(code) code
|
||||||
|
65 A12
|
||||||
|
INSERT INTO t1 VALUES ('a12 '), ('A12 ');
|
||||||
|
SELECT LENGTH(code), code FROM t1 WHERE code='A12';
|
||||||
|
LENGTH(code) code
|
||||||
|
3 a12
|
||||||
|
3 A12
|
||||||
|
4 a12
|
||||||
|
5 A12
|
||||||
|
SELECT LENGTH(code), code FROM t1 WHERE code='A12' AND LENGTH(code)=5;
|
||||||
|
LENGTH(code) code
|
||||||
|
5 A12
|
||||||
|
ALTER TABLE t1 ADD INDEX (code);
|
||||||
|
CREATE TABLE t2 (id varchar(10) PRIMARY KEY);
|
||||||
|
INSERT INTO t2 VALUES ('a11'), ('a12'), ('a13'), ('a14');
|
||||||
|
SELECT * FROM t1 INNER JOIN t2 ON t1.code=t2.id
|
||||||
|
WHERE t2.id='a12' AND (LENGTH(code)=5 OR code < 'a00');
|
||||||
|
code id
|
||||||
|
A12 a12
|
||||||
|
EXPLAIN EXTENDED
|
||||||
|
SELECT * FROM t1 INNER JOIN t2 ON code=id
|
||||||
|
WHERE id='a12' AND (LENGTH(code)=5 OR code < 'a00');
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 ref code code 13 const 3 Using where; Using index
|
||||||
|
1 SIMPLE t2 ref PRIMARY PRIMARY 12 const 1 Using where; Using index
|
||||||
|
Warnings:
|
||||||
|
Note 1003 select `test`.`t1`.`code` AS `code`,`test`.`t2`.`id` AS `id` from `test`.`t1` join `test`.`t2` where ((`test`.`t1`.`code` = _latin1'a12') and (`test`.`t2`.`id` = _latin1'a12') and (length(`test`.`t1`.`code`) = 5))
|
||||||
|
DROP TABLE t1,t2;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
|
@ -840,39 +840,38 @@ drop table t1;
|
|||||||
create table t1(f1 date, f2 time, f3 datetime);
|
create table t1(f1 date, f2 time, f3 datetime);
|
||||||
insert into t1 values ("2006-01-01", "12:01:01", "2006-01-01 12:01:01");
|
insert into t1 values ("2006-01-01", "12:01:01", "2006-01-01 12:01:01");
|
||||||
insert into t1 values ("2006-01-02", "12:01:02", "2006-01-02 12:01:02");
|
insert into t1 values ("2006-01-02", "12:01:02", "2006-01-02 12:01:02");
|
||||||
select f1 from t1 where f1 between "2006-1-1" and 20060101;
|
select f1 from t1 where f1 between CAST("2006-1-1" as date) and CAST(20060101 as date);
|
||||||
f1
|
f1
|
||||||
2006-01-01
|
2006-01-01
|
||||||
select f1 from t1 where f1 between "2006-1-1" and "2006.1.1";
|
select f1 from t1 where f1 between cast("2006-1-1" as date) and cast("2006.1.1" as date);
|
||||||
f1
|
f1
|
||||||
2006-01-01
|
2006-01-01
|
||||||
select f1 from t1 where date(f1) between "2006-1-1" and "2006.1.1";
|
select f1 from t1 where date(f1) between cast("2006-1-1" as date) and cast("2006.1.1" as date);
|
||||||
f1
|
f1
|
||||||
2006-01-01
|
2006-01-01
|
||||||
select f2 from t1 where f2 between "12:1:2" and "12:2:2";
|
select f2 from t1 where f2 between cast("12:1:2" as time) and cast("12:2:2" as time);
|
||||||
f2
|
f2
|
||||||
12:01:02
|
12:01:02
|
||||||
select f2 from t1 where time(f2) between "12:1:2" and "12:2:2";
|
select f2 from t1 where time(f2) between cast("12:1:2" as time) and cast("12:2:2" as time);
|
||||||
f2
|
f2
|
||||||
12:01:02
|
12:01:02
|
||||||
select f3 from t1 where f3 between "2006-1-1 12:1:1" and "2006-1-1 12:1:2";
|
select f3 from t1 where f3 between cast("2006-1-1 12:1:1" as datetime) and cast("2006-1-1 12:1:2" as datetime);
|
||||||
f3
|
f3
|
||||||
2006-01-01 12:01:01
|
2006-01-01 12:01:01
|
||||||
select f3 from t1 where timestamp(f3) between "2006-1-1 12:1:1" and "2006-1-1 12:1:2";
|
select f3 from t1 where timestamp(f3) between cast("2006-1-1 12:1:1" as datetime) and cast("2006-1-1 12:1:2" as datetime);
|
||||||
f3
|
f3
|
||||||
2006-01-01 12:01:01
|
2006-01-01 12:01:01
|
||||||
select f1 from t1 where "2006-1-1" between f1 and f3;
|
select f1 from t1 where cast("2006-1-1" as date) between f1 and f3;
|
||||||
f1
|
f1
|
||||||
2006-01-01
|
2006-01-01
|
||||||
select f1 from t1 where "2006-1-1" between date(f1) and date(f3);
|
select f1 from t1 where cast("2006-1-1" as date) between date(f1) and date(f3);
|
||||||
f1
|
f1
|
||||||
2006-01-01
|
2006-01-01
|
||||||
select f1 from t1 where "2006-1-1" between f1 and 'zzz';
|
select f1 from t1 where cast("2006-1-1" as date) between f1 and cast('zzz' as date);
|
||||||
f1
|
f1
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1292 Incorrect date value: 'zzz' for column 'f1' at row 1
|
Warning 1292 Truncated incorrect datetime value: 'zzz'
|
||||||
Warning 1292 Truncated incorrect DOUBLE value: 'zzz'
|
Warning 1292 Truncated incorrect datetime value: 'zzz'
|
||||||
Warning 1292 Truncated incorrect DOUBLE value: 'zzz'
|
|
||||||
select f1 from t1 where makedate(2006,1) between date(f1) and date(f3);
|
select f1 from t1 where makedate(2006,1) between date(f1) and date(f3);
|
||||||
f1
|
f1
|
||||||
2006-01-01
|
2006-01-01
|
||||||
|
@ -807,8 +807,8 @@ explain
|
|||||||
SELECT straight_join sql_no_cache v1.a, v1.b, v1.real_b from t2, v1
|
SELECT straight_join sql_no_cache v1.a, v1.b, v1.real_b from t2, v1
|
||||||
where t2.b=v1.a GROUP BY t2.b;
|
where t2.b=v1.a GROUP BY t2.b;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t2 index b b 2 NULL 10 Using index
|
1 SIMPLE t2 index b b 2 NULL 10 Using index
|
||||||
1 PRIMARY t1 eq_ref PRIMARY PRIMARY 1 test.t2.b 1
|
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 1 test.t2.b 1
|
||||||
SELECT straight_join sql_no_cache v1.a, v1.b, v1.real_b from t2, v1
|
SELECT straight_join sql_no_cache v1.a, v1.b, v1.real_b from t2, v1
|
||||||
where t2.b=v1.a GROUP BY t2.b;
|
where t2.b=v1.a GROUP BY t2.b;
|
||||||
a b real_b
|
a b real_b
|
||||||
|
@ -354,7 +354,7 @@ t3 1 a 2 b NULL 13 NULL NULL HASH
|
|||||||
explain select * from t1 ignore key(btree_idx), t3 where t1.name='matt' and t3.a = concat('',t1.name) and t3.b=t1.name;
|
explain select * from t1 ignore key(btree_idx), t3 where t1.name='matt' and t3.a = concat('',t1.name) and t3.b=t1.name;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref heap_idx heap_idx 22 const 7 Using where
|
1 SIMPLE t1 ref heap_idx heap_idx 22 const 7 Using where
|
||||||
1 SIMPLE t3 ref a a 44 const,const 7 Using where
|
1 SIMPLE t3 ref a a 44 func,const 7 Using where
|
||||||
drop table t1, t2, t3;
|
drop table t1, t2, t3;
|
||||||
create temporary table t1 ( a int, index (a) ) engine=memory;
|
create temporary table t1 ( a int, index (a) ) engine=memory;
|
||||||
insert into t1 values (1),(2),(3),(4),(5);
|
insert into t1 values (1),(2),(3),(4),(5);
|
||||||
|
@ -424,3 +424,34 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t3 index_merge a,b a,b 5,5 NULL # Using intersect(a,b); Using where
|
1 SIMPLE t3 index_merge a,b a,b 5,5 NULL # Using intersect(a,b); Using where
|
||||||
drop table t3;
|
drop table t3;
|
||||||
drop table t0, t1, t2;
|
drop table t0, t1, t2;
|
||||||
|
CREATE TABLE t1(a INT);
|
||||||
|
INSERT INTO t1 VALUES(1);
|
||||||
|
CREATE TABLE t2(a INT, b INT, dummy CHAR(16) DEFAULT '', KEY(a), KEY(b));
|
||||||
|
INSERT INTO t2(a,b) VALUES
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(1,2);
|
||||||
|
LOCK TABLES t1 WRITE, t2 WRITE;
|
||||||
|
INSERT INTO t2(a,b) VALUES(1,2);
|
||||||
|
SELECT t2.a FROM t1,t2 WHERE t2.b=2 AND t2.a=1;
|
||||||
|
a
|
||||||
|
1
|
||||||
|
1
|
||||||
|
UNLOCK TABLES;
|
||||||
|
DROP TABLE t1, t2;
|
||||||
|
@ -337,7 +337,7 @@ mysql
|
|||||||
test
|
test
|
||||||
explain select * from v0;
|
explain select * from v0;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY # ALL NULL NULL NULL NULL 2
|
1 SIMPLE # ALL NULL NULL NULL NULL 2
|
||||||
create view v1 (c) as select table_name from information_schema.tables
|
create view v1 (c) as select table_name from information_schema.tables
|
||||||
where table_name="v1";
|
where table_name="v1";
|
||||||
select * from v1;
|
select * from v1;
|
||||||
|
@ -118,7 +118,7 @@ min(7)
|
|||||||
NULL
|
NULL
|
||||||
select min(7) from DUAL;
|
select min(7) from DUAL;
|
||||||
min(7)
|
min(7)
|
||||||
NULL
|
7
|
||||||
explain select min(7) from t2m join t1m;
|
explain select min(7) from t2m join t1m;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||||
@ -133,7 +133,7 @@ max(7)
|
|||||||
NULL
|
NULL
|
||||||
select max(7) from DUAL;
|
select max(7) from DUAL;
|
||||||
max(7)
|
max(7)
|
||||||
NULL
|
7
|
||||||
explain select max(7) from t2m join t1m;
|
explain select max(7) from t2m join t1m;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||||
@ -172,7 +172,7 @@ min(7)
|
|||||||
NULL
|
NULL
|
||||||
select min(7) from DUAL;
|
select min(7) from DUAL;
|
||||||
min(7)
|
min(7)
|
||||||
NULL
|
7
|
||||||
explain select min(7) from t2i join t1i;
|
explain select min(7) from t2i join t1i;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2i ALL NULL NULL NULL NULL 1
|
1 SIMPLE t2i ALL NULL NULL NULL NULL 1
|
||||||
@ -188,7 +188,7 @@ max(7)
|
|||||||
NULL
|
NULL
|
||||||
select max(7) from DUAL;
|
select max(7) from DUAL;
|
||||||
max(7)
|
max(7)
|
||||||
NULL
|
7
|
||||||
explain select max(7) from t2i join t1i;
|
explain select max(7) from t2i join t1i;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2i ALL NULL NULL NULL NULL 1
|
1 SIMPLE t2i ALL NULL NULL NULL NULL 1
|
||||||
|
@ -695,6 +695,16 @@ CREATE TABLE t2 (z int, y int);
|
|||||||
CREATE TABLE t3 (a int, b int);
|
CREATE TABLE t3 (a int, b int);
|
||||||
INSERT INTO t3 (SELECT x, y FROM t1 JOIN t2 USING (y) WHERE z = 1);
|
INSERT INTO t3 (SELECT x, y FROM t1 JOIN t2 USING (y) WHERE z = 1);
|
||||||
DROP TABLE IF EXISTS t1,t2,t3;
|
DROP TABLE IF EXISTS t1,t2,t3;
|
||||||
|
CREATE DATABASE bug21774_1;
|
||||||
|
CREATE DATABASE bug21774_2;
|
||||||
|
CREATE TABLE bug21774_1.t1(id VARCHAR(10) NOT NULL,label VARCHAR(255));
|
||||||
|
CREATE TABLE bug21774_2.t1(id VARCHAR(10) NOT NULL,label VARCHAR(255));
|
||||||
|
CREATE TABLE bug21774_1.t2(id VARCHAR(10) NOT NULL,label VARCHAR(255));
|
||||||
|
INSERT INTO bug21774_2.t1 SELECT t1.* FROM bug21774_1.t1;
|
||||||
|
use bug21774_1;
|
||||||
|
INSERT INTO bug21774_2.t1 SELECT t1.* FROM t1;
|
||||||
|
DROP DATABASE bug21774_1;
|
||||||
|
DROP DATABASE bug21774_2;
|
||||||
CREATE DATABASE meow;
|
CREATE DATABASE meow;
|
||||||
CREATE TABLE table_target ( mexs_id CHAR(8), messzeit TIMESTAMP, PRIMARY KEY (mexs_id));
|
CREATE TABLE table_target ( mexs_id CHAR(8), messzeit TIMESTAMP, PRIMARY KEY (mexs_id));
|
||||||
CREATE TABLE table_target2 ( mexs_id CHAR(8), messzeit TIMESTAMP, PRIMARY KEY (mexs_id));
|
CREATE TABLE table_target2 ( mexs_id CHAR(8), messzeit TIMESTAMP, PRIMARY KEY (mexs_id));
|
||||||
|
@ -63,9 +63,9 @@ Warnings:
|
|||||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,values(`test`.`t1`.`a`) AS `VALUES(a)` from `test`.`t1`
|
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c`,values(`test`.`t1`.`a`) AS `VALUES(a)` from `test`.`t1`
|
||||||
explain extended select * from t1 where values(a);
|
explain extended select * from t1 where values(a);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c` from `test`.`t1`
|
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c` from `test`.`t1` where values(`test`.`t1`.`a`)
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
create table t1(a int primary key, b int);
|
create table t1(a int primary key, b int);
|
||||||
insert into t1 values(1,1),(2,2),(3,3),(4,4),(5,5);
|
insert into t1 values(1,1),(2,2),(3,3),(4,4),(5,5);
|
||||||
@ -197,3 +197,25 @@ PRIMARY KEY (a)
|
|||||||
) ENGINE=MyISAM;
|
) ENGINE=MyISAM;
|
||||||
INSERT INTO t1 ( a ) SELECT 0 ON DUPLICATE KEY UPDATE a = a + VALUES (a) ;
|
INSERT INTO t1 ( a ) SELECT 0 ON DUPLICATE KEY UPDATE a = a + VALUES (a) ;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1
|
||||||
|
(
|
||||||
|
a BIGINT UNSIGNED,
|
||||||
|
b BIGINT UNSIGNED,
|
||||||
|
PRIMARY KEY (a)
|
||||||
|
);
|
||||||
|
INSERT INTO t1 VALUES (45, 1) ON DUPLICATE KEY UPDATE b =
|
||||||
|
IF(VALUES(b) > t1.b, VALUES(b), t1.b);
|
||||||
|
SELECT * FROM t1;
|
||||||
|
a b
|
||||||
|
45 1
|
||||||
|
INSERT INTO t1 VALUES (45, 2) ON DUPLICATE KEY UPDATE b =
|
||||||
|
IF(VALUES(b) > t1.b, VALUES(b), t1.b);
|
||||||
|
SELECT * FROM t1;
|
||||||
|
a b
|
||||||
|
45 2
|
||||||
|
INSERT INTO t1 VALUES (45, 1) ON DUPLICATE KEY UPDATE b =
|
||||||
|
IF(VALUES(b) > t1.b, VALUES(b), t1.b);
|
||||||
|
SELECT * FROM t1;
|
||||||
|
a b
|
||||||
|
45 2
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -1126,7 +1126,7 @@ a b a b
|
|||||||
7 8 7 5
|
7 8 7 5
|
||||||
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t1.a = t2.a OR t1.a = t2.b;
|
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t1.a = t2.a OR t1.a = t2.b;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 4 Using where
|
1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 4
|
||||||
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1
|
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1
|
||||||
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t1.a IN(t2.a, t2.b);
|
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t1.a IN(t2.a, t2.b);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
@ -515,6 +515,34 @@ select c1 from t1 order by c1 limit 1;
|
|||||||
c1
|
c1
|
||||||
a
|
a
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
create table t1 (a int not null, primary key(a));
|
||||||
|
create table t2 (a int not null, b int not null, primary key(a,b));
|
||||||
|
insert into t1 values (1),(2),(3),(4),(5),(6);
|
||||||
|
insert into t2 values (1,1),(2,1);
|
||||||
|
lock tables t1 read local, t2 read local;
|
||||||
|
select straight_join * from t1,t2 force index (primary) where t1.a=t2.a;
|
||||||
|
a a b
|
||||||
|
1 1 1
|
||||||
|
2 2 1
|
||||||
|
insert into t2 values(2,0);
|
||||||
|
select straight_join * from t1,t2 force index (primary) where t1.a=t2.a;
|
||||||
|
a a b
|
||||||
|
1 1 1
|
||||||
|
2 2 1
|
||||||
|
drop table t1,t2;
|
||||||
|
CREATE TABLE t1 (c1 varchar(250) NOT NULL);
|
||||||
|
CREATE TABLE t2 (c1 varchar(250) NOT NULL, PRIMARY KEY (c1));
|
||||||
|
INSERT INTO t1 VALUES ('test000001'), ('test000002'), ('test000003');
|
||||||
|
INSERT INTO t2 VALUES ('test000002'), ('test000003'), ('test000004');
|
||||||
|
LOCK TABLES t1 READ LOCAL, t2 READ LOCAL;
|
||||||
|
SELECT t1.c1 AS t1c1, t2.c1 AS t2c1 FROM t1, t2
|
||||||
|
WHERE t1.c1 = t2.c1 HAVING t1c1 != t2c1;
|
||||||
|
t1c1 t2c1
|
||||||
|
INSERT INTO t2 VALUES ('test000001'), ('test000005');
|
||||||
|
SELECT t1.c1 AS t1c1, t2.c1 AS t2c1 FROM t1, t2
|
||||||
|
WHERE t1.c1 = t2.c1 HAVING t1c1 != t2c1;
|
||||||
|
t1c1 t2c1
|
||||||
|
DROP TABLE t1,t2;
|
||||||
CREATE TABLE t1 (`a` int(11) NOT NULL default '0', `b` int(11) NOT NULL default '0', UNIQUE KEY `a` USING RTREE (`a`,`b`)) ENGINE=MyISAM;
|
CREATE TABLE t1 (`a` int(11) NOT NULL default '0', `b` int(11) NOT NULL default '0', UNIQUE KEY `a` USING RTREE (`a`,`b`)) ENGINE=MyISAM;
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
create table t1 (a int, b varchar(200), c text not null) checksum=1;
|
create table t1 (a int, b varchar(200), c text not null) checksum=1;
|
||||||
|
@ -85,6 +85,12 @@ c_cp932
|
|||||||
| NULL | NULL | Τη γλώσσα |
|
| NULL | NULL | Τη γλώσσα |
|
||||||
| NULL | NULL | ᛖᚴ ᚷᛖᛏ |
|
| NULL | NULL | ᛖᚴ ᚷᛖᛏ |
|
||||||
+------+------+---------------------------+
|
+------+------+---------------------------+
|
||||||
|
i j k
|
||||||
|
NULL 1 NULL
|
||||||
|
Field Type Null Key Default Extra
|
||||||
|
i int(11) YES NULL
|
||||||
|
j int(11) NO
|
||||||
|
k int(11) YES NULL
|
||||||
+------+---+------+
|
+------+---+------+
|
||||||
| i | j | k |
|
| i | j | k |
|
||||||
+------+---+------+
|
+------+---+------+
|
||||||
@ -97,6 +103,10 @@ c_cp932
|
|||||||
| j | int(11) | NO | | | |
|
| j | int(11) | NO | | | |
|
||||||
| k | int(11) | YES | | NULL | |
|
| k | int(11) | YES | | NULL | |
|
||||||
+-------+---------+------+-----+---------+-------+
|
+-------+---------+------+-----+---------+-------+
|
||||||
|
i s1
|
||||||
|
1 x
|
||||||
|
2 NULL
|
||||||
|
3
|
||||||
+------+------+
|
+------+------+
|
||||||
| i | s1 |
|
| i | s1 |
|
||||||
+------+------+
|
+------+------+
|
||||||
@ -104,6 +114,13 @@ c_cp932
|
|||||||
| 2 | NULL |
|
| 2 | NULL |
|
||||||
| 3 | |
|
| 3 | |
|
||||||
+------+------+
|
+------+------+
|
||||||
|
unhex('zz')
|
||||||
|
NULL
|
||||||
|
+-------------+
|
||||||
|
| unhex('zz') |
|
||||||
|
+-------------+
|
||||||
|
| NULL |
|
||||||
|
+-------------+
|
||||||
create table t1(a int, b varchar(255), c int);
|
create table t1(a int, b varchar(255), c int);
|
||||||
Field Type Null Key Default Extra
|
Field Type Null Key Default Extra
|
||||||
a int(11) YES NULL
|
a int(11) YES NULL
|
||||||
|
@ -22,6 +22,9 @@ INSERT INTO t1 VALUES (1), (2);
|
|||||||
</database>
|
</database>
|
||||||
</mysqldump>
|
</mysqldump>
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# Bug #2005
|
||||||
|
#
|
||||||
CREATE TABLE t1 (a decimal(64, 20));
|
CREATE TABLE t1 (a decimal(64, 20));
|
||||||
INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890"),
|
INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890"),
|
||||||
("0987654321098765432109876543210987654321");
|
("0987654321098765432109876543210987654321");
|
||||||
@ -30,6 +33,9 @@ CREATE TABLE `t1` (
|
|||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||||
INSERT INTO `t1` VALUES ('1234567890123456789012345678901234567890.00000000000000000000'),('987654321098765432109876543210987654321.00000000000000000000');
|
INSERT INTO `t1` VALUES ('1234567890123456789012345678901234567890.00000000000000000000'),('987654321098765432109876543210987654321.00000000000000000000');
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# Bug #2055
|
||||||
|
#
|
||||||
CREATE TABLE t1 (a double);
|
CREATE TABLE t1 (a double);
|
||||||
INSERT INTO t1 VALUES ('-9e999999');
|
INSERT INTO t1 VALUES ('-9e999999');
|
||||||
Warnings:
|
Warnings:
|
||||||
@ -39,6 +45,9 @@ CREATE TABLE `t1` (
|
|||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||||
INSERT INTO `t1` VALUES (RES);
|
INSERT INTO `t1` VALUES (RES);
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# Bug #3361 mysqldump quotes DECIMAL values inconsistently
|
||||||
|
#
|
||||||
CREATE TABLE t1 (a DECIMAL(10,5), b FLOAT);
|
CREATE TABLE t1 (a DECIMAL(10,5), b FLOAT);
|
||||||
INSERT INTO t1 VALUES (1.2345, 2.3456);
|
INSERT INTO t1 VALUES (1.2345, 2.3456);
|
||||||
INSERT INTO t1 VALUES ('1.2345', 2.3456);
|
INSERT INTO t1 VALUES ('1.2345', 2.3456);
|
||||||
@ -136,6 +145,9 @@ INSERT INTO t1 VALUES (1, "test", "tes"), (2, "TEST", "TES");
|
|||||||
</database>
|
</database>
|
||||||
</mysqldump>
|
</mysqldump>
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# Bug #1707
|
||||||
|
#
|
||||||
CREATE TABLE t1 (`a"b"` char(2));
|
CREATE TABLE t1 (`a"b"` char(2));
|
||||||
INSERT INTO t1 VALUES ("1\""), ("\"2");
|
INSERT INTO t1 VALUES ("1\""), ("\"2");
|
||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
@ -155,6 +167,10 @@ INSERT INTO t1 VALUES ("1\""), ("\"2");
|
|||||||
</database>
|
</database>
|
||||||
</mysqldump>
|
</mysqldump>
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# Bug #1994
|
||||||
|
# Bug #4261
|
||||||
|
#
|
||||||
CREATE TABLE t1 (a VARCHAR(255)) DEFAULT CHARSET koi8r;
|
CREATE TABLE t1 (a VARCHAR(255)) DEFAULT CHARSET koi8r;
|
||||||
INSERT INTO t1 VALUES (_koi8r x'C1C2C3C4C5'), (NULL);
|
INSERT INTO t1 VALUES (_koi8r x'C1C2C3C4C5'), (NULL);
|
||||||
|
|
||||||
@ -190,6 +206,9 @@ UNLOCK TABLES;
|
|||||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# Bug #2634
|
||||||
|
#
|
||||||
CREATE TABLE t1 (a int) ENGINE=MYISAM;
|
CREATE TABLE t1 (a int) ENGINE=MYISAM;
|
||||||
INSERT INTO t1 VALUES (1), (2);
|
INSERT INTO t1 VALUES (1), (2);
|
||||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||||
@ -239,11 +258,17 @@ UNLOCK TABLES;
|
|||||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# Bug #2592 'mysqldump doesn't quote "tricky" names correctly'
|
||||||
|
#
|
||||||
create table ```a` (i int);
|
create table ```a` (i int);
|
||||||
CREATE TABLE ```a` (
|
CREATE TABLE ```a` (
|
||||||
`i` int(11) default NULL
|
`i` int(11) default NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||||
drop table ```a`;
|
drop table ```a`;
|
||||||
|
#
|
||||||
|
# Bug #2591 "mysqldump quotes names inconsistently"
|
||||||
|
#
|
||||||
create table t1(a int);
|
create table t1(a int);
|
||||||
|
|
||||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||||
@ -352,6 +377,9 @@ UNLOCK TABLES;
|
|||||||
|
|
||||||
set global sql_mode='';
|
set global sql_mode='';
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
#
|
||||||
|
# Bug #2705 'mysqldump --tab extra output'
|
||||||
|
#
|
||||||
create table t1(a int);
|
create table t1(a int);
|
||||||
insert into t1 values (1),(2),(3);
|
insert into t1 values (1),(2),(3);
|
||||||
|
|
||||||
@ -380,6 +408,9 @@ CREATE TABLE `t1` (
|
|||||||
2
|
2
|
||||||
3
|
3
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
#
|
||||||
|
# Bug #6101: create database problem
|
||||||
|
#
|
||||||
|
|
||||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||||
@ -432,6 +463,12 @@ USE `mysqldump_test_db`;
|
|||||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
drop database mysqldump_test_db;
|
drop database mysqldump_test_db;
|
||||||
|
#
|
||||||
|
# Bug #7020
|
||||||
|
# Check that we don't dump in UTF8 in compatible mode by default,
|
||||||
|
# but use the default compiled values, or the values given in
|
||||||
|
# --default-character-set=xxx. However, we should dump in UTF8
|
||||||
|
# if it is explicitely set.
|
||||||
CREATE TABLE t1 (a CHAR(10));
|
CREATE TABLE t1 (a CHAR(10));
|
||||||
INSERT INTO t1 VALUES (_latin1 '<27><><EFBFBD><EFBFBD>');
|
INSERT INTO t1 VALUES (_latin1 '<27><><EFBFBD><EFBFBD>');
|
||||||
|
|
||||||
@ -465,6 +502,13 @@ UNLOCK TABLES;
|
|||||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#8063: make test mysqldump [ fail ]
|
||||||
|
# We cannot tes this command because its output depends
|
||||||
|
# on --default-character-set incompiled into "mysqldump" program.
|
||||||
|
# If the future we can move this command into a separate test with
|
||||||
|
# checking that "mysqldump" is compiled with "latin1"
|
||||||
|
#
|
||||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||||
@ -535,6 +579,9 @@ UNLOCK TABLES;
|
|||||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# WL #2319: Exclude Tables from dump
|
||||||
|
#
|
||||||
CREATE TABLE t1 (a int);
|
CREATE TABLE t1 (a int);
|
||||||
CREATE TABLE t2 (a int);
|
CREATE TABLE t2 (a int);
|
||||||
INSERT INTO t1 VALUES (1),(2),(3);
|
INSERT INTO t1 VALUES (1),(2),(3);
|
||||||
@ -572,6 +619,9 @@ UNLOCK TABLES;
|
|||||||
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
|
#
|
||||||
|
# Bug #8830
|
||||||
|
#
|
||||||
CREATE TABLE t1 (`b` blob);
|
CREATE TABLE t1 (`b` blob);
|
||||||
INSERT INTO `t1` VALUES (0x602010000280100005E71A);
|
INSERT INTO `t1` VALUES (0x602010000280100005E71A);
|
||||||
|
|
||||||
@ -606,6 +656,9 @@ UNLOCK TABLES;
|
|||||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# Test for --insert-ignore
|
||||||
|
#
|
||||||
CREATE TABLE t1 (a int);
|
CREATE TABLE t1 (a int);
|
||||||
INSERT INTO t1 VALUES (1),(2),(3);
|
INSERT INTO t1 VALUES (1),(2),(3);
|
||||||
INSERT INTO t1 VALUES (4),(5),(6);
|
INSERT INTO t1 VALUES (4),(5),(6);
|
||||||
@ -670,6 +723,10 @@ INSERT DELAYED IGNORE INTO `t1` VALUES (1),(2),(3),(4),(5),(6);
|
|||||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# Bug #10286: mysqldump -c crashes on table that has many fields with long
|
||||||
|
# names
|
||||||
|
#
|
||||||
create table t1 (
|
create table t1 (
|
||||||
F_c4ca4238a0b923820dcc509a6f75849b int,
|
F_c4ca4238a0b923820dcc509a6f75849b int,
|
||||||
F_c81e728d9d4c2f636f067f89cc14862c int,
|
F_c81e728d9d4c2f636f067f89cc14862c int,
|
||||||
@ -1363,6 +1420,9 @@ UNLOCK TABLES;
|
|||||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
#
|
||||||
|
# Test for --add-drop-database
|
||||||
|
#
|
||||||
CREATE TABLE t1 (a int);
|
CREATE TABLE t1 (a int);
|
||||||
INSERT INTO t1 VALUES (1),(2),(3);
|
INSERT INTO t1 VALUES (1),(2),(3);
|
||||||
|
|
||||||
@ -1403,6 +1463,9 @@ UNLOCK TABLES;
|
|||||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# Bug #9558 mysqldump --no-data db t1 t2 format still dumps data
|
||||||
|
#
|
||||||
CREATE DATABASE mysqldump_test_db;
|
CREATE DATABASE mysqldump_test_db;
|
||||||
USE mysqldump_test_db;
|
USE mysqldump_test_db;
|
||||||
CREATE TABLE t1 ( a INT );
|
CREATE TABLE t1 ( a INT );
|
||||||
@ -1491,6 +1554,11 @@ CREATE TABLE `t2` (
|
|||||||
</mysqldump>
|
</mysqldump>
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
DROP DATABASE mysqldump_test_db;
|
DROP DATABASE mysqldump_test_db;
|
||||||
|
#
|
||||||
|
# Testing with tables and databases that don't exists
|
||||||
|
# or contains illegal characters
|
||||||
|
# (Bug #9358 mysqldump crashes if tablename starts with \)
|
||||||
|
#
|
||||||
create database mysqldump_test_db;
|
create database mysqldump_test_db;
|
||||||
use mysqldump_test_db;
|
use mysqldump_test_db;
|
||||||
create table t1(a varchar(30) primary key, b int not null);
|
create table t1(a varchar(30) primary key, b int not null);
|
||||||
@ -1529,6 +1597,9 @@ mysqldump: Got error: 1102: Incorrect database name 'mysqld\ump_test_db' when se
|
|||||||
drop table t1, t2, t3;
|
drop table t1, t2, t3;
|
||||||
drop database mysqldump_test_db;
|
drop database mysqldump_test_db;
|
||||||
use test;
|
use test;
|
||||||
|
#
|
||||||
|
# Bug #9657 mysqldump xml ( -x ) does not format NULL fields correctly
|
||||||
|
#
|
||||||
create table t1 (a int(10));
|
create table t1 (a int(10));
|
||||||
create table t2 (pk int primary key auto_increment,
|
create table t2 (pk int primary key auto_increment,
|
||||||
a int(10), b varchar(30), c datetime, d blob, e text);
|
a int(10), b varchar(30), c datetime, d blob, e text);
|
||||||
@ -1585,6 +1656,9 @@ insert into t2 (a, b) values (NULL, NULL),(10, NULL),(NULL, "twenty"),(30, "thir
|
|||||||
</database>
|
</database>
|
||||||
</mysqldump>
|
</mysqldump>
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
#
|
||||||
|
# BUG #12123
|
||||||
|
#
|
||||||
create table t1 (a text character set utf8, b text character set latin1);
|
create table t1 (a text character set utf8, b text character set latin1);
|
||||||
insert t1 values (0x4F736E616272C3BC636B, 0x4BF66C6E);
|
insert t1 values (0x4F736E616272C3BC636B, 0x4BF66C6E);
|
||||||
select * from t1;
|
select * from t1;
|
||||||
@ -1595,7 +1669,13 @@ select * from t1;
|
|||||||
a b
|
a b
|
||||||
Osnabr<EFBFBD>ck K<>ln
|
Osnabr<EFBFBD>ck K<>ln
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
#
|
||||||
|
# BUG#15328 Segmentation fault occured if my.cnf is invalid for escape sequence
|
||||||
|
#
|
||||||
--fields-optionally-enclosed-by="
|
--fields-optionally-enclosed-by="
|
||||||
|
#
|
||||||
|
# BUG #19025 mysqldump doesn't correctly dump "auto_increment = [int]"
|
||||||
|
#
|
||||||
create table `t1` (
|
create table `t1` (
|
||||||
t1_name varchar(255) default null,
|
t1_name varchar(255) default null,
|
||||||
t1_id int(10) unsigned not null auto_increment,
|
t1_id int(10) unsigned not null auto_increment,
|
||||||
@ -1633,6 +1713,9 @@ t1 CREATE TABLE `t1` (
|
|||||||
KEY `t1_name` (`t1_name`)
|
KEY `t1_name` (`t1_name`)
|
||||||
) ENGINE=MyISAM AUTO_INCREMENT=1003 DEFAULT CHARSET=latin1
|
) ENGINE=MyISAM AUTO_INCREMENT=1003 DEFAULT CHARSET=latin1
|
||||||
drop table `t1`;
|
drop table `t1`;
|
||||||
|
#
|
||||||
|
# Bug #18536: wrong table order
|
||||||
|
#
|
||||||
create table t1(a int);
|
create table t1(a int);
|
||||||
create table t2(a int);
|
create table t2(a int);
|
||||||
create table t3(a int);
|
create table t3(a int);
|
||||||
@ -1670,6 +1753,9 @@ CREATE TABLE `t2` (
|
|||||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
drop table t1, t2, t3;
|
drop table t1, t2, t3;
|
||||||
|
#
|
||||||
|
# Bug #21288: mysqldump segmentation fault when using --where
|
||||||
|
#
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
mysqldump: Couldn't execute 'SELECT /*!40001 SQL_NO_CACHE */ * FROM `t1` WHERE xx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx': You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' at line 1 (1064)
|
mysqldump: Couldn't execute 'SELECT /*!40001 SQL_NO_CACHE */ * FROM `t1` WHERE xx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx': You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' at line 1 (1064)
|
||||||
mysqldump: Got error: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' at line 1 when retrieving data from server
|
mysqldump: Got error: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' at line 1 when retrieving data from server
|
||||||
@ -1701,6 +1787,9 @@ CREATE TABLE `t1` (
|
|||||||
|
|
||||||
drop table t1;
|
drop table t1;
|
||||||
End of 4.1 tests
|
End of 4.1 tests
|
||||||
|
#
|
||||||
|
# Bug #10213 mysqldump crashes when dumping VIEWs(on MacOS X)
|
||||||
|
#
|
||||||
create database db1;
|
create database db1;
|
||||||
use db1;
|
use db1;
|
||||||
CREATE TABLE t2 (
|
CREATE TABLE t2 (
|
||||||
@ -1760,6 +1849,9 @@ drop table t2;
|
|||||||
drop view v2;
|
drop view v2;
|
||||||
drop database db1;
|
drop database db1;
|
||||||
use test;
|
use test;
|
||||||
|
#
|
||||||
|
# Bug 10713 mysqldump includes database in create view and referenced tables
|
||||||
|
#
|
||||||
create database db2;
|
create database db2;
|
||||||
use db2;
|
use db2;
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
@ -1833,6 +1925,9 @@ DROP TABLE IF EXISTS `v1`;
|
|||||||
|
|
||||||
drop view v1;
|
drop view v1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
#
|
||||||
|
# Bug #10213 mysqldump crashes when dumping VIEWs(on MacOS X)
|
||||||
|
#
|
||||||
create database mysqldump_test_db;
|
create database mysqldump_test_db;
|
||||||
use mysqldump_test_db;
|
use mysqldump_test_db;
|
||||||
CREATE TABLE t2 (
|
CREATE TABLE t2 (
|
||||||
@ -1892,6 +1987,9 @@ drop table t2;
|
|||||||
drop view v2;
|
drop view v2;
|
||||||
drop database mysqldump_test_db;
|
drop database mysqldump_test_db;
|
||||||
use test;
|
use test;
|
||||||
|
#
|
||||||
|
# Bug #9756
|
||||||
|
#
|
||||||
CREATE TABLE t1 (a char(10));
|
CREATE TABLE t1 (a char(10));
|
||||||
INSERT INTO t1 VALUES ('\'');
|
INSERT INTO t1 VALUES ('\'');
|
||||||
|
|
||||||
@ -1926,6 +2024,9 @@ UNLOCK TABLES;
|
|||||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# Bug #10927 mysqldump: Can't reload dump with view that consist of other view
|
||||||
|
#
|
||||||
create table t1(a int, b int, c varchar(30));
|
create table t1(a int, b int, c varchar(30));
|
||||||
insert into t1 values(1, 2, "one"), (2, 4, "two"), (3, 6, "three");
|
insert into t1 values(1, 2, "one"), (2, 4, "two"), (3, 6, "three");
|
||||||
create view v3 as
|
create view v3 as
|
||||||
@ -2003,6 +2104,9 @@ DROP TABLE IF EXISTS `v3`;
|
|||||||
|
|
||||||
drop view v1, v2, v3;
|
drop view v1, v2, v3;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
#
|
||||||
|
# Test for dumping triggers
|
||||||
|
#
|
||||||
CREATE TABLE t1 (a int, b bigint default NULL);
|
CREATE TABLE t1 (a int, b bigint default NULL);
|
||||||
CREATE TABLE t2 (a int);
|
CREATE TABLE t2 (a int);
|
||||||
create trigger trg1 before insert on t1 for each row
|
create trigger trg1 before insert on t1 for each row
|
||||||
@ -2201,8 +2305,14 @@ set @fired:= "No";
|
|||||||
end if;
|
end if;
|
||||||
end BEFORE # STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER root@localhost
|
end BEFORE # STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER root@localhost
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
|
#
|
||||||
|
# Bugs #9136, #12917: problems with --defaults-extra-file option
|
||||||
|
#
|
||||||
--port=1234
|
--port=1234
|
||||||
--port=1234
|
--port=1234
|
||||||
|
#
|
||||||
|
# Test of fix to BUG 12597
|
||||||
|
#
|
||||||
DROP TABLE IF EXISTS `test1`;
|
DROP TABLE IF EXISTS `test1`;
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1051 Unknown table 'test1'
|
Note 1051 Unknown table 'test1'
|
||||||
@ -2234,6 +2344,9 @@ a2
|
|||||||
DROP TRIGGER testref;
|
DROP TRIGGER testref;
|
||||||
DROP TABLE test1;
|
DROP TABLE test1;
|
||||||
DROP TABLE test2;
|
DROP TABLE test2;
|
||||||
|
#
|
||||||
|
# BUG#9056 - mysqldump does not dump routines
|
||||||
|
#
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
DROP FUNCTION IF EXISTS bug9056_func1;
|
DROP FUNCTION IF EXISTS bug9056_func1;
|
||||||
DROP FUNCTION IF EXISTS bug9056_func2;
|
DROP FUNCTION IF EXISTS bug9056_func2;
|
||||||
@ -2330,6 +2443,9 @@ DROP PROCEDURE bug9056_proc1;
|
|||||||
DROP PROCEDURE bug9056_proc2;
|
DROP PROCEDURE bug9056_proc2;
|
||||||
DROP PROCEDURE `a'b`;
|
DROP PROCEDURE `a'b`;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
#
|
||||||
|
# BUG# 13052 - mysqldump timestamp reloads broken
|
||||||
|
#
|
||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
create table t1 (`d` timestamp, unique (`d`));
|
create table t1 (`d` timestamp, unique (`d`));
|
||||||
set time_zone='+00:00';
|
set time_zone='+00:00';
|
||||||
@ -2416,6 +2532,9 @@ UNLOCK TABLES;
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
set global time_zone=default;
|
set global time_zone=default;
|
||||||
set time_zone=default;
|
set time_zone=default;
|
||||||
|
#
|
||||||
|
# Test of fix to BUG 13146 - ansi quotes break loading of triggers
|
||||||
|
#
|
||||||
DROP TABLE IF EXISTS `t1 test`;
|
DROP TABLE IF EXISTS `t1 test`;
|
||||||
DROP TABLE IF EXISTS `t2 test`;
|
DROP TABLE IF EXISTS `t2 test`;
|
||||||
CREATE TABLE `t1 test` (
|
CREATE TABLE `t1 test` (
|
||||||
@ -2479,6 +2598,9 @@ UNLOCK TABLES;
|
|||||||
DROP TRIGGER `test trig`;
|
DROP TRIGGER `test trig`;
|
||||||
DROP TABLE `t1 test`;
|
DROP TABLE `t1 test`;
|
||||||
DROP TABLE `t2 test`;
|
DROP TABLE `t2 test`;
|
||||||
|
#
|
||||||
|
# BUG# 12838 mysqldump -x with views exits with error
|
||||||
|
#
|
||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
create table t1 (a int, b varchar(32), c varchar(32));
|
create table t1 (a int, b varchar(32), c varchar(32));
|
||||||
insert into t1 values (1, 'first value', 'xxxx');
|
insert into t1 values (1, 'first value', 'xxxx');
|
||||||
@ -2571,6 +2693,10 @@ drop view v2;
|
|||||||
drop view v0;
|
drop view v0;
|
||||||
drop view v1;
|
drop view v1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
#
|
||||||
|
# BUG#14554 - mysqldump does not separate words "ROW" and "BEGIN"
|
||||||
|
# for tables with trigger created in the IGNORE_SPACE sql mode.
|
||||||
|
#
|
||||||
SET @old_sql_mode = @@SQL_MODE;
|
SET @old_sql_mode = @@SQL_MODE;
|
||||||
SET SQL_MODE = IGNORE_SPACE;
|
SET SQL_MODE = IGNORE_SPACE;
|
||||||
CREATE TABLE t1 (a INT);
|
CREATE TABLE t1 (a INT);
|
||||||
@ -2626,6 +2752,9 @@ DELIMITER ;
|
|||||||
|
|
||||||
DROP TRIGGER tr1;
|
DROP TRIGGER tr1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# Bug #13318: Bad result with empty field and --hex-blob
|
||||||
|
#
|
||||||
create table t1 (a binary(1), b blob);
|
create table t1 (a binary(1), b blob);
|
||||||
insert into t1 values ('','');
|
insert into t1 values ('','');
|
||||||
|
|
||||||
@ -2693,6 +2822,9 @@ UNLOCK TABLES;
|
|||||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
#
|
||||||
|
# Bug 14871 Invalid view dump output
|
||||||
|
#
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
insert into t1 values (289), (298), (234), (456), (789);
|
insert into t1 values (289), (298), (234), (456), (789);
|
||||||
create definer = CURRENT_USER view v1 as select * from t1;
|
create definer = CURRENT_USER view v1 as select * from t1;
|
||||||
@ -2719,6 +2851,9 @@ a
|
|||||||
789
|
789
|
||||||
drop table t1;
|
drop table t1;
|
||||||
drop view v1, v2, v3, v4, v5;
|
drop view v1, v2, v3, v4, v5;
|
||||||
|
#
|
||||||
|
# Bug #16878 dump of trigger
|
||||||
|
#
|
||||||
create table t1 (a int, created datetime);
|
create table t1 (a int, created datetime);
|
||||||
create table t2 (b int, created datetime);
|
create table t2 (b int, created datetime);
|
||||||
create trigger tr1 before insert on t1 for each row set
|
create trigger tr1 before insert on t1 for each row set
|
||||||
@ -2741,6 +2876,9 @@ end AFTER # root@localhost
|
|||||||
drop trigger tr1;
|
drop trigger tr1;
|
||||||
drop trigger tr2;
|
drop trigger tr2;
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
#
|
||||||
|
# Bug#18462 mysqldump does not dump view structures correctly
|
||||||
|
#
|
||||||
create table t (qty int, price int);
|
create table t (qty int, price int);
|
||||||
insert into t values(3, 50);
|
insert into t values(3, 50);
|
||||||
insert into t values(5, 51);
|
insert into t values(5, 51);
|
||||||
@ -2760,6 +2898,10 @@ mysqldump {
|
|||||||
drop view v1;
|
drop view v1;
|
||||||
drop view v2;
|
drop view v2;
|
||||||
drop table t;
|
drop table t;
|
||||||
|
#
|
||||||
|
# Bug#14857 Reading dump files with single statement stored routines fails.
|
||||||
|
# fixed by patch for bug#16878
|
||||||
|
#
|
||||||
/*!50003 CREATE FUNCTION `f`() RETURNS bigint(20)
|
/*!50003 CREATE FUNCTION `f`() RETURNS bigint(20)
|
||||||
return 42 */|
|
return 42 */|
|
||||||
/*!50003 CREATE PROCEDURE `p`()
|
/*!50003 CREATE PROCEDURE `p`()
|
||||||
@ -2774,6 +2916,9 @@ p CREATE DEFINER=`root`@`localhost` PROCEDURE `p`()
|
|||||||
select 42
|
select 42
|
||||||
drop function f;
|
drop function f;
|
||||||
drop procedure p;
|
drop procedure p;
|
||||||
|
#
|
||||||
|
# Bug #17371 Unable to dump a schema with invalid views
|
||||||
|
#
|
||||||
create table t1 ( id serial );
|
create table t1 ( id serial );
|
||||||
create view v1 as select * from t1;
|
create view v1 as select * from t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
@ -2783,6 +2928,9 @@ mysqldump {
|
|||||||
|
|
||||||
} mysqldump
|
} mysqldump
|
||||||
drop view v1;
|
drop view v1;
|
||||||
|
# BUG#17201 Spurious 'DROP DATABASE' in output,
|
||||||
|
# also confusion between tables and views.
|
||||||
|
# Example code from Markus Popp
|
||||||
create database mysqldump_test_db;
|
create database mysqldump_test_db;
|
||||||
use mysqldump_test_db;
|
use mysqldump_test_db;
|
||||||
create table t1 (id int);
|
create table t1 (id int);
|
||||||
@ -2843,6 +2991,9 @@ USE `mysqldump_test_db`;
|
|||||||
drop view v1;
|
drop view v1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
drop database mysqldump_test_db;
|
drop database mysqldump_test_db;
|
||||||
|
#
|
||||||
|
# Bug21014 Segmentation fault of mysqldump on view
|
||||||
|
#
|
||||||
create database mysqldump_tables;
|
create database mysqldump_tables;
|
||||||
use mysqldump_tables;
|
use mysqldump_tables;
|
||||||
create table basetable ( id serial, tag varchar(64) );
|
create table basetable ( id serial, tag varchar(64) );
|
||||||
@ -2876,6 +3027,9 @@ drop view nasishnasifu;
|
|||||||
drop database mysqldump_views;
|
drop database mysqldump_views;
|
||||||
drop table mysqldump_tables.basetable;
|
drop table mysqldump_tables.basetable;
|
||||||
drop database mysqldump_tables;
|
drop database mysqldump_tables;
|
||||||
|
#
|
||||||
|
# Bug20221 Dumping of multiple databases containing view(s) yields maleformed dumps
|
||||||
|
#
|
||||||
create database mysqldump_dba;
|
create database mysqldump_dba;
|
||||||
use mysqldump_dba;
|
use mysqldump_dba;
|
||||||
create table t1 (f1 int, f2 int);
|
create table t1 (f1 int, f2 int);
|
||||||
@ -2908,6 +3062,9 @@ drop view v1;
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
drop database mysqldump_dbb;
|
drop database mysqldump_dbb;
|
||||||
use test;
|
use test;
|
||||||
|
#
|
||||||
|
# Bug#21215 mysqldump creating incomplete backups without warning
|
||||||
|
#
|
||||||
create user mysqltest_1@localhost;
|
create user mysqltest_1@localhost;
|
||||||
create table t1(a int, b varchar(34));
|
create table t1(a int, b varchar(34));
|
||||||
reset master;
|
reset master;
|
||||||
@ -2924,19 +3081,120 @@ CREATE TABLE `t1` (
|
|||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
drop user mysqltest_1@localhost;
|
drop user mysqltest_1@localhost;
|
||||||
|
#
|
||||||
|
# Bug #21527 mysqldump incorrectly tries to LOCK TABLES on the
|
||||||
|
# information_schema database.
|
||||||
|
#
|
||||||
|
# Bug #21424 mysqldump failing to export/import views
|
||||||
|
#
|
||||||
create database mysqldump_myDB;
|
create database mysqldump_myDB;
|
||||||
use mysqldump_myDB;
|
use mysqldump_myDB;
|
||||||
create user myDB_User;
|
create user myDB_User;
|
||||||
grant create view, select on mysqldump_myDB.* to myDB_User@localhost;
|
grant create, create view, select, insert on mysqldump_myDB.* to myDB_User@localhost;
|
||||||
create table t1 (c1 int);
|
create table t1 (c1 int);
|
||||||
insert into t1 values (3);
|
insert into t1 values (3);
|
||||||
use mysqldump_myDB;
|
use mysqldump_myDB;
|
||||||
|
create table u1 (f1 int);
|
||||||
|
insert into u1 values (4);
|
||||||
create view v1 (c1) as select * from t1;
|
create view v1 (c1) as select * from t1;
|
||||||
use mysqldump_myDB;
|
use mysqldump_myDB;
|
||||||
drop view v1;
|
drop view v1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
drop table u1;
|
||||||
|
revoke all privileges on mysqldump_myDB.* from myDB_User@localhost;
|
||||||
|
drop user myDB_User;
|
||||||
|
drop database mysqldump_myDB;
|
||||||
|
flush privileges;
|
||||||
|
# Bug #21424 continues from here.
|
||||||
|
# Restore. Flush Privileges test ends.
|
||||||
|
#
|
||||||
|
use mysqldump_myDB;
|
||||||
|
select * from mysqldump_myDB.v1;
|
||||||
|
c1
|
||||||
|
3
|
||||||
|
select * from mysqldump_myDB.u1;
|
||||||
|
f1
|
||||||
|
4
|
||||||
|
use mysqldump_myDB;
|
||||||
|
drop view v1;
|
||||||
|
drop table t1;
|
||||||
|
drop table u1;
|
||||||
revoke all privileges on mysqldump_myDB.* from myDB_User@localhost;
|
revoke all privileges on mysqldump_myDB.* from myDB_User@localhost;
|
||||||
drop user myDB_User;
|
drop user myDB_User;
|
||||||
drop database mysqldump_myDB;
|
drop database mysqldump_myDB;
|
||||||
use test;
|
use test;
|
||||||
End of 5.0 tests
|
#
|
||||||
|
# BUG#13926: --order-by-primary fails if PKEY contains quote character
|
||||||
|
#
|
||||||
|
DROP TABLE IF EXISTS `t1`;
|
||||||
|
CREATE TABLE `t1` (
|
||||||
|
`a b` INT,
|
||||||
|
`c"d` INT,
|
||||||
|
`e``f` INT,
|
||||||
|
PRIMARY KEY (`a b`, `c"d`, `e``f`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||||
|
insert into t1 values (0815, 4711, 2006);
|
||||||
|
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||||
|
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||||
|
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||||
|
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||||
|
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO,ANSI' */;
|
||||||
|
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||||
|
DROP TABLE IF EXISTS "t1";
|
||||||
|
CREATE TABLE "t1" (
|
||||||
|
"a b" int(11) NOT NULL default '0',
|
||||||
|
"c""d" int(11) NOT NULL default '0',
|
||||||
|
"e`f" int(11) NOT NULL default '0',
|
||||||
|
PRIMARY KEY ("a b","c""d","e`f")
|
||||||
|
);
|
||||||
|
|
||||||
|
LOCK TABLES "t1" WRITE;
|
||||||
|
/*!40000 ALTER TABLE "t1" DISABLE KEYS */;
|
||||||
|
INSERT INTO "t1" VALUES (815,4711,2006);
|
||||||
|
/*!40000 ALTER TABLE "t1" ENABLE KEYS */;
|
||||||
|
UNLOCK TABLES;
|
||||||
|
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||||
|
|
||||||
|
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||||
|
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||||
|
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||||
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
|
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||||
|
/*!40101 SET NAMES utf8 */;
|
||||||
|
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||||
|
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||||
|
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||||
|
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||||
|
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||||
|
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||||
|
DROP TABLE IF EXISTS `t1`;
|
||||||
|
CREATE TABLE `t1` (
|
||||||
|
`a b` int(11) NOT NULL default '0',
|
||||||
|
`c"d` int(11) NOT NULL default '0',
|
||||||
|
`e``f` int(11) NOT NULL default '0',
|
||||||
|
PRIMARY KEY (`a b`,`c"d`,`e``f`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||||
|
|
||||||
|
LOCK TABLES `t1` WRITE;
|
||||||
|
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
|
||||||
|
INSERT INTO `t1` VALUES (815,4711,2006);
|
||||||
|
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
|
||||||
|
UNLOCK TABLES;
|
||||||
|
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||||
|
|
||||||
|
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||||
|
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||||
|
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||||
|
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||||
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
|
DROP TABLE `t1`;
|
||||||
|
#
|
||||||
|
# End of 5.0 tests
|
||||||
|
#
|
||||||
|
@ -611,7 +611,7 @@ C
|
|||||||
NULL
|
NULL
|
||||||
EXPLAIN SELECT type FROM v1 GROUP BY type WITH ROLLUP;
|
EXPLAIN SELECT type FROM v1 GROUP BY type WITH ROLLUP;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 10 Using filesort
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 10 Using filesort
|
||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
CREATE TABLE t1 (a int(11) NOT NULL);
|
CREATE TABLE t1 (a int(11) NOT NULL);
|
||||||
|
@ -947,24 +947,24 @@ COUNT(*)
|
|||||||
Warnings:
|
Warnings:
|
||||||
Warning 1292 Incorrect datetime value: '20050327 invalid' for column 'date' at row 1
|
Warning 1292 Incorrect datetime value: '20050327 invalid' for column 'date' at row 1
|
||||||
Warning 1292 Incorrect datetime value: '20050327 invalid' for column 'date' at row 1
|
Warning 1292 Incorrect datetime value: '20050327 invalid' for column 'date' at row 1
|
||||||
Warning 1292 Truncated incorrect DOUBLE value: '20050327 invalid'
|
Warning 1292 Truncated incorrect INTEGER value: '20050327 invalid'
|
||||||
Warning 1292 Truncated incorrect DOUBLE value: '20050327 invalid'
|
Warning 1292 Truncated incorrect INTEGER value: '20050327 invalid'
|
||||||
SELECT COUNT(*) FROM t1 WHERE date BETWEEN '20050326' AND '20050328 invalid';
|
SELECT COUNT(*) FROM t1 WHERE date BETWEEN '20050326' AND '20050328 invalid';
|
||||||
COUNT(*)
|
COUNT(*)
|
||||||
0
|
0
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1292 Incorrect datetime value: '20050328 invalid' for column 'date' at row 1
|
Warning 1292 Incorrect datetime value: '20050328 invalid' for column 'date' at row 1
|
||||||
Warning 1292 Incorrect datetime value: '20050328 invalid' for column 'date' at row 1
|
Warning 1292 Incorrect datetime value: '20050328 invalid' for column 'date' at row 1
|
||||||
Warning 1292 Truncated incorrect DOUBLE value: '20050328 invalid'
|
Warning 1292 Truncated incorrect INTEGER value: '20050328 invalid'
|
||||||
Warning 1292 Truncated incorrect DOUBLE value: '20050328 invalid'
|
Warning 1292 Truncated incorrect INTEGER value: '20050328 invalid'
|
||||||
SELECT COUNT(*) FROM t1 WHERE date BETWEEN '20050326' AND '20050327 invalid';
|
SELECT COUNT(*) FROM t1 WHERE date BETWEEN '20050326' AND '20050327 invalid';
|
||||||
COUNT(*)
|
COUNT(*)
|
||||||
0
|
0
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1292 Incorrect datetime value: '20050327 invalid' for column 'date' at row 1
|
Warning 1292 Incorrect datetime value: '20050327 invalid' for column 'date' at row 1
|
||||||
Warning 1292 Incorrect datetime value: '20050327 invalid' for column 'date' at row 1
|
Warning 1292 Incorrect datetime value: '20050327 invalid' for column 'date' at row 1
|
||||||
Warning 1292 Truncated incorrect DOUBLE value: '20050327 invalid'
|
Warning 1292 Truncated incorrect INTEGER value: '20050327 invalid'
|
||||||
Warning 1292 Truncated incorrect DOUBLE value: '20050327 invalid'
|
Warning 1292 Truncated incorrect INTEGER value: '20050327 invalid'
|
||||||
show status like "Qcache_queries_in_cache";
|
show status like "Qcache_queries_in_cache";
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_queries_in_cache 0
|
Qcache_queries_in_cache 0
|
||||||
|
@ -750,13 +750,13 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 4 Using where; Using index
|
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 4 Using where; Using index
|
||||||
EXPLAIN SELECT a,b FROM v1 WHERE a < 2 and b=3;
|
EXPLAIN SELECT a,b FROM v1 WHERE a < 2 and b=3;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 range PRIMARY PRIMARY 4 NULL 4 Using where; Using index
|
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 4 Using where; Using index
|
||||||
EXPLAIN SELECT a,b FROM t1 WHERE a < 2;
|
EXPLAIN SELECT a,b FROM t1 WHERE a < 2;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 4 Using where; Using index
|
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 4 Using where; Using index
|
||||||
EXPLAIN SELECT a,b FROM v1 WHERE a < 2;
|
EXPLAIN SELECT a,b FROM v1 WHERE a < 2;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 range PRIMARY PRIMARY 4 NULL 4 Using where; Using index
|
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 4 Using where; Using index
|
||||||
SELECT a,b FROM t1 WHERE a < 2 and b=3;
|
SELECT a,b FROM t1 WHERE a < 2 and b=3;
|
||||||
a b
|
a b
|
||||||
1 3
|
1 3
|
||||||
@ -799,13 +799,13 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t1 range PRIMARY PRIMARY 8 NULL # Using where; Using index
|
1 SIMPLE t1 range PRIMARY PRIMARY 8 NULL # Using where; Using index
|
||||||
explain select * from v1 where a in (3,4) and b in (1,2,3);
|
explain select * from v1 where a in (3,4) and b in (1,2,3);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 range PRIMARY PRIMARY 8 NULL # Using where; Using index
|
1 SIMPLE t1 range PRIMARY PRIMARY 8 NULL # Using where; Using index
|
||||||
explain select * from t1 where a between 3 and 4 and b between 1 and 2;
|
explain select * from t1 where a between 3 and 4 and b between 1 and 2;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 range PRIMARY PRIMARY 8 NULL # Using where; Using index
|
1 SIMPLE t1 range PRIMARY PRIMARY 8 NULL # Using where; Using index
|
||||||
explain select * from v1 where a between 3 and 4 and b between 1 and 2;
|
explain select * from v1 where a between 3 and 4 and b between 1 and 2;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 range PRIMARY PRIMARY 8 NULL # Using where; Using index
|
1 SIMPLE t1 range PRIMARY PRIMARY 8 NULL # Using where; Using index
|
||||||
drop view v1;
|
drop view v1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
create table t3 (a int);
|
create table t3 (a int);
|
||||||
|
@ -181,3 +181,128 @@ SELECT ROW(1,1,1) = ROW(1,1,1) as `1`, ROW(1,1,1) = ROW(1,2,1) as `0`, ROW(1,NUL
|
|||||||
select row(NULL,1)=(2,0);
|
select row(NULL,1)=(2,0);
|
||||||
row(NULL,1)=(2,0)
|
row(NULL,1)=(2,0)
|
||||||
0
|
0
|
||||||
|
CREATE TABLE t1 (a int, b int, PRIMARY KEY (a,b));
|
||||||
|
INSERT INTO t1 VALUES (1,1), (2,1), (3,1), (1,2), (3,2), (3,3);
|
||||||
|
EXPLAIN SELECT * FROM t1 WHERE a=3 AND b=2;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 const PRIMARY PRIMARY 8 const,const 1 Using index
|
||||||
|
EXPLAIN SELECT * FROM t1 WHERE (a,b)=(3,2);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 const PRIMARY PRIMARY 8 const,const 1 Using index
|
||||||
|
SELECT * FROM t1 WHERE a=3 and b=2;
|
||||||
|
a b
|
||||||
|
3 2
|
||||||
|
SELECT * FROM t1 WHERE (a,b)=(3,2);
|
||||||
|
a b
|
||||||
|
3 2
|
||||||
|
CREATE TABLE t2 (a int, b int, c int, PRIMARY KEY (a,b,c));
|
||||||
|
INSERT INTO t2 VALUES
|
||||||
|
(1,1,2), (3,1,3), (1,2,2), (4,4,2),
|
||||||
|
(1,1,1), (3,1,1), (1,2,1);
|
||||||
|
EXPLAIN SELECT * FROM t1,t2 WHERE t1.a=t2.a AND t1.b=t2.b;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 index PRIMARY PRIMARY 8 NULL 6 Using index
|
||||||
|
1 SIMPLE t2 ref PRIMARY PRIMARY 8 test.t1.a,test.t1.b 1 Using index
|
||||||
|
EXPLAIN SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,t2.b);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 index PRIMARY PRIMARY 8 NULL 6 Using index
|
||||||
|
1 SIMPLE t2 ref PRIMARY PRIMARY 8 test.t1.a,test.t1.b 1 Using index
|
||||||
|
SELECT * FROM t1,t2 WHERE t1.a=t2.a and t1.b=t2.b;
|
||||||
|
a b a b c
|
||||||
|
1 1 1 1 1
|
||||||
|
1 1 1 1 2
|
||||||
|
1 2 1 2 1
|
||||||
|
1 2 1 2 2
|
||||||
|
3 1 3 1 1
|
||||||
|
3 1 3 1 3
|
||||||
|
SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,t2.b);
|
||||||
|
a b a b c
|
||||||
|
1 1 1 1 1
|
||||||
|
1 1 1 1 2
|
||||||
|
1 2 1 2 1
|
||||||
|
1 2 1 2 2
|
||||||
|
3 1 3 1 1
|
||||||
|
3 1 3 1 3
|
||||||
|
EXPLAIN SELECT * FROM t1,t2 WHERE t1.a=t2.a AND t1.b=2;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 index PRIMARY PRIMARY 8 NULL 5 Using where; Using index
|
||||||
|
1 SIMPLE t2 ref PRIMARY PRIMARY 4 test.t1.a 1 Using index
|
||||||
|
EXPLAIN SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,2);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 index PRIMARY PRIMARY 8 NULL 5 Using where; Using index
|
||||||
|
1 SIMPLE t2 ref PRIMARY PRIMARY 4 test.t1.a 1 Using index
|
||||||
|
SELECT * FROM t1,t2 WHERE t1.a=1 and t1.b=t2.b;
|
||||||
|
a b a b c
|
||||||
|
1 1 1 1 2
|
||||||
|
1 1 3 1 3
|
||||||
|
1 2 1 2 2
|
||||||
|
1 1 1 1 1
|
||||||
|
1 1 3 1 1
|
||||||
|
1 2 1 2 1
|
||||||
|
SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,2);
|
||||||
|
a b a b c
|
||||||
|
1 2 1 1 1
|
||||||
|
1 2 1 1 2
|
||||||
|
1 2 1 2 1
|
||||||
|
1 2 1 2 2
|
||||||
|
3 2 3 1 1
|
||||||
|
3 2 3 1 3
|
||||||
|
EXPLAIN EXTENDED SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,t2.b+1);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 index PRIMARY PRIMARY 8 NULL 6 Using index
|
||||||
|
1 SIMPLE t2 ref PRIMARY PRIMARY 4 test.t1.a 1 Using where; Using index
|
||||||
|
Warnings:
|
||||||
|
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t1` join `test`.`t2` where ((`test`.`t2`.`a` = `test`.`t1`.`a`) and (`test`.`t1`.`b` = (`test`.`t2`.`b` + 1)))
|
||||||
|
SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,t2.b+1);
|
||||||
|
a b a b c
|
||||||
|
1 2 1 1 1
|
||||||
|
1 2 1 1 2
|
||||||
|
3 2 3 1 1
|
||||||
|
3 2 3 1 3
|
||||||
|
EXPLAIN EXTENDED SELECT * FROM t1,t2 WHERE (t1.a-1,t1.b)=(t2.a-1,t2.b+1);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 index NULL PRIMARY 8 NULL 6 Using index
|
||||||
|
1 SIMPLE t2 index NULL PRIMARY 12 NULL 7 Using where; Using index
|
||||||
|
Warnings:
|
||||||
|
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t1` join `test`.`t2` where (((`test`.`t1`.`a` - 1) = (`test`.`t2`.`a` - 1)) and (`test`.`t1`.`b` = (`test`.`t2`.`b` + 1)))
|
||||||
|
SELECT * FROM t1,t2 WHERE (t1.a-1,t1.b)=(t2.a-1,t2.b+1);
|
||||||
|
a b a b c
|
||||||
|
1 2 1 1 2
|
||||||
|
3 2 3 1 3
|
||||||
|
1 2 1 1 1
|
||||||
|
3 2 3 1 1
|
||||||
|
EXPLAIN SELECT * FROM t2 WHERE a=3 AND b=2;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t2 ref PRIMARY PRIMARY 8 const,const 1 Using index
|
||||||
|
EXPLAIN SELECT * FROM t2 WHERE (a,b)=(3,2);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t2 ref PRIMARY PRIMARY 8 const,const 1 Using index
|
||||||
|
SELECT * FROM t2 WHERE a=3 and b=2;
|
||||||
|
a b c
|
||||||
|
SELECT * FROM t2 WHERE (a,b)=(3,2);
|
||||||
|
a b c
|
||||||
|
EXPLAIN SELECT * FROM t1,t2 WHERE t2.a=t1.a AND t2.b=2 AND t2.c=1;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 index PRIMARY PRIMARY 8 NULL 6 Using index
|
||||||
|
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 12 test.t1.a,const,const 1 Using index
|
||||||
|
EXPLAIN EXTENDED SELECT * FROM t1,t2 WHERE (t2.a,(t2.b,t2.c))=(t1.a,(2,1));
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 index PRIMARY PRIMARY 8 NULL 6 Using index
|
||||||
|
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 12 test.t1.a,const,const 1 Using index
|
||||||
|
Warnings:
|
||||||
|
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t1` join `test`.`t2` where ((`test`.`t2`.`c` = 1) and (`test`.`t2`.`b` = 2) and (`test`.`t2`.`a` = `test`.`t1`.`a`))
|
||||||
|
SELECT * FROM t1,t2 WHERE (t2.a,(t2.b,t2.c))=(t1.a,(2,1));
|
||||||
|
a b a b c
|
||||||
|
1 1 1 2 1
|
||||||
|
1 2 1 2 1
|
||||||
|
EXPLAIN EXTENDED SELECT * FROM t1,t2 WHERE t2.a=t1.a AND (t2.b,t2.c)=(2,1);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 index PRIMARY PRIMARY 8 NULL 6 Using index
|
||||||
|
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 12 test.t1.a,const,const 1 Using index
|
||||||
|
Warnings:
|
||||||
|
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t1` join `test`.`t2` where ((`test`.`t2`.`c` = 1) and (`test`.`t2`.`b` = 2) and (`test`.`t2`.`a` = `test`.`t1`.`a`))
|
||||||
|
SELECT * FROM t1,t2 WHERE t2.a=t1.a AND (t2.b,t2.c)=(2,1);
|
||||||
|
a b a b c
|
||||||
|
1 1 1 2 1
|
||||||
|
1 2 1 2 1
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
@ -1,9 +1,20 @@
|
|||||||
|
#
|
||||||
|
# Setup
|
||||||
|
#
|
||||||
stop slave;
|
stop 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;
|
||||||
reset master;
|
reset master;
|
||||||
reset slave;
|
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;
|
||||||
|
use test;
|
||||||
|
drop table if exists t1, t2, t3;
|
||||||
|
#
|
||||||
|
# See if queries that use both auto_increment and LAST_INSERT_ID()
|
||||||
|
# are replicated well
|
||||||
|
#
|
||||||
|
# We also check how the foreign_key_check variable is replicated
|
||||||
|
#
|
||||||
create table t1(a int auto_increment, key(a));
|
create table t1(a int auto_increment, key(a));
|
||||||
create table t2(b int auto_increment, c int, key(b));
|
create table t2(b int auto_increment, c int, key(b));
|
||||||
insert into t1 values (1),(2),(3);
|
insert into t1 values (1),(2),(3);
|
||||||
@ -38,6 +49,9 @@ select * from t2;
|
|||||||
b c
|
b c
|
||||||
5 0
|
5 0
|
||||||
6 11
|
6 11
|
||||||
|
#
|
||||||
|
# check if INSERT SELECT in auto_increment is well replicated (bug #490)
|
||||||
|
#
|
||||||
drop table t2;
|
drop table t2;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1(a int auto_increment, key(a));
|
create table t1(a int auto_increment, key(a));
|
||||||
@ -68,12 +82,19 @@ b c
|
|||||||
9 13
|
9 13
|
||||||
drop table t1;
|
drop table t1;
|
||||||
drop table t2;
|
drop table t2;
|
||||||
|
#
|
||||||
|
# Bug#8412: Error codes reported in binary log for CHARACTER SET,
|
||||||
|
# FOREIGN_KEY_CHECKS
|
||||||
|
#
|
||||||
SET TIMESTAMP=1000000000;
|
SET TIMESTAMP=1000000000;
|
||||||
CREATE TABLE t1 ( a INT UNIQUE );
|
CREATE TABLE t1 ( a INT UNIQUE );
|
||||||
SET FOREIGN_KEY_CHECKS=0;
|
SET FOREIGN_KEY_CHECKS=0;
|
||||||
INSERT INTO t1 VALUES (1),(1);
|
INSERT INTO t1 VALUES (1),(1);
|
||||||
ERROR 23000: Duplicate entry '1' for key 1
|
ERROR 23000: Duplicate entry '1' for key 1
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
#
|
||||||
|
# Bug#14553: NULL in WHERE resets LAST_INSERT_ID
|
||||||
|
#
|
||||||
create table t1(a int auto_increment, key(a));
|
create table t1(a int auto_increment, key(a));
|
||||||
create table t2(a int);
|
create table t2(a int);
|
||||||
insert into t1 (a) values (null);
|
insert into t1 (a) values (null);
|
||||||
@ -87,6 +108,9 @@ a
|
|||||||
1
|
1
|
||||||
drop table t1;
|
drop table t1;
|
||||||
drop table t2;
|
drop table t2;
|
||||||
|
#
|
||||||
|
# End of 4.1 tests
|
||||||
|
#
|
||||||
drop function if exists bug15728;
|
drop function if exists bug15728;
|
||||||
drop function if exists bug15728_insert;
|
drop function if exists bug15728_insert;
|
||||||
drop table if exists t1, t2;
|
drop table if exists t1, t2;
|
||||||
@ -210,3 +234,6 @@ n b
|
|||||||
2 100
|
2 100
|
||||||
3 350
|
3 350
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
# End of 5.0 tests
|
||||||
|
|
||||||
|
@ -5,9 +5,15 @@ 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;
|
||||||
stop slave;
|
stop slave;
|
||||||
|
#
|
||||||
|
# Generate a big enough master's binlog to cause relay log rotations
|
||||||
|
#
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
drop table t1;
|
drop table t1;
|
||||||
reset slave;
|
reset slave;
|
||||||
|
#
|
||||||
|
# Test 1
|
||||||
|
#
|
||||||
set global max_binlog_size=8192;
|
set global max_binlog_size=8192;
|
||||||
set global max_relay_log_size=8192-1;
|
set global max_relay_log_size=8192-1;
|
||||||
select @@global.max_relay_log_size;
|
select @@global.max_relay_log_size;
|
||||||
@ -15,47 +21,251 @@ select @@global.max_relay_log_size;
|
|||||||
4096
|
4096
|
||||||
start slave;
|
start slave;
|
||||||
show slave status;
|
show slave status;
|
||||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
Slave_IO_State #
|
||||||
# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 72952 # # master-bin.000001 Yes Yes 0 0 72952 # None 0 No #
|
Master_Host 127.0.0.1
|
||||||
|
Master_User root
|
||||||
|
Master_Port MASTER_PORT
|
||||||
|
Connect_Retry 1
|
||||||
|
Master_Log_File master-bin.000001
|
||||||
|
Read_Master_Log_Pos 72952
|
||||||
|
Relay_Log_File #
|
||||||
|
Relay_Log_Pos #
|
||||||
|
Relay_Master_Log_File master-bin.000001
|
||||||
|
Slave_IO_Running Yes
|
||||||
|
Slave_SQL_Running Yes
|
||||||
|
Replicate_Do_DB
|
||||||
|
Replicate_Ignore_DB
|
||||||
|
Replicate_Do_Table
|
||||||
|
Replicate_Ignore_Table
|
||||||
|
Replicate_Wild_Do_Table
|
||||||
|
Replicate_Wild_Ignore_Table
|
||||||
|
Last_Errno 0
|
||||||
|
Last_Error
|
||||||
|
Skip_Counter 0
|
||||||
|
Exec_Master_Log_Pos 72952
|
||||||
|
Relay_Log_Space #
|
||||||
|
Until_Condition None
|
||||||
|
Until_Log_File
|
||||||
|
Until_Log_Pos 0
|
||||||
|
Master_SSL_Allowed No
|
||||||
|
Master_SSL_CA_File
|
||||||
|
Master_SSL_CA_Path
|
||||||
|
Master_SSL_Cert
|
||||||
|
Master_SSL_Cipher
|
||||||
|
Master_SSL_Key
|
||||||
|
Seconds_Behind_Master #
|
||||||
|
#
|
||||||
|
# Test 2
|
||||||
|
#
|
||||||
stop slave;
|
stop slave;
|
||||||
reset slave;
|
reset slave;
|
||||||
set global max_relay_log_size=(5*4096);
|
set global max_relay_log_size=(5*4096);
|
||||||
select @@global.max_relay_log_size;
|
select @@global.max_relay_log_size;
|
||||||
@@global.max_relay_log_size
|
@@global.max_relay_log_size 20480
|
||||||
20480
|
|
||||||
start slave;
|
start slave;
|
||||||
show slave status;
|
show slave status;
|
||||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
Slave_IO_State #
|
||||||
# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 72952 # # master-bin.000001 Yes Yes 0 0 72952 # None 0 No #
|
Master_Host 127.0.0.1
|
||||||
|
Master_User root
|
||||||
|
Master_Port MASTER_PORT
|
||||||
|
Connect_Retry 1
|
||||||
|
Master_Log_File master-bin.000001
|
||||||
|
Read_Master_Log_Pos 72952
|
||||||
|
Relay_Log_File #
|
||||||
|
Relay_Log_Pos #
|
||||||
|
Relay_Master_Log_File master-bin.000001
|
||||||
|
Slave_IO_Running Yes
|
||||||
|
Slave_SQL_Running Yes
|
||||||
|
Replicate_Do_DB
|
||||||
|
Replicate_Ignore_DB
|
||||||
|
Replicate_Do_Table
|
||||||
|
Replicate_Ignore_Table
|
||||||
|
Replicate_Wild_Do_Table
|
||||||
|
Replicate_Wild_Ignore_Table
|
||||||
|
Last_Errno 0
|
||||||
|
Last_Error
|
||||||
|
Skip_Counter 0
|
||||||
|
Exec_Master_Log_Pos 72952
|
||||||
|
Relay_Log_Space #
|
||||||
|
Until_Condition None
|
||||||
|
Until_Log_File
|
||||||
|
Until_Log_Pos 0
|
||||||
|
Master_SSL_Allowed No
|
||||||
|
Master_SSL_CA_File
|
||||||
|
Master_SSL_CA_Path
|
||||||
|
Master_SSL_Cert
|
||||||
|
Master_SSL_Cipher
|
||||||
|
Master_SSL_Key
|
||||||
|
Seconds_Behind_Master #
|
||||||
|
#
|
||||||
|
# Test 3: max_relay_log_size = 0
|
||||||
|
#
|
||||||
stop slave;
|
stop slave;
|
||||||
reset slave;
|
reset slave;
|
||||||
set global max_relay_log_size=0;
|
set global max_relay_log_size=0;
|
||||||
select @@global.max_relay_log_size;
|
select @@global.max_relay_log_size;
|
||||||
@@global.max_relay_log_size
|
@@global.max_relay_log_size 0
|
||||||
0
|
|
||||||
start slave;
|
start slave;
|
||||||
show slave status;
|
show slave status;
|
||||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
Slave_IO_State #
|
||||||
# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 72952 # # master-bin.000001 Yes Yes 0 0 72952 # None 0 No #
|
Master_Host 127.0.0.1
|
||||||
|
Master_User root
|
||||||
|
Master_Port MASTER_PORT
|
||||||
|
Connect_Retry 1
|
||||||
|
Master_Log_File master-bin.000001
|
||||||
|
Read_Master_Log_Pos 72952
|
||||||
|
Relay_Log_File #
|
||||||
|
Relay_Log_Pos #
|
||||||
|
Relay_Master_Log_File master-bin.000001
|
||||||
|
Slave_IO_Running Yes
|
||||||
|
Slave_SQL_Running Yes
|
||||||
|
Replicate_Do_DB
|
||||||
|
Replicate_Ignore_DB
|
||||||
|
Replicate_Do_Table
|
||||||
|
Replicate_Ignore_Table
|
||||||
|
Replicate_Wild_Do_Table
|
||||||
|
Replicate_Wild_Ignore_Table
|
||||||
|
Last_Errno 0
|
||||||
|
Last_Error
|
||||||
|
Skip_Counter 0
|
||||||
|
Exec_Master_Log_Pos 72952
|
||||||
|
Relay_Log_Space #
|
||||||
|
Until_Condition None
|
||||||
|
Until_Log_File
|
||||||
|
Until_Log_Pos 0
|
||||||
|
Master_SSL_Allowed No
|
||||||
|
Master_SSL_CA_File
|
||||||
|
Master_SSL_CA_Path
|
||||||
|
Master_SSL_Cert
|
||||||
|
Master_SSL_Cipher
|
||||||
|
Master_SSL_Key
|
||||||
|
Seconds_Behind_Master #
|
||||||
|
#
|
||||||
|
# Test 4: Tests below are mainly to ensure that we have not coded with wrong assumptions
|
||||||
|
#
|
||||||
stop slave;
|
stop slave;
|
||||||
reset slave;
|
reset slave;
|
||||||
flush logs;
|
flush logs;
|
||||||
show slave status;
|
show slave status;
|
||||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
Slave_IO_State #
|
||||||
# 127.0.0.1 root MASTER_PORT 1 4 # # No No 0 0 0 # None 0 No #
|
Master_Host 127.0.0.1
|
||||||
|
Master_User root
|
||||||
|
Master_Port MASTER_PORT
|
||||||
|
Connect_Retry 1
|
||||||
|
Master_Log_File
|
||||||
|
Read_Master_Log_Pos 4
|
||||||
|
Relay_Log_File #
|
||||||
|
Relay_Log_Pos #
|
||||||
|
Relay_Master_Log_File
|
||||||
|
Slave_IO_Running No
|
||||||
|
Slave_SQL_Running No
|
||||||
|
Replicate_Do_DB
|
||||||
|
Replicate_Ignore_DB
|
||||||
|
Replicate_Do_Table
|
||||||
|
Replicate_Ignore_Table
|
||||||
|
Replicate_Wild_Do_Table
|
||||||
|
Replicate_Wild_Ignore_Table
|
||||||
|
Last_Errno 0
|
||||||
|
Last_Error
|
||||||
|
Skip_Counter 0
|
||||||
|
Exec_Master_Log_Pos 0
|
||||||
|
Relay_Log_Space #
|
||||||
|
Until_Condition None
|
||||||
|
Until_Log_File
|
||||||
|
Until_Log_Pos 0
|
||||||
|
Master_SSL_Allowed No
|
||||||
|
Master_SSL_CA_File
|
||||||
|
Master_SSL_CA_Path
|
||||||
|
Master_SSL_Cert
|
||||||
|
Master_SSL_Cipher
|
||||||
|
Master_SSL_Key
|
||||||
|
Seconds_Behind_Master #
|
||||||
|
#
|
||||||
|
# Test 5
|
||||||
|
#
|
||||||
reset slave;
|
reset slave;
|
||||||
start slave;
|
start slave;
|
||||||
flush logs;
|
flush logs;
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
show slave status;
|
show slave status;
|
||||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
Slave_IO_State #
|
||||||
# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 73038 # # master-bin.000001 Yes Yes 0 0 73038 # None 0 No #
|
Master_Host 127.0.0.1
|
||||||
|
Master_User root
|
||||||
|
Master_Port MASTER_PORT
|
||||||
|
Connect_Retry 1
|
||||||
|
Master_Log_File master-bin.000001
|
||||||
|
Read_Master_Log_Pos 73038
|
||||||
|
Relay_Log_File #
|
||||||
|
Relay_Log_Pos #
|
||||||
|
Relay_Master_Log_File master-bin.000001
|
||||||
|
Slave_IO_Running Yes
|
||||||
|
Slave_SQL_Running Yes
|
||||||
|
Replicate_Do_DB
|
||||||
|
Replicate_Ignore_DB
|
||||||
|
Replicate_Do_Table
|
||||||
|
Replicate_Ignore_Table
|
||||||
|
Replicate_Wild_Do_Table
|
||||||
|
Replicate_Wild_Ignore_Table
|
||||||
|
Last_Errno 0
|
||||||
|
Last_Error
|
||||||
|
Skip_Counter 0
|
||||||
|
Exec_Master_Log_Pos 73038
|
||||||
|
Relay_Log_Space #
|
||||||
|
Until_Condition None
|
||||||
|
Until_Log_File
|
||||||
|
Until_Log_Pos 0
|
||||||
|
Master_SSL_Allowed No
|
||||||
|
Master_SSL_CA_File
|
||||||
|
Master_SSL_CA_Path
|
||||||
|
Master_SSL_Cert
|
||||||
|
Master_SSL_Cipher
|
||||||
|
Master_SSL_Key
|
||||||
|
Seconds_Behind_Master #
|
||||||
|
#
|
||||||
|
# Test 6: one more rotation, to be sure Relay_Log_Space is correctly updated
|
||||||
|
#
|
||||||
flush logs;
|
flush logs;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
show slave status;
|
show slave status;
|
||||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
Slave_IO_State #
|
||||||
# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 73114 # # master-bin.000001 Yes Yes 0 0 73114 # None 0 No #
|
Master_Host 127.0.0.1
|
||||||
|
Master_User root
|
||||||
|
Master_Port MASTER_PORT
|
||||||
|
Connect_Retry 1
|
||||||
|
Master_Log_File master-bin.000001
|
||||||
|
Read_Master_Log_Pos 73114
|
||||||
|
Relay_Log_File #
|
||||||
|
Relay_Log_Pos #
|
||||||
|
Relay_Master_Log_File master-bin.000001
|
||||||
|
Slave_IO_Running Yes
|
||||||
|
Slave_SQL_Running Yes
|
||||||
|
Replicate_Do_DB
|
||||||
|
Replicate_Ignore_DB
|
||||||
|
Replicate_Do_Table
|
||||||
|
Replicate_Ignore_Table
|
||||||
|
Replicate_Wild_Do_Table
|
||||||
|
Replicate_Wild_Ignore_Table
|
||||||
|
Last_Errno 0
|
||||||
|
Last_Error
|
||||||
|
Skip_Counter 0
|
||||||
|
Exec_Master_Log_Pos 73114
|
||||||
|
Relay_Log_Space #
|
||||||
|
Until_Condition None
|
||||||
|
Until_Log_File
|
||||||
|
Until_Log_Pos 0
|
||||||
|
Master_SSL_Allowed No
|
||||||
|
Master_SSL_CA_File
|
||||||
|
Master_SSL_CA_Path
|
||||||
|
Master_SSL_Cert
|
||||||
|
Master_SSL_Cipher
|
||||||
|
Master_SSL_Key
|
||||||
|
Seconds_Behind_Master #
|
||||||
flush logs;
|
flush logs;
|
||||||
show master status;
|
show master status;
|
||||||
File Position Binlog_Do_DB Binlog_Ignore_DB
|
File master-bin.000002
|
||||||
master-bin.000002 98
|
Position 98
|
||||||
|
Binlog_Do_DB
|
||||||
|
Binlog_Ignore_DB
|
||||||
|
#
|
||||||
|
# End of 4.1 tests
|
||||||
|
#
|
||||||
|
@ -91,3 +91,19 @@ c
|
|||||||
---> Cleaning up...
|
---> Cleaning up...
|
||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
create table t1(a int, b int);
|
||||||
|
insert into t1 values (1, 1), (1, 2), (1, 3);
|
||||||
|
create view v1(a, b) as select a, sum(b) from t1 group by a;
|
||||||
|
explain v1;
|
||||||
|
Field Type Null Key Default Extra
|
||||||
|
a int(11) YES NULL
|
||||||
|
b decimal(32,0) YES NULL
|
||||||
|
show create table v1;
|
||||||
|
View Create View
|
||||||
|
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a`,sum(`t1`.`b`) AS `b` from `t1` group by `t1`.`a`
|
||||||
|
select * from v1;
|
||||||
|
a b
|
||||||
|
1 6
|
||||||
|
drop table t1;
|
||||||
|
drop view v1;
|
||||||
|
End of 5.0 tests
|
||||||
|
@ -5409,4 +5409,66 @@ INSERT INTO mysql.proc VALUES ('това_е_дълго_име_за_база_да
|
|||||||
call това_е_дълго_име_за_база_данни_нали.това_е_процедура_с_доста_дълго_име_нали_и_още_по_дълго()|
|
call това_е_дълго_име_за_база_данни_нали.това_е_процедура_с_доста_дълго_име_нали_и_още_по_дълго()|
|
||||||
ERROR HY000: Failed to load routine това_е_дълго_име_за_база_данни_нали.това_е_процедура_с_доста_дълго_име_нали_и_още_по_дълго. The table mysql.proc is missing, corrupt, or contains bad data (internal code -6)
|
ERROR HY000: Failed to load routine това_е_дълго_име_за_база_данни_нали.това_е_процедура_с_доста_дълго_име_нали_и_още_по_дълго. The table mysql.proc is missing, corrupt, or contains bad data (internal code -6)
|
||||||
drop database това_е_дълго_име_за_база_данни_нали|
|
drop database това_е_дълго_име_за_база_данни_нали|
|
||||||
|
CREATE TABLE t3 (
|
||||||
|
Member_ID varchar(15) NOT NULL,
|
||||||
|
PRIMARY KEY (Member_ID)
|
||||||
|
)|
|
||||||
|
CREATE TABLE t4 (
|
||||||
|
ID int(10) unsigned NOT NULL auto_increment,
|
||||||
|
Member_ID varchar(15) NOT NULL default '',
|
||||||
|
Action varchar(12) NOT NULL,
|
||||||
|
Action_Date datetime NOT NULL,
|
||||||
|
Track varchar(15) default NULL,
|
||||||
|
User varchar(12) default NULL,
|
||||||
|
Date_Updated timestamp NOT NULL default CURRENT_TIMESTAMP on update
|
||||||
|
CURRENT_TIMESTAMP,
|
||||||
|
PRIMARY KEY (ID),
|
||||||
|
KEY Action (Action),
|
||||||
|
KEY Action_Date (Action_Date)
|
||||||
|
)|
|
||||||
|
INSERT INTO t3(Member_ID) VALUES
|
||||||
|
('111111'), ('222222'), ('333333'), ('444444'), ('555555'), ('666666')|
|
||||||
|
INSERT INTO t4(Member_ID, Action, Action_Date, Track) VALUES
|
||||||
|
('111111', 'Disenrolled', '2006-03-01', 'CAD' ),
|
||||||
|
('111111', 'Enrolled', '2006-03-01', 'CAD' ),
|
||||||
|
('111111', 'Disenrolled', '2006-07-03', 'CAD' ),
|
||||||
|
('222222', 'Enrolled', '2006-03-07', 'CAD' ),
|
||||||
|
('222222', 'Enrolled', '2006-03-07', 'CHF' ),
|
||||||
|
('222222', 'Disenrolled', '2006-08-02', 'CHF' ),
|
||||||
|
('333333', 'Enrolled', '2006-03-01', 'CAD' ),
|
||||||
|
('333333', 'Disenrolled', '2006-03-01', 'CAD' ),
|
||||||
|
('444444', 'Enrolled', '2006-03-01', 'CAD' ),
|
||||||
|
('555555', 'Disenrolled', '2006-03-01', 'CAD' ),
|
||||||
|
('555555', 'Enrolled', '2006-07-21', 'CAD' ),
|
||||||
|
('555555', 'Disenrolled', '2006-03-01', 'CHF' ),
|
||||||
|
('666666', 'Enrolled', '2006-02-09', 'CAD' ),
|
||||||
|
('666666', 'Enrolled', '2006-05-12', 'CHF' ),
|
||||||
|
('666666', 'Disenrolled', '2006-06-01', 'CAD' )|
|
||||||
|
DROP FUNCTION IF EXISTS bug21493|
|
||||||
|
CREATE FUNCTION bug21493(paramMember VARCHAR(15)) RETURNS varchar(45)
|
||||||
|
BEGIN
|
||||||
|
DECLARE tracks VARCHAR(45);
|
||||||
|
SELECT GROUP_CONCAT(Track SEPARATOR ', ') INTO tracks FROM t4
|
||||||
|
WHERE Member_ID=paramMember AND Action='Enrolled' AND
|
||||||
|
(Track,Action_Date) IN (SELECT Track, MAX(Action_Date) FROM t4
|
||||||
|
WHERE Member_ID=paramMember GROUP BY Track);
|
||||||
|
RETURN tracks;
|
||||||
|
END|
|
||||||
|
SELECT bug21493('111111')|
|
||||||
|
bug21493('111111')
|
||||||
|
NULL
|
||||||
|
SELECT bug21493('222222')|
|
||||||
|
bug21493('222222')
|
||||||
|
CAD
|
||||||
|
SELECT bug21493(Member_ID) FROM t3|
|
||||||
|
bug21493(Member_ID)
|
||||||
|
NULL
|
||||||
|
CAD
|
||||||
|
CAD
|
||||||
|
CAD
|
||||||
|
CAD
|
||||||
|
CHF
|
||||||
|
DROP FUNCTION bug21493|
|
||||||
|
DROP TABLE t3,t4|
|
||||||
|
End of 5.0 tests
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
27
mysql-test/r/strict_autoinc_1myisam.result
Normal file
27
mysql-test/r/strict_autoinc_1myisam.result
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
set @org_mode=@@sql_mode;
|
||||||
|
create table t1
|
||||||
|
(
|
||||||
|
`a` tinyint(4) NOT NULL auto_increment,
|
||||||
|
primary key (`a`)
|
||||||
|
) engine = 'MYISAM' ;
|
||||||
|
set @@sql_mode='strict_all_tables';
|
||||||
|
insert into t1 values(1000);
|
||||||
|
ERROR 22003: Out of range value adjusted for column 'a' at row 1
|
||||||
|
select count(*) from t1;
|
||||||
|
count(*)
|
||||||
|
0
|
||||||
|
set auto_increment_increment=1000;
|
||||||
|
set auto_increment_offset=700;
|
||||||
|
insert into t1 values(null);
|
||||||
|
ERROR 22003: Out of range value adjusted for column 'a' at row 1
|
||||||
|
select count(*) from t1;
|
||||||
|
count(*)
|
||||||
|
0
|
||||||
|
set @@sql_mode=@org_mode;
|
||||||
|
insert into t1 values(null);
|
||||||
|
Warnings:
|
||||||
|
Warning 1264 Out of range value adjusted for column 'a' at row 1
|
||||||
|
select * from t1;
|
||||||
|
a
|
||||||
|
127
|
||||||
|
drop table t1;
|
27
mysql-test/r/strict_autoinc_2innodb.result
Normal file
27
mysql-test/r/strict_autoinc_2innodb.result
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
set @org_mode=@@sql_mode;
|
||||||
|
create table t1
|
||||||
|
(
|
||||||
|
`a` tinyint(4) NOT NULL auto_increment,
|
||||||
|
primary key (`a`)
|
||||||
|
) engine = 'InnoDB' ;
|
||||||
|
set @@sql_mode='strict_all_tables';
|
||||||
|
insert into t1 values(1000);
|
||||||
|
ERROR 22003: Out of range value adjusted for column 'a' at row 1
|
||||||
|
select count(*) from t1;
|
||||||
|
count(*)
|
||||||
|
0
|
||||||
|
set auto_increment_increment=1000;
|
||||||
|
set auto_increment_offset=700;
|
||||||
|
insert into t1 values(null);
|
||||||
|
ERROR 22003: Out of range value adjusted for column 'a' at row 1
|
||||||
|
select count(*) from t1;
|
||||||
|
count(*)
|
||||||
|
0
|
||||||
|
set @@sql_mode=@org_mode;
|
||||||
|
insert into t1 values(null);
|
||||||
|
Warnings:
|
||||||
|
Warning 1264 Out of range value adjusted for column 'a' at row 1
|
||||||
|
select * from t1;
|
||||||
|
a
|
||||||
|
127
|
||||||
|
drop table t1;
|
27
mysql-test/r/strict_autoinc_3heap.result
Normal file
27
mysql-test/r/strict_autoinc_3heap.result
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
set @org_mode=@@sql_mode;
|
||||||
|
create table t1
|
||||||
|
(
|
||||||
|
`a` tinyint(4) NOT NULL auto_increment,
|
||||||
|
primary key (`a`)
|
||||||
|
) engine = 'MEMORY' ;
|
||||||
|
set @@sql_mode='strict_all_tables';
|
||||||
|
insert into t1 values(1000);
|
||||||
|
ERROR 22003: Out of range value adjusted for column 'a' at row 1
|
||||||
|
select count(*) from t1;
|
||||||
|
count(*)
|
||||||
|
0
|
||||||
|
set auto_increment_increment=1000;
|
||||||
|
set auto_increment_offset=700;
|
||||||
|
insert into t1 values(null);
|
||||||
|
ERROR 22003: Out of range value adjusted for column 'a' at row 1
|
||||||
|
select count(*) from t1;
|
||||||
|
count(*)
|
||||||
|
0
|
||||||
|
set @@sql_mode=@org_mode;
|
||||||
|
insert into t1 values(null);
|
||||||
|
Warnings:
|
||||||
|
Warning 1264 Out of range value adjusted for column 'a' at row 1
|
||||||
|
select * from t1;
|
||||||
|
a
|
||||||
|
127
|
||||||
|
drop table t1;
|
27
mysql-test/r/strict_autoinc_4bdb.result
Normal file
27
mysql-test/r/strict_autoinc_4bdb.result
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
set @org_mode=@@sql_mode;
|
||||||
|
create table t1
|
||||||
|
(
|
||||||
|
`a` tinyint(4) NOT NULL auto_increment,
|
||||||
|
primary key (`a`)
|
||||||
|
) engine = 'BDB' ;
|
||||||
|
set @@sql_mode='strict_all_tables';
|
||||||
|
insert into t1 values(1000);
|
||||||
|
ERROR 22003: Out of range value adjusted for column 'a' at row 1
|
||||||
|
select count(*) from t1;
|
||||||
|
count(*)
|
||||||
|
0
|
||||||
|
set auto_increment_increment=1000;
|
||||||
|
set auto_increment_offset=700;
|
||||||
|
insert into t1 values(null);
|
||||||
|
ERROR 22003: Out of range value adjusted for column 'a' at row 1
|
||||||
|
select count(*) from t1;
|
||||||
|
count(*)
|
||||||
|
0
|
||||||
|
set @@sql_mode=@org_mode;
|
||||||
|
insert into t1 values(null);
|
||||||
|
Warnings:
|
||||||
|
Warning 1264 Out of range value adjusted for column 'a' at row 1
|
||||||
|
select * from t1;
|
||||||
|
a
|
||||||
|
127
|
||||||
|
drop table t1;
|
27
mysql-test/r/strict_autoinc_5ndb.result
Normal file
27
mysql-test/r/strict_autoinc_5ndb.result
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
set @org_mode=@@sql_mode;
|
||||||
|
create table t1
|
||||||
|
(
|
||||||
|
`a` tinyint(4) NOT NULL auto_increment,
|
||||||
|
primary key (`a`)
|
||||||
|
) engine = 'NDB' ;
|
||||||
|
set @@sql_mode='strict_all_tables';
|
||||||
|
insert into t1 values(1000);
|
||||||
|
ERROR 22003: Out of range value adjusted for column 'a' at row 1
|
||||||
|
select count(*) from t1;
|
||||||
|
count(*)
|
||||||
|
0
|
||||||
|
set auto_increment_increment=1000;
|
||||||
|
set auto_increment_offset=700;
|
||||||
|
insert into t1 values(null);
|
||||||
|
ERROR 22003: Out of range value adjusted for column 'a' at row 1
|
||||||
|
select count(*) from t1;
|
||||||
|
count(*)
|
||||||
|
0
|
||||||
|
set @@sql_mode=@org_mode;
|
||||||
|
insert into t1 values(null);
|
||||||
|
Warnings:
|
||||||
|
Warning 1264 Out of range value adjusted for column 'a' at row 1
|
||||||
|
select * from t1;
|
||||||
|
a
|
||||||
|
127
|
||||||
|
drop table t1;
|
@ -1011,7 +1011,7 @@ INSERT INTO t1 VALUES (1);
|
|||||||
UPDATE t1 SET i=i+1 WHERE i=(SELECT MAX(i));
|
UPDATE t1 SET i=i+1 WHERE i=(SELECT MAX(i));
|
||||||
select * from t1;
|
select * from t1;
|
||||||
i
|
i
|
||||||
1
|
2
|
||||||
drop table t1;
|
drop table t1;
|
||||||
CREATE TABLE t1 (a int(1));
|
CREATE TABLE t1 (a int(1));
|
||||||
EXPLAIN EXTENDED SELECT (SELECT RAND() FROM t1) FROM t1;
|
EXPLAIN EXTENDED SELECT (SELECT RAND() FROM t1) FROM t1;
|
||||||
@ -1203,7 +1203,7 @@ UPDATE t1 SET t.i=i+(SELECT MAX(i) FROM (SELECT 1) t);
|
|||||||
ERROR 42S22: Unknown column 't.i' in 'field list'
|
ERROR 42S22: Unknown column 't.i' in 'field list'
|
||||||
select * from t1;
|
select * from t1;
|
||||||
i
|
i
|
||||||
1
|
3
|
||||||
drop table t1;
|
drop table t1;
|
||||||
CREATE TABLE t1 (
|
CREATE TABLE t1 (
|
||||||
id int(11) default NULL
|
id int(11) default NULL
|
||||||
@ -2937,6 +2937,35 @@ retailerID statusID changed
|
|||||||
0048 1 2006-01-06 12:37:50
|
0048 1 2006-01-06 12:37:50
|
||||||
0059 1 2006-01-06 12:37:50
|
0059 1 2006-01-06 12:37:50
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
create table t1(a int, primary key (a));
|
||||||
|
insert into t1 values (10);
|
||||||
|
create table t2 (a int primary key, b varchar(32), c int, unique key b(c, b));
|
||||||
|
insert into t2(a, c, b) values (1,10,'359'), (2,10,'35988'), (3,10,'35989');
|
||||||
|
explain SELECT sql_no_cache t1.a, r.a, r.b FROM t1 LEFT JOIN t2 r
|
||||||
|
ON r.a = (SELECT t2.a FROM t2 WHERE t2.c = t1.a AND t2.b <= '359899'
|
||||||
|
ORDER BY t2.c DESC, t2.b DESC LIMIT 1) WHERE t1.a = 10;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY t1 system PRIMARY NULL NULL NULL 1
|
||||||
|
1 PRIMARY r const PRIMARY PRIMARY 4 const 1
|
||||||
|
2 DEPENDENT SUBQUERY t2 range b b 40 NULL 2 Using where
|
||||||
|
SELECT sql_no_cache t1.a, r.a, r.b FROM t1 LEFT JOIN t2 r
|
||||||
|
ON r.a = (SELECT t2.a FROM t2 WHERE t2.c = t1.a AND t2.b <= '359899'
|
||||||
|
ORDER BY t2.c DESC, t2.b DESC LIMIT 1) WHERE t1.a = 10;
|
||||||
|
a a b
|
||||||
|
10 3 35989
|
||||||
|
explain SELECT sql_no_cache t1.a, r.a, r.b FROM t1 LEFT JOIN t2 r
|
||||||
|
ON r.a = (SELECT t2.a FROM t2 WHERE t2.c = t1.a AND t2.b <= '359899'
|
||||||
|
ORDER BY t2.c, t2.b LIMIT 1) WHERE t1.a = 10;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY t1 system PRIMARY NULL NULL NULL 1
|
||||||
|
1 PRIMARY r const PRIMARY PRIMARY 4 const 1
|
||||||
|
2 DEPENDENT SUBQUERY t2 range b b 40 NULL 2 Using where
|
||||||
|
SELECT sql_no_cache t1.a, r.a, r.b FROM t1 LEFT JOIN t2 r
|
||||||
|
ON r.a = (SELECT t2.a FROM t2 WHERE t2.c = t1.a AND t2.b <= '359899'
|
||||||
|
ORDER BY t2.c, t2.b LIMIT 1) WHERE t1.a = 10;
|
||||||
|
a a b
|
||||||
|
10 1 359
|
||||||
|
drop table t1,t2;
|
||||||
create table t1 (df decimal(5,1));
|
create table t1 (df decimal(5,1));
|
||||||
insert into t1 values(1.1);
|
insert into t1 values(1.1);
|
||||||
insert into t1 values(2.2);
|
insert into t1 values(2.2);
|
||||||
@ -3368,3 +3397,28 @@ ORDER BY t1.t DESC LIMIT 1);
|
|||||||
i1 i2 t i1 i2 t
|
i1 i2 t i1 i2 t
|
||||||
24 1 2005-05-27 12:40:30 24 1 2006-06-20 12:29:40
|
24 1 2005-05-27 12:40:30 24 1 2006-06-20 12:29:40
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
|
CREATE TABLE t1 (i INT);
|
||||||
|
(SELECT i FROM t1) UNION (SELECT i FROM t1);
|
||||||
|
i
|
||||||
|
SELECT sql_no_cache * FROM t1 WHERE NOT EXISTS
|
||||||
|
(
|
||||||
|
(SELECT i FROM t1) UNION
|
||||||
|
(SELECT i FROM t1)
|
||||||
|
);
|
||||||
|
i
|
||||||
|
SELECT * FROM t1
|
||||||
|
WHERE NOT EXISTS (((SELECT i FROM t1) UNION (SELECT i FROM t1)));
|
||||||
|
i
|
||||||
|
explain select ((select t11.i from t1 t11) union (select t12.i from t1 t12))
|
||||||
|
from t1;
|
||||||
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'union (select t12.i from t1 t12))
|
||||||
|
from t1' at line 1
|
||||||
|
explain select * from t1 where not exists
|
||||||
|
((select t11.i from t1 t11) union (select t12.i from t1 t12));
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY t1 system NULL NULL NULL NULL 0 const row not found
|
||||||
|
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
|
3 SUBQUERY NULL NULL NULL NULL NULL NULL NULL no matching row in const table
|
||||||
|
4 UNION t12 system NULL NULL NULL NULL 0 const row not found
|
||||||
|
NULL UNION RESULT <union2,4> ALL NULL NULL NULL NULL NULL
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -572,4 +572,34 @@ def test t1 t1 a a 16 7 1 Y 0 0 63
|
|||||||
a
|
a
|
||||||
`
|
`
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
create table bug15583(b BIT(8), n INT);
|
||||||
|
insert into bug15583 values(128, 128);
|
||||||
|
insert into bug15583 values(null, null);
|
||||||
|
insert into bug15583 values(0, 0);
|
||||||
|
insert into bug15583 values(255, 255);
|
||||||
|
select hex(b), bin(b), oct(b), hex(n), bin(n), oct(n) from bug15583;
|
||||||
|
hex(b) bin(b) oct(b) hex(n) bin(n) oct(n)
|
||||||
|
80 10000000 200 80 10000000 200
|
||||||
|
NULL NULL NULL NULL NULL NULL
|
||||||
|
0 0 0 0 0 0
|
||||||
|
FF 11111111 377 FF 11111111 377
|
||||||
|
select hex(b)=hex(n) as should_be_onetrue, bin(b)=bin(n) as should_be_onetrue, oct(b)=oct(n) as should_be_onetrue from bug15583;
|
||||||
|
should_be_onetrue should_be_onetrue should_be_onetrue
|
||||||
|
1 1 1
|
||||||
|
NULL NULL NULL
|
||||||
|
1 1 1
|
||||||
|
1 1 1
|
||||||
|
select hex(b + 0), bin(b + 0), oct(b + 0), hex(n), bin(n), oct(n) from bug15583;
|
||||||
|
hex(b + 0) bin(b + 0) oct(b + 0) hex(n) bin(n) oct(n)
|
||||||
|
80 10000000 200 80 10000000 200
|
||||||
|
NULL NULL NULL NULL NULL NULL
|
||||||
|
0 0 0 0 0 0
|
||||||
|
FF 11111111 377 FF 11111111 377
|
||||||
|
select conv(b, 10, 2), conv(b + 0, 10, 2) from bug15583;
|
||||||
|
conv(b, 10, 2) conv(b + 0, 10, 2)
|
||||||
|
10000000 10000000
|
||||||
|
NULL NULL
|
||||||
|
0 0
|
||||||
|
11111111 11111111
|
||||||
|
drop table bug15583;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
|
@ -27,12 +27,12 @@ INSERT INTO t1 VALUES ( "2000-1-2" );
|
|||||||
INSERT INTO t1 VALUES ( "2000-1-3" );
|
INSERT INTO t1 VALUES ( "2000-1-3" );
|
||||||
INSERT INTO t1 VALUES ( "2000-1-4" );
|
INSERT INTO t1 VALUES ( "2000-1-4" );
|
||||||
INSERT INTO t1 VALUES ( "2000-1-5" );
|
INSERT INTO t1 VALUES ( "2000-1-5" );
|
||||||
SELECT * FROM t1 WHERE datum BETWEEN "2000-1-2" AND "2000-1-4";
|
SELECT * FROM t1 WHERE datum BETWEEN cast("2000-1-2" as date) AND cast("2000-1-4" as date);
|
||||||
datum
|
datum
|
||||||
2000-01-02
|
2000-01-02
|
||||||
2000-01-03
|
2000-01-03
|
||||||
2000-01-04
|
2000-01-04
|
||||||
SELECT * FROM t1 WHERE datum BETWEEN "2000-1-2" AND datum - INTERVAL 100 DAY;
|
SELECT * FROM t1 WHERE datum BETWEEN cast("2000-1-2" as date) AND datum - INTERVAL 100 DAY;
|
||||||
datum
|
datum
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
CREATE TABLE t1 (
|
CREATE TABLE t1 (
|
||||||
@ -104,3 +104,9 @@ SELECT * FROM t1;
|
|||||||
y
|
y
|
||||||
0000
|
0000
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
create table t1(start_date date, end_date date);
|
||||||
|
insert into t1 values ('2000-01-01','2000-01-02');
|
||||||
|
select 1 from t1 where cast('2000-01-01 12:01:01' as datetime) between start_date and end_date;
|
||||||
|
1
|
||||||
|
1
|
||||||
|
drop table t1;
|
||||||
|
@ -1365,7 +1365,7 @@ drop table t1, t2;
|
|||||||
(select avg(1)) union (select avg(1)) union (select avg(1)) union
|
(select avg(1)) union (select avg(1)) union (select avg(1)) union
|
||||||
(select avg(1)) union (select avg(1)) union (select avg(1));
|
(select avg(1)) union (select avg(1)) union (select avg(1));
|
||||||
avg(1)
|
avg(1)
|
||||||
NULL
|
1.0000
|
||||||
select _utf8'12' union select _latin1'12345';
|
select _utf8'12' union select _latin1'12345';
|
||||||
12
|
12
|
||||||
12
|
12
|
||||||
|
@ -49,7 +49,7 @@ select v1.b from v1;
|
|||||||
ERROR 42S22: Unknown column 'v1.b' in 'field list'
|
ERROR 42S22: Unknown column 'v1.b' in 'field list'
|
||||||
explain extended select c from v1;
|
explain extended select c from v1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 5
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 5
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select (`test`.`t1`.`b` + 1) AS `c` from `test`.`t1`
|
Note 1003 select (`test`.`t1`.`b` + 1) AS `c` from `test`.`t1`
|
||||||
create algorithm=temptable view v2 (c) as select b+1 from t1;
|
create algorithm=temptable view v2 (c) as select b+1 from t1;
|
||||||
@ -83,7 +83,7 @@ c
|
|||||||
12
|
12
|
||||||
explain extended select c from v3;
|
explain extended select c from v3;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 5
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 5
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select ((`test`.`t1`.`b` + 1) + 1) AS `c` from `test`.`t1`
|
Note 1003 select ((`test`.`t1`.`b` + 1) + 1) AS `c` from `test`.`t1`
|
||||||
create algorithm=temptable view v4 (c) as select c+1 from v2;
|
create algorithm=temptable view v4 (c) as select c+1 from v2;
|
||||||
@ -376,7 +376,7 @@ c
|
|||||||
30
|
30
|
||||||
explain extended select * from v1;
|
explain extended select * from v1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 5 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`b` AS `c` from `test`.`t1` where (`test`.`t1`.`a` < 3)
|
Note 1003 select `test`.`t1`.`b` AS `c` from `test`.`t1` where (`test`.`t1`.`a` < 3)
|
||||||
update v1 set c=c+1;
|
update v1 set c=c+1;
|
||||||
@ -1391,9 +1391,9 @@ a a b
|
|||||||
4 NULL NULL
|
4 NULL NULL
|
||||||
explain extended select * from t3 left join v3 on (t3.a = v3.a);
|
explain extended select * from t3 left join v3 on (t3.a = v3.a);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 3
|
1 SIMPLE t3 ALL NULL NULL NULL NULL 3
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3
|
||||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 2
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 2
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t3`.`a` AS `a`,`test`.`t1`.`a` AS `a`,`test`.`t2`.`a` AS `b` from `test`.`t3` left join (`test`.`t1` left join `test`.`t2` on((`test`.`t1`.`a` = `test`.`t2`.`a`))) on((`test`.`t3`.`a` = `test`.`t1`.`a`)) where 1
|
Note 1003 select `test`.`t3`.`a` AS `a`,`test`.`t1`.`a` AS `a`,`test`.`t2`.`a` AS `b` from `test`.`t3` left join (`test`.`t1` left join `test`.`t2` on((`test`.`t1`.`a` = `test`.`t2`.`a`))) on((`test`.`t3`.`a` = `test`.`t1`.`a`)) where 1
|
||||||
create view v1 (a) as select a from t1;
|
create view v1 (a) as select a from t1;
|
||||||
@ -1406,9 +1406,9 @@ a a b
|
|||||||
4 NULL NULL
|
4 NULL NULL
|
||||||
explain extended select * from t3 left join v4 on (t3.a = v4.a);
|
explain extended select * from t3 left join v4 on (t3.a = v4.a);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 3
|
1 SIMPLE t3 ALL NULL NULL NULL NULL 3
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3
|
||||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 2
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 2
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t3`.`a` AS `a`,`test`.`t1`.`a` AS `a`,`test`.`t2`.`a` AS `b` from `test`.`t3` left join (`test`.`t1` left join (`test`.`t2`) on((`test`.`t1`.`a` = `test`.`t2`.`a`))) on((`test`.`t3`.`a` = `test`.`t1`.`a`)) where 1
|
Note 1003 select `test`.`t3`.`a` AS `a`,`test`.`t1`.`a` AS `a`,`test`.`t2`.`a` AS `b` from `test`.`t3` left join (`test`.`t1` left join (`test`.`t2`) on((`test`.`t1`.`a` = `test`.`t2`.`a`))) on((`test`.`t3`.`a` = `test`.`t1`.`a`)) where 1
|
||||||
prepare stmt1 from "select * from t3 left join v4 on (t3.a = v4.a);";
|
prepare stmt1 from "select * from t3 left join v4 on (t3.a = v4.a);";
|
||||||
@ -2321,12 +2321,12 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t2 ref a a 10 const,test.t1.b 2 Using where; Using index
|
1 SIMPLE t2 ref a a 10 const,test.t1.b 2 Using where; Using index
|
||||||
EXPLAIN SELECT * FROM v1 WHERE a=1;
|
EXPLAIN SELECT * FROM v1 WHERE a=1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 ref a a 5 const 1 Using where; Using index
|
1 SIMPLE t1 ref a a 5 const 1 Using where; Using index
|
||||||
1 PRIMARY t2 ref a a 10 const,test.t1.b 2 Using where; Using index
|
1 SIMPLE t2 ref a a 10 const,test.t1.b 2 Using where; Using index
|
||||||
EXPLAIN SELECT * FROM v2 WHERE a=1;
|
EXPLAIN SELECT * FROM v2 WHERE a=1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 ref a a 5 const 1 Using where; Using index
|
1 SIMPLE t1 ref a a 5 const 1 Using where; Using index
|
||||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 3 Using where
|
1 SIMPLE t3 ALL NULL NULL NULL NULL 3 Using where
|
||||||
DROP VIEW v1,v2;
|
DROP VIEW v1,v2;
|
||||||
DROP TABLE t1,t2,t3;
|
DROP TABLE t1,t2,t3;
|
||||||
create table t1 (f1 int);
|
create table t1 (f1 int);
|
||||||
@ -2409,7 +2409,7 @@ insert into t1 values (1),(2);
|
|||||||
create view v1 as select * from t1;
|
create view v1 as select * from t1;
|
||||||
explain select id from v1 order by id;
|
explain select id from v1 order by id;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 index NULL PRIMARY 4 NULL 2 Using index
|
1 SIMPLE t1 index NULL PRIMARY 4 NULL 2 Using index
|
||||||
drop view v1;
|
drop view v1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1(f1 int, f2 int);
|
create table t1(f1 int, f2 int);
|
||||||
@ -2480,7 +2480,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||||
EXPLAIN SELECT MAX(a) FROM v1;
|
EXPLAIN SELECT MAX(a) FROM v1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||||
SELECT MIN(a) FROM t1;
|
SELECT MIN(a) FROM t1;
|
||||||
MIN(a)
|
MIN(a)
|
||||||
0
|
0
|
||||||
@ -2492,7 +2492,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||||
EXPLAIN SELECT MIN(a) FROM v1;
|
EXPLAIN SELECT MIN(a) FROM v1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
CREATE TABLE t1 (x varchar(10));
|
CREATE TABLE t1 (x varchar(10));
|
||||||
@ -2586,13 +2586,13 @@ INSERT INTO t1 VALUES
|
|||||||
(4, '2005-01-03'), (5, '2005-01-04'), (6, '2005-01-05'),
|
(4, '2005-01-03'), (5, '2005-01-04'), (6, '2005-01-05'),
|
||||||
(7, '2005-01-05'), (8, '2005-01-05'), (9, '2005-01-06');
|
(7, '2005-01-05'), (8, '2005-01-05'), (9, '2005-01-06');
|
||||||
CREATE VIEW v1 AS SELECT * FROM t1;
|
CREATE VIEW v1 AS SELECT * FROM t1;
|
||||||
SELECT * FROM t1 WHERE td BETWEEN '2005.01.02' AND '2005.01.04';
|
SELECT * FROM t1 WHERE td BETWEEN CAST('2005.01.02' AS DATE) AND CAST('2005.01.04' AS DATE);
|
||||||
id td
|
id td
|
||||||
2 2005-01-02
|
2 2005-01-02
|
||||||
3 2005-01-02
|
3 2005-01-02
|
||||||
4 2005-01-03
|
4 2005-01-03
|
||||||
5 2005-01-04
|
5 2005-01-04
|
||||||
SELECT * FROM v1 WHERE td BETWEEN '2005.01.02' AND '2005.01.04';
|
SELECT * FROM v1 WHERE td BETWEEN CAST('2005.01.02' AS DATE) AND CAST('2005.01.04' AS DATE);
|
||||||
id td
|
id td
|
||||||
2 2005-01-02
|
2 2005-01-02
|
||||||
3 2005-01-02
|
3 2005-01-02
|
||||||
@ -2916,4 +2916,23 @@ DROP FUNCTION f1;
|
|||||||
DROP FUNCTION f2;
|
DROP FUNCTION f2;
|
||||||
DROP VIEW v1, v2;
|
DROP VIEW v1, v2;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (s1 int);
|
||||||
|
CREATE VIEW v1 AS SELECT * FROM t1;
|
||||||
|
EXPLAIN SELECT * FROM t1;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 system NULL NULL NULL NULL 0 const row not found
|
||||||
|
EXPLAIN SELECT * FROM v1;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 system NULL NULL NULL NULL 0 const row not found
|
||||||
|
INSERT INTO t1 VALUES (1), (3), (2);
|
||||||
|
EXPLAIN SELECT * FROM t1 t WHERE t.s1+1 < (SELECT MAX(t1.s1) FROM t1);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY t ALL NULL NULL NULL NULL 3 Using where
|
||||||
|
2 SUBQUERY t1 ALL NULL NULL NULL NULL 3
|
||||||
|
EXPLAIN SELECT * FROM v1 t WHERE t.s1+1 < (SELECT MAX(t1.s1) FROM t1);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 Using where
|
||||||
|
2 SUBQUERY t1 ALL NULL NULL NULL NULL 3
|
||||||
|
DROP VIEW v1;
|
||||||
|
DROP TABLE t1;
|
||||||
End of 5.0 tests.
|
End of 5.0 tests.
|
||||||
|
@ -103,7 +103,7 @@ ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for tabl
|
|||||||
grant select on mysqltest.t1 to mysqltest_1@localhost;
|
grant select on mysqltest.t1 to mysqltest_1@localhost;
|
||||||
explain select c from mysqltest.v1;
|
explain select c from mysqltest.v1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 system NULL NULL NULL NULL 0 const row not found
|
1 SIMPLE t1 system NULL NULL NULL NULL 0 const row not found
|
||||||
show create view mysqltest.v1;
|
show create view mysqltest.v1;
|
||||||
ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v1'
|
ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for table 'v1'
|
||||||
explain select c from mysqltest.v2;
|
explain select c from mysqltest.v2;
|
||||||
@ -123,7 +123,7 @@ ERROR 42000: SHOW VIEW command denied to user 'mysqltest_1'@'localhost' for tabl
|
|||||||
grant show view on mysqltest.* to mysqltest_1@localhost;
|
grant show view on mysqltest.* to mysqltest_1@localhost;
|
||||||
explain select c from mysqltest.v1;
|
explain select c from mysqltest.v1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 system NULL NULL NULL NULL 0 const row not found
|
1 SIMPLE t1 system NULL NULL NULL NULL 0 const row not found
|
||||||
show create view mysqltest.v1;
|
show create view mysqltest.v1;
|
||||||
View Create View
|
View Create View
|
||||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest`.`v1` AS select (`mysqltest`.`t1`.`a` + 1) AS `c`,(`mysqltest`.`t1`.`b` + 1) AS `d` from `mysqltest`.`t1`
|
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest`.`v1` AS select (`mysqltest`.`t1`.`a` + 1) AS `c`,(`mysqltest`.`t1`.`b` + 1) AS `d` from `mysqltest`.`t1`
|
||||||
@ -136,7 +136,7 @@ View Create View
|
|||||||
v2 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest`.`v2` AS select (`mysqltest`.`t1`.`a` + 1) AS `c`,(`mysqltest`.`t1`.`b` + 1) AS `d` from `mysqltest`.`t1`
|
v2 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest`.`v2` AS select (`mysqltest`.`t1`.`a` + 1) AS `c`,(`mysqltest`.`t1`.`b` + 1) AS `d` from `mysqltest`.`t1`
|
||||||
explain select c from mysqltest.v3;
|
explain select c from mysqltest.v3;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t2 system NULL NULL NULL NULL 0 const row not found
|
1 SIMPLE t2 system NULL NULL NULL NULL 0 const row not found
|
||||||
show create view mysqltest.v3;
|
show create view mysqltest.v3;
|
||||||
View Create View
|
View Create View
|
||||||
v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest`.`v3` AS select (`mysqltest`.`t2`.`a` + 1) AS `c`,(`mysqltest`.`t2`.`b` + 1) AS `d` from `mysqltest`.`t2`
|
v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `mysqltest`.`v3` AS select (`mysqltest`.`t2`.`a` + 1) AS `c`,(`mysqltest`.`t2`.`b` + 1) AS `d` from `mysqltest`.`t2`
|
||||||
|
@ -133,8 +133,6 @@ select min(a), min(case when 1=1 then a else NULL end),
|
|||||||
from t1 where b=3 group by b;
|
from t1 where b=3 group by b;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
# End of 4.1 tests
|
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Tests for bug #9939: conversion of the arguments for COALESCE and IFNULL
|
# Tests for bug #9939: conversion of the arguments for COALESCE and IFNULL
|
||||||
@ -154,3 +152,4 @@ SELECT IFNULL(t2.EMPNUM,t1.EMPNUM) AS CEMPNUM,
|
|||||||
FROM t1 LEFT JOIN t2 ON t1.EMPNUM=t2.EMPNUM;
|
FROM t1 LEFT JOIN t2 ON t1.EMPNUM=t2.EMPNUM;
|
||||||
|
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
# End of 4.1 tests
|
||||||
|
@ -674,4 +674,10 @@ create table t1(f1 varchar(800) binary not null, key(f1)) engine = innodb
|
|||||||
insert into t1 values('aaa');
|
insert into t1 values('aaa');
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#21772: can not name a column 'upgrade' when create a table
|
||||||
|
#
|
||||||
|
create table t1 (upgrade int);
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
# End of 5.0 tests
|
# End of 5.0 tests
|
||||||
|
@ -1069,23 +1069,6 @@ explain select a from t1 group by a;
|
|||||||
select a from t1 group by a;
|
select a from t1 group by a;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
#
|
|
||||||
# Bug#20393: User name truncation in mysql client
|
|
||||||
# Bug#21432: Database/Table name limited to 64 bytes, not chars, problems with multi-byte
|
|
||||||
#
|
|
||||||
set names utf8;
|
|
||||||
#create user юзер_юзер@localhost;
|
|
||||||
grant select on test.* to юзер_юзер@localhost;
|
|
||||||
--exec $MYSQL --default-character-set=utf8 --user=юзер_юзер -e "select user()"
|
|
||||||
revoke all on test.* from юзер_юзер@localhost;
|
|
||||||
drop user юзер_юзер@localhost;
|
|
||||||
|
|
||||||
create database имя_базы_в_кодировке_утф8_длиной_больше_чем_45;
|
|
||||||
use имя_базы_в_кодировке_утф8_длиной_больше_чем_45;
|
|
||||||
select database();
|
|
||||||
drop database имя_базы_в_кодировке_утф8_длиной_больше_чем_45;
|
|
||||||
use test;
|
|
||||||
|
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -153,6 +153,16 @@ DELETE FROM t1 WHERE t1.a > 0 ORDER BY t1.a LIMIT 1;
|
|||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #21392: multi-table delete with alias table name fails with
|
||||||
|
# 1003: Incorrect table name
|
||||||
|
#
|
||||||
|
|
||||||
|
create table t1 (a int);
|
||||||
|
delete `4.t1` from t1 as `4.t1` where `4.t1`.a = 5;
|
||||||
|
delete FROM `4.t1` USING t1 as `4.t1` where `4.t1`.a = 5;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -566,6 +566,19 @@ INSERT INTO t1 VALUES
|
|||||||
SELECT MAX(b) FROM t1;
|
SELECT MAX(b) FROM t1;
|
||||||
EXPLAIN SELECT MAX(b) FROM t1;
|
EXPLAIN SELECT MAX(b) FROM t1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# Bug #16792 query with subselect, join, and group not returning proper values
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a INT, b INT);
|
||||||
|
INSERT INTO t1 VALUES (1,1),(1,2),(2,3);
|
||||||
|
|
||||||
|
SELECT (SELECT COUNT(DISTINCT t1.b)) FROM t1 GROUP BY t1.a;
|
||||||
|
SELECT (SELECT COUNT(DISTINCT 12)) FROM t1 GROUP BY t1.a;
|
||||||
|
# an attempt to test all aggregate function with no table.
|
||||||
|
SELECT AVG(2), BIT_AND(2), BIT_OR(2), BIT_XOR(2), COUNT(*), COUNT(12),
|
||||||
|
COUNT(DISTINCT 12), MIN(2),MAX(2),STD(2), VARIANCE(2),SUM(2),
|
||||||
|
GROUP_CONCAT(2),GROUP_CONCAT(DISTINCT 2);
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
|
||||||
|
@ -753,4 +753,31 @@ select cast(rtrim(ltrim(' 20.06 ')) as decimal(19,2));
|
|||||||
select conv("18383815659218730760",10,10) + 0;
|
select conv("18383815659218730760",10,10) + 0;
|
||||||
select "18383815659218730760" + 0;
|
select "18383815659218730760" + 0;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #21698: substitution of a string field for a constant under a function
|
||||||
|
#
|
||||||
|
|
||||||
|
CREATE TABLE t1 (code varchar(10));
|
||||||
|
INSERT INTO t1 VALUES ('a12'), ('A12'), ('a13');
|
||||||
|
|
||||||
|
SELECT ASCII(code), code FROM t1 WHERE code='A12';
|
||||||
|
SELECT ASCII(code), code FROM t1 WHERE code='A12' AND ASCII(code)=65;
|
||||||
|
|
||||||
|
INSERT INTO t1 VALUES ('a12 '), ('A12 ');
|
||||||
|
|
||||||
|
SELECT LENGTH(code), code FROM t1 WHERE code='A12';
|
||||||
|
SELECT LENGTH(code), code FROM t1 WHERE code='A12' AND LENGTH(code)=5;
|
||||||
|
|
||||||
|
ALTER TABLE t1 ADD INDEX (code);
|
||||||
|
CREATE TABLE t2 (id varchar(10) PRIMARY KEY);
|
||||||
|
INSERT INTO t2 VALUES ('a11'), ('a12'), ('a13'), ('a14');
|
||||||
|
|
||||||
|
SELECT * FROM t1 INNER JOIN t2 ON t1.code=t2.id
|
||||||
|
WHERE t2.id='a12' AND (LENGTH(code)=5 OR code < 'a00');
|
||||||
|
EXPLAIN EXTENDED
|
||||||
|
SELECT * FROM t1 INNER JOIN t2 ON code=id
|
||||||
|
WHERE id='a12' AND (LENGTH(code)=5 OR code < 'a00');
|
||||||
|
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
|
||||||
--echo End of 5.0 tests
|
--echo End of 5.0 tests
|
||||||
|
@ -108,9 +108,6 @@ select 5.1 mod 3, 5.1 mod -3, -5.1 mod 3, -5.1 mod -3;
|
|||||||
|
|
||||||
select 5 mod 3, 5 mod -3, -5 mod 3, -5 mod -3;
|
select 5 mod 3, 5 mod -3, -5 mod 3, -5 mod -3;
|
||||||
|
|
||||||
# End of 4.1 tests
|
|
||||||
|
|
||||||
#
|
|
||||||
# Bug#6726: NOT BETWEEN parse failure
|
# Bug#6726: NOT BETWEEN parse failure
|
||||||
#
|
#
|
||||||
create table t1 (a int, b int);
|
create table t1 (a int, b int);
|
||||||
@ -127,3 +124,5 @@ SELECT GREATEST(1,NULL) FROM DUAL;
|
|||||||
SELECT LEAST('xxx','aaa',NULL,'yyy') FROM DUAL;
|
SELECT LEAST('xxx','aaa',NULL,'yyy') FROM DUAL;
|
||||||
SELECT LEAST(1.1,1.2,NULL,1.0) FROM DUAL;
|
SELECT LEAST(1.1,1.2,NULL,1.0) FROM DUAL;
|
||||||
SELECT GREATEST(1.5E+2,1.3E+2,NULL) FROM DUAL;
|
SELECT GREATEST(1.5E+2,1.3E+2,NULL) FROM DUAL;
|
||||||
|
|
||||||
|
# End of 4.1 tests
|
||||||
|
@ -419,20 +419,20 @@ drop table t1;
|
|||||||
#
|
#
|
||||||
# Bug#16377 result of DATE/TIME functions were compared as strings which
|
# Bug#16377 result of DATE/TIME functions were compared as strings which
|
||||||
# can lead to a wrong result.
|
# can lead to a wrong result.
|
||||||
#
|
# Now wrong dates should be compared only with CAST()
|
||||||
create table t1(f1 date, f2 time, f3 datetime);
|
create table t1(f1 date, f2 time, f3 datetime);
|
||||||
insert into t1 values ("2006-01-01", "12:01:01", "2006-01-01 12:01:01");
|
insert into t1 values ("2006-01-01", "12:01:01", "2006-01-01 12:01:01");
|
||||||
insert into t1 values ("2006-01-02", "12:01:02", "2006-01-02 12:01:02");
|
insert into t1 values ("2006-01-02", "12:01:02", "2006-01-02 12:01:02");
|
||||||
select f1 from t1 where f1 between "2006-1-1" and 20060101;
|
select f1 from t1 where f1 between CAST("2006-1-1" as date) and CAST(20060101 as date);
|
||||||
select f1 from t1 where f1 between "2006-1-1" and "2006.1.1";
|
select f1 from t1 where f1 between cast("2006-1-1" as date) and cast("2006.1.1" as date);
|
||||||
select f1 from t1 where date(f1) between "2006-1-1" and "2006.1.1";
|
select f1 from t1 where date(f1) between cast("2006-1-1" as date) and cast("2006.1.1" as date);
|
||||||
select f2 from t1 where f2 between "12:1:2" and "12:2:2";
|
select f2 from t1 where f2 between cast("12:1:2" as time) and cast("12:2:2" as time);
|
||||||
select f2 from t1 where time(f2) between "12:1:2" and "12:2:2";
|
select f2 from t1 where time(f2) between cast("12:1:2" as time) and cast("12:2:2" as time);
|
||||||
select f3 from t1 where f3 between "2006-1-1 12:1:1" and "2006-1-1 12:1:2";
|
select f3 from t1 where f3 between cast("2006-1-1 12:1:1" as datetime) and cast("2006-1-1 12:1:2" as datetime);
|
||||||
select f3 from t1 where timestamp(f3) between "2006-1-1 12:1:1" and "2006-1-1 12:1:2";
|
select f3 from t1 where timestamp(f3) between cast("2006-1-1 12:1:1" as datetime) and cast("2006-1-1 12:1:2" as datetime);
|
||||||
select f1 from t1 where "2006-1-1" between f1 and f3;
|
select f1 from t1 where cast("2006-1-1" as date) between f1 and f3;
|
||||||
select f1 from t1 where "2006-1-1" between date(f1) and date(f3);
|
select f1 from t1 where cast("2006-1-1" as date) between date(f1) and date(f3);
|
||||||
select f1 from t1 where "2006-1-1" between f1 and 'zzz';
|
select f1 from t1 where cast("2006-1-1" as date) between f1 and cast('zzz' as date);
|
||||||
select f1 from t1 where makedate(2006,1) between date(f1) and date(f3);
|
select f1 from t1 where makedate(2006,1) between date(f1) and date(f3);
|
||||||
select f1 from t1 where makedate(2006,2) between date(f1) and date(f3);
|
select f1 from t1 where makedate(2006,2) between date(f1) and date(f3);
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
@ -383,3 +383,35 @@ explain select * from t3 where a=1 and b=1;
|
|||||||
|
|
||||||
drop table t3;
|
drop table t3;
|
||||||
drop table t0, t1, t2;
|
drop table t0, t1, t2;
|
||||||
|
|
||||||
|
#
|
||||||
|
# BUG#20256 - LOCK WRITE - MyISAM
|
||||||
|
#
|
||||||
|
CREATE TABLE t1(a INT);
|
||||||
|
INSERT INTO t1 VALUES(1);
|
||||||
|
CREATE TABLE t2(a INT, b INT, dummy CHAR(16) DEFAULT '', KEY(a), KEY(b));
|
||||||
|
INSERT INTO t2(a,b) VALUES
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),(0,0),
|
||||||
|
(1,2);
|
||||||
|
LOCK TABLES t1 WRITE, t2 WRITE;
|
||||||
|
INSERT INTO t2(a,b) VALUES(1,2);
|
||||||
|
SELECT t2.a FROM t1,t2 WHERE t2.b=2 AND t2.a=1;
|
||||||
|
UNLOCK TABLES;
|
||||||
|
DROP TABLE t1, t2;
|
||||||
|
@ -248,6 +248,24 @@ CREATE TABLE t3 (a int, b int);
|
|||||||
INSERT INTO t3 (SELECT x, y FROM t1 JOIN t2 USING (y) WHERE z = 1);
|
INSERT INTO t3 (SELECT x, y FROM t1 JOIN t2 USING (y) WHERE z = 1);
|
||||||
DROP TABLE IF EXISTS t1,t2,t3;
|
DROP TABLE IF EXISTS t1,t2,t3;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #21774: Column count doesn't match value count at row x
|
||||||
|
#
|
||||||
|
CREATE DATABASE bug21774_1;
|
||||||
|
CREATE DATABASE bug21774_2;
|
||||||
|
|
||||||
|
CREATE TABLE bug21774_1.t1(id VARCHAR(10) NOT NULL,label VARCHAR(255));
|
||||||
|
CREATE TABLE bug21774_2.t1(id VARCHAR(10) NOT NULL,label VARCHAR(255));
|
||||||
|
CREATE TABLE bug21774_1.t2(id VARCHAR(10) NOT NULL,label VARCHAR(255));
|
||||||
|
|
||||||
|
INSERT INTO bug21774_2.t1 SELECT t1.* FROM bug21774_1.t1;
|
||||||
|
|
||||||
|
use bug21774_1;
|
||||||
|
INSERT INTO bug21774_2.t1 SELECT t1.* FROM t1;
|
||||||
|
|
||||||
|
DROP DATABASE bug21774_1;
|
||||||
|
DROP DATABASE bug21774_2;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #20989: View '(null).(null)' references invalid table(s)... on
|
# Bug #20989: View '(null).(null)' references invalid table(s)... on
|
||||||
# SQL SECURITY INVOKER
|
# SQL SECURITY INVOKER
|
||||||
|
@ -115,4 +115,27 @@ INSERT INTO t1 ( a ) SELECT 0 ON DUPLICATE KEY UPDATE a = a + VALUES (a) ;
|
|||||||
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#21555: incorrect behavior with INSERT ... ON DUPL KEY UPDATE and VALUES
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
CREATE TABLE t1
|
||||||
|
(
|
||||||
|
a BIGINT UNSIGNED,
|
||||||
|
b BIGINT UNSIGNED,
|
||||||
|
PRIMARY KEY (a)
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO t1 VALUES (45, 1) ON DUPLICATE KEY UPDATE b =
|
||||||
|
IF(VALUES(b) > t1.b, VALUES(b), t1.b);
|
||||||
|
SELECT * FROM t1;
|
||||||
|
INSERT INTO t1 VALUES (45, 2) ON DUPLICATE KEY UPDATE b =
|
||||||
|
IF(VALUES(b) > t1.b, VALUES(b), t1.b);
|
||||||
|
SELECT * FROM t1;
|
||||||
|
INSERT INTO t1 VALUES (45, 1) ON DUPLICATE KEY UPDATE b =
|
||||||
|
IF(VALUES(b) > t1.b, VALUES(b), t1.b);
|
||||||
|
SELECT * FROM t1;
|
||||||
|
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -488,6 +488,42 @@ insert into t1 values ('a'), ('b');
|
|||||||
select c1 from t1 order by c1 limit 1;
|
select c1 from t1 order by c1 limit 1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #14400 Join could miss concurrently inserted row
|
||||||
|
#
|
||||||
|
# Partial key.
|
||||||
|
create table t1 (a int not null, primary key(a));
|
||||||
|
create table t2 (a int not null, b int not null, primary key(a,b));
|
||||||
|
insert into t1 values (1),(2),(3),(4),(5),(6);
|
||||||
|
insert into t2 values (1,1),(2,1);
|
||||||
|
lock tables t1 read local, t2 read local;
|
||||||
|
select straight_join * from t1,t2 force index (primary) where t1.a=t2.a;
|
||||||
|
connect (root,localhost,root,,test,$MASTER_MYPORT,master.sock);
|
||||||
|
insert into t2 values(2,0);
|
||||||
|
disconnect root;
|
||||||
|
connection default;
|
||||||
|
select straight_join * from t1,t2 force index (primary) where t1.a=t2.a;
|
||||||
|
drop table t1,t2;
|
||||||
|
#
|
||||||
|
# Full key.
|
||||||
|
CREATE TABLE t1 (c1 varchar(250) NOT NULL);
|
||||||
|
CREATE TABLE t2 (c1 varchar(250) NOT NULL, PRIMARY KEY (c1));
|
||||||
|
INSERT INTO t1 VALUES ('test000001'), ('test000002'), ('test000003');
|
||||||
|
INSERT INTO t2 VALUES ('test000002'), ('test000003'), ('test000004');
|
||||||
|
LOCK TABLES t1 READ LOCAL, t2 READ LOCAL;
|
||||||
|
SELECT t1.c1 AS t1c1, t2.c1 AS t2c1 FROM t1, t2
|
||||||
|
WHERE t1.c1 = t2.c1 HAVING t1c1 != t2c1;
|
||||||
|
connect (con1,localhost,root,,);
|
||||||
|
connection con1;
|
||||||
|
INSERT INTO t2 VALUES ('test000001'), ('test000005');
|
||||||
|
disconnect con1;
|
||||||
|
connection default;
|
||||||
|
SELECT t1.c1 AS t1c1, t2.c1 AS t2c1 FROM t1, t2
|
||||||
|
WHERE t1.c1 = t2.c1 HAVING t1c1 != t2c1;
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
|
||||||
|
# End of 4.0 tests
|
||||||
|
|
||||||
#
|
#
|
||||||
# Test RTREE index
|
# Test RTREE index
|
||||||
#
|
#
|
||||||
|
@ -70,14 +70,21 @@ drop table t1;
|
|||||||
#
|
#
|
||||||
# "DESCRIBE" commands may return strange NULLness flags.
|
# "DESCRIBE" commands may return strange NULLness flags.
|
||||||
#
|
#
|
||||||
|
--exec $MYSQL --default-character-set utf8 test -e "create table t1 (i int, j int not null, k int); insert into t1 values (null, 1, null); select * from t1; describe t1; drop table t1;"
|
||||||
--exec $MYSQL -t --default-character-set utf8 test -e "create table t1 (i int, j int not null, k int); insert into t1 values (null, 1, null); select * from t1; describe t1; drop table t1;"
|
--exec $MYSQL -t --default-character-set utf8 test -e "create table t1 (i int, j int not null, k int); insert into t1 values (null, 1, null); select * from t1; describe t1; drop table t1;"
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug#19564: mysql displays NULL instead of space
|
# Bug#19564: mysql displays NULL instead of space
|
||||||
#
|
#
|
||||||
|
--exec $MYSQL test -e "create table b19564 (i int, s1 char(1)); insert into b19564 values (1, 'x'); insert into b19564 values (2, NULL); insert into b19564 values (3, ' '); select * from b19564 order by i; drop table b19564;"
|
||||||
--exec $MYSQL -t test -e "create table b19564 (i int, s1 char(1)); insert into b19564 values (1, 'x'); insert into b19564 values (2, NULL); insert into b19564 values (3, ' '); select * from b19564 order by i; drop table b19564;"
|
--exec $MYSQL -t test -e "create table b19564 (i int, s1 char(1)); insert into b19564 values (1, 'x'); insert into b19564 values (2, NULL); insert into b19564 values (3, ' '); select * from b19564 order by i; drop table b19564;"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
# Bug#21618: NULL shown as empty string in client
|
||||||
|
#
|
||||||
|
--exec $MYSQL test -e "select unhex('zz');"
|
||||||
|
--exec $MYSQL -t test -e "select unhex('zz');"
|
||||||
|
|
||||||
# Bug#19265 describe command does not work from mysql prompt
|
# Bug#19265 describe command does not work from mysql prompt
|
||||||
#
|
#
|
||||||
|
|
||||||
|
@ -16,9 +16,9 @@ INSERT INTO t1 VALUES (1), (2);
|
|||||||
--exec $MYSQL_DUMP --skip-create --skip-comments -X test t1
|
--exec $MYSQL_DUMP --skip-create --skip-comments -X test t1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug #2005
|
--echo # Bug #2005
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
CREATE TABLE t1 (a decimal(64, 20));
|
CREATE TABLE t1 (a decimal(64, 20));
|
||||||
INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890"),
|
INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890"),
|
||||||
@ -26,9 +26,9 @@ INSERT INTO t1 VALUES ("1234567890123456789012345678901234567890"),
|
|||||||
--exec $MYSQL_DUMP --compact test t1
|
--exec $MYSQL_DUMP --compact test t1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug #2055
|
--echo # Bug #2055
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
CREATE TABLE t1 (a double);
|
CREATE TABLE t1 (a double);
|
||||||
INSERT INTO t1 VALUES ('-9e999999');
|
INSERT INTO t1 VALUES ('-9e999999');
|
||||||
@ -38,9 +38,9 @@ INSERT INTO t1 VALUES ('-9e999999');
|
|||||||
--exec $MYSQL_DUMP --compact test t1
|
--exec $MYSQL_DUMP --compact test t1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug #3361 mysqldump quotes DECIMAL values inconsistently
|
--echo # Bug #3361 mysqldump quotes DECIMAL values inconsistently
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
CREATE TABLE t1 (a DECIMAL(10,5), b FLOAT);
|
CREATE TABLE t1 (a DECIMAL(10,5), b FLOAT);
|
||||||
|
|
||||||
@ -69,28 +69,28 @@ INSERT INTO t1 VALUES (1, "test", "tes"), (2, "TEST", "TES");
|
|||||||
--exec $MYSQL_DUMP --skip-create --compact -X test t1
|
--exec $MYSQL_DUMP --skip-create --compact -X test t1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug #1707
|
--echo # Bug #1707
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
CREATE TABLE t1 (`a"b"` char(2));
|
CREATE TABLE t1 (`a"b"` char(2));
|
||||||
INSERT INTO t1 VALUES ("1\""), ("\"2");
|
INSERT INTO t1 VALUES ("1\""), ("\"2");
|
||||||
--exec $MYSQL_DUMP --compact --skip-create -X test t1
|
--exec $MYSQL_DUMP --compact --skip-create -X test t1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug #1994
|
--echo # Bug #1994
|
||||||
# Bug #4261
|
--echo # Bug #4261
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
CREATE TABLE t1 (a VARCHAR(255)) DEFAULT CHARSET koi8r;
|
CREATE TABLE t1 (a VARCHAR(255)) DEFAULT CHARSET koi8r;
|
||||||
INSERT INTO t1 VALUES (_koi8r x'C1C2C3C4C5'), (NULL);
|
INSERT INTO t1 VALUES (_koi8r x'C1C2C3C4C5'), (NULL);
|
||||||
--exec $MYSQL_DUMP --skip-comments --skip-extended-insert test t1
|
--exec $MYSQL_DUMP --skip-comments --skip-extended-insert test t1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug #2634
|
--echo # Bug #2634
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
CREATE TABLE t1 (a int) ENGINE=MYISAM;
|
CREATE TABLE t1 (a int) ENGINE=MYISAM;
|
||||||
INSERT INTO t1 VALUES (1), (2);
|
INSERT INTO t1 VALUES (1), (2);
|
||||||
@ -98,17 +98,17 @@ INSERT INTO t1 VALUES (1), (2);
|
|||||||
--exec $MYSQL_DUMP --skip-comments --compatible=mysql323 test t1
|
--exec $MYSQL_DUMP --skip-comments --compatible=mysql323 test t1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug #2592 'mysqldump doesn't quote "tricky" names correctly'
|
--echo # Bug #2592 'mysqldump doesn't quote "tricky" names correctly'
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
create table ```a` (i int);
|
create table ```a` (i int);
|
||||||
--exec $MYSQL_DUMP --compact test
|
--exec $MYSQL_DUMP --compact test
|
||||||
drop table ```a`;
|
drop table ```a`;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug #2591 "mysqldump quotes names inconsistently"
|
--echo # Bug #2591 "mysqldump quotes names inconsistently"
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
create table t1(a int);
|
create table t1(a int);
|
||||||
--exec $MYSQL_DUMP --comments=0 test
|
--exec $MYSQL_DUMP --comments=0 test
|
||||||
@ -119,9 +119,9 @@ set global sql_mode='ANSI_QUOTES';
|
|||||||
set global sql_mode='';
|
set global sql_mode='';
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug #2705 'mysqldump --tab extra output'
|
--echo # Bug #2705 'mysqldump --tab extra output'
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
create table t1(a int);
|
create table t1(a int);
|
||||||
insert into t1 values (1),(2),(3);
|
insert into t1 values (1),(2),(3);
|
||||||
@ -135,9 +135,9 @@ insert into t1 values (1),(2),(3);
|
|||||||
--exec rm $MYSQLTEST_VARDIR/tmp/t1.txt
|
--exec rm $MYSQLTEST_VARDIR/tmp/t1.txt
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug #6101: create database problem
|
--echo # Bug #6101: create database problem
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
--exec $MYSQL_DUMP --skip-comments --databases test
|
--exec $MYSQL_DUMP --skip-comments --databases test
|
||||||
|
|
||||||
@ -145,32 +145,34 @@ create database mysqldump_test_db character set latin2 collate latin2_bin;
|
|||||||
--exec $MYSQL_DUMP --skip-comments --databases mysqldump_test_db
|
--exec $MYSQL_DUMP --skip-comments --databases mysqldump_test_db
|
||||||
drop database mysqldump_test_db;
|
drop database mysqldump_test_db;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug #7020
|
--echo # Bug #7020
|
||||||
# Check that we don't dump in UTF8 in compatible mode by default,
|
--echo # Check that we don't dump in UTF8 in compatible mode by default,
|
||||||
# but use the default compiled values, or the values given in
|
--echo # but use the default compiled values, or the values given in
|
||||||
# --default-character-set=xxx. However, we should dump in UTF8
|
--echo # --default-character-set=xxx. However, we should dump in UTF8
|
||||||
# if it is explicitely set.
|
--echo # if it is explicitely set.
|
||||||
|
|
||||||
CREATE TABLE t1 (a CHAR(10));
|
CREATE TABLE t1 (a CHAR(10));
|
||||||
INSERT INTO t1 VALUES (_latin1 '<27><><EFBFBD><EFBFBD>');
|
INSERT INTO t1 VALUES (_latin1 '<27><><EFBFBD><EFBFBD>');
|
||||||
--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments test t1
|
--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments test t1
|
||||||
#
|
|
||||||
# Bug#8063: make test mysqldump [ fail ]
|
--echo #
|
||||||
# We cannot tes this command because its output depends
|
--echo # Bug#8063: make test mysqldump [ fail ]
|
||||||
# on --default-character-set incompiled into "mysqldump" program.
|
--echo # We cannot tes this command because its output depends
|
||||||
# If the future we can move this command into a separate test with
|
--echo # on --default-character-set incompiled into "mysqldump" program.
|
||||||
# checking that "mysqldump" is compiled with "latin1"
|
--echo # If the future we can move this command into a separate test with
|
||||||
#
|
--echo # checking that "mysqldump" is compiled with "latin1"
|
||||||
|
--echo #
|
||||||
|
|
||||||
#--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments --compatible=mysql323 test t1
|
#--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments --compatible=mysql323 test t1
|
||||||
--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments --compatible=mysql323 --default-character-set=cp850 test t1
|
--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments --compatible=mysql323 --default-character-set=cp850 test t1
|
||||||
--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments --default-character-set=cp850 --compatible=mysql323 test t1
|
--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments --default-character-set=cp850 --compatible=mysql323 test t1
|
||||||
--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments --default-character-set=utf8 --compatible=mysql323 test t1
|
--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments --default-character-set=utf8 --compatible=mysql323 test t1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# WL #2319: Exclude Tables from dump
|
--echo # WL #2319: Exclude Tables from dump
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
CREATE TABLE t1 (a int);
|
CREATE TABLE t1 (a int);
|
||||||
CREATE TABLE t2 (a int);
|
CREATE TABLE t2 (a int);
|
||||||
@ -180,18 +182,18 @@ INSERT INTO t2 VALUES (4),(5),(6);
|
|||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug #8830
|
--echo # Bug #8830
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
CREATE TABLE t1 (`b` blob);
|
CREATE TABLE t1 (`b` blob);
|
||||||
INSERT INTO `t1` VALUES (0x602010000280100005E71A);
|
INSERT INTO `t1` VALUES (0x602010000280100005E71A);
|
||||||
--exec $MYSQL_DUMP --skip-extended-insert --hex-blob test --skip-comments t1
|
--exec $MYSQL_DUMP --skip-extended-insert --hex-blob test --skip-comments t1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Test for --insert-ignore
|
--echo # Test for --insert-ignore
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
CREATE TABLE t1 (a int);
|
CREATE TABLE t1 (a int);
|
||||||
INSERT INTO t1 VALUES (1),(2),(3);
|
INSERT INTO t1 VALUES (1),(2),(3);
|
||||||
@ -200,10 +202,10 @@ INSERT INTO t1 VALUES (4),(5),(6);
|
|||||||
--exec $MYSQL_DUMP --skip-comments --insert-ignore --delayed-insert test t1
|
--exec $MYSQL_DUMP --skip-comments --insert-ignore --delayed-insert test t1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug #10286: mysqldump -c crashes on table that has many fields with long
|
--echo # Bug #10286: mysqldump -c crashes on table that has many fields with long
|
||||||
# names
|
--echo # names
|
||||||
#
|
--echo #
|
||||||
create table t1 (
|
create table t1 (
|
||||||
F_c4ca4238a0b923820dcc509a6f75849b int,
|
F_c4ca4238a0b923820dcc509a6f75849b int,
|
||||||
F_c81e728d9d4c2f636f067f89cc14862c int,
|
F_c81e728d9d4c2f636f067f89cc14862c int,
|
||||||
@ -539,18 +541,18 @@ insert into t1 (F_8d3bba7425e7c98c50f52ca1b52d3735) values (1);
|
|||||||
--exec $MYSQL_DUMP --skip-comments -c test
|
--exec $MYSQL_DUMP --skip-comments -c test
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Test for --add-drop-database
|
--echo # Test for --add-drop-database
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
CREATE TABLE t1 (a int);
|
CREATE TABLE t1 (a int);
|
||||||
INSERT INTO t1 VALUES (1),(2),(3);
|
INSERT INTO t1 VALUES (1),(2),(3);
|
||||||
--exec $MYSQL_DUMP --add-drop-database --skip-comments --databases test
|
--exec $MYSQL_DUMP --add-drop-database --skip-comments --databases test
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug #9558 mysqldump --no-data db t1 t2 format still dumps data
|
--echo # Bug #9558 mysqldump --no-data db t1 t2 format still dumps data
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
CREATE DATABASE mysqldump_test_db;
|
CREATE DATABASE mysqldump_test_db;
|
||||||
USE mysqldump_test_db;
|
USE mysqldump_test_db;
|
||||||
@ -565,11 +567,11 @@ INSERT INTO t2 VALUES (1), (2);
|
|||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
DROP DATABASE mysqldump_test_db;
|
DROP DATABASE mysqldump_test_db;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Testing with tables and databases that don't exists
|
--echo # Testing with tables and databases that don't exists
|
||||||
# or contains illegal characters
|
--echo # or contains illegal characters
|
||||||
# (Bug #9358 mysqldump crashes if tablename starts with \)
|
--echo # (Bug #9358 mysqldump crashes if tablename starts with \)
|
||||||
#
|
--echo #
|
||||||
create database mysqldump_test_db;
|
create database mysqldump_test_db;
|
||||||
use mysqldump_test_db;
|
use mysqldump_test_db;
|
||||||
create table t1(a varchar(30) primary key, b int not null);
|
create table t1(a varchar(30) primary key, b int not null);
|
||||||
@ -629,9 +631,9 @@ drop database mysqldump_test_db;
|
|||||||
use test;
|
use test;
|
||||||
|
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug #9657 mysqldump xml ( -x ) does not format NULL fields correctly
|
--echo # Bug #9657 mysqldump xml ( -x ) does not format NULL fields correctly
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
create table t1 (a int(10));
|
create table t1 (a int(10));
|
||||||
create table t2 (pk int primary key auto_increment,
|
create table t2 (pk int primary key auto_increment,
|
||||||
@ -641,9 +643,10 @@ insert into t2 (a, b) values (NULL, NULL),(10, NULL),(NULL, "twenty"),(30, "thir
|
|||||||
--exec $MYSQL_DUMP --skip-comments --xml --no-create-info test
|
--exec $MYSQL_DUMP --skip-comments --xml --no-create-info test
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# BUG #12123
|
--echo # BUG #12123
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
create table t1 (a text character set utf8, b text character set latin1);
|
create table t1 (a text character set utf8, b text character set latin1);
|
||||||
insert t1 values (0x4F736E616272C3BC636B, 0x4BF66C6E);
|
insert t1 values (0x4F736E616272C3BC636B, 0x4BF66C6E);
|
||||||
select * from t1;
|
select * from t1;
|
||||||
@ -654,15 +657,16 @@ select * from t1;
|
|||||||
|
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# BUG#15328 Segmentation fault occured if my.cnf is invalid for escape sequence
|
--echo # BUG#15328 Segmentation fault occured if my.cnf is invalid for escape sequence
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
--exec $MYSQL_MY_PRINT_DEFAULTS --config-file=$MYSQL_TEST_DIR/std_data/bug15328.cnf mysqldump
|
--exec $MYSQL_MY_PRINT_DEFAULTS --config-file=$MYSQL_TEST_DIR/std_data/bug15328.cnf mysqldump
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# BUG #19025 mysqldump doesn't correctly dump "auto_increment = [int]"
|
--echo # BUG #19025 mysqldump doesn't correctly dump "auto_increment = [int]"
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
create table `t1` (
|
create table `t1` (
|
||||||
t1_name varchar(255) default null,
|
t1_name varchar(255) default null,
|
||||||
t1_id int(10) unsigned not null auto_increment,
|
t1_id int(10) unsigned not null auto_increment,
|
||||||
@ -689,9 +693,9 @@ show create table `t1`;
|
|||||||
|
|
||||||
drop table `t1`;
|
drop table `t1`;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug #18536: wrong table order
|
--echo # Bug #18536: wrong table order
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
create table t1(a int);
|
create table t1(a int);
|
||||||
create table t2(a int);
|
create table t2(a int);
|
||||||
@ -700,9 +704,10 @@ create table t3(a int);
|
|||||||
--exec $MYSQL_DUMP --skip-comments --force --no-data test t3 t1 non_existing t2
|
--exec $MYSQL_DUMP --skip-comments --force --no-data test t3 t1 non_existing t2
|
||||||
drop table t1, t2, t3;
|
drop table t1, t2, t3;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug #21288: mysqldump segmentation fault when using --where
|
--echo # Bug #21288: mysqldump segmentation fault when using --where
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
--error 2
|
--error 2
|
||||||
--exec $MYSQL_DUMP --skip-comments --force test t1 --where='xx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' 2>&1
|
--exec $MYSQL_DUMP --skip-comments --force test t1 --where='xx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' 2>&1
|
||||||
@ -710,9 +715,9 @@ drop table t1;
|
|||||||
|
|
||||||
--echo End of 4.1 tests
|
--echo End of 4.1 tests
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug #10213 mysqldump crashes when dumping VIEWs(on MacOS X)
|
--echo # Bug #10213 mysqldump crashes when dumping VIEWs(on MacOS X)
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
create database db1;
|
create database db1;
|
||||||
use db1;
|
use db1;
|
||||||
@ -734,9 +739,9 @@ drop view v2;
|
|||||||
drop database db1;
|
drop database db1;
|
||||||
use test;
|
use test;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug 10713 mysqldump includes database in create view and referenced tables
|
--echo # Bug 10713 mysqldump includes database in create view and referenced tables
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
# create table and views in db2
|
# create table and views in db2
|
||||||
create database db2;
|
create database db2;
|
||||||
@ -779,9 +784,9 @@ create view v1 as select * from t1;
|
|||||||
drop view v1;
|
drop view v1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug #10213 mysqldump crashes when dumping VIEWs(on MacOS X)
|
--echo # Bug #10213 mysqldump crashes when dumping VIEWs(on MacOS X)
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
create database mysqldump_test_db;
|
create database mysqldump_test_db;
|
||||||
use mysqldump_test_db;
|
use mysqldump_test_db;
|
||||||
@ -803,18 +808,18 @@ drop view v2;
|
|||||||
drop database mysqldump_test_db;
|
drop database mysqldump_test_db;
|
||||||
use test;
|
use test;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug #9756
|
--echo # Bug #9756
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
CREATE TABLE t1 (a char(10));
|
CREATE TABLE t1 (a char(10));
|
||||||
INSERT INTO t1 VALUES ('\'');
|
INSERT INTO t1 VALUES ('\'');
|
||||||
--exec $MYSQL_DUMP --skip-comments test t1
|
--exec $MYSQL_DUMP --skip-comments test t1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug #10927 mysqldump: Can't reload dump with view that consist of other view
|
--echo # Bug #10927 mysqldump: Can't reload dump with view that consist of other view
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
create table t1(a int, b int, c varchar(30));
|
create table t1(a int, b int, c varchar(30));
|
||||||
|
|
||||||
@ -834,9 +839,9 @@ select v3.a from v3, v1 where v1.a=v3.a and v3.b=3 limit 1;
|
|||||||
drop view v1, v2, v3;
|
drop view v1, v2, v3;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Test for dumping triggers
|
--echo # Test for dumping triggers
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
CREATE TABLE t1 (a int, b bigint default NULL);
|
CREATE TABLE t1 (a int, b bigint default NULL);
|
||||||
CREATE TABLE t2 (a int);
|
CREATE TABLE t2 (a int);
|
||||||
@ -884,9 +889,9 @@ show tables;
|
|||||||
show triggers;
|
show triggers;
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bugs #9136, #12917: problems with --defaults-extra-file option
|
--echo # Bugs #9136, #12917: problems with --defaults-extra-file option
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
--system echo '[mysqltest1]' > $MYSQLTEST_VARDIR/tmp/tmp.cnf
|
--system echo '[mysqltest1]' > $MYSQLTEST_VARDIR/tmp/tmp.cnf
|
||||||
--system echo 'port=1234' >> $MYSQLTEST_VARDIR/tmp/tmp.cnf
|
--system echo 'port=1234' >> $MYSQLTEST_VARDIR/tmp/tmp.cnf
|
||||||
@ -894,9 +899,9 @@ DROP TABLE t1, t2;
|
|||||||
--exec $MYSQL_MY_PRINT_DEFAULTS -e $MYSQLTEST_VARDIR/tmp/tmp.cnf mysqltest1 mysqltest1
|
--exec $MYSQL_MY_PRINT_DEFAULTS -e $MYSQLTEST_VARDIR/tmp/tmp.cnf mysqltest1 mysqltest1
|
||||||
--system rm $MYSQLTEST_VARDIR/tmp/tmp.cnf
|
--system rm $MYSQLTEST_VARDIR/tmp/tmp.cnf
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Test of fix to BUG 12597
|
--echo # Test of fix to BUG 12597
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `test1`;
|
DROP TABLE IF EXISTS `test1`;
|
||||||
CREATE TABLE `test1` (
|
CREATE TABLE `test1` (
|
||||||
@ -932,9 +937,9 @@ DROP TRIGGER testref;
|
|||||||
DROP TABLE test1;
|
DROP TABLE test1;
|
||||||
DROP TABLE test2;
|
DROP TABLE test2;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# BUG#9056 - mysqldump does not dump routines
|
--echo # BUG#9056 - mysqldump does not dump routines
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
@ -981,9 +986,10 @@ DROP PROCEDURE bug9056_proc2;
|
|||||||
DROP PROCEDURE `a'b`;
|
DROP PROCEDURE `a'b`;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# BUG# 13052 - mysqldump timestamp reloads broken
|
--echo # BUG# 13052 - mysqldump timestamp reloads broken
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
@ -1003,9 +1009,10 @@ drop table t1;
|
|||||||
set global time_zone=default;
|
set global time_zone=default;
|
||||||
set time_zone=default;
|
set time_zone=default;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Test of fix to BUG 13146 - ansi quotes break loading of triggers
|
--echo # Test of fix to BUG 13146 - ansi quotes break loading of triggers
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
DROP TABLE IF EXISTS `t1 test`;
|
DROP TABLE IF EXISTS `t1 test`;
|
||||||
DROP TABLE IF EXISTS `t2 test`;
|
DROP TABLE IF EXISTS `t2 test`;
|
||||||
@ -1036,9 +1043,9 @@ DROP TRIGGER `test trig`;
|
|||||||
DROP TABLE `t1 test`;
|
DROP TABLE `t1 test`;
|
||||||
DROP TABLE `t2 test`;
|
DROP TABLE `t2 test`;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# BUG# 12838 mysqldump -x with views exits with error
|
--echo # BUG# 12838 mysqldump -x with views exits with error
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
@ -1060,10 +1067,10 @@ drop view v0;
|
|||||||
drop view v1;
|
drop view v1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# BUG#14554 - mysqldump does not separate words "ROW" and "BEGIN"
|
--echo # BUG#14554 - mysqldump does not separate words "ROW" and "BEGIN"
|
||||||
# for tables with trigger created in the IGNORE_SPACE sql mode.
|
--echo # for tables with trigger created in the IGNORE_SPACE sql mode.
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
SET @old_sql_mode = @@SQL_MODE;
|
SET @old_sql_mode = @@SQL_MODE;
|
||||||
SET SQL_MODE = IGNORE_SPACE;
|
SET SQL_MODE = IGNORE_SPACE;
|
||||||
@ -1084,18 +1091,19 @@ SET SQL_MODE = @old_sql_mode;
|
|||||||
DROP TRIGGER tr1;
|
DROP TRIGGER tr1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug #13318: Bad result with empty field and --hex-blob
|
--echo # Bug #13318: Bad result with empty field and --hex-blob
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
create table t1 (a binary(1), b blob);
|
create table t1 (a binary(1), b blob);
|
||||||
insert into t1 values ('','');
|
insert into t1 values ('','');
|
||||||
--exec $MYSQL_DUMP --skip-comments --skip-extended-insert --hex-blob test t1
|
--exec $MYSQL_DUMP --skip-comments --skip-extended-insert --hex-blob test t1
|
||||||
--exec $MYSQL_DUMP --skip-comments --hex-blob test t1
|
--exec $MYSQL_DUMP --skip-comments --hex-blob test t1
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug 14871 Invalid view dump output
|
--echo # Bug 14871 Invalid view dump output
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
insert into t1 values (289), (298), (234), (456), (789);
|
insert into t1 values (289), (298), (234), (456), (789);
|
||||||
@ -1122,9 +1130,9 @@ select * from v3 order by a;
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
drop view v1, v2, v3, v4, v5;
|
drop view v1, v2, v3, v4, v5;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug #16878 dump of trigger
|
--echo # Bug #16878 dump of trigger
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
create table t1 (a int, created datetime);
|
create table t1 (a int, created datetime);
|
||||||
create table t2 (b int, created datetime);
|
create table t2 (b int, created datetime);
|
||||||
@ -1152,11 +1160,10 @@ drop trigger tr1;
|
|||||||
drop trigger tr2;
|
drop trigger tr2;
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Bug#18462 mysqldump does not dump view structures correctly
|
||||||
|
--echo #
|
||||||
|
|
||||||
#
|
|
||||||
# Bug#18462 mysqldump does not dump view structures correctly
|
|
||||||
#
|
|
||||||
#
|
|
||||||
create table t (qty int, price int);
|
create table t (qty int, price int);
|
||||||
insert into t values(3, 50);
|
insert into t values(3, 50);
|
||||||
insert into t values(5, 51);
|
insert into t values(5, 51);
|
||||||
@ -1173,11 +1180,11 @@ drop view v2;
|
|||||||
drop table t;
|
drop table t;
|
||||||
|
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug#14857 Reading dump files with single statement stored routines fails.
|
--echo # Bug#14857 Reading dump files with single statement stored routines fails.
|
||||||
# fixed by patch for bug#16878
|
--echo # fixed by patch for bug#16878
|
||||||
#
|
--echo #
|
||||||
#
|
|
||||||
DELIMITER |;
|
DELIMITER |;
|
||||||
/*!50003 CREATE FUNCTION `f`() RETURNS bigint(20)
|
/*!50003 CREATE FUNCTION `f`() RETURNS bigint(20)
|
||||||
return 42 */|
|
return 42 */|
|
||||||
@ -1189,10 +1196,10 @@ show create procedure p;
|
|||||||
drop function f;
|
drop function f;
|
||||||
drop procedure p;
|
drop procedure p;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug #17371 Unable to dump a schema with invalid views
|
--echo # Bug #17371 Unable to dump a schema with invalid views
|
||||||
#
|
--echo #
|
||||||
#
|
|
||||||
create table t1 ( id serial );
|
create table t1 ( id serial );
|
||||||
create view v1 as select * from t1;
|
create view v1 as select * from t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
@ -1203,9 +1210,9 @@ drop table t1;
|
|||||||
--echo } mysqldump
|
--echo } mysqldump
|
||||||
drop view v1;
|
drop view v1;
|
||||||
|
|
||||||
# BUG#17201 Spurious 'DROP DATABASE' in output,
|
--echo # BUG#17201 Spurious 'DROP DATABASE' in output,
|
||||||
# also confusion between tables and views.
|
--echo # also confusion between tables and views.
|
||||||
# Example code from Markus Popp
|
--echo # Example code from Markus Popp
|
||||||
|
|
||||||
create database mysqldump_test_db;
|
create database mysqldump_test_db;
|
||||||
use mysqldump_test_db;
|
use mysqldump_test_db;
|
||||||
@ -1220,7 +1227,9 @@ drop view v1;
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
drop database mysqldump_test_db;
|
drop database mysqldump_test_db;
|
||||||
|
|
||||||
# Bug21014 Segmentation fault of mysqldump on view
|
--echo #
|
||||||
|
--echo # Bug21014 Segmentation fault of mysqldump on view
|
||||||
|
--echo #
|
||||||
|
|
||||||
create database mysqldump_tables;
|
create database mysqldump_tables;
|
||||||
use mysqldump_tables;
|
use mysqldump_tables;
|
||||||
@ -1237,7 +1246,9 @@ drop database mysqldump_views;
|
|||||||
drop table mysqldump_tables.basetable;
|
drop table mysqldump_tables.basetable;
|
||||||
drop database mysqldump_tables;
|
drop database mysqldump_tables;
|
||||||
|
|
||||||
# Bug20221 Dumping of multiple databases containing view(s) yields maleformed dumps
|
--echo #
|
||||||
|
--echo # Bug20221 Dumping of multiple databases containing view(s) yields maleformed dumps
|
||||||
|
--echo #
|
||||||
|
|
||||||
create database mysqldump_dba;
|
create database mysqldump_dba;
|
||||||
use mysqldump_dba;
|
use mysqldump_dba;
|
||||||
@ -1276,9 +1287,9 @@ drop table t1;
|
|||||||
drop database mysqldump_dbb;
|
drop database mysqldump_dbb;
|
||||||
use test;
|
use test;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug#21215 mysqldump creating incomplete backups without warning
|
--echo # Bug#21215 mysqldump creating incomplete backups without warning
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
# Create user without sufficient privs to perform the requested operation
|
# Create user without sufficient privs to perform the requested operation
|
||||||
create user mysqltest_1@localhost;
|
create user mysqltest_1@localhost;
|
||||||
@ -1318,35 +1329,89 @@ grant REPLICATION CLIENT on *.* to mysqltest_1@localhost;
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
drop user mysqltest_1@localhost;
|
drop user mysqltest_1@localhost;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug #21527 mysqldump incorrectly tries to LOCK TABLES on the
|
--echo # Bug #21527 mysqldump incorrectly tries to LOCK TABLES on the
|
||||||
# information_schema database.
|
--echo # information_schema database.
|
||||||
#
|
--echo #
|
||||||
|
--echo # Bug #21424 mysqldump failing to export/import views
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
# Do as root
|
||||||
connect (root,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK);
|
connect (root,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK);
|
||||||
connection root;
|
connection root;
|
||||||
create database mysqldump_myDB;
|
create database mysqldump_myDB;
|
||||||
use mysqldump_myDB;
|
use mysqldump_myDB;
|
||||||
create user myDB_User;
|
create user myDB_User;
|
||||||
grant create view, select on mysqldump_myDB.* to myDB_User@localhost;
|
grant create, create view, select, insert on mysqldump_myDB.* to myDB_User@localhost;
|
||||||
create table t1 (c1 int);
|
create table t1 (c1 int);
|
||||||
insert into t1 values (3);
|
insert into t1 values (3);
|
||||||
|
|
||||||
|
# Do as a user
|
||||||
connect (user1,localhost,myDB_User,,mysqldump_myDB,$MASTER_MYPORT,$MASTER_MYSOCK);
|
connect (user1,localhost,myDB_User,,mysqldump_myDB,$MASTER_MYPORT,$MASTER_MYSOCK);
|
||||||
connection user1;
|
connection user1;
|
||||||
use mysqldump_myDB;
|
use mysqldump_myDB;
|
||||||
|
create table u1 (f1 int);
|
||||||
|
insert into u1 values (4);
|
||||||
create view v1 (c1) as select * from t1;
|
create view v1 (c1) as select * from t1;
|
||||||
|
|
||||||
# Backup should not fail.
|
# Backup should not fail for Bug #21527. Flush priviliges test begins.
|
||||||
--exec $MYSQL_DUMP --all-databases --add-drop-table > $MYSQLTEST_VARDIR/tmp/bug21527.sql
|
--exec $MYSQL_DUMP --skip-comments --add-drop-table --flush-privileges --ignore-table=mysql.general_log --ignore-table=mysql.slow_log --databases mysqldump_myDB mysql > $MYSQLTEST_VARDIR/tmp/bug21527.sql
|
||||||
|
|
||||||
# Clean up
|
# Clean up
|
||||||
connection root;
|
connection root;
|
||||||
use mysqldump_myDB;
|
use mysqldump_myDB;
|
||||||
drop view v1;
|
drop view v1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
drop table u1;
|
||||||
|
revoke all privileges on mysqldump_myDB.* from myDB_User@localhost;
|
||||||
|
drop user myDB_User;
|
||||||
|
drop database mysqldump_myDB;
|
||||||
|
flush privileges;
|
||||||
|
|
||||||
|
--echo # Bug #21424 continues from here.
|
||||||
|
--echo # Restore. Flush Privileges test ends.
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug21527.sql;
|
||||||
|
|
||||||
|
# Do as a user
|
||||||
|
connection user1;
|
||||||
|
use mysqldump_myDB;
|
||||||
|
|
||||||
|
# Ultimate test for correct data.
|
||||||
|
select * from mysqldump_myDB.v1;
|
||||||
|
select * from mysqldump_myDB.u1;
|
||||||
|
|
||||||
|
#Final cleanup.
|
||||||
|
connection root;
|
||||||
|
use mysqldump_myDB;
|
||||||
|
drop view v1;
|
||||||
|
drop table t1;
|
||||||
|
drop table u1;
|
||||||
revoke all privileges on mysqldump_myDB.* from myDB_User@localhost;
|
revoke all privileges on mysqldump_myDB.* from myDB_User@localhost;
|
||||||
drop user myDB_User;
|
drop user myDB_User;
|
||||||
drop database mysqldump_myDB;
|
drop database mysqldump_myDB;
|
||||||
use test;
|
use test;
|
||||||
|
|
||||||
--echo End of 5.0 tests
|
--echo #
|
||||||
|
--echo # BUG#13926: --order-by-primary fails if PKEY contains quote character
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
--disable_warnings
|
||||||
|
DROP TABLE IF EXISTS `t1`;
|
||||||
|
CREATE TABLE `t1` (
|
||||||
|
`a b` INT,
|
||||||
|
`c"d` INT,
|
||||||
|
`e``f` INT,
|
||||||
|
PRIMARY KEY (`a b`, `c"d`, `e``f`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||||
|
insert into t1 values (0815, 4711, 2006);
|
||||||
|
|
||||||
|
--exec $MYSQL_DUMP --skip-comments --compatible=ansi --order-by-primary test t1
|
||||||
|
--exec $MYSQL_DUMP --skip-comments --order-by-primary test t1
|
||||||
|
DROP TABLE `t1`;
|
||||||
|
--enable_warnings
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # End of 5.0 tests
|
||||||
|
--echo #
|
||||||
|
@ -92,3 +92,50 @@ SELECT ROW(NULL,10) <=> ROW(3,NULL);
|
|||||||
#
|
#
|
||||||
SELECT ROW(1,1,1) = ROW(1,1,1) as `1`, ROW(1,1,1) = ROW(1,2,1) as `0`, ROW(1,NULL,1) = ROW(2,2,1) as `0`, ROW(1,NULL,1) = ROW(1,2,2) as `0`, ROW(1,NULL,1) = ROW(1,2,1) as `null` ;
|
SELECT ROW(1,1,1) = ROW(1,1,1) as `1`, ROW(1,1,1) = ROW(1,2,1) as `0`, ROW(1,NULL,1) = ROW(2,2,1) as `0`, ROW(1,NULL,1) = ROW(1,2,2) as `0`, ROW(1,NULL,1) = ROW(1,2,1) as `null` ;
|
||||||
select row(NULL,1)=(2,0);
|
select row(NULL,1)=(2,0);
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #16081: row equalities are to be used for query optimizations
|
||||||
|
#
|
||||||
|
|
||||||
|
CREATE TABLE t1 (a int, b int, PRIMARY KEY (a,b));
|
||||||
|
INSERT INTO t1 VALUES (1,1), (2,1), (3,1), (1,2), (3,2), (3,3);
|
||||||
|
|
||||||
|
EXPLAIN SELECT * FROM t1 WHERE a=3 AND b=2;
|
||||||
|
EXPLAIN SELECT * FROM t1 WHERE (a,b)=(3,2);
|
||||||
|
SELECT * FROM t1 WHERE a=3 and b=2;
|
||||||
|
SELECT * FROM t1 WHERE (a,b)=(3,2);
|
||||||
|
|
||||||
|
CREATE TABLE t2 (a int, b int, c int, PRIMARY KEY (a,b,c));
|
||||||
|
INSERT INTO t2 VALUES
|
||||||
|
(1,1,2), (3,1,3), (1,2,2), (4,4,2),
|
||||||
|
(1,1,1), (3,1,1), (1,2,1);
|
||||||
|
|
||||||
|
EXPLAIN SELECT * FROM t1,t2 WHERE t1.a=t2.a AND t1.b=t2.b;
|
||||||
|
EXPLAIN SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,t2.b);
|
||||||
|
SELECT * FROM t1,t2 WHERE t1.a=t2.a and t1.b=t2.b;
|
||||||
|
SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,t2.b);
|
||||||
|
|
||||||
|
EXPLAIN SELECT * FROM t1,t2 WHERE t1.a=t2.a AND t1.b=2;
|
||||||
|
EXPLAIN SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,2);
|
||||||
|
SELECT * FROM t1,t2 WHERE t1.a=1 and t1.b=t2.b;
|
||||||
|
SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,2);
|
||||||
|
|
||||||
|
EXPLAIN EXTENDED SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,t2.b+1);
|
||||||
|
SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,t2.b+1);
|
||||||
|
|
||||||
|
EXPLAIN EXTENDED SELECT * FROM t1,t2 WHERE (t1.a-1,t1.b)=(t2.a-1,t2.b+1);
|
||||||
|
SELECT * FROM t1,t2 WHERE (t1.a-1,t1.b)=(t2.a-1,t2.b+1);
|
||||||
|
|
||||||
|
EXPLAIN SELECT * FROM t2 WHERE a=3 AND b=2;
|
||||||
|
EXPLAIN SELECT * FROM t2 WHERE (a,b)=(3,2);
|
||||||
|
SELECT * FROM t2 WHERE a=3 and b=2;
|
||||||
|
SELECT * FROM t2 WHERE (a,b)=(3,2);
|
||||||
|
|
||||||
|
EXPLAIN SELECT * FROM t1,t2 WHERE t2.a=t1.a AND t2.b=2 AND t2.c=1;
|
||||||
|
EXPLAIN EXTENDED SELECT * FROM t1,t2 WHERE (t2.a,(t2.b,t2.c))=(t1.a,(2,1));
|
||||||
|
SELECT * FROM t1,t2 WHERE (t2.a,(t2.b,t2.c))=(t1.a,(2,1));
|
||||||
|
|
||||||
|
EXPLAIN EXTENDED SELECT * FROM t1,t2 WHERE t2.a=t1.a AND (t2.b,t2.c)=(2,1);
|
||||||
|
SELECT * FROM t1,t2 WHERE t2.a=t1.a AND (t2.b,t2.c)=(2,1);
|
||||||
|
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
@ -1,10 +1,21 @@
|
|||||||
# See if queries that use both auto_increment and LAST_INSERT_ID()
|
--echo #
|
||||||
# are replicated well
|
--echo # Setup
|
||||||
|
--echo #
|
||||||
# We also check how the foreign_key_check variable is replicated
|
|
||||||
|
|
||||||
source include/master-slave.inc;
|
source include/master-slave.inc;
|
||||||
source include/have_innodb.inc;
|
source include/have_innodb.inc;
|
||||||
|
use test;
|
||||||
|
--disable_warnings
|
||||||
|
drop table if exists t1, t2, t3;
|
||||||
|
--enable_warnings
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # See if queries that use both auto_increment and LAST_INSERT_ID()
|
||||||
|
--echo # are replicated well
|
||||||
|
--echo #
|
||||||
|
--echo # We also check how the foreign_key_check variable is replicated
|
||||||
|
--echo #
|
||||||
|
|
||||||
connection master;
|
connection master;
|
||||||
create table t1(a int auto_increment, key(a));
|
create table t1(a int auto_increment, key(a));
|
||||||
create table t2(b int auto_increment, c int, key(b));
|
create table t2(b int auto_increment, c int, key(b));
|
||||||
@ -39,7 +50,9 @@ select * from t1;
|
|||||||
select * from t2;
|
select * from t2;
|
||||||
connection master;
|
connection master;
|
||||||
|
|
||||||
# check if INSERT SELECT in auto_increment is well replicated (bug #490)
|
--echo #
|
||||||
|
--echo # check if INSERT SELECT in auto_increment is well replicated (bug #490)
|
||||||
|
--echo #
|
||||||
|
|
||||||
drop table t2;
|
drop table t2;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
@ -62,10 +75,11 @@ save_master_pos;
|
|||||||
connection slave;
|
connection slave;
|
||||||
sync_with_master;
|
sync_with_master;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug#8412: Error codes reported in binary log for CHARACTER SET,
|
--echo # Bug#8412: Error codes reported in binary log for CHARACTER SET,
|
||||||
# FOREIGN_KEY_CHECKS
|
--echo # FOREIGN_KEY_CHECKS
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
connection master;
|
connection master;
|
||||||
SET TIMESTAMP=1000000000;
|
SET TIMESTAMP=1000000000;
|
||||||
CREATE TABLE t1 ( a INT UNIQUE );
|
CREATE TABLE t1 ( a INT UNIQUE );
|
||||||
@ -78,9 +92,10 @@ connection master;
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
sync_slave_with_master;
|
sync_slave_with_master;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# Bug#14553: NULL in WHERE resets LAST_INSERT_ID
|
--echo # Bug#14553: NULL in WHERE resets LAST_INSERT_ID
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
connection master;
|
connection master;
|
||||||
create table t1(a int auto_increment, key(a));
|
create table t1(a int auto_increment, key(a));
|
||||||
create table t2(a int);
|
create table t2(a int);
|
||||||
@ -95,8 +110,10 @@ connection master;
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
drop table t2;
|
drop table t2;
|
||||||
sync_slave_with_master;
|
sync_slave_with_master;
|
||||||
# End of 4.1 tests
|
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # End of 4.1 tests
|
||||||
|
--echo #
|
||||||
|
|
||||||
#
|
#
|
||||||
# BUG#15728: LAST_INSERT_ID function inside a stored function returns 0
|
# BUG#15728: LAST_INSERT_ID function inside a stored function returns 0
|
||||||
@ -227,7 +244,10 @@ select * from t1 order by n;
|
|||||||
|
|
||||||
connection master;
|
connection master;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
# End of 5.0 tests
|
|
||||||
|
|
||||||
sync_slave_with_master;
|
sync_slave_with_master;
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # End of 5.0 tests
|
||||||
|
--echo
|
||||||
|
|
||||||
|
|
||||||
|
@ -7,7 +7,11 @@ source include/master-slave.inc;
|
|||||||
connection slave;
|
connection slave;
|
||||||
stop slave;
|
stop slave;
|
||||||
connection master;
|
connection master;
|
||||||
# Generate a big enough master's binlog to cause relay log rotations
|
|
||||||
|
--echo #
|
||||||
|
--echo # Generate a big enough master's binlog to cause relay log rotations
|
||||||
|
--echo #
|
||||||
|
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
let $1=800;
|
let $1=800;
|
||||||
disable_query_log;
|
disable_query_log;
|
||||||
@ -23,6 +27,11 @@ drop table t1;
|
|||||||
save_master_pos;
|
save_master_pos;
|
||||||
connection slave;
|
connection slave;
|
||||||
reset slave;
|
reset slave;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Test 1
|
||||||
|
--echo #
|
||||||
|
|
||||||
set global max_binlog_size=8192;
|
set global max_binlog_size=8192;
|
||||||
set global max_relay_log_size=8192-1; # mapped to 4096
|
set global max_relay_log_size=8192-1; # mapped to 4096
|
||||||
select @@global.max_relay_log_size;
|
select @@global.max_relay_log_size;
|
||||||
@ -30,7 +39,13 @@ start slave;
|
|||||||
sync_with_master;
|
sync_with_master;
|
||||||
--replace_result $MASTER_MYPORT MASTER_PORT
|
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||||
--replace_column 1 # 8 # 9 # 23 # 33 #
|
--replace_column 1 # 8 # 9 # 23 # 33 #
|
||||||
|
--vertical_results
|
||||||
show slave status;
|
show slave status;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Test 2
|
||||||
|
--echo #
|
||||||
|
|
||||||
stop slave;
|
stop slave;
|
||||||
reset slave;
|
reset slave;
|
||||||
set global max_relay_log_size=(5*4096);
|
set global max_relay_log_size=(5*4096);
|
||||||
@ -39,7 +54,13 @@ start slave;
|
|||||||
sync_with_master;
|
sync_with_master;
|
||||||
--replace_result $MASTER_MYPORT MASTER_PORT
|
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||||
--replace_column 1 # 8 # 9 # 23 # 33 #
|
--replace_column 1 # 8 # 9 # 23 # 33 #
|
||||||
|
--vertical_results
|
||||||
show slave status;
|
show slave status;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Test 3: max_relay_log_size = 0
|
||||||
|
--echo #
|
||||||
|
|
||||||
stop slave;
|
stop slave;
|
||||||
reset slave;
|
reset slave;
|
||||||
set global max_relay_log_size=0;
|
set global max_relay_log_size=0;
|
||||||
@ -48,9 +69,12 @@ start slave;
|
|||||||
sync_with_master;
|
sync_with_master;
|
||||||
--replace_result $MASTER_MYPORT MASTER_PORT
|
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||||
--replace_column 1 # 8 # 9 # 23 # 33 #
|
--replace_column 1 # 8 # 9 # 23 # 33 #
|
||||||
|
--vertical_results
|
||||||
show slave status;
|
show slave status;
|
||||||
|
|
||||||
# Tests below are mainly to ensure that we have not coded with wrong assumptions
|
--echo #
|
||||||
|
--echo # Test 4: Tests below are mainly to ensure that we have not coded with wrong assumptions
|
||||||
|
--echo #
|
||||||
|
|
||||||
stop slave;
|
stop slave;
|
||||||
reset slave;
|
reset slave;
|
||||||
@ -59,8 +83,13 @@ reset slave;
|
|||||||
flush logs;
|
flush logs;
|
||||||
--replace_result $MASTER_MYPORT MASTER_PORT
|
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||||
--replace_column 1 # 8 # 9 # 23 # 33 #
|
--replace_column 1 # 8 # 9 # 23 # 33 #
|
||||||
|
--vertical_results
|
||||||
show slave status;
|
show slave status;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Test 5
|
||||||
|
--echo #
|
||||||
|
|
||||||
reset slave;
|
reset slave;
|
||||||
start slave;
|
start slave;
|
||||||
sync_with_master;
|
sync_with_master;
|
||||||
@ -75,8 +104,13 @@ connection slave;
|
|||||||
sync_with_master;
|
sync_with_master;
|
||||||
--replace_result $MASTER_MYPORT MASTER_PORT
|
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||||
--replace_column 1 # 8 # 9 # 23 # 33 #
|
--replace_column 1 # 8 # 9 # 23 # 33 #
|
||||||
|
--vertical_results
|
||||||
show slave status;
|
show slave status;
|
||||||
# one more rotation, to be sure Relay_Log_Space is correctly updated
|
|
||||||
|
--echo #
|
||||||
|
--echo # Test 6: one more rotation, to be sure Relay_Log_Space is correctly updated
|
||||||
|
--echo #
|
||||||
|
|
||||||
flush logs;
|
flush logs;
|
||||||
connection master;
|
connection master;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
@ -85,6 +119,7 @@ connection slave;
|
|||||||
sync_with_master;
|
sync_with_master;
|
||||||
--replace_result $MASTER_MYPORT MASTER_PORT
|
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||||
--replace_column 1 # 8 # 9 # 23 # 33 #
|
--replace_column 1 # 8 # 9 # 23 # 33 #
|
||||||
|
--vertical_results
|
||||||
show slave status;
|
show slave status;
|
||||||
|
|
||||||
connection master;
|
connection master;
|
||||||
@ -92,5 +127,6 @@ connection master;
|
|||||||
flush logs;
|
flush logs;
|
||||||
show master status;
|
show master status;
|
||||||
|
|
||||||
# End of 4.1 tests
|
--echo #
|
||||||
#
|
--echo # End of 4.1 tests
|
||||||
|
--echo #
|
||||||
|
@ -129,3 +129,24 @@ DROP TABLE t1;
|
|||||||
--sync_with_master
|
--sync_with_master
|
||||||
--connection master
|
--connection master
|
||||||
|
|
||||||
|
#
|
||||||
|
# BUG#19419: "VIEW: View that the column name is different
|
||||||
|
# by master and slave is made".
|
||||||
|
#
|
||||||
|
connection master;
|
||||||
|
create table t1(a int, b int);
|
||||||
|
insert into t1 values (1, 1), (1, 2), (1, 3);
|
||||||
|
create view v1(a, b) as select a, sum(b) from t1 group by a;
|
||||||
|
|
||||||
|
sync_slave_with_master;
|
||||||
|
explain v1;
|
||||||
|
show create table v1;
|
||||||
|
select * from v1;
|
||||||
|
|
||||||
|
connection master;
|
||||||
|
drop table t1;
|
||||||
|
drop view v1;
|
||||||
|
|
||||||
|
sync_slave_with_master;
|
||||||
|
|
||||||
|
--echo End of 5.0 tests
|
||||||
|
@ -6319,6 +6319,17 @@ call bug21416()|
|
|||||||
drop procedure bug21416|
|
drop procedure bug21416|
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# BUG#21416: SP: Recursion level higher than zero needed for non-recursive call
|
||||||
|
#
|
||||||
|
--disable_warnings
|
||||||
|
drop procedure if exists bug21416|
|
||||||
|
--enable_warnings
|
||||||
|
create procedure bug21416() show create procedure bug21416|
|
||||||
|
call bug21416()|
|
||||||
|
drop procedure bug21416|
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# BUG#21414: SP: Procedure undroppable, to some extent
|
# BUG#21414: SP: Procedure undroppable, to some extent
|
||||||
#
|
#
|
||||||
@ -6352,6 +6363,77 @@ INSERT INTO mysql.proc VALUES ('това_е_дълго_име_за_база_да
|
|||||||
call това_е_дълго_име_за_база_данни_нали.това_е_процедура_с_доста_дълго_име_нали_и_още_по_дълго()|
|
call това_е_дълго_име_за_база_данни_нали.това_е_процедура_с_доста_дълго_име_нали_и_още_по_дълго()|
|
||||||
drop database това_е_дълго_име_за_база_данни_нали|
|
drop database това_е_дълго_име_за_база_данни_нали|
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# BUG#21493: Crash on the second call of a procedure containing
|
||||||
|
# a select statement that uses an IN aggregating subquery
|
||||||
|
#
|
||||||
|
|
||||||
|
CREATE TABLE t3 (
|
||||||
|
Member_ID varchar(15) NOT NULL,
|
||||||
|
PRIMARY KEY (Member_ID)
|
||||||
|
)|
|
||||||
|
|
||||||
|
CREATE TABLE t4 (
|
||||||
|
ID int(10) unsigned NOT NULL auto_increment,
|
||||||
|
Member_ID varchar(15) NOT NULL default '',
|
||||||
|
Action varchar(12) NOT NULL,
|
||||||
|
Action_Date datetime NOT NULL,
|
||||||
|
Track varchar(15) default NULL,
|
||||||
|
User varchar(12) default NULL,
|
||||||
|
Date_Updated timestamp NOT NULL default CURRENT_TIMESTAMP on update
|
||||||
|
CURRENT_TIMESTAMP,
|
||||||
|
PRIMARY KEY (ID),
|
||||||
|
KEY Action (Action),
|
||||||
|
KEY Action_Date (Action_Date)
|
||||||
|
)|
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO t3(Member_ID) VALUES
|
||||||
|
('111111'), ('222222'), ('333333'), ('444444'), ('555555'), ('666666')|
|
||||||
|
|
||||||
|
INSERT INTO t4(Member_ID, Action, Action_Date, Track) VALUES
|
||||||
|
('111111', 'Disenrolled', '2006-03-01', 'CAD' ),
|
||||||
|
('111111', 'Enrolled', '2006-03-01', 'CAD' ),
|
||||||
|
('111111', 'Disenrolled', '2006-07-03', 'CAD' ),
|
||||||
|
('222222', 'Enrolled', '2006-03-07', 'CAD' ),
|
||||||
|
('222222', 'Enrolled', '2006-03-07', 'CHF' ),
|
||||||
|
('222222', 'Disenrolled', '2006-08-02', 'CHF' ),
|
||||||
|
('333333', 'Enrolled', '2006-03-01', 'CAD' ),
|
||||||
|
('333333', 'Disenrolled', '2006-03-01', 'CAD' ),
|
||||||
|
('444444', 'Enrolled', '2006-03-01', 'CAD' ),
|
||||||
|
('555555', 'Disenrolled', '2006-03-01', 'CAD' ),
|
||||||
|
('555555', 'Enrolled', '2006-07-21', 'CAD' ),
|
||||||
|
('555555', 'Disenrolled', '2006-03-01', 'CHF' ),
|
||||||
|
('666666', 'Enrolled', '2006-02-09', 'CAD' ),
|
||||||
|
('666666', 'Enrolled', '2006-05-12', 'CHF' ),
|
||||||
|
('666666', 'Disenrolled', '2006-06-01', 'CAD' )|
|
||||||
|
|
||||||
|
--disable_warnings
|
||||||
|
DROP FUNCTION IF EXISTS bug21493|
|
||||||
|
--enable_warnings
|
||||||
|
|
||||||
|
CREATE FUNCTION bug21493(paramMember VARCHAR(15)) RETURNS varchar(45)
|
||||||
|
BEGIN
|
||||||
|
DECLARE tracks VARCHAR(45);
|
||||||
|
SELECT GROUP_CONCAT(Track SEPARATOR ', ') INTO tracks FROM t4
|
||||||
|
WHERE Member_ID=paramMember AND Action='Enrolled' AND
|
||||||
|
(Track,Action_Date) IN (SELECT Track, MAX(Action_Date) FROM t4
|
||||||
|
WHERE Member_ID=paramMember GROUP BY Track);
|
||||||
|
RETURN tracks;
|
||||||
|
END|
|
||||||
|
|
||||||
|
SELECT bug21493('111111')|
|
||||||
|
SELECT bug21493('222222')|
|
||||||
|
|
||||||
|
SELECT bug21493(Member_ID) FROM t3|
|
||||||
|
|
||||||
|
DROP FUNCTION bug21493|
|
||||||
|
DROP TABLE t3,t4|
|
||||||
|
|
||||||
|
--echo End of 5.0 tests
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# BUG#NNNN: New bug synopsis
|
# BUG#NNNN: New bug synopsis
|
||||||
#
|
#
|
||||||
|
8
mysql-test/t/strict_autoinc_1myisam.test
Normal file
8
mysql-test/t/strict_autoinc_1myisam.test
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#
|
||||||
|
# Bug#20573 Strict mode auto-increment
|
||||||
|
#
|
||||||
|
|
||||||
|
let $type= 'MYISAM' ;
|
||||||
|
--source include/strict_autoinc.inc
|
||||||
|
|
||||||
|
# end of test
|
10
mysql-test/t/strict_autoinc_2innodb.test
Normal file
10
mysql-test/t/strict_autoinc_2innodb.test
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
-- source include/have_innodb.inc
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#20573 Strict mode auto-increment
|
||||||
|
#
|
||||||
|
|
||||||
|
let $type= 'InnoDB' ;
|
||||||
|
--source include/strict_autoinc.inc
|
||||||
|
|
||||||
|
# end of test
|
8
mysql-test/t/strict_autoinc_3heap.test
Normal file
8
mysql-test/t/strict_autoinc_3heap.test
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#
|
||||||
|
# Bug#20573 Strict mode auto-increment
|
||||||
|
#
|
||||||
|
|
||||||
|
let $type= 'MEMORY' ;
|
||||||
|
--source include/strict_autoinc.inc
|
||||||
|
|
||||||
|
# end of test
|
10
mysql-test/t/strict_autoinc_4bdb.test
Normal file
10
mysql-test/t/strict_autoinc_4bdb.test
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
-- source include/have_bdb.inc
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#20573 Strict mode auto-increment
|
||||||
|
#
|
||||||
|
|
||||||
|
let $type= 'BDB' ;
|
||||||
|
--source include/strict_autoinc.inc
|
||||||
|
|
||||||
|
# end of test
|
10
mysql-test/t/strict_autoinc_5ndb.test
Normal file
10
mysql-test/t/strict_autoinc_5ndb.test
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
-- source include/have_ndb.inc
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#20573 Strict mode auto-increment
|
||||||
|
#
|
||||||
|
|
||||||
|
let $type= 'NDB' ;
|
||||||
|
--source include/strict_autoinc.inc
|
||||||
|
|
||||||
|
# end of test
|
@ -1892,6 +1892,32 @@ select * from t1 r1
|
|||||||
group by r2.retailerId);
|
group by r2.retailerId);
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #21180: Subselect with index for both WHERE and ORDER BY
|
||||||
|
# produces empty result
|
||||||
|
#
|
||||||
|
create table t1(a int, primary key (a));
|
||||||
|
insert into t1 values (10);
|
||||||
|
|
||||||
|
create table t2 (a int primary key, b varchar(32), c int, unique key b(c, b));
|
||||||
|
insert into t2(a, c, b) values (1,10,'359'), (2,10,'35988'), (3,10,'35989');
|
||||||
|
|
||||||
|
explain SELECT sql_no_cache t1.a, r.a, r.b FROM t1 LEFT JOIN t2 r
|
||||||
|
ON r.a = (SELECT t2.a FROM t2 WHERE t2.c = t1.a AND t2.b <= '359899'
|
||||||
|
ORDER BY t2.c DESC, t2.b DESC LIMIT 1) WHERE t1.a = 10;
|
||||||
|
SELECT sql_no_cache t1.a, r.a, r.b FROM t1 LEFT JOIN t2 r
|
||||||
|
ON r.a = (SELECT t2.a FROM t2 WHERE t2.c = t1.a AND t2.b <= '359899'
|
||||||
|
ORDER BY t2.c DESC, t2.b DESC LIMIT 1) WHERE t1.a = 10;
|
||||||
|
|
||||||
|
explain SELECT sql_no_cache t1.a, r.a, r.b FROM t1 LEFT JOIN t2 r
|
||||||
|
ON r.a = (SELECT t2.a FROM t2 WHERE t2.c = t1.a AND t2.b <= '359899'
|
||||||
|
ORDER BY t2.c, t2.b LIMIT 1) WHERE t1.a = 10;
|
||||||
|
SELECT sql_no_cache t1.a, r.a, r.b FROM t1 LEFT JOIN t2 r
|
||||||
|
ON r.a = (SELECT t2.a FROM t2 WHERE t2.c = t1.a AND t2.b <= '359899'
|
||||||
|
ORDER BY t2.c, t2.b LIMIT 1) WHERE t1.a = 10;
|
||||||
|
|
||||||
|
drop table t1,t2;
|
||||||
|
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -2280,3 +2306,29 @@ SELECT * FROM t1,t2
|
|||||||
ORDER BY t1.t DESC LIMIT 1);
|
ORDER BY t1.t DESC LIMIT 1);
|
||||||
|
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#14654 : Cannot select from the same table twice within a UNION
|
||||||
|
# statement
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (i INT);
|
||||||
|
|
||||||
|
(SELECT i FROM t1) UNION (SELECT i FROM t1);
|
||||||
|
SELECT sql_no_cache * FROM t1 WHERE NOT EXISTS
|
||||||
|
(
|
||||||
|
(SELECT i FROM t1) UNION
|
||||||
|
(SELECT i FROM t1)
|
||||||
|
);
|
||||||
|
|
||||||
|
SELECT * FROM t1
|
||||||
|
WHERE NOT EXISTS (((SELECT i FROM t1) UNION (SELECT i FROM t1)));
|
||||||
|
|
||||||
|
#TODO:not supported
|
||||||
|
--error 1064
|
||||||
|
explain select ((select t11.i from t1 t11) union (select t12.i from t1 t12))
|
||||||
|
from t1;
|
||||||
|
#supported
|
||||||
|
explain select * from t1 where not exists
|
||||||
|
((select t11.i from t1 t11) union (select t12.i from t1 t12));
|
||||||
|
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -238,4 +238,19 @@ select * from t1;
|
|||||||
--disable_metadata
|
--disable_metadata
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#15583: BIN()/OCT()/CONV() do not work with BIT values
|
||||||
|
#
|
||||||
|
create table bug15583(b BIT(8), n INT);
|
||||||
|
insert into bug15583 values(128, 128);
|
||||||
|
insert into bug15583 values(null, null);
|
||||||
|
insert into bug15583 values(0, 0);
|
||||||
|
insert into bug15583 values(255, 255);
|
||||||
|
select hex(b), bin(b), oct(b), hex(n), bin(n), oct(n) from bug15583;
|
||||||
|
select hex(b)=hex(n) as should_be_onetrue, bin(b)=bin(n) as should_be_onetrue, oct(b)=oct(n) as should_be_onetrue from bug15583;
|
||||||
|
select hex(b + 0), bin(b + 0), oct(b + 0), hex(n), bin(n), oct(n) from bug15583;
|
||||||
|
select conv(b, 10, 2), conv(b + 0, 10, 2) from bug15583;
|
||||||
|
drop table bug15583;
|
||||||
|
|
||||||
|
|
||||||
--echo End of 5.0 tests
|
--echo End of 5.0 tests
|
||||||
|
@ -36,8 +36,8 @@ INSERT INTO t1 VALUES ( "2000-1-2" );
|
|||||||
INSERT INTO t1 VALUES ( "2000-1-3" );
|
INSERT INTO t1 VALUES ( "2000-1-3" );
|
||||||
INSERT INTO t1 VALUES ( "2000-1-4" );
|
INSERT INTO t1 VALUES ( "2000-1-4" );
|
||||||
INSERT INTO t1 VALUES ( "2000-1-5" );
|
INSERT INTO t1 VALUES ( "2000-1-5" );
|
||||||
SELECT * FROM t1 WHERE datum BETWEEN "2000-1-2" AND "2000-1-4";
|
SELECT * FROM t1 WHERE datum BETWEEN cast("2000-1-2" as date) AND cast("2000-1-4" as date);
|
||||||
SELECT * FROM t1 WHERE datum BETWEEN "2000-1-2" AND datum - INTERVAL 100 DAY;
|
SELECT * FROM t1 WHERE datum BETWEEN cast("2000-1-2" as date) AND datum - INTERVAL 100 DAY;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -115,4 +115,11 @@ INSERT INTO t1 VALUES ('abc');
|
|||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#21677: Wrong result when comparing a DATE and a DATETIME in BETWEEN
|
||||||
|
#
|
||||||
|
create table t1(start_date date, end_date date);
|
||||||
|
insert into t1 values ('2000-01-01','2000-01-02');
|
||||||
|
select 1 from t1 where cast('2000-01-01 12:01:01' as datetime) between start_date and end_date;
|
||||||
|
drop table t1;
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
@ -144,9 +144,6 @@ select @@version;
|
|||||||
--replace_column 1 #
|
--replace_column 1 #
|
||||||
select @@global.version;
|
select @@global.version;
|
||||||
|
|
||||||
# End of 4.1 tests
|
|
||||||
|
|
||||||
#
|
|
||||||
# Bug #6598: problem with cast(NULL as signed integer);
|
# Bug #6598: problem with cast(NULL as signed integer);
|
||||||
#
|
#
|
||||||
|
|
||||||
@ -212,3 +209,5 @@ insert into t1 values (1,2),(2,3),(3,1);
|
|||||||
select @var:=f2 from t1 group by f1 order by f2 desc limit 1;
|
select @var:=f2 from t1 group by f1 order by f2 desc limit 1;
|
||||||
select @var;
|
select @var;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
# End of 4.1 tests
|
||||||
|
@ -2449,8 +2449,8 @@ INSERT INTO t1 VALUES
|
|||||||
|
|
||||||
CREATE VIEW v1 AS SELECT * FROM t1;
|
CREATE VIEW v1 AS SELECT * FROM t1;
|
||||||
|
|
||||||
SELECT * FROM t1 WHERE td BETWEEN '2005.01.02' AND '2005.01.04';
|
SELECT * FROM t1 WHERE td BETWEEN CAST('2005.01.02' AS DATE) AND CAST('2005.01.04' AS DATE);
|
||||||
SELECT * FROM v1 WHERE td BETWEEN '2005.01.02' AND '2005.01.04';
|
SELECT * FROM v1 WHERE td BETWEEN CAST('2005.01.02' AS DATE) AND CAST('2005.01.04' AS DATE);
|
||||||
|
|
||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
@ -2833,5 +2833,21 @@ DROP FUNCTION f2;
|
|||||||
DROP VIEW v1, v2;
|
DROP VIEW v1, v2;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #5500: wrong select_type in EXPLAIN output for queries over views
|
||||||
|
#
|
||||||
|
|
||||||
|
CREATE TABLE t1 (s1 int);
|
||||||
|
CREATE VIEW v1 AS SELECT * FROM t1;
|
||||||
|
|
||||||
|
EXPLAIN SELECT * FROM t1;
|
||||||
|
EXPLAIN SELECT * FROM v1;
|
||||||
|
|
||||||
|
INSERT INTO t1 VALUES (1), (3), (2);
|
||||||
|
|
||||||
|
EXPLAIN SELECT * FROM t1 t WHERE t.s1+1 < (SELECT MAX(t1.s1) FROM t1);
|
||||||
|
EXPLAIN SELECT * FROM v1 t WHERE t.s1+1 < (SELECT MAX(t1.s1) FROM t1);
|
||||||
|
|
||||||
|
DROP VIEW v1;
|
||||||
|
DROP TABLE t1;
|
||||||
--echo End of 5.0 tests.
|
--echo End of 5.0 tests.
|
||||||
|
@ -128,12 +128,8 @@ extern "C" {
|
|||||||
|
|
||||||
#include "ndb_init.h"
|
#include "ndb_init.h"
|
||||||
|
|
||||||
#ifdef SCO
|
|
||||||
|
|
||||||
#ifndef PATH_MAX
|
#ifndef PATH_MAX
|
||||||
#define PATH_MAX 1024
|
#define PATH_MAX 1024
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* SCO */
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -97,11 +97,11 @@ port='@MYSQL_TCP_PORT@'
|
|||||||
ldflags='@LDFLAGS@'
|
ldflags='@LDFLAGS@'
|
||||||
|
|
||||||
# Create options
|
# Create options
|
||||||
# We intentionally add a space to the beginning of lib strings, simplifies replace later
|
# We intentionally add a space to the beginning and end of lib strings, simplifies replace later
|
||||||
libs=" $ldflags -L$pkglibdir -lmysqlclient @ZLIB_DEPS@ @NON_THREADED_LIBS@"
|
libs=" $ldflags -L$pkglibdir -lmysqlclient @ZLIB_DEPS@ @NON_THREADED_LIBS@"
|
||||||
libs="$libs @openssl_libs@ @STATIC_NSS_FLAGS@"
|
libs="$libs @openssl_libs@ @STATIC_NSS_FLAGS@ "
|
||||||
libs_r=" $ldflags -L$pkglibdir -lmysqlclient_r @ZLIB_DEPS@ @LIBS@ @openssl_libs@"
|
libs_r=" $ldflags -L$pkglibdir -lmysqlclient_r @ZLIB_DEPS@ @LIBS@ @openssl_libs@ "
|
||||||
embedded_libs=" $ldflags -L$pkglibdir -lmysqld @ZLIB_DEPS@ @LIBS@ @WRAPLIBS@ @innodb_system_libs@"
|
embedded_libs=" $ldflags -L$pkglibdir -lmysqld @ZLIB_DEPS@ @LIBS@ @WRAPLIBS@ @innodb_system_libs@ @openssl_libs@ "
|
||||||
|
|
||||||
cflags="-I$pkgincludedir @CFLAGS@ " #note: end space!
|
cflags="-I$pkgincludedir @CFLAGS@ " #note: end space!
|
||||||
include="-I$pkgincludedir"
|
include="-I$pkgincludedir"
|
||||||
@ -111,8 +111,9 @@ include="-I$pkgincludedir"
|
|||||||
# and -xstrconst to make --cflags usable for Sun Forte C++
|
# and -xstrconst to make --cflags usable for Sun Forte C++
|
||||||
for remove in DDBUG_OFF DSAFEMALLOC USAFEMALLOC DSAFE_MUTEX \
|
for remove in DDBUG_OFF DSAFEMALLOC USAFEMALLOC DSAFE_MUTEX \
|
||||||
DPEDANTIC_SAFEMALLOC DUNIV_MUST_NOT_INLINE DFORCE_INIT_OF_VARS \
|
DPEDANTIC_SAFEMALLOC DUNIV_MUST_NOT_INLINE DFORCE_INIT_OF_VARS \
|
||||||
DEXTRA_DEBUG DHAVE_purify 'O[0-9]' 'W[-A-Za-z]*' \
|
DEXTRA_DEBUG DHAVE_purify O 'O[0-9]' 'xO[0-9]' 'W[-A-Za-z]*' \
|
||||||
Xa xstrconst "xc99=none"
|
Xa xstrconst "xc99=none" \
|
||||||
|
unroll2 ip mp restrict
|
||||||
do
|
do
|
||||||
# The first option we might strip will always have a space before it because
|
# The first option we might strip will always have a space before it because
|
||||||
# we set -I$pkgincludedir as the first option
|
# we set -I$pkgincludedir as the first option
|
||||||
@ -121,7 +122,7 @@ done
|
|||||||
cflags=`echo "$cflags"|sed -e 's/ *\$//'`
|
cflags=`echo "$cflags"|sed -e 's/ *\$//'`
|
||||||
|
|
||||||
# Same for --libs(_r)
|
# Same for --libs(_r)
|
||||||
for remove in lmtmalloc
|
for remove in lmtmalloc static-libcxa i-static
|
||||||
do
|
do
|
||||||
# We know the strings starts with a space
|
# We know the strings starts with a space
|
||||||
libs=`echo "$libs"|sed -e "s/ -$remove */ /g"`
|
libs=`echo "$libs"|sed -e "s/ -$remove */ /g"`
|
||||||
|
@ -1758,7 +1758,7 @@ CLI_MYSQL_REAL_CONNECT(MYSQL *mysql,const char *host, const char *user,
|
|||||||
const char *passwd, const char *db,
|
const char *passwd, const char *db,
|
||||||
uint port, const char *unix_socket,ulong client_flag)
|
uint port, const char *unix_socket,ulong client_flag)
|
||||||
{
|
{
|
||||||
char buff[NAME_BYTE_LEN+USERNAME_BYTE_LENGTH+100];
|
char buff[NAME_LEN+USERNAME_LENGTH+100];
|
||||||
char *end,*host_info;
|
char *end,*host_info;
|
||||||
my_socket sock;
|
my_socket sock;
|
||||||
in_addr_t ip_addr;
|
in_addr_t ip_addr;
|
||||||
@ -2217,7 +2217,7 @@ CLI_MYSQL_REAL_CONNECT(MYSQL *mysql,const char *host, const char *user,
|
|||||||
mysql->server_status, client_flag));
|
mysql->server_status, client_flag));
|
||||||
/* This needs to be changed as it's not useful with big packets */
|
/* This needs to be changed as it's not useful with big packets */
|
||||||
if (user && user[0])
|
if (user && user[0])
|
||||||
strmake(end,user,USERNAME_BYTE_LENGTH); /* Max user name */
|
strmake(end,user,USERNAME_LENGTH); /* Max user name */
|
||||||
else
|
else
|
||||||
read_user_name((char*) end);
|
read_user_name((char*) end);
|
||||||
|
|
||||||
@ -2247,7 +2247,7 @@ CLI_MYSQL_REAL_CONNECT(MYSQL *mysql,const char *host, const char *user,
|
|||||||
/* Add database if needed */
|
/* Add database if needed */
|
||||||
if (db && (mysql->server_capabilities & CLIENT_CONNECT_WITH_DB))
|
if (db && (mysql->server_capabilities & CLIENT_CONNECT_WITH_DB))
|
||||||
{
|
{
|
||||||
end= strmake(end, db, NAME_BYTE_LEN) + 1;
|
end= strmake(end, db, NAME_LEN) + 1;
|
||||||
mysql->db= my_strdup(db,MYF(MY_WME));
|
mysql->db= my_strdup(db,MYF(MY_WME));
|
||||||
db= 0;
|
db= 0;
|
||||||
}
|
}
|
||||||
|
@ -110,5 +110,8 @@ ADD_CUSTOM_COMMAND(
|
|||||||
COMMAND ${GEN_LEX_HASH_EXE} ARGS > lex_hash.h
|
COMMAND ${GEN_LEX_HASH_EXE} ARGS > lex_hash.h
|
||||||
DEPENDS ${GEN_LEX_HASH_EXE}
|
DEPENDS ${GEN_LEX_HASH_EXE}
|
||||||
)
|
)
|
||||||
|
|
||||||
ADD_DEPENDENCIES(mysqld gen_lex_hash)
|
ADD_DEPENDENCIES(mysqld gen_lex_hash)
|
||||||
|
|
||||||
|
ADD_LIBRARY(udf_example MODULE udf_example.c udf_example.def)
|
||||||
|
ADD_DEPENDENCIES(udf_example strings)
|
||||||
|
TARGET_LINK_LIBRARIES(udf_example wsock32)
|
||||||
|
@ -117,7 +117,8 @@ DEFS = -DMYSQL_SERVER \
|
|||||||
|
|
||||||
BUILT_SOURCES = sql_yacc.cc sql_yacc.h lex_hash.h
|
BUILT_SOURCES = sql_yacc.cc sql_yacc.h lex_hash.h
|
||||||
EXTRA_DIST = $(BUILT_SOURCES) nt_servc.cc nt_servc.h \
|
EXTRA_DIST = $(BUILT_SOURCES) nt_servc.cc nt_servc.h \
|
||||||
message.mc examples/CMakeLists.txt CMakeLists.txt
|
message.mc examples/CMakeLists.txt CMakeLists.txt \
|
||||||
|
udf_example.c udf_example.def
|
||||||
DISTCLEANFILES = lex_hash.h sql_yacc.output
|
DISTCLEANFILES = lex_hash.h sql_yacc.output
|
||||||
|
|
||||||
AM_YFLAGS = -d --debug --verbose
|
AM_YFLAGS = -d --debug --verbose
|
||||||
|
@ -953,7 +953,10 @@ int ha_berkeley::write_row(byte * record)
|
|||||||
if (table->timestamp_field_type & TIMESTAMP_AUTO_SET_ON_INSERT)
|
if (table->timestamp_field_type & TIMESTAMP_AUTO_SET_ON_INSERT)
|
||||||
table->timestamp_field->set_time();
|
table->timestamp_field->set_time();
|
||||||
if (table->next_number_field && record == table->record[0])
|
if (table->next_number_field && record == table->record[0])
|
||||||
update_auto_increment();
|
{
|
||||||
|
if ((error= update_auto_increment()))
|
||||||
|
DBUG_RETURN(error);
|
||||||
|
}
|
||||||
if ((error=pack_row(&row, record,1)))
|
if ((error=pack_row(&row, record,1)))
|
||||||
DBUG_RETURN(error); /* purecov: inspected */
|
DBUG_RETURN(error); /* purecov: inspected */
|
||||||
|
|
||||||
|
@ -176,7 +176,10 @@ int ha_heap::write_row(byte * buf)
|
|||||||
if (table->timestamp_field_type & TIMESTAMP_AUTO_SET_ON_INSERT)
|
if (table->timestamp_field_type & TIMESTAMP_AUTO_SET_ON_INSERT)
|
||||||
table->timestamp_field->set_time();
|
table->timestamp_field->set_time();
|
||||||
if (table->next_number_field && buf == table->record[0])
|
if (table->next_number_field && buf == table->record[0])
|
||||||
update_auto_increment();
|
{
|
||||||
|
if ((res= update_auto_increment()))
|
||||||
|
return res;
|
||||||
|
}
|
||||||
res= heap_write(file,buf);
|
res= heap_write(file,buf);
|
||||||
if (!res && (++records_changed*HEAP_STATS_UPDATE_THRESHOLD >
|
if (!res && (++records_changed*HEAP_STATS_UPDATE_THRESHOLD >
|
||||||
file->s->records))
|
file->s->records))
|
||||||
|
@ -3252,7 +3252,8 @@ no_commit:
|
|||||||
/* We must use the handler code to update the auto-increment
|
/* We must use the handler code to update the auto-increment
|
||||||
value to be sure that we increment it correctly. */
|
value to be sure that we increment it correctly. */
|
||||||
|
|
||||||
update_auto_increment();
|
if ((error= update_auto_increment()))
|
||||||
|
goto func_exit;
|
||||||
auto_inc_used = 1;
|
auto_inc_used = 1;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -169,6 +169,14 @@ ha_myisam::ha_myisam(TABLE *table_arg)
|
|||||||
can_enable_indexes(1)
|
can_enable_indexes(1)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
handler *ha_myisam::clone(MEM_ROOT *mem_root)
|
||||||
|
{
|
||||||
|
ha_myisam *new_handler= static_cast <ha_myisam *>(handler::clone(mem_root));
|
||||||
|
if (new_handler)
|
||||||
|
new_handler->file->state= file->state;
|
||||||
|
return new_handler;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static const char *ha_myisam_exts[] = {
|
static const char *ha_myisam_exts[] = {
|
||||||
".MYI",
|
".MYI",
|
||||||
@ -316,7 +324,11 @@ int ha_myisam::write_row(byte * buf)
|
|||||||
or a new row, then update the auto_increment value in the record.
|
or a new row, then update the auto_increment value in the record.
|
||||||
*/
|
*/
|
||||||
if (table->next_number_field && buf == table->record[0])
|
if (table->next_number_field && buf == table->record[0])
|
||||||
update_auto_increment();
|
{
|
||||||
|
int error;
|
||||||
|
if ((error= update_auto_increment()))
|
||||||
|
return error;
|
||||||
|
}
|
||||||
return mi_write(file,buf);
|
return mi_write(file,buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,6 +45,7 @@ class ha_myisam: public handler
|
|||||||
public:
|
public:
|
||||||
ha_myisam(TABLE *table_arg);
|
ha_myisam(TABLE *table_arg);
|
||||||
~ha_myisam() {}
|
~ha_myisam() {}
|
||||||
|
handler *clone(MEM_ROOT *mem_root);
|
||||||
const char *table_type() const { return "MyISAM"; }
|
const char *table_type() const { return "MyISAM"; }
|
||||||
const char *index_type(uint key_number);
|
const char *index_type(uint key_number);
|
||||||
const char **bas_ext() const;
|
const char **bas_ext() const;
|
||||||
|
@ -139,7 +139,11 @@ int ha_myisammrg::write_row(byte * buf)
|
|||||||
if (table->timestamp_field_type & TIMESTAMP_AUTO_SET_ON_INSERT)
|
if (table->timestamp_field_type & TIMESTAMP_AUTO_SET_ON_INSERT)
|
||||||
table->timestamp_field->set_time();
|
table->timestamp_field->set_time();
|
||||||
if (table->next_number_field && buf == table->record[0])
|
if (table->next_number_field && buf == table->record[0])
|
||||||
update_auto_increment();
|
{
|
||||||
|
int error;
|
||||||
|
if ((error= update_auto_increment()))
|
||||||
|
return error;
|
||||||
|
}
|
||||||
return myrg_write(file,buf);
|
return myrg_write(file,buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2131,9 +2131,11 @@ int ha_ndbcluster::write_row(byte *record)
|
|||||||
if (has_auto_increment)
|
if (has_auto_increment)
|
||||||
{
|
{
|
||||||
THD *thd= table->in_use;
|
THD *thd= table->in_use;
|
||||||
|
int error;
|
||||||
|
|
||||||
m_skip_auto_increment= FALSE;
|
m_skip_auto_increment= FALSE;
|
||||||
update_auto_increment();
|
if ((error= update_auto_increment()))
|
||||||
|
DBUG_RETURN(error);
|
||||||
/* Ensure that handler is always called for auto_increment values */
|
/* Ensure that handler is always called for auto_increment values */
|
||||||
thd->next_insert_id= 0;
|
thd->next_insert_id= 0;
|
||||||
m_skip_auto_increment= !auto_increment_column_changed;
|
m_skip_auto_increment= !auto_increment_column_changed;
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user