mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
Merge mysql.com:/home/jonas/src/mysql-5.0
into mysql.com:/home/jonas/src/mysql-5.0-push sql/ha_ndbcluster.cc: Auto merged
This commit is contained in:
commit
fcb4823641
216 changed files with 8294 additions and 2645 deletions
|
@ -1117,3 +1117,5 @@ vio/test-sslclient
|
|||
vio/test-sslserver
|
||||
vio/viotest-ssl
|
||||
ndb/src/dummy.cpp
|
||||
innobase/mkinstalldirs
|
||||
mkinstalldirs
|
||||
|
|
|
@ -48,10 +48,9 @@ global_warnings="-Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wch
|
|||
c_warnings="$global_warnings -Wunused"
|
||||
cxx_warnings="$global_warnings -Woverloaded-virtual -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor"
|
||||
|
||||
base_max_configs="--with-innodb --with-berkeley-db --with-ndbcluster --with-archive-storage-engine --with-raid --with-openssl --with-raid --with-big-tables"
|
||||
max_leave_isam_configs="--with-innodb --with-berkeley-db --with-ndbcluster --with-archive-storage-engine --with-federated-storage-engine --with-raid --with-openssl --with-raid --with-embedded-server --with-big-tables"
|
||||
max_no_es_configs="$max_leave_isam_configs --without-isam"
|
||||
max_configs="$max_no_es_configs --with-embedded-server"
|
||||
base_max_configs="--with-innodb --with-berkeley-db --with-ndbcluster --with-archive-storage-engine --with-openssl --with-big-tables --with-blackhole-storage-engine --with-federated-storage-engine"
|
||||
max_leave_isam_configs="--with-innodb --with-berkeley-db --with-ndbcluster --with-archive-storage-engine --with-federated-storage-engine --with-blackhole-storage-engine --with-openssl --with-embedded-server --with-big-tables"
|
||||
max_configs="$base_max_configs --with-embedded-server"
|
||||
|
||||
path=`dirname $0`
|
||||
. "$path/check-cpu"
|
||||
|
|
|
@ -1,15 +1,21 @@
|
|||
#!/bin/sh
|
||||
# Create MySQL autotools infrastructure
|
||||
|
||||
aclocal || (echo "Can't execute aclocal" && exit 1)
|
||||
autoheader || (echo "Can't execute autoheader" && exit 1)
|
||||
die() { echo "$@"; exit 1; }
|
||||
|
||||
aclocal || die "Can't execute aclocal"
|
||||
autoheader || die "Can't execute autoheader"
|
||||
# --force means overwrite ltmain.sh script if it already exists
|
||||
libtoolize --automake --force \
|
||||
|| (echo "Can't execute libtoolize" && exit 1)
|
||||
# Added glibtoolize reference to make native OSX autotools work
|
||||
if [ -f /usr/bin/glibtoolize ] ; then
|
||||
glibtoolize --automake --force || die "Can't execute glibtoolize"
|
||||
else
|
||||
libtoolize --automake --force || die "Can't execute libtoolize"
|
||||
fi
|
||||
|
||||
# --add-missing instructs automake to install missing auxiliary files
|
||||
# and --force to overwrite them if they already exist
|
||||
automake --add-missing --force \
|
||||
|| (echo "Can't execute automake" && exit 1)
|
||||
autoconf || (echo "Can't execute autoconf" && exit 1)
|
||||
automake --add-missing --force || die "Can't execute automake"
|
||||
autoconf || die "Can't execute autoconf"
|
||||
(cd bdb/dist && sh s_all)
|
||||
(cd innobase && aclocal && autoheader && aclocal && automake && autoconf)
|
||||
|
|
|
@ -6,6 +6,6 @@ path=`dirname $0`
|
|||
extra_flags="$pentium_cflags $debug_cflags $max_cflags"
|
||||
c_warnings="$c_warnings $debug_extra_warnings"
|
||||
cxx_warnings="$cxx_warnings $debug_extra_warnings"
|
||||
extra_configs="$pentium_configs $debug_configs $max_no_es_configs"
|
||||
extra_configs="$pentium_configs $debug_configs $base_max_configs"
|
||||
|
||||
. "$path/FINISH.sh"
|
||||
|
|
|
@ -451,10 +451,6 @@ SOURCE=..\mysys\my_symlink2.c
|
|||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\mysys\my_tempnam.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\libmysql\my_time.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
|
|
@ -436,10 +436,6 @@ SOURCE=..\mysys\my_symlink2.c
|
|||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\mysys\my_tempnam.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\mysys\my_thr_init.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
|
|
@ -419,10 +419,6 @@ SOURCE=..\mysys\my_symlink2.c
|
|||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\mysys\my_tempnam.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\mysys\my_thr_init.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
|
|
@ -406,10 +406,6 @@ SOURCE=..\mysys\my_symlink2.c
|
|||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\mysys\my_tempnam.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\mysys\my_thr_init.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
|
|
@ -533,10 +533,6 @@ SOURCE=.\my_sync.c
|
|||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\my_tempnam.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\my_thr_init.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
|
|
@ -526,10 +526,6 @@ SOURCE=.\my_sync.c
|
|||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\my_tempnam.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\my_thr_init.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
|
|
@ -84,7 +84,7 @@ BSC32=bscmake.exe
|
|||
# ADD BSC32 /nologo
|
||||
LINK32=xilink6.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Wsock32.lib ..\lib_debug\dbug.lib ..\lib_debug\vio.lib ..\lib_debug\mysys.lib ..\lib_debug\strings.lib ..\lib_debug\regex.lib ..\lib_debug\heap.lib ..\lib_debug\bdb.lib ..\lib_debug\innodb.lib ..\extra\yassl\Release\yassl.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../client_debug/mysqld-debug.exe" /pdbtype:sept
|
||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Wsock32.lib ..\lib_debug\dbug.lib ..\lib_debug\vio.lib ..\lib_debug\mysys.lib ..\lib_debug\strings.lib ..\lib_debug\regex.lib ..\lib_debug\heap.lib ..\lib_debug\bdb.lib ..\lib_debug\innodb.lib ..\extra\yassl\Debug\yassl.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../client_debug/mysqld-debug.exe" /pdbtype:sept
|
||||
|
||||
!ELSEIF "$(CFG)" == "mysqld - Win32 nt"
|
||||
|
||||
|
|
|
@ -51,8 +51,8 @@ BSC32=bscmake.exe
|
|||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib mysqlclient.lib wsock32.lib mysys.lib regex.lib ..\extra\yassl\Release\yassl.lib /nologo /out:"..\mysql_client_test.exe" /incremental:yes /libpath:"..\lib_debug\" /debug /pdb:".\Debug\mysql_client_test.pdb" /pdbtype:sept /map:".\Debug\mysql_client_test.map" /subsystem:console
|
||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib mysqlclient.lib wsock32.lib mysys.lib regex.lib ..\extra\yassl\Release\yassl.lib /nologo /out:"..\mysql_client_test.exe" /incremental:yes /libpath:"..\lib_debug\" /debug /pdb:".\Debug\mysql_client_test.pdb" /pdbtype:sept /map:".\Debug\mysql_client_test.map" /subsystem:console
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib mysqlclient.lib wsock32.lib mysys.lib regex.lib ..\extra\yassl\Debug\yassl.lib /nologo /out:"..\client_debug\mysql_client_test.exe" /incremental:yes /libpath:"..\lib_debug\" /debug /pdb:".\Debug\mysql_client_test.pdb" /pdbtype:sept /map:".\Debug\mysql_client_test.map" /subsystem:console
|
||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib mysqlclient.lib wsock32.lib mysys.lib regex.lib ..\extra\yassl\Debug\yassl.lib /nologo /out:"..\client_debug\mysql_client_test.exe" /incremental:yes /libpath:"..\lib_debug\" /debug /pdb:".\Debug\mysql_client_test.pdb" /pdbtype:sept /map:".\Debug\mysql_client_test.map" /subsystem:console
|
||||
|
||||
!ELSEIF "$(CFG)" == "mysql_client_test - Win32 Release"
|
||||
|
||||
|
@ -76,8 +76,8 @@ BSC32=bscmake.exe
|
|||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib mysqlclient.lib mysys.lib regex.lib ..\extra\yassl\Release\yassl.lib /nologo /out:"..\mysql_client_test.exe" /incremental:no /pdb:".\Release\mysql_client_test.pdb" /pdbtype:sept /subsystem:console
|
||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib mysqlclient.lib mysys.lib regex.lib ..\extra\yassl\Release\yassl.lib /nologo /out:"..\mysql_client_test.exe" /incremental:no /pdb:".\Release\mysql_client_test.pdb" /pdbtype:sept /subsystem:console
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib mysqlclient.lib mysys.lib regex.lib ..\extra\yassl\Release\yassl.lib /nologo /out:"..\client_release\mysql_client_test.exe" /incremental:no /libpath:"..\lib_release\" /pdb:".\Release\mysql_client_test.pdb" /pdbtype:sept /subsystem:console
|
||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib mysqlclient.lib mysys.lib regex.lib ..\extra\yassl\Release\yassl.lib /nologo /out:"..\client_release\mysql_client_test.exe" /incremental:no /libpath:"..\lib_release\" /pdb:".\Release\mysql_client_test.pdb" /pdbtype:sept /subsystem:console
|
||||
|
||||
!ENDIF
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
#include <locale.h>
|
||||
#endif
|
||||
|
||||
const char *VER= "14.11";
|
||||
const char *VER= "14.12";
|
||||
|
||||
/* Don't try to make a nice table if the data is too big */
|
||||
#define MAX_COLUMN_LENGTH 1024
|
||||
|
@ -340,16 +340,15 @@ static sig_handler mysql_end(int sig);
|
|||
int main(int argc,char *argv[])
|
||||
{
|
||||
char buff[80];
|
||||
char *defaults, *extra_defaults;
|
||||
char *emb_argv[3];
|
||||
int emb_argc= 1;
|
||||
char *defaults, *extra_defaults, *group_suffix;
|
||||
char *emb_argv[4];
|
||||
int emb_argc;
|
||||
|
||||
emb_argv[0]= argv[0];
|
||||
get_defaults_files(argc, argv, &defaults, &extra_defaults);
|
||||
if (defaults)
|
||||
emb_argv[emb_argc++]= defaults;
|
||||
if (extra_defaults)
|
||||
emb_argv[emb_argc++]= extra_defaults;
|
||||
/* Get --defaults-xxx args for mysql_server_init() */
|
||||
emb_argc= get_defaults_options(argc, argv, &defaults, &extra_defaults,
|
||||
&group_suffix)+1;
|
||||
memcpy((char*) emb_argv, (char*) argv, emb_argc * sizeof(*argv));
|
||||
emb_argv[emb_argc]= 0;
|
||||
|
||||
MY_INIT(argv[0]);
|
||||
DBUG_ENTER("main");
|
||||
|
@ -2060,6 +2059,7 @@ static void end_tee()
|
|||
return;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
com_ego(String *buffer,char *line)
|
||||
{
|
||||
|
@ -2071,8 +2071,10 @@ com_ego(String *buffer,char *line)
|
|||
return result;
|
||||
}
|
||||
|
||||
static char *fieldtype2str(enum enum_field_types type) {
|
||||
switch(type) {
|
||||
|
||||
static const char *fieldtype2str(enum enum_field_types type)
|
||||
{
|
||||
switch (type) {
|
||||
case FIELD_TYPE_BIT: return "BIT";
|
||||
case FIELD_TYPE_BLOB: return "BLOB";
|
||||
case FIELD_TYPE_DATE: return "DATE";
|
||||
|
|
|
@ -1212,7 +1212,7 @@ static uint get_table_structure(char *table, char *db)
|
|||
opt_quoted_table= quote_name(table, table_buff2, 0);
|
||||
|
||||
if (opt_order_by_primary)
|
||||
order_by = primary_key_fields(opt_quoted_table);
|
||||
order_by = primary_key_fields(result_table);
|
||||
|
||||
if (!opt_xml && !mysql_query_with_error_report(sock, 0, query_buff))
|
||||
{
|
||||
|
@ -1272,7 +1272,7 @@ static uint get_table_structure(char *table, char *db)
|
|||
|
||||
/* Create temp table by selecting from the view */
|
||||
my_snprintf(query_buff, sizeof(query_buff),
|
||||
"CREATE TEMPORARY TABLE %s SELECT * FROM %s WHERE 0",
|
||||
"CREATE TEMPORARY TABLE %s SELECT * FROM %s WHERE 0",
|
||||
result_table, result_table);
|
||||
if (mysql_query_with_error_report(sock, 0, query_buff))
|
||||
{
|
||||
|
@ -1391,7 +1391,7 @@ static uint get_table_structure(char *table, char *db)
|
|||
fprintf(sql_file, "\n--\n-- Table structure for table %s\n--\n\n",
|
||||
result_table);
|
||||
if (opt_drop)
|
||||
fprintf(sql_file, "DROP TABLE IF EXISTS %s;\n",result_table);
|
||||
fprintf(sql_file, "DROP TABLE IF EXISTS %s;\n", result_table);
|
||||
if (!opt_xml)
|
||||
fprintf(sql_file, "CREATE TABLE %s (\n", result_table);
|
||||
else
|
||||
|
@ -2782,6 +2782,7 @@ static const char *check_if_ignore_table(const char *table_name)
|
|||
or if there is some failure. It is better to continue to dump
|
||||
the table unsorted, rather than exit without dumping the data.
|
||||
*/
|
||||
|
||||
static char *primary_key_fields(const char *table_name)
|
||||
{
|
||||
MYSQL_RES *res = NULL;
|
||||
|
@ -2818,11 +2819,13 @@ static char *primary_key_fields(const char *table_name)
|
|||
}
|
||||
|
||||
/* Build the ORDER BY clause result */
|
||||
if (result_length) {
|
||||
if (result_length)
|
||||
{
|
||||
char *end;
|
||||
/* result (terminating \0 is already in result_length) */
|
||||
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");
|
||||
goto cleanup;
|
||||
}
|
||||
|
|
|
@ -3393,10 +3393,10 @@ static void run_query_display_metadata(MYSQL_FIELD *field, uint num_fields,
|
|||
int10_to_str((int) field->type, buff, 10);
|
||||
dynstr_append(ds, buff);
|
||||
dynstr_append_mem(ds, "\t", 1);
|
||||
int10_to_str((int) field->length, buff, 10);
|
||||
longlong10_to_str((unsigned int) field->length, buff, 10);
|
||||
dynstr_append(ds, buff);
|
||||
dynstr_append_mem(ds, "\t", 1);
|
||||
int10_to_str((int) field->max_length, buff, 10);
|
||||
longlong10_to_str((unsigned int) field->max_length, buff, 10);
|
||||
dynstr_append(ds, buff);
|
||||
dynstr_append_mem(ds, "\t", 1);
|
||||
dynstr_append_mem(ds, (char*) (IS_NOT_NULL(field->flags) ?
|
||||
|
|
|
@ -51,13 +51,13 @@ cv_undo(EditLine *el)
|
|||
{
|
||||
c_undo_t *vu = &el->el_chared.c_undo;
|
||||
c_redo_t *r = &el->el_chared.c_redo;
|
||||
uint size;
|
||||
int size;
|
||||
|
||||
/* Save entire line for undo */
|
||||
size = el->el_line.lastchar - el->el_line.buffer;
|
||||
vu->len = size;
|
||||
vu->cursor = el->el_line.cursor - el->el_line.buffer;
|
||||
memcpy(vu->buf, el->el_line.buffer, size);
|
||||
memcpy(vu->buf, el->el_line.buffer, (size_t)size);
|
||||
|
||||
/* save command info for redo */
|
||||
r->count = el->el_state.doingarg ? el->el_state.argument : 0;
|
||||
|
|
|
@ -478,7 +478,7 @@ el_gets(EditLine *el, int *nread)
|
|||
#endif /* DEBUG_READ */
|
||||
break;
|
||||
}
|
||||
if ((uint)cmdnum >= el->el_map.nfunc) { /* BUG CHECK command */
|
||||
if ((unsigned int)cmdnum >= el->el_map.nfunc) { /* BUG CHECK command */
|
||||
#ifdef DEBUG_EDIT
|
||||
(void) fprintf(el->el_errfile,
|
||||
"ERROR: illegal command from key 0%o\r\n", ch);
|
||||
|
|
10
configure.in
10
configure.in
|
@ -1,7 +1,7 @@
|
|||
dnl -*- ksh -*-
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
|
||||
AC_PREREQ(2.58)dnl Minimum Autoconf version required.
|
||||
AC_PREREQ(2.57)dnl Minimum Autoconf version required.
|
||||
|
||||
AC_INIT(sql/mysqld.cc)
|
||||
AC_CANONICAL_SYSTEM
|
||||
|
@ -12,7 +12,7 @@ AM_CONFIG_HEADER(config.h)
|
|||
PROTOCOL_VERSION=10
|
||||
DOT_FRM_VERSION=6
|
||||
# See the libtool docs for information on how to do shared lib versions.
|
||||
SHARED_LIB_VERSION=14:0:0
|
||||
SHARED_LIB_VERSION=15:0:0
|
||||
|
||||
# ndb version
|
||||
NDB_VERSION_MAJOR=5
|
||||
|
@ -1965,7 +1965,7 @@ AC_LANG_CPLUSPLUS
|
|||
|
||||
if test "$ac_cv_prog_gxx" = "yes" -a "$with_other_libc" = "no"
|
||||
then
|
||||
CXXFLAGS=`echo "$CXXFLAGS -Werror" | sed -e 's/-fbranch-probabilities//; s/-Wall//; s/-Wcheck//'`
|
||||
CXXFLAGS=`echo "$CXXFLAGS -Werror" | sed -e 's/-fbranch-probabilities//; s/-Wall//; s/-ansi//; s/-pedantic//; s/-Wcheck//'`
|
||||
fi
|
||||
|
||||
AC_TRY_COMPILE(
|
||||
|
@ -2000,7 +2000,7 @@ AC_LANG_SAVE
|
|||
AC_LANG_CPLUSPLUS
|
||||
if test "$ac_cv_prog_gxx" = "yes" -a "$with_other_libc" = "no"
|
||||
then
|
||||
CXXFLAGS=`echo "$CXXFLAGS -Werror" | sed -e 's/-fbranch-probabilities//; s/-Wall//; s/-Wcheck//'`
|
||||
CXXFLAGS=`echo "$CXXFLAGS -Werror" | sed -e 's/-fbranch-probabilities//; s/-Wall//; s/-ansi//; s/-pedantic//; s/-Wcheck//'`
|
||||
fi
|
||||
AC_TRY_COMPILE(
|
||||
[#undef inline
|
||||
|
@ -2033,7 +2033,7 @@ AC_LANG_SAVE
|
|||
AC_LANG_CPLUSPLUS
|
||||
if test "$ac_cv_prog_gxx" = "yes" -a "$with_other_libc" = "no"
|
||||
then
|
||||
CXXFLAGS=`echo "$CXXFLAGS -Werror" | sed -e 's/-fbranch-probabilities//; s/-Wall//; s/-Wcheck//'`
|
||||
CXXFLAGS=`echo "$CXXFLAGS -Werror" | sed -e 's/-fbranch-probabilities//; s/-Wall//; s/-ansi//; s/-pedantic//; s/-Wcheck//'`
|
||||
fi
|
||||
AC_TRY_COMPILE(
|
||||
[#undef inline
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
|
||||
/* Copyright (C) 2000 MySQL AB
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
|
@ -23,8 +24,10 @@
|
|||
|
||||
#include <my_global.h>
|
||||
#include <my_sys.h>
|
||||
#include <m_string.h>
|
||||
#include <my_getopt.h>
|
||||
|
||||
|
||||
const char *config_file="my"; /* Default config file */
|
||||
uint verbose= 0, opt_defaults_file_used= 0;
|
||||
const char *default_dbug_option="d:t:o,/tmp/my_print_defaults.trace";
|
||||
|
@ -48,6 +51,10 @@ static struct my_option my_long_options[] =
|
|||
"Read this file after the global /etc config file and before the config file in the users home directory.",
|
||||
(gptr*) &defaults_extra_file, (gptr*) &defaults_extra_file, 0, GET_STR,
|
||||
REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"defaults-group-suffix", 'g',
|
||||
"In addition to the given groups, read also groups with this suffix",
|
||||
(gptr*) &defaults_group_suffix, (gptr*) &defaults_group_suffix,
|
||||
0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"extra-file", 'e',
|
||||
"Synonym for --defaults-extra-file.",
|
||||
(gptr*) &defaults_extra_file, (gptr*) &defaults_extra_file, 0, GET_STR,
|
||||
|
@ -127,37 +134,32 @@ static int get_options(int *argc,char ***argv)
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
int count, error;
|
||||
char **load_default_groups, *tmp_arguments[3],
|
||||
**argument, **arguments;
|
||||
char *defaults, *extra_defaults;
|
||||
int count, error, args_used;
|
||||
char **load_default_groups, *tmp_arguments[6];
|
||||
char **argument, **arguments, **org_argv;
|
||||
char *defaults, *extra_defaults, *group_suffix;
|
||||
MY_INIT(argv[0]);
|
||||
|
||||
get_defaults_files(argc, argv, &defaults, &extra_defaults);
|
||||
org_argv= argv;
|
||||
args_used= get_defaults_options(argc, argv, &defaults, &extra_defaults,
|
||||
&group_suffix);
|
||||
|
||||
/*
|
||||
** Check out the args
|
||||
*/
|
||||
if (!(load_default_groups=(char**) my_malloc((argc+2)*sizeof(char*),
|
||||
/* Copy defaults-xxx arguments & program name */
|
||||
count=args_used+1;
|
||||
arguments= tmp_arguments;
|
||||
memcpy((char*) arguments, (char*) org_argv, count * sizeof(*org_argv));
|
||||
arguments[count]= 0;
|
||||
|
||||
/* Check out the args */
|
||||
if (!(load_default_groups=(char**) my_malloc((argc+1)*sizeof(char*),
|
||||
MYF(MY_WME))))
|
||||
exit(1);
|
||||
if (get_options(&argc,&argv))
|
||||
exit(1);
|
||||
|
||||
for (count=0; *argv ; argv++,count++)
|
||||
load_default_groups[count]= *argv;
|
||||
load_default_groups[count]=0;
|
||||
|
||||
count=0;
|
||||
arguments=tmp_arguments;
|
||||
arguments[count++]=my_progname;
|
||||
if (extra_defaults)
|
||||
arguments[count++]= extra_defaults;
|
||||
if (defaults)
|
||||
arguments[count++]= defaults;
|
||||
arguments[count]= 0;
|
||||
memcpy((char*) load_default_groups, (char*) argv, (argc + 1) * sizeof(*argv));
|
||||
|
||||
if ((error= load_defaults(config_file, (const char **) load_default_groups,
|
||||
&count, &arguments)))
|
||||
|
|
|
@ -175,7 +175,7 @@ register char **argv[];
|
|||
case 'I':
|
||||
case '?':
|
||||
help=1; /* Help text written */
|
||||
printf("%s Ver 1.3 for %s at %s\n",my_progname,SYSTEM_TYPE,
|
||||
printf("%s Ver 1.4 for %s at %s\n",my_progname,SYSTEM_TYPE,
|
||||
MACHINE_TYPE);
|
||||
if (version)
|
||||
break;
|
||||
|
@ -1048,23 +1048,25 @@ FILE *in,*out;
|
|||
}
|
||||
|
||||
|
||||
static int convert_file(rep,name)
|
||||
REPLACE *rep;
|
||||
my_string name;
|
||||
static int convert_file(REPLACE *rep, my_string name)
|
||||
{
|
||||
int error;
|
||||
FILE *in,*out;
|
||||
char dir_buff[FN_REFLEN],*tempname;
|
||||
char dir_buff[FN_REFLEN], tempname[FN_REFLEN];
|
||||
File temp_file;
|
||||
DBUG_ENTER("convert_file");
|
||||
|
||||
if (!(in=my_fopen(name,O_RDONLY,MYF(MY_WME))))
|
||||
DBUG_RETURN(1);
|
||||
dirname_part(dir_buff,name);
|
||||
tempname=my_tempnam(dir_buff,"PR",MYF(MY_WME));
|
||||
if (!(out=my_fopen(tempname,(int) (O_WRONLY | O_CREAT),
|
||||
MYF(MY_WME))))
|
||||
if ((temp_file= create_temp_file(tempname, dir_buff, "PR", O_WRONLY,
|
||||
MYF(MY_WME))) < 0)
|
||||
{
|
||||
my_fclose(in,MYF(0));
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
if (!(out= my_fdopen(temp_file, tempname, O_WRONLY, MYF(MY_WME))))
|
||||
{
|
||||
(*free)(tempname);
|
||||
my_fclose(in,MYF(0));
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
|
@ -1076,7 +1078,6 @@ my_string name;
|
|||
my_redel(name,tempname,MYF(MY_WME | MY_LINK_WARNING));
|
||||
else
|
||||
my_delete(tempname,MYF(MY_WME));
|
||||
(*free)(tempname);
|
||||
if (!silent && ! error)
|
||||
{
|
||||
if (updated)
|
||||
|
|
|
@ -552,9 +552,9 @@ int hp_rec_key_cmp(HP_KEYDEF *keydef, const byte *rec1, const byte *rec2,
|
|||
if (cs->mbmaxlen > 1)
|
||||
{
|
||||
uint char_length= seg->length / cs->mbmaxlen;
|
||||
char_length1= my_charpos(cs, pos1, pos1 + char_length1, char_length);
|
||||
char_length1= my_charpos(cs, pos1, pos1 + char_length1, char_length1);
|
||||
set_if_smaller(char_length1, seg->length);
|
||||
char_length2= my_charpos(cs, pos2, pos2 + char_length2, char_length);
|
||||
char_length2= my_charpos(cs, pos2, pos2 + char_length2, char_length2);
|
||||
set_if_smaller(char_length2, seg->length);
|
||||
}
|
||||
|
||||
|
|
|
@ -353,6 +353,9 @@ inline double ulonglong2double(ulonglong value)
|
|||
#ifndef DEFAULT_HOME_ENV
|
||||
#define DEFAULT_HOME_ENV MYSQL_HOME
|
||||
#endif
|
||||
#ifndef DEFAULT_GROUP_SUFFIX_ENV
|
||||
#define DEFAULT_GROUP_SUFFIX_ENV MYSQL_GROUP_SUFFIX
|
||||
#endif
|
||||
|
||||
/* File name handling */
|
||||
|
||||
|
|
|
@ -396,10 +396,7 @@ int __void__;
|
|||
#endif
|
||||
|
||||
/* Define some useful general macros */
|
||||
#if defined(__cplusplus) && defined(__GNUC__)
|
||||
#define max(a, b) ((a) >? (b))
|
||||
#define min(a, b) ((a) <? (b))
|
||||
#elif !defined(max)
|
||||
#if !defined(max)
|
||||
#define max(a, b) ((a) > (b) ? (a) : (b))
|
||||
#define min(a, b) ((a) < (b) ? (a) : (b))
|
||||
#endif
|
||||
|
@ -833,7 +830,7 @@ typedef off_t os_off_t;
|
|||
#define socket_errno WSAGetLastError()
|
||||
#define SOCKET_EINTR WSAEINTR
|
||||
#define SOCKET_EAGAIN WSAEINPROGRESS
|
||||
#define SOCKET_EWOULDBLOCK WSAEINPROGRESS
|
||||
#define SOCKET_EWOULDBLOCK WSAEWOULDBLOCK
|
||||
#define SOCKET_ENFILE ENFILE
|
||||
#define SOCKET_EMFILE EMFILE
|
||||
#elif defined(OS2)
|
||||
|
|
|
@ -263,7 +263,7 @@ extern my_bool NEAR my_disable_locking,NEAR my_disable_async_io,
|
|||
extern char wild_many,wild_one,wild_prefix;
|
||||
extern const char *charsets_dir;
|
||||
extern char *defaults_extra_file;
|
||||
extern const char *defaults_instance;
|
||||
extern const char *defaults_group_suffix;
|
||||
|
||||
extern my_bool timed_mutexes;
|
||||
|
||||
|
@ -553,7 +553,6 @@ extern gptr my_once_alloc(uint Size,myf MyFlags);
|
|||
extern void my_once_free(void);
|
||||
extern char *my_once_strdup(const char *src,myf myflags);
|
||||
extern char *my_once_memdup(const char *src, uint len, myf myflags);
|
||||
extern my_string my_tempnam(const char *dir,const char *pfx,myf MyFlags);
|
||||
extern File my_open(const char *FileName,int Flags,myf MyFlags);
|
||||
extern File my_register_filename(File fd, const char *FileName,
|
||||
enum file_type type_of_file,
|
||||
|
@ -785,8 +784,9 @@ extern void reset_root_defaults(MEM_ROOT *mem_root, uint block_size,
|
|||
extern char *strdup_root(MEM_ROOT *root,const char *str);
|
||||
extern char *strmake_root(MEM_ROOT *root,const char *str,uint len);
|
||||
extern char *memdup_root(MEM_ROOT *root,const char *str,uint len);
|
||||
extern void get_defaults_files(int argc, char **argv,
|
||||
char **defaults, char **extra_defaults);
|
||||
extern int get_defaults_options(int argc, char **argv,
|
||||
char **defaults, char **extra_defaults,
|
||||
char **group_suffix);
|
||||
extern int load_defaults(const char *conf_file, const char **groups,
|
||||
int *argc, char ***argv);
|
||||
extern int modify_defaults_file(const char *file_location, const char *option,
|
||||
|
|
|
@ -218,6 +218,18 @@ enum mysql_rpl_type
|
|||
MYSQL_RPL_MASTER, MYSQL_RPL_SLAVE, MYSQL_RPL_ADMIN
|
||||
};
|
||||
|
||||
typedef struct character_set
|
||||
{
|
||||
unsigned int number; /* character set number */
|
||||
unsigned int state; /* character set state */
|
||||
const char *csname; /* collation name */
|
||||
const char *name; /* character set name */
|
||||
const char *comment; /* comment */
|
||||
const char *dir; /* character set directory */
|
||||
unsigned int mbminlen; /* min. length for multibyte strings */
|
||||
unsigned int mbmaxlen; /* max. length for multibyte strings */
|
||||
} MY_CHARSET_INFO;
|
||||
|
||||
struct st_mysql_methods;
|
||||
|
||||
typedef struct st_mysql
|
||||
|
@ -384,7 +396,7 @@ unsigned int STDCALL mysql_warning_count(MYSQL *mysql);
|
|||
const char * STDCALL mysql_info(MYSQL *mysql);
|
||||
unsigned long STDCALL mysql_thread_id(MYSQL *mysql);
|
||||
const char * STDCALL mysql_character_set_name(MYSQL *mysql);
|
||||
int STDCALL mysql_set_character_set(MYSQL *mysql, char *csname);
|
||||
int STDCALL mysql_set_character_set(MYSQL *mysql, const char *csname);
|
||||
|
||||
MYSQL * STDCALL mysql_init(MYSQL *mysql);
|
||||
my_bool STDCALL mysql_ssl_set(MYSQL *mysql, const char *key,
|
||||
|
@ -418,6 +430,8 @@ my_bool STDCALL mysql_slave_query(MYSQL *mysql, const char *q,
|
|||
unsigned long length);
|
||||
my_bool STDCALL mysql_slave_send_query(MYSQL *mysql, const char *q,
|
||||
unsigned long length);
|
||||
void STDCALL mysql_get_character_set_info(MYSQL *mysql,
|
||||
MY_CHARSET_INFO *charset);
|
||||
|
||||
/* local infile support */
|
||||
|
||||
|
|
|
@ -84,6 +84,7 @@ CLEANFILES = $(target_libadd) $(SHLIBOBJS) \
|
|||
DEFS = -DDEFAULT_CHARSET_HOME="\"$(MYSQLBASEdir)\"" \
|
||||
-DDATADIR="\"$(MYSQLDATAdir)\"" \
|
||||
-DDEFAULT_HOME_ENV=MYSQL_HOME \
|
||||
-DDEFAULT_GROUP_SUFFIX_ENV=MYSQL_GROUP_SUFFIX \
|
||||
-DSHAREDIR="\"$(MYSQLSHAREdir)\"" $(target_defs)
|
||||
|
||||
# The automatic dependencies miss this
|
||||
|
|
|
@ -1495,40 +1495,22 @@ const char * STDCALL mysql_character_set_name(MYSQL *mysql)
|
|||
return mysql->charset->csname;
|
||||
}
|
||||
|
||||
|
||||
int STDCALL mysql_set_character_set(MYSQL *mysql, char *cs_name)
|
||||
void STDCALL mysql_get_character_set_info(MYSQL *mysql, MY_CHARSET_INFO *csinfo)
|
||||
{
|
||||
struct charset_info_st *cs;
|
||||
const char *save_csdir= charsets_dir;
|
||||
csinfo->number = mysql->charset->number;
|
||||
csinfo->state = mysql->charset->state;
|
||||
csinfo->csname = mysql->charset->csname;
|
||||
csinfo->name = mysql->charset->name;
|
||||
csinfo->comment = mysql->charset->comment;
|
||||
csinfo->mbminlen = mysql->charset->mbminlen;
|
||||
csinfo->mbmaxlen = mysql->charset->mbmaxlen;
|
||||
|
||||
if (mysql->options.charset_dir)
|
||||
charsets_dir= mysql->options.charset_dir;
|
||||
|
||||
if ((cs= get_charset_by_csname(cs_name, MY_CS_PRIMARY, MYF(0))))
|
||||
{
|
||||
char buff[MY_CS_NAME_SIZE + 10];
|
||||
charsets_dir= save_csdir;
|
||||
sprintf(buff, "SET NAMES %s", cs_name);
|
||||
if (!mysql_query(mysql, buff))
|
||||
{
|
||||
mysql->charset= cs;
|
||||
}
|
||||
}
|
||||
csinfo->dir = mysql->options.charset_dir;
|
||||
else
|
||||
{
|
||||
char cs_dir_name[FN_REFLEN];
|
||||
get_charsets_dir(cs_dir_name);
|
||||
mysql->net.last_errno= CR_CANT_READ_CHARSET;
|
||||
strmov(mysql->net.sqlstate, unknown_sqlstate);
|
||||
my_snprintf(mysql->net.last_error, sizeof(mysql->net.last_error) - 1,
|
||||
ER(mysql->net.last_errno), cs_name, cs_dir_name);
|
||||
|
||||
}
|
||||
charsets_dir= save_csdir;
|
||||
return mysql->net.last_errno;
|
||||
csinfo->dir = charsets_dir;
|
||||
}
|
||||
|
||||
|
||||
uint STDCALL mysql_thread_safe(void)
|
||||
{
|
||||
#ifdef THREAD
|
||||
|
@ -1759,6 +1741,7 @@ static int stmt_read_row_unbuffered(MYSQL_STMT *stmt, unsigned char **row);
|
|||
static int stmt_read_row_buffered(MYSQL_STMT *stmt, unsigned char **row);
|
||||
static int stmt_read_row_from_cursor(MYSQL_STMT *stmt, unsigned char **row);
|
||||
static int stmt_read_row_no_data(MYSQL_STMT *stmt, unsigned char **row);
|
||||
static int stmt_read_row_no_result_set(MYSQL_STMT *stmt, unsigned char **row);
|
||||
|
||||
/*
|
||||
This function is used in mysql_stmt_store_result if
|
||||
|
@ -1854,6 +1837,16 @@ static void net_clear_error(NET *net)
|
|||
}
|
||||
}
|
||||
|
||||
static void stmt_clear_error(MYSQL_STMT *stmt)
|
||||
{
|
||||
if (stmt->last_errno)
|
||||
{
|
||||
stmt->last_errno= 0;
|
||||
stmt->last_error[0]= '\0';
|
||||
strmov(stmt->sqlstate, not_error_sqlstate);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Set statement error code, sqlstate, and error message
|
||||
from given errcode and sqlstate.
|
||||
|
@ -2011,7 +2004,7 @@ mysql_stmt_init(MYSQL *mysql)
|
|||
stmt->list.data= stmt;
|
||||
stmt->state= MYSQL_STMT_INIT_DONE;
|
||||
stmt->mysql= mysql;
|
||||
stmt->read_row_func= stmt_read_row_no_data;
|
||||
stmt->read_row_func= stmt_read_row_no_result_set;
|
||||
stmt->prefetch_rows= DEFAULT_PREFETCH_ROWS;
|
||||
/* The rest of statement members was bzeroed inside malloc */
|
||||
|
||||
|
@ -2753,6 +2746,13 @@ stmt_read_row_from_cursor(MYSQL_STMT *stmt, unsigned char **row)
|
|||
static int
|
||||
stmt_read_row_no_data(MYSQL_STMT *stmt __attribute__((unused)),
|
||||
unsigned char **row __attribute__((unused)))
|
||||
{
|
||||
return MYSQL_NO_DATA;
|
||||
}
|
||||
|
||||
static int
|
||||
stmt_read_row_no_result_set(MYSQL_STMT *stmt __attribute__((unused)),
|
||||
unsigned char **row __attribute__((unused)))
|
||||
{
|
||||
set_stmt_error(stmt, CR_NO_RESULT_SET, unknown_sqlstate);
|
||||
return 1;
|
||||
|
@ -4575,7 +4575,8 @@ int STDCALL mysql_stmt_fetch(MYSQL_STMT *stmt)
|
|||
((rc= stmt_fetch_row(stmt, row)) && rc != MYSQL_DATA_TRUNCATED))
|
||||
{
|
||||
stmt->state= MYSQL_STMT_PREPARE_DONE; /* XXX: this is buggy */
|
||||
stmt->read_row_func= stmt_read_row_no_data;
|
||||
stmt->read_row_func= (rc == MYSQL_NO_DATA) ?
|
||||
stmt_read_row_no_data : stmt_read_row_no_result_set;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -4892,13 +4893,12 @@ static my_bool reset_stmt_handle(MYSQL_STMT *stmt, uint flags)
|
|||
{
|
||||
MYSQL *mysql= stmt->mysql;
|
||||
MYSQL_DATA *result= &stmt->result;
|
||||
my_bool has_cursor= stmt->read_row_func == stmt_read_row_from_cursor;
|
||||
|
||||
/*
|
||||
Reset stored result set if so was requested or it's a part
|
||||
of cursor fetch.
|
||||
*/
|
||||
if (result->data && (has_cursor || (flags & RESET_STORE_RESULT)))
|
||||
if (result->data && (flags & RESET_STORE_RESULT))
|
||||
{
|
||||
/* Result buffered */
|
||||
free_root(&result->alloc, MYF(MY_KEEP_PREALLOC));
|
||||
|
@ -4913,7 +4913,7 @@ static my_bool reset_stmt_handle(MYSQL_STMT *stmt, uint flags)
|
|||
for (; param < param_end; param++)
|
||||
param->long_data_used= 0;
|
||||
}
|
||||
stmt->read_row_func= stmt_read_row_no_data;
|
||||
stmt->read_row_func= stmt_read_row_no_result_set;
|
||||
if (mysql)
|
||||
{
|
||||
if ((int) stmt->state > (int) MYSQL_STMT_PREPARE_DONE)
|
||||
|
@ -4929,7 +4929,7 @@ static my_bool reset_stmt_handle(MYSQL_STMT *stmt, uint flags)
|
|||
mysql->status= MYSQL_STATUS_READY;
|
||||
}
|
||||
}
|
||||
if (has_cursor || (flags & RESET_SERVER_SIDE))
|
||||
if (flags & RESET_SERVER_SIDE)
|
||||
{
|
||||
/*
|
||||
Reset the server side statement and close the server side
|
||||
|
@ -4945,6 +4945,7 @@ static my_bool reset_stmt_handle(MYSQL_STMT *stmt, uint flags)
|
|||
stmt->state= MYSQL_STMT_INIT_DONE;
|
||||
return 1;
|
||||
}
|
||||
stmt_clear_error(stmt);
|
||||
}
|
||||
}
|
||||
stmt->state= MYSQL_STMT_PREPARE_DONE;
|
||||
|
|
|
@ -149,5 +149,6 @@ EXPORTS
|
|||
mysql_server_init
|
||||
mysql_server_end
|
||||
mysql_set_character_set
|
||||
get_defaults_files
|
||||
mysql_get_character_set_info
|
||||
get_defaults_options
|
||||
modify_defaults_file
|
||||
|
|
|
@ -158,7 +158,7 @@ EXPORTS
|
|||
mysql_stmt_attr_get
|
||||
mysql_stmt_attr_set
|
||||
mysql_stmt_field_count
|
||||
get_defaults_files
|
||||
get_defaults_options
|
||||
my_charset_bin
|
||||
my_charset_same
|
||||
modify_defaults_file
|
||||
|
|
|
@ -48,6 +48,7 @@ mysql_test_run_new_SOURCES= mysql_test_run_new.c my_manage.c my_create_tables.c
|
|||
dist-hook:
|
||||
mkdir -p $(distdir)/t $(distdir)/r $(distdir)/include \
|
||||
$(distdir)/std_data $(distdir)/lib
|
||||
-$(INSTALL_DATA) $(srcdir)/t/*.def $(distdir)/t
|
||||
$(INSTALL_DATA) $(srcdir)/t/*.test $(distdir)/t
|
||||
$(INSTALL_DATA) $(srcdir)/t/*.sql $(distdir)/t
|
||||
-$(INSTALL_DATA) $(srcdir)/t/*.disabled $(distdir)/t
|
||||
|
@ -70,6 +71,7 @@ install-data-local:
|
|||
$(DESTDIR)$(testdir)/std_data \
|
||||
$(DESTDIR)$(testdir)/lib
|
||||
$(INSTALL_DATA) $(srcdir)/README $(DESTDIR)$(testdir)
|
||||
-$(INSTALL_DATA) $(srcdir)/t/*.def $(DESTDIR)$(testdir)/t
|
||||
$(INSTALL_DATA) $(srcdir)/t/*.test $(DESTDIR)$(testdir)/t
|
||||
$(INSTALL_DATA) $(srcdir)/t/*.sql $(DESTDIR)$(testdir)/t
|
||||
-$(INSTALL_DATA) $(srcdir)/t/*.disabled $(DESTDIR)$(testdir)/t
|
||||
|
|
21
mysql-test/include/federated.inc
Normal file
21
mysql-test/include/federated.inc
Normal file
|
@ -0,0 +1,21 @@
|
|||
--source ./include/have_federated_db.inc
|
||||
|
||||
source ./include/master-slave.inc;
|
||||
|
||||
# remote table creation
|
||||
|
||||
connection slave;
|
||||
--replicate-ignore-db=federated
|
||||
stop slave;
|
||||
|
||||
--disable_warnings
|
||||
# at this point, we are connected to master
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
--enable_warnings
|
||||
CREATE DATABASE federated;
|
||||
|
||||
connection master;
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
--enable_warnings
|
||||
CREATE DATABASE federated;
|
11
mysql-test/include/federated_cleanup.inc
Normal file
11
mysql-test/include/federated_cleanup.inc
Normal file
|
@ -0,0 +1,11 @@
|
|||
connection master;
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
--enable_warnings
|
||||
|
||||
connection slave;
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
--enable_warnings
|
|
@ -8,7 +8,7 @@ use File::Basename;
|
|||
use strict;
|
||||
|
||||
sub collect_test_cases ($);
|
||||
sub collect_one_test_case ($$$$$);
|
||||
sub collect_one_test_case ($$$$$$);
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
|
@ -46,18 +46,36 @@ sub collect_test_cases ($) {
|
|||
{
|
||||
mtr_error("Test case $tname ($testdir/$elem) is not found");
|
||||
}
|
||||
collect_one_test_case($testdir,$resdir,$tname,$elem,$cases);
|
||||
collect_one_test_case($testdir,$resdir,$tname,$elem,$cases,{});
|
||||
}
|
||||
closedir TESTDIR;
|
||||
}
|
||||
else
|
||||
{
|
||||
# ----------------------------------------------------------------------
|
||||
# Skip some tests listed in disabled.def
|
||||
# ----------------------------------------------------------------------
|
||||
my %skiplist;
|
||||
my $skipfile= "$testdir/disabled.def";
|
||||
if ( open(SKIPFILE, $skipfile) )
|
||||
{
|
||||
while ( <SKIPFILE> )
|
||||
{
|
||||
chomp;
|
||||
if ( /^\s*(\S+)\s*:\s*(.*?)\s*$/ )
|
||||
{
|
||||
$skiplist{$1}= $2;
|
||||
}
|
||||
}
|
||||
close SKIPFILE;
|
||||
}
|
||||
|
||||
foreach my $elem ( sort readdir(TESTDIR) ) {
|
||||
my $tname= mtr_match_extension($elem,"test");
|
||||
next if ! defined $tname;
|
||||
next if $::opt_do_test and ! defined mtr_match_prefix($elem,$::opt_do_test);
|
||||
|
||||
collect_one_test_case($testdir,$resdir,$tname,$elem,$cases);
|
||||
collect_one_test_case($testdir,$resdir,$tname,$elem,$cases,\%skiplist);
|
||||
}
|
||||
closedir TESTDIR;
|
||||
}
|
||||
|
@ -95,12 +113,13 @@ sub collect_test_cases ($) {
|
|||
##############################################################################
|
||||
|
||||
|
||||
sub collect_one_test_case($$$$$) {
|
||||
sub collect_one_test_case($$$$$$) {
|
||||
my $testdir= shift;
|
||||
my $resdir= shift;
|
||||
my $tname= shift;
|
||||
my $elem= shift;
|
||||
my $cases= shift;
|
||||
my $skiplist=shift;
|
||||
|
||||
my $path= "$testdir/$elem";
|
||||
|
||||
|
@ -272,6 +291,14 @@ sub collect_one_test_case($$$$$) {
|
|||
}
|
||||
}
|
||||
|
||||
# FIXME why this late?
|
||||
if ( $skiplist->{$tname} )
|
||||
{
|
||||
$tinfo->{'skip'}= 1;
|
||||
$tinfo->{'disable'}= 1; # Sub type of 'skip'
|
||||
$tinfo->{'comment'}= $skiplist->{$tname} if $skiplist->{$tname};
|
||||
}
|
||||
|
||||
if ( -f $disabled )
|
||||
{
|
||||
$tinfo->{'skip'}= 1;
|
||||
|
|
|
@ -83,18 +83,19 @@ sub mtr_script_exists (@) {
|
|||
}
|
||||
|
||||
sub mtr_exe_exists (@) {
|
||||
foreach my $path ( @_ )
|
||||
my @path= @_;
|
||||
map {$_.= ".exe"} @path if $::glob_win32;
|
||||
foreach my $path ( @path )
|
||||
{
|
||||
$path.= ".exe" if $::opt_win32;
|
||||
return $path if -x $path;
|
||||
}
|
||||
if ( @_ == 1 )
|
||||
if ( @path == 1 )
|
||||
{
|
||||
mtr_error("Could not find $_[0]");
|
||||
mtr_error("Could not find $path[0]");
|
||||
}
|
||||
else
|
||||
{
|
||||
mtr_error("Could not find any of " . join(" ", @_));
|
||||
mtr_error("Could not find any of " . join(" ", @path));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -287,6 +287,7 @@ sub executable_setup ();
|
|||
sub environment_setup ();
|
||||
sub kill_running_server ();
|
||||
sub kill_and_cleanup ();
|
||||
sub ndbcluster_support ();
|
||||
sub ndbcluster_install ();
|
||||
sub ndbcluster_start ();
|
||||
sub ndbcluster_stop ();
|
||||
|
@ -319,6 +320,12 @@ sub main () {
|
|||
initial_setup();
|
||||
command_line_setup();
|
||||
executable_setup();
|
||||
|
||||
if (! $opt_skip_ndbcluster and ! $opt_with_ndbcluster)
|
||||
{
|
||||
$opt_with_ndbcluster= ndbcluster_support();
|
||||
}
|
||||
|
||||
environment_setup();
|
||||
signal_setup();
|
||||
|
||||
|
@ -419,7 +426,8 @@ sub initial_setup () {
|
|||
{
|
||||
# Windows programs like 'mysqld' needs Windows paths
|
||||
$glob_mysql_test_dir= `cygpath -m $glob_mysql_test_dir`;
|
||||
$glob_cygwin_shell= `cygpath -w $ENV{'SHELL'}`; # The Windows path c:\...
|
||||
my $shell= $ENV{'SHELL'} || "/bin/bash";
|
||||
$glob_cygwin_shell= `cygpath -w $shell`; # The Windows path c:\...
|
||||
chomp($glob_mysql_test_dir);
|
||||
chomp($glob_cygwin_shell);
|
||||
}
|
||||
|
@ -791,13 +799,15 @@ sub executable_setup () {
|
|||
my $path_examples= "$glob_basedir/libmysqld/examples";
|
||||
$exe_mysqltest= mtr_exe_exists("$path_examples/mysqltest");
|
||||
$exe_mysql_client_test=
|
||||
mtr_exe_exists("$path_examples/mysql_client_test_embedded");
|
||||
mtr_exe_exists("$path_examples/mysql_client_test_embedded",
|
||||
"/usr/bin/false");
|
||||
}
|
||||
else
|
||||
{
|
||||
$exe_mysqltest= mtr_exe_exists("$path_client_bindir/mysqltest");
|
||||
$exe_mysql_client_test=
|
||||
mtr_exe_exists("$glob_basedir/tests/mysql_client_test");
|
||||
mtr_exe_exists("$glob_basedir/tests/mysql_client_test",
|
||||
"/usr/bin/false");
|
||||
}
|
||||
$exe_mysqldump= mtr_exe_exists("$path_client_bindir/mysqldump");
|
||||
$exe_mysqlshow= mtr_exe_exists("$path_client_bindir/mysqlshow");
|
||||
|
@ -819,7 +829,8 @@ sub executable_setup () {
|
|||
$exe_mysqladmin= mtr_exe_exists("$path_client_bindir/mysqladmin");
|
||||
$exe_mysql= mtr_exe_exists("$path_client_bindir/mysql");
|
||||
$exe_mysql_fix_system_tables=
|
||||
mtr_script_exists("$path_client_bindir/mysql_fix_privilege_tables");
|
||||
mtr_script_exists("$path_client_bindir/mysql_fix_privilege_tables",
|
||||
"$glob_basedir/scripts/mysql_fix_privilege_tables");
|
||||
|
||||
$path_language= mtr_path_exists("$glob_basedir/share/mysql/english/",
|
||||
"$glob_basedir/share/english/");
|
||||
|
@ -833,13 +844,15 @@ sub executable_setup () {
|
|||
$exe_mysqltest= mtr_exe_exists("$path_client_bindir/mysqltest_embedded");
|
||||
$exe_mysql_client_test=
|
||||
mtr_exe_exists("$glob_basedir/tests/mysql_client_test_embedded",
|
||||
"$path_client_bindir/mysql_client_test_embedded");
|
||||
"$path_client_bindir/mysql_client_test_embedded",
|
||||
"/usr/bin/false");
|
||||
}
|
||||
else
|
||||
{
|
||||
$exe_mysqltest= mtr_exe_exists("$path_client_bindir/mysqltest");
|
||||
$exe_mysql_client_test=
|
||||
mtr_exe_exists("$path_client_bindir/mysql_client_test");
|
||||
mtr_exe_exists("$path_client_bindir/mysql_client_test",
|
||||
"/usr/bin/false"); # FIXME temporary
|
||||
}
|
||||
|
||||
$path_ndb_tools_dir= "$glob_basedir/bin";
|
||||
|
@ -1020,6 +1033,23 @@ sub kill_and_cleanup () {
|
|||
#
|
||||
##############################################################################
|
||||
|
||||
sub ndbcluster_support () {
|
||||
|
||||
# check ndbcluster support by testing using a switch
|
||||
# that is only available in that case
|
||||
if ( mtr_run($exe_mysqld,
|
||||
["--no-defaults",
|
||||
"--ndb-use-exact-count",
|
||||
"--help"],
|
||||
"", "/dev/null", "/dev/null", "") != 0 )
|
||||
{
|
||||
mtr_report("No ndbcluster support");
|
||||
return 0;
|
||||
}
|
||||
mtr_report("Has ndbcluster support");
|
||||
return 1;
|
||||
}
|
||||
|
||||
# FIXME why is there a different start below?!
|
||||
|
||||
sub ndbcluster_install () {
|
||||
|
@ -1548,7 +1578,7 @@ sub do_before_start_master ($$) {
|
|||
$tname ne "rpl_crash_binlog_ib_3b")
|
||||
{
|
||||
# FIXME we really want separate dir for binlogs
|
||||
foreach my $bin ( glob("$opt_vardir/log/master*-bin.*") )
|
||||
foreach my $bin ( glob("$opt_vardir/log/master*-bin*") )
|
||||
{
|
||||
unlink($bin);
|
||||
}
|
||||
|
@ -1586,13 +1616,13 @@ sub do_before_start_slave ($$) {
|
|||
$tname ne "rpl_crash_binlog_ib_3b" )
|
||||
{
|
||||
# FIXME we really want separate dir for binlogs
|
||||
foreach my $bin ( glob("$opt_vardir/log/slave*-bin.*") )
|
||||
foreach my $bin ( glob("$opt_vardir/log/slave*-bin*") )
|
||||
{
|
||||
unlink($bin);
|
||||
}
|
||||
# FIXME really master?!
|
||||
unlink("$opt_vardir/slave-data/master.info");
|
||||
unlink("$opt_vardir/slave-data/relay-log.info");
|
||||
unlink("$slave->[0]->{'path_myddir'}/master.info");
|
||||
unlink("$slave->[0]->{'path_myddir'}/relay-log.info");
|
||||
}
|
||||
|
||||
# Run slave initialization shell script if one exists
|
||||
|
@ -1606,8 +1636,10 @@ sub do_before_start_slave ($$) {
|
|||
}
|
||||
}
|
||||
|
||||
`rm -f $opt_vardir/slave-data/log.*`;
|
||||
# unlink("$opt_vardir/slave-data/log.*");
|
||||
foreach my $bin ( glob("$slave->[0]->{'path_myddir'}/log.*") )
|
||||
{
|
||||
unlink($bin);
|
||||
}
|
||||
}
|
||||
|
||||
sub mysqld_arguments ($$$$$) {
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -9785,6 +9785,20 @@ DROP TABLE t1;
|
|||
DROP TABLE t2;
|
||||
DROP TABLE t3;
|
||||
DROP TABLE t4;
|
||||
CREATE TABLE t1(c1 varchar(10)) default character set = eucjpms;
|
||||
insert into t1 values(_ucs2 0x00F7);
|
||||
insert into t1 values(_eucjpms 0xA1E0);
|
||||
insert into t1 values(_ujis 0xA1E0);
|
||||
insert into t1 values(_sjis 0x8180);
|
||||
insert into t1 values(_cp932 0x8180);
|
||||
SELECT HEX(c1) FROM t1;
|
||||
HEX(c1)
|
||||
A1E0
|
||||
A1E0
|
||||
A1E0
|
||||
A1E0
|
||||
A1E0
|
||||
DROP TABLE t1;
|
||||
SET collation_connection='eucjpms_japanese_ci';
|
||||
create table t1 select repeat('a',4000) a;
|
||||
delete from t1;
|
||||
|
|
|
@ -657,3 +657,22 @@ a b
|
|||
1.1 1.100
|
||||
2.1 2.100
|
||||
DROP TABLE t1;
|
||||
create table t1 (utext varchar(20) character set ucs2);
|
||||
insert into t1 values ("lily");
|
||||
insert into t1 values ("river");
|
||||
prepare stmt from 'select utext from t1 where utext like ?';
|
||||
set @param1='%%';
|
||||
execute stmt using @param1;
|
||||
utext
|
||||
lily
|
||||
river
|
||||
execute stmt using @param1;
|
||||
utext
|
||||
lily
|
||||
river
|
||||
select utext from t1 where utext like '%%';
|
||||
utext
|
||||
lily
|
||||
river
|
||||
drop table t1;
|
||||
deallocate prepare stmt;
|
||||
|
|
|
@ -905,6 +905,10 @@ select * from t1 where city = 'Durban ';
|
|||
id city
|
||||
2 Durban
|
||||
drop table t1;
|
||||
create table t1 (x set('A', 'B') default 0) character set utf8;
|
||||
ERROR 42000: Invalid default value for 'x'
|
||||
create table t1 (x enum('A', 'B') default 0) character set utf8;
|
||||
ERROR 42000: Invalid default value for 'x'
|
||||
SET NAMES UTF8;
|
||||
CREATE TABLE t1 (
|
||||
`id` int(20) NOT NULL auto_increment,
|
||||
|
@ -939,6 +943,17 @@ content msisdn
|
|||
ERR Имри.Афимим.Аеимимримдмримрмрирор имримримримр имридм ирбднримрфмририримрфмфмим.Ад.Д имдимримрад.Адимримримрмдиримримримр м.Дадимфшьмримд им.Адимимрн имадми 1234567890
|
||||
11 g 1234567890
|
||||
DROP TABLE t1,t2;
|
||||
create table t1 (a char(20) character set utf8);
|
||||
insert into t1 values ('123456'),('андрей');
|
||||
alter table t1 modify a char(2) character set utf8;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'a' at row 1
|
||||
Warning 1265 Data truncated for column 'a' at row 2
|
||||
select char_length(a), length(a), a from t1 order by a;
|
||||
char_length(a) length(a) a
|
||||
2 2 12
|
||||
2 4 ан
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (
|
||||
a varchar(255) NOT NULL default '',
|
||||
KEY a (a)
|
||||
|
@ -950,3 +965,22 @@ hex(a)
|
|||
5B
|
||||
E880BD
|
||||
drop table t1;
|
||||
CREATE TABLE t1(id varchar(20) NOT NULL) DEFAULT CHARSET=utf8;
|
||||
INSERT INTO t1 VALUES ('xxx'), ('aa'), ('yyy'), ('aa');
|
||||
SELECT id FROM t1;
|
||||
id
|
||||
xxx
|
||||
aa
|
||||
yyy
|
||||
aa
|
||||
SELECT DISTINCT id FROM t1;
|
||||
id
|
||||
xxx
|
||||
aa
|
||||
yyy
|
||||
SELECT DISTINCT id FROM t1 ORDER BY id;
|
||||
id
|
||||
aa
|
||||
xxx
|
||||
yyy
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -7,41 +7,47 @@ start slave;
|
|||
stop slave;
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
CREATE DATABASE federated;
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
CREATE DATABASE federated;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
Warnings:
|
||||
Note 1051 Unknown table 't1'
|
||||
CREATE TABLE federated.t1 (
|
||||
`id` int(20) NOT NULL,
|
||||
`name` varchar(32) NOT NULL default ''
|
||||
)
|
||||
DEFAULT CHARSET=latin1;
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
CREATE DATABASE federated;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
Warnings:
|
||||
Note 1051 Unknown table 't1'
|
||||
CREATE TABLE federated.t1 (
|
||||
`id` int(20) NOT NULL,
|
||||
`name` varchar(32) NOT NULL default ''
|
||||
)
|
||||
ENGINE="FEDERATED" DEFAULT CHARSET=latin1
|
||||
COMMENT='mysql://root@127.0.0.1:@/too/many/items/federated/t1';
|
||||
ERROR HY000: Can't create table 'connection string is not in the correct format' (errno: 0)
|
||||
ERROR HY000: Can't create federated table. The data source connection string 'mysql://root@127.0.0.1:@/too/many/items/federated/t1' is not in the correct format
|
||||
CREATE TABLE federated.t1 (
|
||||
`id` int(20) NOT NULL,
|
||||
`name` varchar(32) NOT NULL default ''
|
||||
)
|
||||
ENGINE="FEDERATED" DEFAULT CHARSET=latin1
|
||||
COMMENT='mysql://root@127.0.0.1';
|
||||
ERROR HY000: Can't create table 'connection string is not in the correct format' (errno: 0)
|
||||
ERROR HY000: Can't create federated table. The data source connection string 'mysql://root@127.0.0.1' is not in the correct format
|
||||
CREATE TABLE federated.t1 (
|
||||
`id` int(20) NOT NULL,
|
||||
`name` varchar(32) NOT NULL default ''
|
||||
)
|
||||
ENGINE="FEDERATED" DEFAULT CHARSET=latin1
|
||||
COMMENT='mysql://root@127.0.0.1:SLAVE_PORT/federated/t3';
|
||||
ERROR HY000: Error running query on master: foreign table 't3' does not exist!
|
||||
ERROR HY000: Can't create federated table. Foreign data src error : ': 1146 : Table 'federated.t3' doesn't exist'
|
||||
CREATE TABLE federated.t1 (
|
||||
`id` int(20) NOT NULL,
|
||||
`name` varchar(32) NOT NULL default ''
|
||||
)
|
||||
ENGINE="FEDERATED" DEFAULT CHARSET=latin1
|
||||
COMMENT='mysql://user:pass@127.0.0.1:SLAVE_PORT/federated/t1';
|
||||
ERROR 08S01: Error connecting to master: unable to connect to database 'federated' on host '127.0.0.1 as user 'user' !
|
||||
ERROR HY000: Unable to connect to foreign data source - database ' database federated username user hostname 127.0.0.1'!
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
Warnings:
|
||||
Note 1051 Unknown table 't1'
|
||||
|
@ -124,18 +130,14 @@ CREATE TABLE federated.t1 (
|
|||
`name` varchar(32) NOT NULL default '',
|
||||
`other` int(20) NOT NULL default '0',
|
||||
`created` datetime default '2004-04-04 04:04:04',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `name` (`name`),
|
||||
KEY `other_key` (`other`))
|
||||
PRIMARY KEY (`id`))
|
||||
DEFAULT CHARSET=latin1;
|
||||
CREATE TABLE federated.t1 (
|
||||
`id` int(20) NOT NULL auto_increment,
|
||||
`name` varchar(32) NOT NULL default '',
|
||||
`other` int(20) NOT NULL default '0',
|
||||
`created` datetime default '2004-04-04 04:04:04',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `name` (`name`),
|
||||
KEY `other_key` (`other`))
|
||||
PRIMARY KEY (`id`))
|
||||
ENGINE="FEDERATED" DEFAULT CHARSET=latin1
|
||||
COMMENT='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
|
||||
INSERT INTO federated.t1 (name, other) VALUES ('First Name', 11111);
|
||||
|
@ -169,9 +171,8 @@ id name other created
|
|||
SELECT * FROM federated.t1 WHERE id = 6 and name = 'Sixth Name';
|
||||
id name other created
|
||||
6 Sixth Name 66666 2004-04-04 04:04:04
|
||||
SELECT * FROM federated.t1 WHERE other = 44444;
|
||||
SELECT * FROM federated.t1 WHERE name = 'Sixth Name' AND other = 44444;
|
||||
id name other created
|
||||
4 Fourth Name 44444 2004-04-04 04:04:04
|
||||
SELECT * FROM federated.t1 WHERE name like '%th%';
|
||||
id name other created
|
||||
3 Third Name 33333 2004-04-04 04:04:04
|
||||
|
@ -257,6 +258,154 @@ DELETE FROM federated.t1;
|
|||
SELECT * FROM federated.t1 WHERE id = 5;
|
||||
id name other created
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
CREATE TABLE federated.t1 (
|
||||
`id` int(20) NOT NULL auto_increment,
|
||||
`name` varchar(32) NOT NULL default '',
|
||||
`other` int(20) NOT NULL default '0',
|
||||
`created` datetime NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
key name(`name`),
|
||||
key other(`other`),
|
||||
key created(`created`))
|
||||
DEFAULT CHARSET=latin1;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
CREATE TABLE federated.t1 (
|
||||
`id` int(20) NOT NULL auto_increment,
|
||||
`name` varchar(32) NOT NULL default '',
|
||||
`other` int(20) NOT NULL default '0',
|
||||
`created` datetime NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
key name(`name`),
|
||||
key other(`other`),
|
||||
key created(`created`))
|
||||
ENGINE="FEDERATED" DEFAULT CHARSET=latin1
|
||||
COMMENT='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
|
||||
INSERT INTO federated.t1 (name, other, created)
|
||||
VALUES ('First Name', 11111, '2004-01-01 01:01:01');
|
||||
INSERT INTO federated.t1 (name, other, created)
|
||||
VALUES ('Second Name', 22222, '2004-01-23 02:43:00');
|
||||
INSERT INTO federated.t1 (name, other, created)
|
||||
VALUES ('Third Name', 33333, '2004-02-14 02:14:00');
|
||||
INSERT INTO federated.t1 (name, other, created)
|
||||
VALUES ('Fourth Name', 44444, '2003-04-05 00:00:00');
|
||||
INSERT INTO federated.t1 (name, other, created)
|
||||
VALUES ('Fifth Name', 55555, '2001-02-02 02:02:02');
|
||||
INSERT INTO federated.t1 (name, other, created)
|
||||
VALUES ('Sixth Name', 66666, '2005-06-06 15:30:00');
|
||||
INSERT INTO federated.t1 (name, other, created)
|
||||
VALUES ('Seventh Name', 77777, '2003-12-12 18:32:00');
|
||||
INSERT INTO federated.t1 (name, other, created)
|
||||
VALUES ('Eigth Name', 88888, '2005-03-12 11:00:00');
|
||||
INSERT INTO federated.t1 (name, other, created)
|
||||
VALUES ('Ninth Name', 99999, '2005-03-12 11:00:01');
|
||||
INSERT INTO federated.t1 (name, other, created)
|
||||
VALUES ('Tenth Name', 101010, '2005-03-12 12:00:01');
|
||||
SELECT * FROM federated.t1;
|
||||
id name other created
|
||||
1 First Name 11111 2004-01-01 01:01:01
|
||||
2 Second Name 22222 2004-01-23 02:43:00
|
||||
3 Third Name 33333 2004-02-14 02:14:00
|
||||
4 Fourth Name 44444 2003-04-05 00:00:00
|
||||
5 Fifth Name 55555 2001-02-02 02:02:02
|
||||
6 Sixth Name 66666 2005-06-06 15:30:00
|
||||
7 Seventh Name 77777 2003-12-12 18:32:00
|
||||
8 Eigth Name 88888 2005-03-12 11:00:00
|
||||
9 Ninth Name 99999 2005-03-12 11:00:01
|
||||
10 Tenth Name 101010 2005-03-12 12:00:01
|
||||
SELECT * FROM federated.t1 WHERE id = 5;
|
||||
id name other created
|
||||
5 Fifth Name 55555 2001-02-02 02:02:02
|
||||
SELECT * FROM federated.t1 WHERE id = 6 and name = 'Sixth Name';
|
||||
id name other created
|
||||
6 Sixth Name 66666 2005-06-06 15:30:00
|
||||
SELECT * FROM federated.t1 WHERE other = 44444;
|
||||
id name other created
|
||||
4 Fourth Name 44444 2003-04-05 00:00:00
|
||||
SELECT * FROM federated.t1 WHERE name like '%th%';
|
||||
id name other created
|
||||
3 Third Name 33333 2004-02-14 02:14:00
|
||||
4 Fourth Name 44444 2003-04-05 00:00:00
|
||||
5 Fifth Name 55555 2001-02-02 02:02:02
|
||||
6 Sixth Name 66666 2005-06-06 15:30:00
|
||||
7 Seventh Name 77777 2003-12-12 18:32:00
|
||||
8 Eigth Name 88888 2005-03-12 11:00:00
|
||||
9 Ninth Name 99999 2005-03-12 11:00:01
|
||||
10 Tenth Name 101010 2005-03-12 12:00:01
|
||||
UPDATE federated.t1 SET name = '3rd name' WHERE id = 3;
|
||||
SELECT * FROM federated.t1 WHERE name = '3rd name';
|
||||
id name other created
|
||||
3 3rd name 33333 2004-02-14 02:14:00
|
||||
UPDATE federated.t1 SET name = 'Third name' WHERE name = '3rd name';
|
||||
SELECT * FROM federated.t1 WHERE name = 'Third name';
|
||||
id name other created
|
||||
3 Third name 33333 2004-02-14 02:14:00
|
||||
SELECT * FROM federated.t1 ORDER BY id DESC;
|
||||
id name other created
|
||||
10 Tenth Name 101010 2005-03-12 12:00:01
|
||||
9 Ninth Name 99999 2005-03-12 11:00:01
|
||||
8 Eigth Name 88888 2005-03-12 11:00:00
|
||||
7 Seventh Name 77777 2003-12-12 18:32:00
|
||||
6 Sixth Name 66666 2005-06-06 15:30:00
|
||||
5 Fifth Name 55555 2001-02-02 02:02:02
|
||||
4 Fourth Name 44444 2003-04-05 00:00:00
|
||||
3 Third name 33333 2004-02-14 02:14:00
|
||||
2 Second Name 22222 2004-01-23 02:43:00
|
||||
1 First Name 11111 2004-01-01 01:01:01
|
||||
SELECT * FROM federated.t1 ORDER BY name;
|
||||
id name other created
|
||||
8 Eigth Name 88888 2005-03-12 11:00:00
|
||||
5 Fifth Name 55555 2001-02-02 02:02:02
|
||||
1 First Name 11111 2004-01-01 01:01:01
|
||||
4 Fourth Name 44444 2003-04-05 00:00:00
|
||||
9 Ninth Name 99999 2005-03-12 11:00:01
|
||||
2 Second Name 22222 2004-01-23 02:43:00
|
||||
7 Seventh Name 77777 2003-12-12 18:32:00
|
||||
6 Sixth Name 66666 2005-06-06 15:30:00
|
||||
10 Tenth Name 101010 2005-03-12 12:00:01
|
||||
3 Third name 33333 2004-02-14 02:14:00
|
||||
SELECT * FROM federated.t1 ORDER BY name DESC;
|
||||
id name other created
|
||||
3 Third name 33333 2004-02-14 02:14:00
|
||||
10 Tenth Name 101010 2005-03-12 12:00:01
|
||||
6 Sixth Name 66666 2005-06-06 15:30:00
|
||||
7 Seventh Name 77777 2003-12-12 18:32:00
|
||||
2 Second Name 22222 2004-01-23 02:43:00
|
||||
9 Ninth Name 99999 2005-03-12 11:00:01
|
||||
4 Fourth Name 44444 2003-04-05 00:00:00
|
||||
1 First Name 11111 2004-01-01 01:01:01
|
||||
5 Fifth Name 55555 2001-02-02 02:02:02
|
||||
8 Eigth Name 88888 2005-03-12 11:00:00
|
||||
SELECT * FROM federated.t1 ORDER BY name ASC;
|
||||
id name other created
|
||||
8 Eigth Name 88888 2005-03-12 11:00:00
|
||||
5 Fifth Name 55555 2001-02-02 02:02:02
|
||||
1 First Name 11111 2004-01-01 01:01:01
|
||||
4 Fourth Name 44444 2003-04-05 00:00:00
|
||||
9 Ninth Name 99999 2005-03-12 11:00:01
|
||||
2 Second Name 22222 2004-01-23 02:43:00
|
||||
7 Seventh Name 77777 2003-12-12 18:32:00
|
||||
6 Sixth Name 66666 2005-06-06 15:30:00
|
||||
10 Tenth Name 101010 2005-03-12 12:00:01
|
||||
3 Third name 33333 2004-02-14 02:14:00
|
||||
SELECT * FROM federated.t1 GROUP BY other;
|
||||
id name other created
|
||||
1 First Name 11111 2004-01-01 01:01:01
|
||||
2 Second Name 22222 2004-01-23 02:43:00
|
||||
3 Third name 33333 2004-02-14 02:14:00
|
||||
4 Fourth Name 44444 2003-04-05 00:00:00
|
||||
5 Fifth Name 55555 2001-02-02 02:02:02
|
||||
6 Sixth Name 66666 2005-06-06 15:30:00
|
||||
7 Seventh Name 77777 2003-12-12 18:32:00
|
||||
8 Eigth Name 88888 2005-03-12 11:00:00
|
||||
9 Ninth Name 99999 2005-03-12 11:00:01
|
||||
10 Tenth Name 101010 2005-03-12 12:00:01
|
||||
DELETE FROM federated.t1 WHERE id = 5;
|
||||
SELECT * FROM federated.t1 WHERE id = 5;
|
||||
id name other created
|
||||
DELETE FROM federated.t1;
|
||||
SELECT * FROM federated.t1 WHERE id = 5;
|
||||
id name other created
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
CREATE TABLE federated.t1 (
|
||||
`id` int(20) NOT NULL auto_increment,
|
||||
`name` varchar(32),
|
||||
|
@ -303,15 +452,14 @@ UPDATE federated.t1
|
|||
SET name = 'Fourth Name', other = 'four four four'
|
||||
WHERE name IS NULL AND other IS NULL;
|
||||
UPDATE federated.t1 SET other = 'two two two two' WHERE name = 'Second Name';
|
||||
UPDATE federated.t1 SET other = 'seven seven' WHERE name like 'Sec%';
|
||||
UPDATE federated.t1 SET other = 'seven seven' WHERE name = 'Seventh Name';
|
||||
UPDATE federated.t1 SET other = 'seven seven' WHERE name like 'Sev%';
|
||||
UPDATE federated.t1 SET name = 'Tenth Name' WHERE other like 'fee fie%';
|
||||
SELECT * FROM federated.t1 WHERE name IS NULL OR other IS NULL ;
|
||||
id name other
|
||||
SELECT * FROM federated.t1;
|
||||
id name other
|
||||
1 First Name 11111
|
||||
2 Second Name seven seven
|
||||
2 Second Name two two two two
|
||||
3 Third Name 33333
|
||||
4 Fourth Name four four four
|
||||
5 Fifth Name 55555
|
||||
|
@ -418,6 +566,360 @@ id name bincol floatval other
|
|||
3 third g 22.22 2222
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
CREATE TABLE federated.t1 (
|
||||
`id` int NOT NULL auto_increment,
|
||||
`col1` int(10) NOT NULL DEFAULT 0,
|
||||
`col2` varchar(64) NOT NULL DEFAULT '',
|
||||
`col3` int(20) NOT NULL,
|
||||
`col4` int(40) NOT NULL,
|
||||
primary key (`id`, `col1`, `col2`, `col3`, `col4`),
|
||||
key col1(col1),
|
||||
key col2(col2),
|
||||
key col3(col3),
|
||||
key col4(col4));
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
CREATE TABLE federated.t1 (
|
||||
`id` int NOT NULL auto_increment,
|
||||
`col1` int(10) NOT NULL DEFAULT 0,
|
||||
`col2` varchar(64) NOT NULL DEFAULT '',
|
||||
`col3` int(20) NOT NULL,
|
||||
`col4` int(40) NOT NULL,
|
||||
primary key (`id`, `col1`, `col2`, `col3`, `col4`),
|
||||
key col1(col1),
|
||||
key col2(col2),
|
||||
key col3(col3),
|
||||
key col4(col4))
|
||||
ENGINE="FEDERATED"
|
||||
COMMENT='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES (1, 'one One', 11, 1111);
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES (2, 'Two two', 22, 2222);
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES (3, 'three Three', 33, 33333);
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES (4, 'fourfourfour', 444, 4444444);
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES (5, 'five 5 five five 5', 5, 55555);
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES (6, 'six six Sixsix', 6666, 6);
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES (7, 'seven Sevenseven', 77777, 7777);
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES (8, 'eight eight eight', 88888, 88);
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES (9, 'nine Nine', 999999, 999999);
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES (10, 'Tenth ten TEN', 1010101, 1010);
|
||||
SELECT * FROM federated.t1 WHERE col2 = 'two two';
|
||||
id col1 col2 col3 col4
|
||||
2 2 Two two 22 2222
|
||||
SELECT * FROM federated.t1 WHERE col2 = 'two Two';
|
||||
id col1 col2 col3 col4
|
||||
2 2 Two two 22 2222
|
||||
SELECT * FROM federated.t1 WHERE id = 3;
|
||||
id col1 col2 col3 col4
|
||||
3 3 three Three 33 33333
|
||||
SELECT * FROM federated.t1 WHERE id = 3 AND col1 = 3;
|
||||
id col1 col2 col3 col4
|
||||
3 3 three Three 33 33333
|
||||
SELECT * FROM federated.t1 WHERE id = 4 AND col1 = 4 AND col2 = 'Two two';
|
||||
id col1 col2 col3 col4
|
||||
SELECT * FROM federated.t1 WHERE id = 4 AND col1 = 4 AND col2 = 'fourfourfour';
|
||||
id col1 col2 col3 col4
|
||||
4 4 fourfourfour 444 4444444
|
||||
SELECT * FROM federated.t1 WHERE id = 5 AND col2 = 'five 5 five five 5'
|
||||
AND col3 = 5;
|
||||
id col1 col2 col3 col4
|
||||
5 5 five 5 five five 5 5 55555
|
||||
SELECT * FROM federated.t1 WHERE id = 5 AND col2 = 'five 5 five five 5'
|
||||
AND col3 = 5
|
||||
AND col4 = 55555;
|
||||
id col1 col2 col3 col4
|
||||
5 5 five 5 five five 5 5 55555
|
||||
SELECT * FROM federated.t1 WHERE id = 5
|
||||
AND col2 = 'Two two' AND col3 = 22
|
||||
AND col4 = 33;
|
||||
id col1 col2 col3 col4
|
||||
SELECT * FROM federated.t1 WHERE id = 5
|
||||
AND col2 = 'five 5 five five 5' AND col3 = 5
|
||||
AND col4 = 55555;
|
||||
id col1 col2 col3 col4
|
||||
5 5 five 5 five five 5 5 55555
|
||||
SELECT * FROM federated.t1 WHERE (id = 5 AND col2 = 'five 5 five five 5')
|
||||
OR (col2 = 'three Three' AND col3 = 33);
|
||||
id col1 col2 col3 col4
|
||||
5 5 five 5 five five 5 5 55555
|
||||
3 3 three Three 33 33333
|
||||
SELECT * FROM federated.t1 WHERE (id = 5 AND col2 = 'Two two')
|
||||
OR (col2 = 444 AND col3 = 4444444);
|
||||
id col1 col2 col3 col4
|
||||
SELECT * FROM federated.t1 WHERE id = 1
|
||||
OR col1 = 10
|
||||
OR col2 = 'Two two'
|
||||
OR col3 = 33
|
||||
OR col4 = 4444444;
|
||||
id col1 col2 col3 col4
|
||||
1 1 one One 11 1111
|
||||
2 2 Two two 22 2222
|
||||
3 3 three Three 33 33333
|
||||
4 4 fourfourfour 444 4444444
|
||||
10 10 Tenth ten TEN 1010101 1010
|
||||
SELECT * FROM federated.t1 WHERE id > 5;
|
||||
id col1 col2 col3 col4
|
||||
6 6 six six Sixsix 6666 6
|
||||
7 7 seven Sevenseven 77777 7777
|
||||
8 8 eight eight eight 88888 88
|
||||
9 9 nine Nine 999999 999999
|
||||
10 10 Tenth ten TEN 1010101 1010
|
||||
SELECT * FROM federated.t1 WHERE id >= 5;
|
||||
id col1 col2 col3 col4
|
||||
5 5 five 5 five five 5 5 55555
|
||||
6 6 six six Sixsix 6666 6
|
||||
7 7 seven Sevenseven 77777 7777
|
||||
8 8 eight eight eight 88888 88
|
||||
9 9 nine Nine 999999 999999
|
||||
10 10 Tenth ten TEN 1010101 1010
|
||||
SELECT * FROM federated.t1 WHERE id < 5;
|
||||
id col1 col2 col3 col4
|
||||
1 1 one One 11 1111
|
||||
2 2 Two two 22 2222
|
||||
3 3 three Three 33 33333
|
||||
4 4 fourfourfour 444 4444444
|
||||
SELECT * FROM federated.t1 WHERE id <= 5;
|
||||
id col1 col2 col3 col4
|
||||
1 1 one One 11 1111
|
||||
2 2 Two two 22 2222
|
||||
3 3 three Three 33 33333
|
||||
4 4 fourfourfour 444 4444444
|
||||
5 5 five 5 five five 5 5 55555
|
||||
SELECT * FROM federated.t1 WHERE id != 5;
|
||||
id col1 col2 col3 col4
|
||||
1 1 one One 11 1111
|
||||
2 2 Two two 22 2222
|
||||
3 3 three Three 33 33333
|
||||
4 4 fourfourfour 444 4444444
|
||||
6 6 six six Sixsix 6666 6
|
||||
7 7 seven Sevenseven 77777 7777
|
||||
8 8 eight eight eight 88888 88
|
||||
9 9 nine Nine 999999 999999
|
||||
10 10 Tenth ten TEN 1010101 1010
|
||||
SELECT * FROM federated.t1 WHERE id > 3 AND id < 7;
|
||||
id col1 col2 col3 col4
|
||||
4 4 fourfourfour 444 4444444
|
||||
5 5 five 5 five five 5 5 55555
|
||||
6 6 six six Sixsix 6666 6
|
||||
SELECT * FROM federated.t1 WHERE id > 3 AND id <= 7;
|
||||
id col1 col2 col3 col4
|
||||
4 4 fourfourfour 444 4444444
|
||||
5 5 five 5 five five 5 5 55555
|
||||
6 6 six six Sixsix 6666 6
|
||||
7 7 seven Sevenseven 77777 7777
|
||||
SELECT * FROM federated.t1 WHERE id >= 3 AND id <= 7;
|
||||
id col1 col2 col3 col4
|
||||
3 3 three Three 33 33333
|
||||
4 4 fourfourfour 444 4444444
|
||||
5 5 five 5 five five 5 5 55555
|
||||
6 6 six six Sixsix 6666 6
|
||||
7 7 seven Sevenseven 77777 7777
|
||||
SELECT * FROM federated.t1 WHERE id < 3 AND id <= 7;
|
||||
id col1 col2 col3 col4
|
||||
1 1 one One 11 1111
|
||||
2 2 Two two 22 2222
|
||||
SELECT * FROM federated.t1 WHERE id < 3 AND id > 7;
|
||||
id col1 col2 col3 col4
|
||||
SELECT * FROM federated.t1 WHERE id < 3 OR id > 7;
|
||||
id col1 col2 col3 col4
|
||||
1 1 one One 11 1111
|
||||
2 2 Two two 22 2222
|
||||
8 8 eight eight eight 88888 88
|
||||
9 9 nine Nine 999999 999999
|
||||
10 10 Tenth ten TEN 1010101 1010
|
||||
SELECT * FROM federated.t1 WHERE col2 = 'three Three';
|
||||
id col1 col2 col3 col4
|
||||
3 3 three Three 33 33333
|
||||
SELECT * FROM federated.t1 WHERE col2 > 'one';
|
||||
id col1 col2 col3 col4
|
||||
1 1 one One 11 1111
|
||||
2 2 Two two 22 2222
|
||||
3 3 three Three 33 33333
|
||||
6 6 six six Sixsix 6666 6
|
||||
7 7 seven Sevenseven 77777 7777
|
||||
10 10 Tenth ten TEN 1010101 1010
|
||||
SELECT * FROM federated.t1 WHERE col2 LIKE 's%';
|
||||
id col1 col2 col3 col4
|
||||
7 7 seven Sevenseven 77777 7777
|
||||
6 6 six six Sixsix 6666 6
|
||||
SELECT * FROM federated.t1 WHERE col2 LIKE 'si%';
|
||||
id col1 col2 col3 col4
|
||||
6 6 six six Sixsix 6666 6
|
||||
SELECT * FROM federated.t1 WHERE col2 LIKE 'se%';
|
||||
id col1 col2 col3 col4
|
||||
7 7 seven Sevenseven 77777 7777
|
||||
SELECT * FROM federated.t1 WHERE col2 NOT LIKE 'e%';
|
||||
id col1 col2 col3 col4
|
||||
1 1 one One 11 1111
|
||||
2 2 Two two 22 2222
|
||||
3 3 three Three 33 33333
|
||||
4 4 fourfourfour 444 4444444
|
||||
5 5 five 5 five five 5 5 55555
|
||||
6 6 six six Sixsix 6666 6
|
||||
7 7 seven Sevenseven 77777 7777
|
||||
9 9 nine Nine 999999 999999
|
||||
10 10 Tenth ten TEN 1010101 1010
|
||||
SELECT * FROM federated.t1 WHERE col2 <> 'one One';
|
||||
id col1 col2 col3 col4
|
||||
4 4 fourfourfour 444 4444444
|
||||
5 5 five 5 five five 5 5 55555
|
||||
8 8 eight eight eight 88888 88
|
||||
9 9 nine Nine 999999 999999
|
||||
2 2 Two two 22 2222
|
||||
3 3 three Three 33 33333
|
||||
6 6 six six Sixsix 6666 6
|
||||
7 7 seven Sevenseven 77777 7777
|
||||
10 10 Tenth ten TEN 1010101 1010
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
CREATE TABLE federated.t1 (
|
||||
`col1` varchar(8) NOT NULL DEFAULT '',
|
||||
`col2` varchar(128) NOT NULL DEFAULT '',
|
||||
`col3` varchar(20) NOT NULL DEFAULT '',
|
||||
`col4` varchar(40) NOT NULL DEFAULT '',
|
||||
primary key (`col1`, `col2`, `col3`, `col4`),
|
||||
key 3key(`col2`,`col3`,`col4`),
|
||||
key 2key (`col3`,`col4`),
|
||||
key col4(col4));
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
CREATE TABLE federated.t1 (
|
||||
`col1` varchar(8) NOT NULL DEFAULT '',
|
||||
`col2` varchar(128) NOT NULL DEFAULT '',
|
||||
`col3` varchar(20) NOT NULL DEFAULT '',
|
||||
`col4` varchar(40) NOT NULL DEFAULT '',
|
||||
primary key (`col1`, `col2`, `col3`, `col4`),
|
||||
key 3key(`col2`,`col3`,`col4`),
|
||||
key 2key (`col3`,`col4`),
|
||||
key col4(col4))
|
||||
ENGINE="FEDERATED"
|
||||
COMMENT='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES ('aaaa', 'aaaaaaaaaaaaaaaaaaa', 'ababababab', 'acacacacacacacac');
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES ('bbbb', 'bbbbbbbbbbbbbbbbbbb', 'bababababa', 'bcbcbcbcbcbcbcbc');
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES ('cccc', 'ccccccccccccccccccc', 'cacacacaca', 'cbcbcbcbcbcbcbcb');
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES ('dddd', 'ddddddddddddddddddd', 'dadadadada', 'dcdcdcdcdcdcdcdc');
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES ('eeee', 'eeeeeeeeeeeeeeeeeee', 'eaeaeaeaea', 'ecececececececec');
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES ('ffff', 'fffffffffffffffffff', 'fafafafafa', 'fcfcfcfcfcfcfcfc');
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES ('gggg', 'ggggggggggggggggggg', 'gagagagaga', 'gcgcgcgcgcgcgcgc');
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES ('hhhh', 'hhhhhhhhhhhhhhhhhhh', 'hahahahaha', 'hchchchchchchchc');
|
||||
SELECT * FROM federated.t1 WHERE col1 = 'cccc';
|
||||
col1 col2 col3 col4
|
||||
cccc ccccccccccccccccccc cacacacaca cbcbcbcbcbcbcbcb
|
||||
SELECT * FROM federated.t1 WHERE col2 = 'eeeeeeeeeeeeeeeeeee';
|
||||
col1 col2 col3 col4
|
||||
eeee eeeeeeeeeeeeeeeeeee eaeaeaeaea ecececececececec
|
||||
SELECT * FROM federated.t1 WHERE col3 = 'bababababa';
|
||||
col1 col2 col3 col4
|
||||
bbbb bbbbbbbbbbbbbbbbbbb bababababa bcbcbcbcbcbcbcbc
|
||||
SELECT * FROM federated.t1 WHERE col1 = 'gggg' AND col2 = 'ggggggggggggggggggg';
|
||||
col1 col2 col3 col4
|
||||
gggg ggggggggggggggggggg gagagagaga gcgcgcgcgcgcgcgc
|
||||
SELECT * FROM federated.t1 WHERE col1 = 'gggg' AND col3 = 'gagagagaga';
|
||||
col1 col2 col3 col4
|
||||
gggg ggggggggggggggggggg gagagagaga gcgcgcgcgcgcgcgc
|
||||
SELECT * FROM federated.t1 WHERE col1 = 'ffff' AND col4 = 'fcfcfcfcfcfcfcfc';
|
||||
col1 col2 col3 col4
|
||||
ffff fffffffffffffffffff fafafafafa fcfcfcfcfcfcfcfc
|
||||
SELECT * FROM federated.t1 WHERE col1 > 'bbbb';
|
||||
col1 col2 col3 col4
|
||||
cccc ccccccccccccccccccc cacacacaca cbcbcbcbcbcbcbcb
|
||||
dddd ddddddddddddddddddd dadadadada dcdcdcdcdcdcdcdc
|
||||
eeee eeeeeeeeeeeeeeeeeee eaeaeaeaea ecececececececec
|
||||
ffff fffffffffffffffffff fafafafafa fcfcfcfcfcfcfcfc
|
||||
gggg ggggggggggggggggggg gagagagaga gcgcgcgcgcgcgcgc
|
||||
hhhh hhhhhhhhhhhhhhhhhhh hahahahaha hchchchchchchchc
|
||||
SELECT * FROM federated.t1 WHERE col1 >= 'bbbb';
|
||||
col1 col2 col3 col4
|
||||
bbbb bbbbbbbbbbbbbbbbbbb bababababa bcbcbcbcbcbcbcbc
|
||||
cccc ccccccccccccccccccc cacacacaca cbcbcbcbcbcbcbcb
|
||||
dddd ddddddddddddddddddd dadadadada dcdcdcdcdcdcdcdc
|
||||
eeee eeeeeeeeeeeeeeeeeee eaeaeaeaea ecececececececec
|
||||
ffff fffffffffffffffffff fafafafafa fcfcfcfcfcfcfcfc
|
||||
gggg ggggggggggggggggggg gagagagaga gcgcgcgcgcgcgcgc
|
||||
hhhh hhhhhhhhhhhhhhhhhhh hahahahaha hchchchchchchchc
|
||||
SELECT * FROM federated.t1 WHERE col1 < 'bbbb';
|
||||
col1 col2 col3 col4
|
||||
aaaa aaaaaaaaaaaaaaaaaaa ababababab acacacacacacacac
|
||||
SELECT * FROM federated.t1 WHERE col1 <= 'bbbb';
|
||||
col1 col2 col3 col4
|
||||
aaaa aaaaaaaaaaaaaaaaaaa ababababab acacacacacacacac
|
||||
bbbb bbbbbbbbbbbbbbbbbbb bababababa bcbcbcbcbcbcbcbc
|
||||
SELECT * FROM federated.t1 WHERE col1 <> 'bbbb';
|
||||
col1 col2 col3 col4
|
||||
aaaa aaaaaaaaaaaaaaaaaaa ababababab acacacacacacacac
|
||||
cccc ccccccccccccccccccc cacacacaca cbcbcbcbcbcbcbcb
|
||||
dddd ddddddddddddddddddd dadadadada dcdcdcdcdcdcdcdc
|
||||
eeee eeeeeeeeeeeeeeeeeee eaeaeaeaea ecececececececec
|
||||
ffff fffffffffffffffffff fafafafafa fcfcfcfcfcfcfcfc
|
||||
gggg ggggggggggggggggggg gagagagaga gcgcgcgcgcgcgcgc
|
||||
hhhh hhhhhhhhhhhhhhhhhhh hahahahaha hchchchchchchchc
|
||||
SELECT * FROM federated.t1 WHERE col1 LIKE 'b%';
|
||||
col1 col2 col3 col4
|
||||
bbbb bbbbbbbbbbbbbbbbbbb bababababa bcbcbcbcbcbcbcbc
|
||||
SELECT * FROM federated.t1 WHERE col4 LIKE '%b%';
|
||||
col1 col2 col3 col4
|
||||
bbbb bbbbbbbbbbbbbbbbbbb bababababa bcbcbcbcbcbcbcbc
|
||||
cccc ccccccccccccccccccc cacacacaca cbcbcbcbcbcbcbcb
|
||||
SELECT * FROM federated.t1 WHERE col1 NOT LIKE 'c%';
|
||||
col1 col2 col3 col4
|
||||
aaaa aaaaaaaaaaaaaaaaaaa ababababab acacacacacacacac
|
||||
bbbb bbbbbbbbbbbbbbbbbbb bababababa bcbcbcbcbcbcbcbc
|
||||
dddd ddddddddddddddddddd dadadadada dcdcdcdcdcdcdcdc
|
||||
eeee eeeeeeeeeeeeeeeeeee eaeaeaeaea ecececececececec
|
||||
ffff fffffffffffffffffff fafafafafa fcfcfcfcfcfcfcfc
|
||||
gggg ggggggggggggggggggg gagagagaga gcgcgcgcgcgcgcgc
|
||||
hhhh hhhhhhhhhhhhhhhhhhh hahahahaha hchchchchchchchc
|
||||
SELECT * FROM federated.t1 WHERE col4 NOT LIKE '%c%';
|
||||
col1 col2 col3 col4
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
CREATE TABLE federated.t1 (
|
||||
`col1` varchar(8) NOT NULL DEFAULT '',
|
||||
`col2` int(8) NOT NULL DEFAULT 0,
|
||||
`col3` varchar(8) NOT NULL DEFAULT '',
|
||||
primary key (`col1`, `col2`, `col3`));
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
CREATE TABLE federated.t1 (
|
||||
`col1` varchar(8) NOT NULL DEFAULT '',
|
||||
`col2` varchar(8) NOT NULL DEFAULT '',
|
||||
`col3` varchar(8) NOT NULL DEFAULT '',
|
||||
primary key (`col1`, `col2`, `col3`))
|
||||
ENGINE="FEDERATED"
|
||||
DEFAULT CHARSET=latin1
|
||||
COMMENT='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
|
||||
INSERT INTO federated.t1 VALUES ('a00', '110', 'cc0');
|
||||
INSERT INTO federated.t1 VALUES ('aaa', '111', 'ccc');
|
||||
INSERT INTO federated.t1 VALUES ('bbb', '222', 'yyy');
|
||||
INSERT INTO federated.t1 VALUES ('ccc', '111', 'zzz');
|
||||
INSERT INTO federated.t1 VALUES ('ccd', '112', 'zzzz');
|
||||
SELECT col3 FROM federated.t1 WHERE (
|
||||
(col1 = 'aaa' AND col2 >= '111') OR col1 > 'aaa') AND
|
||||
(col1 < 'ccc' OR ( col1 = 'ccc' AND col2 <= '111'));
|
||||
col3
|
||||
ccc
|
||||
yyy
|
||||
zzz
|
||||
SELECT col3 FROM federated.t1 WHERE (
|
||||
(col1 = 'aaa' AND col2 >= '111') OR col1 > 'aaa') AND
|
||||
(col1 < 'ccc' OR ( col1 = 'ccc' AND col2 <= '111'));
|
||||
col3
|
||||
ccc
|
||||
yyy
|
||||
zzz
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
CREATE TABLE federated.t1 (
|
||||
`id` int,
|
||||
`name` varchar(32),
|
||||
`floatval` float,
|
||||
|
@ -494,30 +996,6 @@ ENGINE="FEDERATED"
|
|||
DEFAULT CHARSET=latin1
|
||||
COMMENT='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
|
||||
INSERT INTO federated.t1 VALUES (3,3,3),(1,1,1),(2,2,2),(4,4,4);
|
||||
EXPLAIN SELECT * FROM federated.t1 ORDER BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 10000 Using filesort
|
||||
EXPLAIN SELECT * FROM federated.t1 ORDER BY b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 10000 Using filesort
|
||||
EXPLAIN SELECT * FROM federated.t1 ORDER BY c;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 10000 Using filesort
|
||||
EXPLAIN SELECT a FROM federated.t1 ORDER BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 10000 Using filesort
|
||||
EXPLAIN SELECT b FROM federated.t1 ORDER BY b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 10000 Using filesort
|
||||
EXPLAIN SELECT a,b FROM federated.t1 ORDER BY b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 10000 Using filesort
|
||||
EXPLAIN SELECT a,b FROM federated.t1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 10000
|
||||
EXPLAIN SELECT a,b,c FROM federated.t1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 10000
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
CREATE TABLE federated.t1 (i1 int, i2 int, i3 int, i4 int, i5 int, i6 int, i7 int, i8
|
||||
int, i9 int, i10 int, i11 int, i12 int, i13 int, i14 int, i15 int, i16 int, i17
|
||||
|
@ -906,13 +1384,6 @@ INSERT INTO federated.t1 (name, country_id, other) VALUES ('Lenz', 2, 22222);
|
|||
INSERT INTO federated.t1 (name, country_id, other) VALUES ('Marizio', 3, 33333);
|
||||
INSERT INTO federated.t1 (name, country_id, other) VALUES ('Monty', 4, 33333);
|
||||
INSERT INTO federated.t1 (name, country_id, other) VALUES ('Sanja', 5, 33333);
|
||||
EXPLAIN SELECT federated.t1.name AS name, federated.t1.country_id AS country_id,
|
||||
federated.t1.other AS other, federated.countries.country AS country
|
||||
FROM federated.t1, federated.countries WHERE
|
||||
federated.t1.country_id = federated.countries.id;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE countries ALL PRIMARY NULL NULL NULL 5
|
||||
1 SIMPLE t1 ref country_id country_id 4 federated.countries.id 120
|
||||
SELECT federated.t1.name AS name, federated.t1.country_id AS country_id,
|
||||
federated.t1.other AS other, federated.countries.country AS country
|
||||
FROM federated.t1, federated.countries WHERE
|
||||
|
@ -923,13 +1394,6 @@ Lenz 2 22222 Germany
|
|||
Marizio 3 33333 Italy
|
||||
Monty 4 33333 Finland
|
||||
Sanja 5 33333 Ukraine
|
||||
EXPLAIN SELECT federated.t1.name AS name, federated.t1.country_id AS country_id,
|
||||
federated.t1.other AS other, federated.countries.country AS country
|
||||
FROM federated.t1 INNER JOIN federated.countries ON
|
||||
federated.t1.country_id = federated.countries.id;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE countries ALL PRIMARY NULL NULL NULL 5
|
||||
1 SIMPLE t1 ref country_id country_id 4 federated.countries.id 120
|
||||
SELECT federated.t1.name AS name, federated.t1.country_id AS country_id,
|
||||
federated.t1.other AS other, federated.countries.country AS country
|
||||
FROM federated.t1 INNER JOIN federated.countries ON
|
||||
|
@ -940,14 +1404,6 @@ Lenz 2 22222 Germany
|
|||
Marizio 3 33333 Italy
|
||||
Monty 4 33333 Finland
|
||||
Sanja 5 33333 Ukraine
|
||||
EXPLAIN SELECT federated.t1.name AS name, federated.t1.country_id AS country_id,
|
||||
federated.t1.other AS other, federated.countries.country AS country
|
||||
FROM federated.t1 INNER JOIN federated.countries ON
|
||||
federated.t1.country_id = federated.countries.id
|
||||
WHERE federated.t1.name = 'Monty';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE countries ALL PRIMARY NULL NULL NULL 5
|
||||
1 SIMPLE t1 ref country_id country_id 4 federated.countries.id 120 Using where
|
||||
SELECT federated.t1.name AS name, federated.t1.country_id AS country_id,
|
||||
federated.t1.other AS other, federated.countries.country AS country
|
||||
FROM federated.t1 INNER JOIN federated.countries ON
|
||||
|
@ -955,13 +1411,6 @@ federated.t1.country_id = federated.countries.id
|
|||
WHERE federated.t1.name = 'Monty';
|
||||
name country_id other country
|
||||
Monty 4 33333 Finland
|
||||
EXPLAIN SELECT federated.t1.*, federated.countries.country
|
||||
FROM federated.t1 LEFT JOIN federated.countries
|
||||
ON federated.t1.country_id = federated.countries.id
|
||||
ORDER BY federated.countries.id;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 10000 Using temporary; Using filesort
|
||||
1 SIMPLE countries eq_ref PRIMARY PRIMARY 4 federated.t1.country_id 1
|
||||
SELECT federated.t1.*, federated.countries.country
|
||||
FROM federated.t1 LEFT JOIN federated.countries
|
||||
ON federated.t1.country_id = federated.countries.id
|
||||
|
@ -972,13 +1421,6 @@ id country_id name other country
|
|||
3 3 Marizio 33333 Italy
|
||||
4 4 Monty 33333 Finland
|
||||
5 5 Sanja 33333 Ukraine
|
||||
EXPLAIN SELECT federated.t1.*, federated.countries.country
|
||||
FROM federated.t1 LEFT JOIN federated.countries
|
||||
ON federated.t1.country_id = federated.countries.id
|
||||
ORDER BY federated.countries.country;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 10000 Using temporary; Using filesort
|
||||
1 SIMPLE countries eq_ref PRIMARY PRIMARY 4 federated.t1.country_id 1
|
||||
SELECT federated.t1.*, federated.countries.country
|
||||
FROM federated.t1 LEFT JOIN federated.countries
|
||||
ON federated.t1.country_id = federated.countries.id
|
||||
|
@ -989,13 +1431,6 @@ id country_id name other country
|
|||
1 1 Kumar 11111 India
|
||||
3 3 Marizio 33333 Italy
|
||||
5 5 Sanja 33333 Ukraine
|
||||
EXPLAIN SELECT federated.t1.*, federated.countries.country
|
||||
FROM federated.t1 RIGHT JOIN federated.countries
|
||||
ON federated.t1.country_id = federated.countries.id
|
||||
ORDER BY federated.t1.country_id;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE countries ALL NULL NULL NULL NULL 5 Using temporary; Using filesort
|
||||
1 SIMPLE t1 ref country_id country_id 4 federated.countries.id 120
|
||||
SELECT federated.t1.*, federated.countries.country
|
||||
FROM federated.t1 RIGHT JOIN federated.countries
|
||||
ON federated.t1.country_id = federated.countries.id
|
||||
|
@ -1007,6 +1442,21 @@ id country_id name other country
|
|||
4 4 Monty 33333 Finland
|
||||
5 5 Sanja 33333 Ukraine
|
||||
DROP TABLE federated.countries;
|
||||
OPTIMIZE TABLE federated.t1;
|
||||
Table Op Msg_type Msg_text
|
||||
federated.t1 optimize status OK
|
||||
REPAIR TABLE federated.t1;
|
||||
Table Op Msg_type Msg_text
|
||||
federated.t1 repair status OK
|
||||
REPAIR TABLE federated.t1 QUICK;
|
||||
Table Op Msg_type Msg_text
|
||||
federated.t1 repair status OK
|
||||
REPAIR TABLE federated.t1 EXTENDED;
|
||||
Table Op Msg_type Msg_text
|
||||
federated.t1 repair status OK
|
||||
REPAIR TABLE federated.t1 USE_FRM;
|
||||
Table Op Msg_type Msg_text
|
||||
federated.t1 repair status OK
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
|
|
|
@ -86,3 +86,77 @@ a rel
|
|||
1 1
|
||||
2 2
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (
|
||||
id int(11) NOT NULL auto_increment,
|
||||
thread int(11) NOT NULL default '0',
|
||||
beitrag longtext NOT NULL,
|
||||
PRIMARY KEY (id),
|
||||
KEY thread (thread),
|
||||
FULLTEXT KEY beitrag (beitrag)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7923 ;
|
||||
CREATE TABLE t2 (
|
||||
id int(11) NOT NULL auto_increment,
|
||||
text varchar(100) NOT NULL default '',
|
||||
PRIMARY KEY (id),
|
||||
KEY text (text)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=63 ;
|
||||
CREATE TABLE t3 (
|
||||
id int(11) NOT NULL auto_increment,
|
||||
forum int(11) NOT NULL default '0',
|
||||
betreff varchar(70) NOT NULL default '',
|
||||
PRIMARY KEY (id),
|
||||
KEY forum (forum),
|
||||
FULLTEXT KEY betreff (betreff)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=996 ;
|
||||
select a.text, b.id, b.betreff
|
||||
from
|
||||
t2 a inner join t3 b on a.id = b.forum inner join
|
||||
t1 c on b.id = c.thread
|
||||
where
|
||||
match(b.betreff) against ('+abc' in boolean mode)
|
||||
group by a.text, b.id, b.betreff
|
||||
union
|
||||
select a.text, b.id, b.betreff
|
||||
from
|
||||
t2 a inner join t3 b on a.id = b.forum inner join
|
||||
t1 c on b.id = c.thread
|
||||
where
|
||||
match(c.beitrag) against ('+abc' in boolean mode)
|
||||
group by
|
||||
a.text, b.id, b.betreff
|
||||
order by
|
||||
match(b.betreff) against ('+abc' in boolean mode) desc;
|
||||
ERROR 42S02: Unknown table 'b' in order clause
|
||||
select a.text, b.id, b.betreff
|
||||
from
|
||||
t2 a inner join t3 b on a.id = b.forum inner join
|
||||
t1 c on b.id = c.thread
|
||||
where
|
||||
match(b.betreff) against ('+abc' in boolean mode)
|
||||
union
|
||||
select a.text, b.id, b.betreff
|
||||
from
|
||||
t2 a inner join t3 b on a.id = b.forum inner join
|
||||
t1 c on b.id = c.thread
|
||||
where
|
||||
match(c.beitrag) against ('+abc' in boolean mode)
|
||||
order by
|
||||
match(b.betreff) against ('+abc' in boolean mode) desc;
|
||||
ERROR 42S02: Unknown table 'b' in order clause
|
||||
select a.text, b.id, b.betreff
|
||||
from
|
||||
t2 a inner join t3 b on a.id = b.forum inner join
|
||||
t1 c on b.id = c.thread
|
||||
where
|
||||
match(b.betreff) against ('+abc' in boolean mode)
|
||||
union
|
||||
select a.text, b.id, b.betreff
|
||||
from
|
||||
t2 a inner join t3 b on a.id = b.forum inner join
|
||||
t1 c on b.id = c.thread
|
||||
where
|
||||
match(c.beitrag) against ('+abc' in boolean mode)
|
||||
order by
|
||||
match(betreff) against ('+abc' in boolean mode) desc;
|
||||
ERROR HY000: The used table type doesn't support FULLTEXT indexes
|
||||
drop table t1,t2,t3;
|
||||
|
|
3
mysql-test/r/func_des_encrypt.result
Normal file
3
mysql-test/r/func_des_encrypt.result
Normal file
|
@ -0,0 +1,3 @@
|
|||
select des_encrypt('hello');
|
||||
des_encrypt('hello')
|
||||
€Ö2nV“Ø}
|
|
@ -119,7 +119,7 @@ c char(1) character set latin1 collate latin1_danish_ci
|
|||
insert into t1 values ('A','B','C');
|
||||
insert into t1 values ('a','c','c');
|
||||
select * from t1 where a in (b);
|
||||
ERROR HY000: Illegal mix of collations (latin1_general_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation ' IN '
|
||||
ERROR HY000: Illegal mix of collations (latin1_general_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation '='
|
||||
select * from t1 where a in (b,c);
|
||||
ERROR HY000: Illegal mix of collations (latin1_general_ci,IMPLICIT), (latin1_swedish_ci,IMPLICIT), (latin1_danish_ci,IMPLICIT) for operation ' IN '
|
||||
select * from t1 where 'a' in (a,b,c);
|
||||
|
@ -193,3 +193,26 @@ select * from t1 where a in (NULL, 'aa');
|
|||
a
|
||||
aa
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (a int PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES (44), (45), (46);
|
||||
SELECT * FROM t1 WHERE a IN (45);
|
||||
a
|
||||
45
|
||||
SELECT * FROM t1 WHERE a NOT IN (0, 45);
|
||||
a
|
||||
44
|
||||
46
|
||||
SELECT * FROM t1 WHERE a NOT IN (45);
|
||||
a
|
||||
44
|
||||
46
|
||||
CREATE VIEW v1 AS SELECT * FROM t1 WHERE a NOT IN (45);
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View
|
||||
v1 CREATE ALGORITHM=UNDEFINED VIEW `test`.`v1` AS select `test`.`t1`.`a` AS `a` from `test`.`t1` where (`test`.`t1`.`a` <> 45)
|
||||
SELECT * FROM v1;
|
||||
a
|
||||
44
|
||||
46
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -861,3 +861,21 @@ trackname artistname
|
|||
April In Paris Vernon Duke Vernon Duke
|
||||
Autumn In New York NULL
|
||||
DROP TABLE t1,t2,t3;
|
||||
create table t1 (b varchar(5));
|
||||
insert t1 values ('ab'), ('abc'), ('abcd'), ('abcde');
|
||||
select *,substring(b,1),substring(b,-1),substring(b,-2),substring(b,-3),substring(b,-4),substring(b,-5) from t1;
|
||||
b substring(b,1) substring(b,-1) substring(b,-2) substring(b,-3) substring(b,-4) substring(b,-5)
|
||||
ab ab b ab
|
||||
abc abc c bc abc
|
||||
abcd abcd d cd bcd abcd
|
||||
abcde abcde e de cde bcde abcde
|
||||
select * from (select *,substring(b,1),substring(b,-1),substring(b,-2),substring(b,-3),substring(b,-4),substring(b,-5) from t1) t;
|
||||
b substring(b,1) substring(b,-1) substring(b,-2) substring(b,-3) substring(b,-4) substring(b,-5)
|
||||
ab ab b ab
|
||||
abc abc c bc abc
|
||||
abcd abcd d cd bcd abcd
|
||||
abcde abcde e de cde bcde abcde
|
||||
drop table t1;
|
||||
select hex(29223372036854775809), hex(-29223372036854775809);
|
||||
hex(29223372036854775809) hex(-29223372036854775809)
|
||||
FFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFF
|
||||
|
|
|
@ -153,7 +153,7 @@ c varchar(64) utf8_general_ci NO select,insert,update,references
|
|||
select * from information_schema.COLUMNS where table_name="t1"
|
||||
and column_name= "a";
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
|
||||
NULL mysqltest t1 a 1 NULL YES int NULL NULL 11 0 NULL NULL int(11) select,insert,update,references
|
||||
NULL mysqltest t1 a 1 NULL YES int NULL NULL 10 NULL NULL NULL int(11) select,insert,update,references
|
||||
show columns from mysqltest.t1 where field like "%a%";
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) YES NULL
|
||||
|
@ -298,6 +298,9 @@ show create function sub2;
|
|||
Function sql_mode Create Function
|
||||
sub2 CREATE FUNCTION `test`.`sub2`(i int) RETURNS int(11)
|
||||
return i+1
|
||||
show function status like "sub2";
|
||||
Db Name Type Definer Modified Created Security_type Comment
|
||||
test sub2 FUNCTION mysqltest_1@localhost # # DEFINER
|
||||
drop function sub2;
|
||||
show create procedure sel2;
|
||||
Procedure sql_mode Create Procedure
|
||||
|
@ -520,7 +523,7 @@ c float(5,2) NULL NULL 5 2
|
|||
d decimal(6,4) NULL NULL 6 4
|
||||
e float NULL NULL 12 NULL
|
||||
f decimal(6,3) NULL NULL 6 3
|
||||
g int(11) NULL NULL 11 0
|
||||
g int(11) NULL NULL 10 NULL
|
||||
h double(10,3) NULL NULL 10 3
|
||||
i double NULL NULL 22 NULL
|
||||
drop table t1;
|
||||
|
@ -674,7 +677,7 @@ Database Table In_use Name_locked
|
|||
mysql user 0 0
|
||||
show status where variable_name like "%database%";
|
||||
Variable_name Value
|
||||
Com_show_databases 0
|
||||
Com_show_databases 3
|
||||
show variables where variable_name like "skip_show_databas";
|
||||
Variable_name Value
|
||||
show global status like "Threads_running";
|
||||
|
@ -841,3 +844,26 @@ drop procedure p2;
|
|||
show create database information_schema;
|
||||
Database Create Database
|
||||
information_schema CREATE DATABASE `information_schema` /*!40100 DEFAULT CHARACTER SET utf8 */
|
||||
create table t1(f1 LONGBLOB, f2 LONGTEXT);
|
||||
select column_name,data_type,CHARACTER_OCTET_LENGTH,
|
||||
CHARACTER_MAXIMUM_LENGTH
|
||||
from information_schema.columns
|
||||
where table_name='t1';
|
||||
column_name data_type CHARACTER_OCTET_LENGTH CHARACTER_MAXIMUM_LENGTH
|
||||
f1 longblob 4294967295 4294967295
|
||||
f2 longtext 4294967295 4294967295
|
||||
drop table t1;
|
||||
create table t1(f1 tinyint, f2 SMALLINT, f3 mediumint, f4 int,
|
||||
f5 BIGINT, f6 BIT, f7 bit(64));
|
||||
select column_name, NUMERIC_PRECISION, NUMERIC_SCALE
|
||||
from information_schema.columns
|
||||
where table_name='t1';
|
||||
column_name NUMERIC_PRECISION NUMERIC_SCALE
|
||||
f1 3 NULL
|
||||
f2 5 NULL
|
||||
f3 7 NULL
|
||||
f4 10 NULL
|
||||
f5 19 NULL
|
||||
f6 1 NULL
|
||||
f7 64 NULL
|
||||
drop table t1;
|
||||
|
|
|
@ -2466,3 +2466,12 @@ select * from t1;
|
|||
a val
|
||||
2 1
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (GRADE DECIMAL(4) NOT NULL, PRIMARY KEY (GRADE)) ENGINE=INNODB;
|
||||
INSERT INTO t1 (GRADE) VALUES (151),(252),(343);
|
||||
SELECT GRADE FROM t1 WHERE GRADE > 160 AND GRADE < 300;
|
||||
GRADE
|
||||
252
|
||||
SELECT GRADE FROM t1 WHERE GRADE= 151;
|
||||
GRADE
|
||||
151
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -383,20 +383,6 @@ select * from t1;
|
|||
ERROR HY000: Can't lock file (errno: 4009)
|
||||
use test;
|
||||
drop database test_only_ndb_tables;
|
||||
CREATE TABLE sys.SYSTAB_0 (a int);
|
||||
ERROR 42S01: Table 'SYSTAB_0' already exists
|
||||
select * from sys.SYSTAB_0;
|
||||
ERROR HY000: Failed to open 'SYSTAB_0', error while unpacking from engine
|
||||
CREATE TABLE IF NOT EXISTS sys.SYSTAB_0 (a int);
|
||||
show warnings;
|
||||
Level Code Message
|
||||
select * from sys.SYSTAB_0;
|
||||
ERROR HY000: Failed to open 'SYSTAB_0', error while unpacking from engine
|
||||
drop table sys.SYSTAB_0;
|
||||
ERROR 42S02: Unknown table 'SYSTAB_0'
|
||||
drop table IF EXISTS sys.SYSTAB_0;
|
||||
Warnings:
|
||||
Note 1051 Unknown table 'SYSTAB_0'
|
||||
CREATE TABLE t9 (
|
||||
a int NOT NULL PRIMARY KEY,
|
||||
b int
|
||||
|
|
|
@ -577,3 +577,15 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 PRIMARY t1 ALL NULL NULL NULL NULL 10 Using filesort
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT(10) NOT NULL, b INT(10) NOT NULL);
|
||||
INSERT INTO t1 VALUES (1, 1);
|
||||
INSERT INTO t1 VALUES (1, 2);
|
||||
SELECT a, b, a AS c, COUNT(*) AS count FROM t1 GROUP BY a, b, c WITH ROLLUP;
|
||||
a b c count
|
||||
1 1 1 1
|
||||
1 1 NULL 1
|
||||
1 2 1 1
|
||||
1 2 NULL 1
|
||||
1 NULL NULL 2
|
||||
NULL NULL NULL 2
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -681,3 +681,122 @@ execute stmt;
|
|||
execute stmt;
|
||||
deallocate prepare stmt;
|
||||
drop table t1;
|
||||
create table t1 (
|
||||
id int(11) unsigned not null primary key auto_increment,
|
||||
partner_id varchar(35) not null,
|
||||
t1_status_id int(10) unsigned
|
||||
);
|
||||
insert into t1 values ("1", "partner1", "10"), ("2", "partner2", "10"),
|
||||
("3", "partner3", "10"), ("4", "partner4", "10");
|
||||
create table t2 (
|
||||
id int(11) unsigned not null default '0',
|
||||
t1_line_id int(11) unsigned not null default '0',
|
||||
article_id varchar(20),
|
||||
sequence int(11) not null default '0',
|
||||
primary key (id,t1_line_id)
|
||||
);
|
||||
insert into t2 values ("1", "1", "sup", "0"), ("2", "1", "sup", "1"),
|
||||
("2", "2", "sup", "2"), ("2", "3", "sup", "3"),
|
||||
("2", "4", "imp", "4"), ("3", "1", "sup", "0"),
|
||||
("4", "1", "sup", "0");
|
||||
create table t3 (
|
||||
id int(11) not null default '0',
|
||||
preceeding_id int(11) not null default '0',
|
||||
primary key (id,preceeding_id)
|
||||
);
|
||||
create table t4 (
|
||||
user_id varchar(50) not null,
|
||||
article_id varchar(20) not null,
|
||||
primary key (user_id,article_id)
|
||||
);
|
||||
insert into t4 values("nicke", "imp");
|
||||
prepare stmt from
|
||||
'select distinct t1.partner_id
|
||||
from t1 left join t3 on t1.id = t3.id
|
||||
left join t1 pp on pp.id = t3.preceeding_id
|
||||
where
|
||||
exists (
|
||||
select *
|
||||
from t2 as pl_inner
|
||||
where pl_inner.id = t1.id
|
||||
and pl_inner.sequence <= (
|
||||
select min(sequence) from t2 pl_seqnr
|
||||
where pl_seqnr.id = t1.id
|
||||
)
|
||||
and exists (
|
||||
select * from t4
|
||||
where t4.article_id = pl_inner.article_id
|
||||
and t4.user_id = ?
|
||||
)
|
||||
)
|
||||
and t1.id = ?
|
||||
group by t1.id
|
||||
having count(pp.id) = 0';
|
||||
set @user_id = 'nicke';
|
||||
set @id = '2';
|
||||
execute stmt using @user_id, @id;
|
||||
partner_id
|
||||
execute stmt using @user_id, @id;
|
||||
partner_id
|
||||
deallocate prepare stmt;
|
||||
drop table t1, t2, t3, t4;
|
||||
prepare stmt from 'select ?=?';
|
||||
set @a='CHRISTINE ';
|
||||
set @b='CHRISTINE';
|
||||
execute stmt using @a, @b;
|
||||
?=?
|
||||
1
|
||||
execute stmt using @a, @b;
|
||||
?=?
|
||||
1
|
||||
set @a=1, @b=2;
|
||||
execute stmt using @a, @b;
|
||||
?=?
|
||||
0
|
||||
set @a='CHRISTINE ';
|
||||
set @b='CHRISTINE';
|
||||
execute stmt using @a, @b;
|
||||
?=?
|
||||
1
|
||||
deallocate prepare stmt;
|
||||
create table t1 (a int);
|
||||
prepare stmt from "select ??";
|
||||
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 '?' at line 1
|
||||
prepare stmt from "select ?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 '?FROM t1' at line 1
|
||||
prepare stmt from "select FROM t1 WHERE?=1";
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM t1 WHERE?=1' at line 1
|
||||
prepare stmt from "update t1 set a=a+?WHERE 1";
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?WHERE 1' at line 1
|
||||
select ?;
|
||||
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 '?' at line 1
|
||||
select ??;
|
||||
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 '??' at line 1
|
||||
select ? 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 '? from t1' at line 1
|
||||
drop table t1;
|
||||
prepare stmt from "select @@time_zone";
|
||||
execute stmt;
|
||||
@@time_zone
|
||||
SYSTEM
|
||||
set @@time_zone:='Japan';
|
||||
execute stmt;
|
||||
@@time_zone
|
||||
Japan
|
||||
prepare stmt from "select @@tx_isolation";
|
||||
execute stmt;
|
||||
@@tx_isolation
|
||||
REPEATABLE-READ
|
||||
set transaction isolation level read committed;
|
||||
execute stmt;
|
||||
@@tx_isolation
|
||||
READ-COMMITTED
|
||||
set transaction isolation level serializable;
|
||||
execute stmt;
|
||||
@@tx_isolation
|
||||
SERIALIZABLE
|
||||
set @@tx_isolation=default;
|
||||
execute stmt;
|
||||
@@tx_isolation
|
||||
REPEATABLE-READ
|
||||
deallocate prepare stmt;
|
||||
|
|
|
@ -290,11 +290,11 @@ t2 1 t2_idx 1 b A NULL NULL NULL YES BTREE
|
|||
prepare stmt4 from ' show table status from test like ''t2%'' ';
|
||||
execute stmt4;
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
t2 MyISAM 10 Fixed 0 0 0 4222124650659839 1024 0 NULL # # # latin1_swedish_ci NULL
|
||||
t2 MyISAM 10 Fixed 0 0 0 # 1024 0 NULL # # # latin1_swedish_ci NULL
|
||||
prepare stmt4 from ' show table status from test like ''t9%'' ';
|
||||
execute stmt4;
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
t9 MyISAM 10 Dynamic 2 216 432 281474976710655 2048 0 NULL # # # latin1_swedish_ci NULL
|
||||
t9 MyISAM 10 Dynamic 2 216 432 # 2048 0 NULL # # # latin1_swedish_ci NULL
|
||||
prepare stmt4 from ' show status like ''Threads_running'' ';
|
||||
execute stmt4;
|
||||
Variable_name Value
|
||||
|
|
|
@ -77,8 +77,8 @@ def test t9 t9 c25 c25 252 65535 4 Y 144 0 63
|
|||
def test t9 t9 c26 c26 252 65535 4 Y 16 0 8
|
||||
def test t9 t9 c27 c27 252 16777215 10 Y 144 0 63
|
||||
def test t9 t9 c28 c28 252 16777215 10 Y 16 0 8
|
||||
def test t9 t9 c29 c29 252 16777215 8 Y 144 0 63
|
||||
def test t9 t9 c30 c30 252 16777215 8 Y 16 0 8
|
||||
def test t9 t9 c29 c29 252 4294967295 8 Y 144 0 63
|
||||
def test t9 t9 c30 c30 252 4294967295 8 Y 16 0 8
|
||||
def test t9 t9 c31 c31 254 5 3 Y 256 0 8
|
||||
def test t9 t9 c32 c32 254 24 7 Y 2048 0 8
|
||||
c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 c31 c32
|
||||
|
@ -1810,17 +1810,17 @@ def test t5 t5 param02 param02 246 67 32 Y 0 30 63
|
|||
def test t5 t5 const03 const03 5 17 1 N 32769 31 63
|
||||
def test t5 t5 param03 param03 5 23 1 Y 32768 31 63
|
||||
def test t5 t5 const04 const04 253 3 3 N 1 0 8
|
||||
def test t5 t5 param04 param04 252 16777215 3 Y 16 0 8
|
||||
def test t5 t5 param04 param04 252 4294967295 3 Y 16 0 8
|
||||
def test t5 t5 const05 const05 253 3 3 N 129 0 63
|
||||
def test t5 t5 param05 param05 252 16777215 3 Y 144 0 63
|
||||
def test t5 t5 param05 param05 252 4294967295 3 Y 144 0 63
|
||||
def test t5 t5 const06 const06 253 10 10 N 1 0 8
|
||||
def test t5 t5 param06 param06 252 16777215 10 Y 16 0 8
|
||||
def test t5 t5 param06 param06 252 4294967295 10 Y 16 0 8
|
||||
def test t5 t5 const07 const07 10 10 10 Y 128 0 63
|
||||
def test t5 t5 param07 param07 252 16777215 10 Y 144 0 63
|
||||
def test t5 t5 param07 param07 252 4294967295 10 Y 144 0 63
|
||||
def test t5 t5 const08 const08 253 19 19 N 1 0 8
|
||||
def test t5 t5 param08 param08 252 16777215 19 Y 16 0 8
|
||||
def test t5 t5 param08 param08 252 4294967295 19 Y 16 0 8
|
||||
def test t5 t5 const09 const09 12 19 19 Y 128 0 63
|
||||
def test t5 t5 param09 param09 252 16777215 19 Y 144 0 63
|
||||
def test t5 t5 param09 param09 252 4294967295 19 Y 144 0 63
|
||||
def test t5 t5 const10 const10 3 10 9 N 32769 0 63
|
||||
def test t5 t5 param10 param10 8 20 9 Y 32768 0 63
|
||||
def test t5 t5 const11 const11 3 4 4 Y 32768 0 63
|
||||
|
@ -1828,8 +1828,8 @@ def test t5 t5 param11 param11 8 20 4 Y 32768 0 63
|
|||
def test t5 t5 const12 const12 254 0 0 Y 128 0 63
|
||||
def test t5 t5 param12 param12 8 20 0 Y 32768 0 63
|
||||
def test t5 t5 param13 param13 246 67 0 Y 0 30 63
|
||||
def test t5 t5 param14 param14 252 16777215 0 Y 16 0 8
|
||||
def test t5 t5 param15 param15 252 16777215 0 Y 144 0 63
|
||||
def test t5 t5 param14 param14 252 4294967295 0 Y 16 0 8
|
||||
def test t5 t5 param15 param15 252 4294967295 0 Y 144 0 63
|
||||
const01 8
|
||||
param01 8
|
||||
const02 8.0
|
||||
|
|
|
@ -77,8 +77,8 @@ def test t9 t9 c25 c25 252 65535 4 Y 144 0 63
|
|||
def test t9 t9 c26 c26 252 65535 4 Y 16 0 8
|
||||
def test t9 t9 c27 c27 252 16777215 10 Y 144 0 63
|
||||
def test t9 t9 c28 c28 252 16777215 10 Y 16 0 8
|
||||
def test t9 t9 c29 c29 252 16777215 8 Y 144 0 63
|
||||
def test t9 t9 c30 c30 252 16777215 8 Y 16 0 8
|
||||
def test t9 t9 c29 c29 252 4294967295 8 Y 144 0 63
|
||||
def test t9 t9 c30 c30 252 4294967295 8 Y 16 0 8
|
||||
def test t9 t9 c31 c31 254 5 3 Y 256 0 8
|
||||
def test t9 t9 c32 c32 254 24 7 Y 2048 0 8
|
||||
c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 c31 c32
|
||||
|
@ -1793,17 +1793,17 @@ def test t5 t5 param02 param02 246 67 32 Y 0 30 63
|
|||
def test t5 t5 const03 const03 5 17 1 N 32769 31 63
|
||||
def test t5 t5 param03 param03 5 23 1 Y 32768 31 63
|
||||
def test t5 t5 const04 const04 253 3 3 N 1 0 8
|
||||
def test t5 t5 param04 param04 252 16777215 3 Y 16 0 8
|
||||
def test t5 t5 param04 param04 252 4294967295 3 Y 16 0 8
|
||||
def test t5 t5 const05 const05 253 3 3 N 129 0 63
|
||||
def test t5 t5 param05 param05 252 16777215 3 Y 144 0 63
|
||||
def test t5 t5 param05 param05 252 4294967295 3 Y 144 0 63
|
||||
def test t5 t5 const06 const06 253 10 10 N 1 0 8
|
||||
def test t5 t5 param06 param06 252 16777215 10 Y 16 0 8
|
||||
def test t5 t5 param06 param06 252 4294967295 10 Y 16 0 8
|
||||
def test t5 t5 const07 const07 10 10 10 Y 128 0 63
|
||||
def test t5 t5 param07 param07 252 16777215 10 Y 144 0 63
|
||||
def test t5 t5 param07 param07 252 4294967295 10 Y 144 0 63
|
||||
def test t5 t5 const08 const08 253 19 19 N 1 0 8
|
||||
def test t5 t5 param08 param08 252 16777215 19 Y 16 0 8
|
||||
def test t5 t5 param08 param08 252 4294967295 19 Y 16 0 8
|
||||
def test t5 t5 const09 const09 12 19 19 Y 128 0 63
|
||||
def test t5 t5 param09 param09 252 16777215 19 Y 144 0 63
|
||||
def test t5 t5 param09 param09 252 4294967295 19 Y 144 0 63
|
||||
def test t5 t5 const10 const10 3 10 9 N 32769 0 63
|
||||
def test t5 t5 param10 param10 8 20 9 Y 32768 0 63
|
||||
def test t5 t5 const11 const11 3 4 4 Y 32768 0 63
|
||||
|
@ -1811,8 +1811,8 @@ def test t5 t5 param11 param11 8 20 4 Y 32768 0 63
|
|||
def test t5 t5 const12 const12 254 0 0 Y 128 0 63
|
||||
def test t5 t5 param12 param12 8 20 0 Y 32768 0 63
|
||||
def test t5 t5 param13 param13 246 67 0 Y 0 30 63
|
||||
def test t5 t5 param14 param14 252 16777215 0 Y 16 0 8
|
||||
def test t5 t5 param15 param15 252 16777215 0 Y 144 0 63
|
||||
def test t5 t5 param14 param14 252 4294967295 0 Y 16 0 8
|
||||
def test t5 t5 param15 param15 252 4294967295 0 Y 144 0 63
|
||||
const01 8
|
||||
param01 8
|
||||
const02 8.0
|
||||
|
|
|
@ -1794,17 +1794,17 @@ def test t5 t5 param02 param02 246 67 32 Y 0 30 63
|
|||
def test t5 t5 const03 const03 5 17 1 N 32769 31 63
|
||||
def test t5 t5 param03 param03 5 23 1 Y 32768 31 63
|
||||
def test t5 t5 const04 const04 253 3 3 N 1 0 8
|
||||
def test t5 t5 param04 param04 252 16777215 3 Y 16 0 8
|
||||
def test t5 t5 param04 param04 252 4294967295 3 Y 16 0 8
|
||||
def test t5 t5 const05 const05 253 3 3 N 129 0 63
|
||||
def test t5 t5 param05 param05 252 16777215 3 Y 144 0 63
|
||||
def test t5 t5 param05 param05 252 4294967295 3 Y 144 0 63
|
||||
def test t5 t5 const06 const06 253 10 10 N 1 0 8
|
||||
def test t5 t5 param06 param06 252 16777215 10 Y 16 0 8
|
||||
def test t5 t5 param06 param06 252 4294967295 10 Y 16 0 8
|
||||
def test t5 t5 const07 const07 10 10 10 Y 128 0 63
|
||||
def test t5 t5 param07 param07 252 16777215 10 Y 144 0 63
|
||||
def test t5 t5 param07 param07 252 4294967295 10 Y 144 0 63
|
||||
def test t5 t5 const08 const08 253 19 19 N 1 0 8
|
||||
def test t5 t5 param08 param08 252 16777215 19 Y 16 0 8
|
||||
def test t5 t5 param08 param08 252 4294967295 19 Y 16 0 8
|
||||
def test t5 t5 const09 const09 12 19 19 Y 128 0 63
|
||||
def test t5 t5 param09 param09 252 16777215 19 Y 144 0 63
|
||||
def test t5 t5 param09 param09 252 4294967295 19 Y 144 0 63
|
||||
def test t5 t5 const10 const10 3 10 9 N 32769 0 63
|
||||
def test t5 t5 param10 param10 8 20 9 Y 32768 0 63
|
||||
def test t5 t5 const11 const11 3 4 4 Y 32768 0 63
|
||||
|
@ -1812,8 +1812,8 @@ def test t5 t5 param11 param11 8 20 4 Y 32768 0 63
|
|||
def test t5 t5 const12 const12 254 0 0 Y 128 0 63
|
||||
def test t5 t5 param12 param12 8 20 0 Y 32768 0 63
|
||||
def test t5 t5 param13 param13 246 67 0 Y 0 30 63
|
||||
def test t5 t5 param14 param14 252 16777215 0 Y 16 0 8
|
||||
def test t5 t5 param15 param15 252 16777215 0 Y 144 0 63
|
||||
def test t5 t5 param14 param14 252 4294967295 0 Y 16 0 8
|
||||
def test t5 t5 param15 param15 252 4294967295 0 Y 144 0 63
|
||||
const01 8
|
||||
param01 8
|
||||
const02 8.0
|
||||
|
|
|
@ -120,8 +120,8 @@ def test t9 t9 c25 c25 252 65535 4 Y 144 0 63
|
|||
def test t9 t9 c26 c26 252 65535 4 Y 16 0 8
|
||||
def test t9 t9 c27 c27 252 16777215 10 Y 144 0 63
|
||||
def test t9 t9 c28 c28 252 16777215 10 Y 16 0 8
|
||||
def test t9 t9 c29 c29 252 16777215 8 Y 144 0 63
|
||||
def test t9 t9 c30 c30 252 16777215 8 Y 16 0 8
|
||||
def test t9 t9 c29 c29 252 4294967295 8 Y 144 0 63
|
||||
def test t9 t9 c30 c30 252 4294967295 8 Y 16 0 8
|
||||
def test t9 t9 c31 c31 254 5 3 Y 256 0 8
|
||||
def test t9 t9 c32 c32 254 24 7 Y 2048 0 8
|
||||
c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 c31 c32
|
||||
|
@ -1730,17 +1730,17 @@ def test t5 t5 param02 param02 246 67 32 Y 0 30 63
|
|||
def test t5 t5 const03 const03 5 17 1 N 32769 31 63
|
||||
def test t5 t5 param03 param03 5 23 1 Y 32768 31 63
|
||||
def test t5 t5 const04 const04 253 3 3 N 1 0 8
|
||||
def test t5 t5 param04 param04 252 16777215 3 Y 16 0 8
|
||||
def test t5 t5 param04 param04 252 4294967295 3 Y 16 0 8
|
||||
def test t5 t5 const05 const05 253 3 3 N 129 0 63
|
||||
def test t5 t5 param05 param05 252 16777215 3 Y 144 0 63
|
||||
def test t5 t5 param05 param05 252 4294967295 3 Y 144 0 63
|
||||
def test t5 t5 const06 const06 253 10 10 N 1 0 8
|
||||
def test t5 t5 param06 param06 252 16777215 10 Y 16 0 8
|
||||
def test t5 t5 param06 param06 252 4294967295 10 Y 16 0 8
|
||||
def test t5 t5 const07 const07 10 10 10 Y 128 0 63
|
||||
def test t5 t5 param07 param07 252 16777215 10 Y 144 0 63
|
||||
def test t5 t5 param07 param07 252 4294967295 10 Y 144 0 63
|
||||
def test t5 t5 const08 const08 253 19 19 N 1 0 8
|
||||
def test t5 t5 param08 param08 252 16777215 19 Y 16 0 8
|
||||
def test t5 t5 param08 param08 252 4294967295 19 Y 16 0 8
|
||||
def test t5 t5 const09 const09 12 19 19 Y 128 0 63
|
||||
def test t5 t5 param09 param09 252 16777215 19 Y 144 0 63
|
||||
def test t5 t5 param09 param09 252 4294967295 19 Y 144 0 63
|
||||
def test t5 t5 const10 const10 3 10 9 N 32769 0 63
|
||||
def test t5 t5 param10 param10 8 20 9 Y 32768 0 63
|
||||
def test t5 t5 const11 const11 3 4 4 Y 32768 0 63
|
||||
|
@ -1748,8 +1748,8 @@ def test t5 t5 param11 param11 8 20 4 Y 32768 0 63
|
|||
def test t5 t5 const12 const12 254 0 0 Y 128 0 63
|
||||
def test t5 t5 param12 param12 8 20 0 Y 32768 0 63
|
||||
def test t5 t5 param13 param13 246 67 0 Y 0 30 63
|
||||
def test t5 t5 param14 param14 252 16777215 0 Y 16 0 8
|
||||
def test t5 t5 param15 param15 252 16777215 0 Y 144 0 63
|
||||
def test t5 t5 param14 param14 252 4294967295 0 Y 16 0 8
|
||||
def test t5 t5 param15 param15 252 4294967295 0 Y 144 0 63
|
||||
const01 8
|
||||
param01 8
|
||||
const02 8.0
|
||||
|
@ -3132,8 +3132,8 @@ def test t9 t9 c25 c25 252 65535 4 Y 144 0 63
|
|||
def test t9 t9 c26 c26 252 65535 4 Y 16 0 8
|
||||
def test t9 t9 c27 c27 252 16777215 10 Y 144 0 63
|
||||
def test t9 t9 c28 c28 252 16777215 10 Y 16 0 8
|
||||
def test t9 t9 c29 c29 252 16777215 8 Y 144 0 63
|
||||
def test t9 t9 c30 c30 252 16777215 8 Y 16 0 8
|
||||
def test t9 t9 c29 c29 252 4294967295 8 Y 144 0 63
|
||||
def test t9 t9 c30 c30 252 4294967295 8 Y 16 0 8
|
||||
def test t9 t9 c31 c31 254 5 3 Y 256 0 8
|
||||
def test t9 t9 c32 c32 254 24 7 Y 2048 0 8
|
||||
c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 c31 c32
|
||||
|
@ -4742,17 +4742,17 @@ def test t5 t5 param02 param02 246 67 32 Y 0 30 63
|
|||
def test t5 t5 const03 const03 5 17 1 N 32769 31 63
|
||||
def test t5 t5 param03 param03 5 23 1 Y 32768 31 63
|
||||
def test t5 t5 const04 const04 253 3 3 N 1 0 8
|
||||
def test t5 t5 param04 param04 252 16777215 3 Y 16 0 8
|
||||
def test t5 t5 param04 param04 252 4294967295 3 Y 16 0 8
|
||||
def test t5 t5 const05 const05 253 3 3 N 129 0 63
|
||||
def test t5 t5 param05 param05 252 16777215 3 Y 144 0 63
|
||||
def test t5 t5 param05 param05 252 4294967295 3 Y 144 0 63
|
||||
def test t5 t5 const06 const06 253 10 10 N 1 0 8
|
||||
def test t5 t5 param06 param06 252 16777215 10 Y 16 0 8
|
||||
def test t5 t5 param06 param06 252 4294967295 10 Y 16 0 8
|
||||
def test t5 t5 const07 const07 10 10 10 Y 128 0 63
|
||||
def test t5 t5 param07 param07 252 16777215 10 Y 144 0 63
|
||||
def test t5 t5 param07 param07 252 4294967295 10 Y 144 0 63
|
||||
def test t5 t5 const08 const08 253 19 19 N 1 0 8
|
||||
def test t5 t5 param08 param08 252 16777215 19 Y 16 0 8
|
||||
def test t5 t5 param08 param08 252 4294967295 19 Y 16 0 8
|
||||
def test t5 t5 const09 const09 12 19 19 Y 128 0 63
|
||||
def test t5 t5 param09 param09 252 16777215 19 Y 144 0 63
|
||||
def test t5 t5 param09 param09 252 4294967295 19 Y 144 0 63
|
||||
def test t5 t5 const10 const10 3 10 9 N 32769 0 63
|
||||
def test t5 t5 param10 param10 8 20 9 Y 32768 0 63
|
||||
def test t5 t5 const11 const11 3 4 4 Y 32768 0 63
|
||||
|
@ -4760,8 +4760,8 @@ def test t5 t5 param11 param11 8 20 4 Y 32768 0 63
|
|||
def test t5 t5 const12 const12 254 0 0 Y 128 0 63
|
||||
def test t5 t5 param12 param12 8 20 0 Y 32768 0 63
|
||||
def test t5 t5 param13 param13 246 67 0 Y 0 30 63
|
||||
def test t5 t5 param14 param14 252 16777215 0 Y 16 0 8
|
||||
def test t5 t5 param15 param15 252 16777215 0 Y 144 0 63
|
||||
def test t5 t5 param14 param14 252 4294967295 0 Y 16 0 8
|
||||
def test t5 t5 param15 param15 252 4294967295 0 Y 144 0 63
|
||||
const01 8
|
||||
param01 8
|
||||
const02 8.0
|
||||
|
|
|
@ -77,8 +77,8 @@ def test t9 t9 c25 c25 252 65535 4 Y 144 0 63
|
|||
def test t9 t9 c26 c26 252 65535 4 Y 16 0 8
|
||||
def test t9 t9 c27 c27 252 16777215 10 Y 144 0 63
|
||||
def test t9 t9 c28 c28 252 16777215 10 Y 16 0 8
|
||||
def test t9 t9 c29 c29 252 16777215 8 Y 144 0 63
|
||||
def test t9 t9 c30 c30 252 16777215 8 Y 16 0 8
|
||||
def test t9 t9 c29 c29 252 4294967295 8 Y 144 0 63
|
||||
def test t9 t9 c30 c30 252 4294967295 8 Y 16 0 8
|
||||
def test t9 t9 c31 c31 254 5 3 Y 256 0 8
|
||||
def test t9 t9 c32 c32 254 24 7 Y 2048 0 8
|
||||
c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 c31 c32
|
||||
|
@ -1793,17 +1793,17 @@ def test t5 t5 param02 param02 246 67 32 Y 0 30 63
|
|||
def test t5 t5 const03 const03 5 17 1 N 32769 31 63
|
||||
def test t5 t5 param03 param03 5 23 1 Y 32768 31 63
|
||||
def test t5 t5 const04 const04 253 3 3 N 1 0 8
|
||||
def test t5 t5 param04 param04 252 16777215 3 Y 16 0 8
|
||||
def test t5 t5 param04 param04 252 4294967295 3 Y 16 0 8
|
||||
def test t5 t5 const05 const05 253 3 3 N 129 0 63
|
||||
def test t5 t5 param05 param05 252 16777215 3 Y 144 0 63
|
||||
def test t5 t5 param05 param05 252 4294967295 3 Y 144 0 63
|
||||
def test t5 t5 const06 const06 253 10 10 N 1 0 8
|
||||
def test t5 t5 param06 param06 252 16777215 10 Y 16 0 8
|
||||
def test t5 t5 param06 param06 252 4294967295 10 Y 16 0 8
|
||||
def test t5 t5 const07 const07 10 10 10 Y 128 0 63
|
||||
def test t5 t5 param07 param07 252 16777215 10 Y 144 0 63
|
||||
def test t5 t5 param07 param07 252 4294967295 10 Y 144 0 63
|
||||
def test t5 t5 const08 const08 253 19 19 N 1 0 8
|
||||
def test t5 t5 param08 param08 252 16777215 19 Y 16 0 8
|
||||
def test t5 t5 param08 param08 252 4294967295 19 Y 16 0 8
|
||||
def test t5 t5 const09 const09 12 19 19 Y 128 0 63
|
||||
def test t5 t5 param09 param09 252 16777215 19 Y 144 0 63
|
||||
def test t5 t5 param09 param09 252 4294967295 19 Y 144 0 63
|
||||
def test t5 t5 const10 const10 3 10 9 N 32769 0 63
|
||||
def test t5 t5 param10 param10 8 20 9 Y 32768 0 63
|
||||
def test t5 t5 const11 const11 3 4 4 Y 32768 0 63
|
||||
|
@ -1811,8 +1811,8 @@ def test t5 t5 param11 param11 8 20 4 Y 32768 0 63
|
|||
def test t5 t5 const12 const12 254 0 0 Y 128 0 63
|
||||
def test t5 t5 param12 param12 8 20 0 Y 32768 0 63
|
||||
def test t5 t5 param13 param13 246 67 0 Y 0 30 63
|
||||
def test t5 t5 param14 param14 252 16777215 0 Y 16 0 8
|
||||
def test t5 t5 param15 param15 252 16777215 0 Y 144 0 63
|
||||
def test t5 t5 param14 param14 252 4294967295 0 Y 16 0 8
|
||||
def test t5 t5 param15 param15 252 4294967295 0 Y 144 0 63
|
||||
const01 8
|
||||
param01 8
|
||||
const02 8.0
|
||||
|
|
|
@ -77,8 +77,8 @@ def test t9 t9 c25 c25 252 65535 4 Y 144 0 63
|
|||
def test t9 t9 c26 c26 252 65535 4 Y 16 0 8
|
||||
def test t9 t9 c27 c27 252 16777215 10 Y 144 0 63
|
||||
def test t9 t9 c28 c28 252 16777215 10 Y 16 0 8
|
||||
def test t9 t9 c29 c29 252 16777215 8 Y 144 0 63
|
||||
def test t9 t9 c30 c30 252 16777215 8 Y 16 0 8
|
||||
def test t9 t9 c29 c29 252 4294967295 8 Y 144 0 63
|
||||
def test t9 t9 c30 c30 252 4294967295 8 Y 16 0 8
|
||||
def test t9 t9 c31 c31 254 5 3 Y 256 0 8
|
||||
def test t9 t9 c32 c32 254 24 7 Y 2048 0 8
|
||||
c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 c31 c32
|
||||
|
@ -1793,17 +1793,17 @@ def test t5 t5 param02 param02 246 67 32 Y 0 30 63
|
|||
def test t5 t5 const03 const03 5 17 1 N 32769 31 63
|
||||
def test t5 t5 param03 param03 5 23 1 Y 32768 31 63
|
||||
def test t5 t5 const04 const04 253 3 3 N 1 0 8
|
||||
def test t5 t5 param04 param04 252 16777215 3 Y 16 0 8
|
||||
def test t5 t5 param04 param04 252 4294967295 3 Y 16 0 8
|
||||
def test t5 t5 const05 const05 253 3 3 N 129 0 63
|
||||
def test t5 t5 param05 param05 252 16777215 3 Y 144 0 63
|
||||
def test t5 t5 param05 param05 252 4294967295 3 Y 144 0 63
|
||||
def test t5 t5 const06 const06 253 10 10 N 1 0 8
|
||||
def test t5 t5 param06 param06 252 16777215 10 Y 16 0 8
|
||||
def test t5 t5 param06 param06 252 4294967295 10 Y 16 0 8
|
||||
def test t5 t5 const07 const07 10 10 10 Y 128 0 63
|
||||
def test t5 t5 param07 param07 252 16777215 10 Y 144 0 63
|
||||
def test t5 t5 param07 param07 252 4294967295 10 Y 144 0 63
|
||||
def test t5 t5 const08 const08 253 19 19 N 1 0 8
|
||||
def test t5 t5 param08 param08 252 16777215 19 Y 16 0 8
|
||||
def test t5 t5 param08 param08 252 4294967295 19 Y 16 0 8
|
||||
def test t5 t5 const09 const09 12 19 19 Y 128 0 63
|
||||
def test t5 t5 param09 param09 252 16777215 19 Y 144 0 63
|
||||
def test t5 t5 param09 param09 252 4294967295 19 Y 144 0 63
|
||||
def test t5 t5 const10 const10 3 10 9 N 32769 0 63
|
||||
def test t5 t5 param10 param10 8 20 9 Y 32768 0 63
|
||||
def test t5 t5 const11 const11 3 4 4 Y 32768 0 63
|
||||
|
@ -1811,8 +1811,8 @@ def test t5 t5 param11 param11 8 20 4 Y 32768 0 63
|
|||
def test t5 t5 const12 const12 254 0 0 Y 128 0 63
|
||||
def test t5 t5 param12 param12 8 20 0 Y 32768 0 63
|
||||
def test t5 t5 param13 param13 246 67 0 Y 0 30 63
|
||||
def test t5 t5 param14 param14 252 16777215 0 Y 16 0 8
|
||||
def test t5 t5 param15 param15 252 16777215 0 Y 144 0 63
|
||||
def test t5 t5 param14 param14 252 4294967295 0 Y 16 0 8
|
||||
def test t5 t5 param15 param15 252 4294967295 0 Y 144 0 63
|
||||
const01 8
|
||||
param01 8
|
||||
const02 8.0
|
||||
|
|
|
@ -744,3 +744,27 @@ a b
|
|||
1 3
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (name varchar(15) NOT NULL, KEY idx(name));
|
||||
INSERT INTO t1 VALUES ('Betty'), ('Anna');
|
||||
SELECT * FROM t1;
|
||||
name
|
||||
Anna
|
||||
Betty
|
||||
DELETE FROM t1 WHERE name NOT LIKE 'A%a';
|
||||
SELECT * FROM t1;
|
||||
name
|
||||
Anna
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a int, KEY idx(a));
|
||||
INSERT INTO t1 VALUES (NULL), (1), (2), (3);
|
||||
SELECT * FROM t1;
|
||||
a
|
||||
NULL
|
||||
1
|
||||
2
|
||||
3
|
||||
DELETE FROM t1 WHERE NOT(a <=> 2);
|
||||
SELECT * FROM t1;
|
||||
a
|
||||
2
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -84,4 +84,4 @@ a
|
|||
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
|
||||
# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 18911 # # master-bin.000001 Yes Yes 0 0 18911 # None 0 No #
|
||||
drop table t1,t2;
|
||||
drop table t1,t2,t3,t4;
|
||||
|
|
|
@ -69,12 +69,12 @@ master-bin.000002 346 Query 1 434 use `test`; insert into t1 values (1)
|
|||
master-bin.000002 434 Query 1 510 use `test`; drop table t1
|
||||
show binary logs;
|
||||
Log_name File_size
|
||||
master-bin.000001 0
|
||||
master-bin.000001 1389
|
||||
master-bin.000002 510
|
||||
start slave;
|
||||
show binary logs;
|
||||
Log_name File_size
|
||||
slave-bin.000001 0
|
||||
slave-bin.000001 1559
|
||||
slave-bin.000002 348
|
||||
show binlog events in 'slave-bin.000001' from 4;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
|
|
|
@ -27,8 +27,8 @@ insert into t2 values (34),(67),(123);
|
|||
flush logs;
|
||||
show binary logs;
|
||||
Log_name File_size
|
||||
master-bin.000001 0
|
||||
master-bin.000002 0
|
||||
master-bin.000001 592
|
||||
master-bin.000002 363
|
||||
master-bin.000003 98
|
||||
create table t3 select * from temp_table;
|
||||
select * from t3;
|
||||
|
@ -43,12 +43,12 @@ start slave;
|
|||
purge master logs to 'master-bin.000002';
|
||||
show master logs;
|
||||
Log_name File_size
|
||||
master-bin.000002 0
|
||||
master-bin.000002 363
|
||||
master-bin.000003 407
|
||||
purge binary logs to 'master-bin.000002';
|
||||
show binary logs;
|
||||
Log_name File_size
|
||||
master-bin.000002 0
|
||||
master-bin.000002 363
|
||||
master-bin.000003 407
|
||||
purge master logs before now();
|
||||
show binary logs;
|
||||
|
@ -74,8 +74,8 @@ count(*)
|
|||
create table t4 select * from temp_table;
|
||||
show binary logs;
|
||||
Log_name File_size
|
||||
master-bin.000003 0
|
||||
master-bin.000004 0
|
||||
master-bin.000003 4185
|
||||
master-bin.000004 4190
|
||||
master-bin.000005 2032
|
||||
show master status;
|
||||
File Position Binlog_Do_DB Binlog_Ignore_DB
|
||||
|
|
|
@ -2711,3 +2711,77 @@ DROP TABLE t1,t2;
|
|||
select x'10' + 0, X'10' + 0, b'10' + 0, B'10' + 0;
|
||||
x'10' + 0 X'10' + 0 b'10' + 0 B'10' + 0
|
||||
16 16 2 2
|
||||
CREATE TABLE t1 (
|
||||
acct_id int(11) NOT NULL default '0',
|
||||
profile_id smallint(6) default NULL,
|
||||
UNIQUE KEY t1$acct_id (acct_id),
|
||||
KEY t1$profile_id (profile_id)
|
||||
);
|
||||
INSERT INTO t1 VALUES (132,17),(133,18);
|
||||
CREATE TABLE t2 (
|
||||
profile_id smallint(6) default NULL,
|
||||
queue_id int(11) default NULL,
|
||||
seq int(11) default NULL,
|
||||
KEY t2$queue_id (queue_id)
|
||||
);
|
||||
INSERT INTO t2 VALUES (17,31,4),(17,30,3),(17,36,2),(17,37,1);
|
||||
CREATE TABLE t3 (
|
||||
id int(11) NOT NULL default '0',
|
||||
qtype int(11) default NULL,
|
||||
seq int(11) default NULL,
|
||||
warn_lvl int(11) default NULL,
|
||||
crit_lvl int(11) default NULL,
|
||||
rr1 tinyint(4) NOT NULL default '0',
|
||||
rr2 int(11) default NULL,
|
||||
default_queue tinyint(4) NOT NULL default '0',
|
||||
KEY t3$qtype (qtype),
|
||||
KEY t3$id (id)
|
||||
);
|
||||
INSERT INTO t3 VALUES (30,1,29,NULL,NULL,0,NULL,0),(31,1,28,NULL,NULL,0,NULL,0),
|
||||
(36,1,34,NULL,NULL,0,NULL,0),(37,1,35,NULL,NULL,0,121,0);
|
||||
SELECT COUNT(*) FROM t1 a STRAIGHT_JOIN t2 pq STRAIGHT_JOIN t3 q
|
||||
WHERE
|
||||
(pq.profile_id = a.profile_id) AND (a.acct_id = 132) AND
|
||||
(pq.queue_id = q.id) AND (q.rr1 <> 1);
|
||||
COUNT(*)
|
||||
4
|
||||
drop table t1,t2,t3;
|
||||
create table t1 (f1 int);
|
||||
insert into t1 values (1),(NULL);
|
||||
create table t2 (f2 int, f3 int, f4 int);
|
||||
create index idx1 on t2 (f4);
|
||||
insert into t2 values (1,2,3),(2,4,6);
|
||||
select A.f2 from t1 left join t2 A on A.f2 = f1 where A.f3=(select min(f3)
|
||||
from t2 C where A.f4 = C.f4) or A.f3 IS NULL;
|
||||
f2
|
||||
1
|
||||
NULL
|
||||
drop table t1,t2;
|
||||
create table t2 (a tinyint unsigned);
|
||||
create index t2i on t2(a);
|
||||
insert into t2 values (0), (254), (255);
|
||||
explain select * from t2 where a > -1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 index t2i t2i 2 NULL 3 Using where; Using index
|
||||
select * from t2 where a > -1;
|
||||
a
|
||||
0
|
||||
254
|
||||
255
|
||||
drop table t2;
|
||||
CREATE TABLE t1 (a int, b int, c int);
|
||||
INSERT INTO t1
|
||||
SELECT 50, 3, 3 FROM DUAL
|
||||
WHERE NOT EXISTS
|
||||
(SELECT * FROM t1 WHERE a = 50 AND b = 3);
|
||||
SELECT * FROM t1;
|
||||
a b c
|
||||
50 3 3
|
||||
INSERT INTO t1
|
||||
SELECT 50, 3, 3 FROM DUAL
|
||||
WHERE NOT EXISTS
|
||||
(SELECT * FROM t1 WHERE a = 50 AND b = 3);
|
||||
SELECT * FROM t1;
|
||||
a b c
|
||||
50 3 3
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -267,9 +267,9 @@ drop table t1;
|
|||
create table t1 (c decimal(3,3), d double(3,3), f float(3,3));
|
||||
show columns from t1;
|
||||
Field Type Null Key Default Extra
|
||||
c decimal(4,3) YES NULL
|
||||
d double(4,3) YES NULL
|
||||
f float(4,3) YES NULL
|
||||
c decimal(3,3) YES NULL
|
||||
d double(3,3) YES NULL
|
||||
f float(3,3) YES NULL
|
||||
drop table t1;
|
||||
SET @old_sql_mode= @@sql_mode, sql_mode= '';
|
||||
SET @old_sql_quote_show_create= @@sql_quote_show_create, sql_quote_show_create= OFF;
|
||||
|
@ -497,3 +497,18 @@ def STATISTICS COMMENT Comment 253 16 0 Y 0 0 63
|
|||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
||||
t1 0 PRIMARY 1 field1 A 0 1000 NULL BTREE
|
||||
drop table t1;
|
||||
create table t1 (
|
||||
c1 int NOT NULL,
|
||||
c2 int NOT NULL,
|
||||
PRIMARY KEY USING HASH (c1),
|
||||
INDEX USING BTREE(c2)
|
||||
);
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL,
|
||||
`c2` int(11) NOT NULL,
|
||||
PRIMARY KEY USING HASH (`c1`),
|
||||
KEY `c2` USING BTREE (`c2`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -286,6 +286,19 @@ ERROR 42000: OUT or INOUT argument 2 for routine test.p is not a variable
|
|||
call p(42, @tmp_y, 43)|
|
||||
ERROR 42000: OUT or INOUT argument 3 for routine test.p is not a variable
|
||||
drop procedure p|
|
||||
create procedure p() begin end|
|
||||
lock table t1 read|
|
||||
call p()|
|
||||
unlock tables|
|
||||
drop procedure p|
|
||||
lock tables t1 read, mysql.proc write|
|
||||
ERROR HY000: You can't combine write-locking of system 'mysql.proc' table with other tables
|
||||
lock tables mysql.proc write, mysql.user write|
|
||||
ERROR HY000: You can't combine write-locking of system 'mysql.proc' table with other tables
|
||||
lock tables t1 read, mysql.proc read|
|
||||
unlock tables|
|
||||
lock tables mysql.proc write|
|
||||
unlock tables|
|
||||
create procedure bug1965()
|
||||
begin
|
||||
declare c cursor for select val from t1 order by valname;
|
||||
|
@ -477,7 +490,7 @@ begin
|
|||
select * from t1;
|
||||
end|
|
||||
lock table t1 read|
|
||||
call bug9566()|
|
||||
alter procedure bug9566 comment 'Some comment'|
|
||||
ERROR HY000: Table 'proc' was not locked with LOCK TABLES
|
||||
unlock tables|
|
||||
drop procedure bug9566|
|
||||
|
@ -604,10 +617,10 @@ flush tables;
|
|||
return 5;
|
||||
end|
|
||||
ERROR 0A000: FLUSH is not allowed in stored procedures
|
||||
create procedure bug9529_90123456789012345678901234567890123456789012345678901234567890()
|
||||
create procedure bug9529_90123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123()
|
||||
begin
|
||||
end|
|
||||
ERROR 42000: Identifier name 'bug9529_90123456789012345678901234567890123456789012345678901234567890' is too long
|
||||
ERROR 42000: Identifier name 'bug9529_90123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890' is too long
|
||||
drop procedure if exists bug10969|
|
||||
create procedure bug10969()
|
||||
begin
|
||||
|
@ -705,3 +718,19 @@ end|
|
|||
call bug11394(2, 1)|
|
||||
ERROR HY000: Recursive stored routines are not allowed.
|
||||
drop procedure bug11394|
|
||||
drop function if exists bug11834_1;
|
||||
drop function if exists bug11834_2;
|
||||
create function bug11834_1() returns int return 10;
|
||||
create function bug11834_2() returns int return bug11834_1();
|
||||
prepare stmt from "select bug11834_2()";
|
||||
execute stmt;
|
||||
bug11834_2()
|
||||
10
|
||||
execute stmt;
|
||||
bug11834_2()
|
||||
10
|
||||
drop function bug11834_1;
|
||||
execute stmt;
|
||||
ERROR 42000: FUNCTION test.bug11834_1 does not exist
|
||||
deallocate prepare stmt;
|
||||
drop function bug11834_2;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
use test;
|
||||
grant usage on *.* to user1@localhost;
|
||||
flush privileges;
|
||||
drop table if exists t1;
|
||||
drop database if exists db1_secret;
|
||||
create database db1_secret;
|
||||
create procedure db1_secret.dummy() begin end;
|
||||
|
@ -211,3 +212,27 @@ REVOKE ALL PRIVILEGES, GRANT OPTION FROM user1@localhost;
|
|||
drop function bug_9503;
|
||||
use test;
|
||||
drop database mysqltest;
|
||||
use test;
|
||||
select current_user();
|
||||
current_user()
|
||||
root@localhost
|
||||
select user();
|
||||
user()
|
||||
root@localhost
|
||||
create procedure bug7291_0 () sql security invoker select current_user(), user();
|
||||
create procedure bug7291_1 () sql security definer call bug7291_0();
|
||||
create procedure bug7291_2 () sql security invoker call bug7291_0();
|
||||
grant execute on procedure bug7291_0 to user1@localhost;
|
||||
grant execute on procedure bug7291_1 to user1@localhost;
|
||||
grant execute on procedure bug7291_2 to user1@localhost;
|
||||
call bug7291_2();
|
||||
current_user() user()
|
||||
user1@localhost user1@localhost
|
||||
call bug7291_1();
|
||||
current_user() user()
|
||||
root@localhost user1@localhost
|
||||
drop procedure bug7291_1;
|
||||
drop procedure bug7291_2;
|
||||
drop procedure bug7291_0;
|
||||
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user1@localhost;
|
||||
drop user user1@localhost;
|
||||
|
|
|
@ -55,3 +55,12 @@ call bug11158();
|
|||
unlock tables;
|
||||
drop procedure bug11158;
|
||||
drop table t1, t2;
|
||||
drop function if exists bug11554;
|
||||
drop view if exists v1;
|
||||
create table t1 (i int);
|
||||
create function bug11554 () returns int return 1;
|
||||
create view v1 as select bug11554() as f;
|
||||
insert into t1 (select f from v1);
|
||||
drop function bug11554;
|
||||
drop table t1;
|
||||
drop view v1;
|
||||
|
|
|
@ -1088,7 +1088,7 @@ a
|
|||
select * from v1|
|
||||
a
|
||||
3
|
||||
select * from v1, v2|
|
||||
select * from v1, t1|
|
||||
ERROR HY000: Table 't1' was not locked with LOCK TABLES
|
||||
select f4()|
|
||||
ERROR HY000: Table 't2' was not locked with LOCK TABLES
|
||||
|
@ -2657,16 +2657,22 @@ end|
|
|||
call avg ()|
|
||||
drop procedure avg|
|
||||
drop procedure if exists bug6129|
|
||||
set @@sql_mode = 'traditional'|
|
||||
create procedure bug6129(mode text)
|
||||
select @@sql_mode = mode|
|
||||
call bug6129(@@sql_mode)|
|
||||
@@sql_mode = mode
|
||||
1
|
||||
set @@sql_mode = ''|
|
||||
call bug6129(@@sql_mode)|
|
||||
@@sql_mode = mode
|
||||
0
|
||||
set @old_mode= @@sql_mode;
|
||||
set @@sql_mode= "";
|
||||
create procedure bug6129()
|
||||
select @@sql_mode|
|
||||
call bug6129()|
|
||||
@@sql_mode
|
||||
|
||||
set @@sql_mode= "NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO"|
|
||||
call bug6129()|
|
||||
@@sql_mode
|
||||
NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO
|
||||
set @@sql_mode= "NO_ZERO_IN_DATE"|
|
||||
call bug6129()|
|
||||
@@sql_mode
|
||||
NO_ZERO_IN_DATE
|
||||
set @@sql_mode=@old_mode;
|
||||
drop procedure bug6129|
|
||||
drop procedure if exists bug9856|
|
||||
create procedure bug9856()
|
||||
|
@ -3033,4 +3039,64 @@ call bug11529()|
|
|||
call bug11529()|
|
||||
delete from t1|
|
||||
drop procedure bug11529|
|
||||
drop procedure if exists bug6063|
|
||||
drop procedure if exists bug7088_1|
|
||||
drop procedure if exists bug7088_2|
|
||||
create procedure bug6063()
|
||||
lâbel: begin end|
|
||||
call bug6063()|
|
||||
show create procedure bug6063|
|
||||
Procedure sql_mode Create Procedure
|
||||
bug6063 CREATE PROCEDURE `test`.`bug6063`()
|
||||
l?bel: begin end
|
||||
set character set utf8|
|
||||
create procedure bug7088_1()
|
||||
label1: begin end label1|
|
||||
create procedure bug7088_2()
|
||||
läbel1: begin end|
|
||||
call bug7088_1()|
|
||||
call bug7088_2()|
|
||||
set character set default|
|
||||
show create procedure bug7088_1|
|
||||
Procedure sql_mode Create Procedure
|
||||
bug7088_1 CREATE PROCEDURE `test`.`bug7088_1`()
|
||||
label1: begin end label1
|
||||
show create procedure bug7088_2|
|
||||
Procedure sql_mode Create Procedure
|
||||
bug7088_2 CREATE PROCEDURE `test`.`bug7088_2`()
|
||||
läbel1: begin end
|
||||
drop procedure bug6063|
|
||||
drop procedure bug7088_1|
|
||||
drop procedure bug7088_2|
|
||||
drop procedure if exists bug9565_sub|
|
||||
drop procedure if exists bug9565|
|
||||
create procedure bug9565_sub()
|
||||
begin
|
||||
select * from t1;
|
||||
end|
|
||||
create procedure bug9565()
|
||||
begin
|
||||
insert into t1 values ("one", 1);
|
||||
call bug9565_sub();
|
||||
end|
|
||||
call bug9565()|
|
||||
id data
|
||||
one 1
|
||||
delete from t1|
|
||||
drop procedure bug9565_sub|
|
||||
drop procedure bug9565|
|
||||
drop procedure if exists bug9538|
|
||||
create procedure bug9538()
|
||||
set @@sort_buffer_size = 1000000|
|
||||
set @x = @@sort_buffer_size|
|
||||
set @@sort_buffer_size = 2000000|
|
||||
select @@sort_buffer_size|
|
||||
@@sort_buffer_size
|
||||
2000000
|
||||
call bug9538()|
|
||||
select @@sort_buffer_size|
|
||||
@@sort_buffer_size
|
||||
1000000
|
||||
set @@sort_buffer_size = @x|
|
||||
drop procedure bug9538|
|
||||
drop table t1,t2;
|
||||
|
|
|
@ -120,7 +120,7 @@ create table t1 ( min_num dec(6,6) default .000001);
|
|||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`min_num` decimal(7,6) default '0.000001'
|
||||
`min_num` decimal(6,6) default '0.000001'
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1 ;
|
||||
set session sql_mode = 'IGNORE_SPACE';
|
||||
|
@ -128,14 +128,14 @@ create table t1 ( min_num dec(6,6) default 0.000001);
|
|||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`min_num` decimal(7,6) default '0.000001'
|
||||
`min_num` decimal(6,6) default '0.000001'
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1 ;
|
||||
create table t1 ( min_num dec(6,6) default .000001);
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`min_num` decimal(7,6) default '0.000001'
|
||||
`min_num` decimal(6,6) default '0.000001'
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1 ;
|
||||
set @@SQL_MODE=NULL;
|
||||
|
|
|
@ -1235,3 +1235,13 @@ create table t1(a varchar(65537));
|
|||
ERROR 42000: Column length too big for column 'a' (max = 65535); use BLOB or TEXT instead
|
||||
create table t1(a varbinary(65537));
|
||||
ERROR 42000: Column length too big for column 'a' (max = 65535); use BLOB or TEXT instead
|
||||
set @@sql_mode='traditional';
|
||||
create table t1(a int, b date not null);
|
||||
alter table t1 modify a bigint unsigned not null;
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` bigint(20) unsigned NOT NULL,
|
||||
`b` date NOT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
|
|
|
@ -2837,3 +2837,9 @@ WHERE select_id = 0 OR select_id = 1);
|
|||
values_id
|
||||
1
|
||||
DROP TABLE t1, t2;
|
||||
create table t1 (fld enum('0','1'));
|
||||
insert into t1 values ('1');
|
||||
select * from (select max(fld) from t1) as foo;
|
||||
max(fld)
|
||||
1
|
||||
drop table t1;
|
||||
|
|
|
@ -162,7 +162,7 @@ procs_priv CREATE TABLE `procs_priv` (
|
|||
show create table proc;
|
||||
Table Create Table
|
||||
proc CREATE TABLE `proc` (
|
||||
`db` char(64) character set latin1 collate latin1_bin NOT NULL default '',
|
||||
`db` char(64) character set utf8 collate utf8_bin NOT NULL default '',
|
||||
`name` char(64) NOT NULL default '',
|
||||
`type` enum('FUNCTION','PROCEDURE') NOT NULL,
|
||||
`specific_name` char(64) NOT NULL default '',
|
||||
|
@ -173,12 +173,12 @@ proc CREATE TABLE `proc` (
|
|||
`param_list` blob NOT NULL,
|
||||
`returns` char(64) NOT NULL default '',
|
||||
`body` blob NOT NULL,
|
||||
`definer` char(77) character set latin1 collate latin1_bin NOT NULL default '',
|
||||
`definer` char(77) character set utf8 collate utf8_bin NOT NULL default '',
|
||||
`created` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
|
||||
`modified` timestamp NOT NULL default '0000-00-00 00:00:00',
|
||||
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') NOT NULL default '',
|
||||
`comment` char(64) character set latin1 collate latin1_bin NOT NULL default '',
|
||||
`comment` char(64) character set utf8 collate utf8_bin NOT NULL default '',
|
||||
PRIMARY KEY (`db`,`name`,`type`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Stored Procedures'
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Stored Procedures'
|
||||
show tables;
|
||||
Tables_in_test
|
||||
|
|
|
@ -47,6 +47,13 @@ select * from mysql.time_zone_name;
|
|||
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'time_zone_name'
|
||||
select Name, convert_tz('2004-11-30 12:00:00', Name, 'UTC') from mysql.time_zone_name;
|
||||
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'time_zone_name'
|
||||
drop table t1, t2;
|
||||
create table t1 (a int, b datetime);
|
||||
create table t2 (a int, b varchar(40));
|
||||
update t1 set b = '2005-01-01 10:00';
|
||||
update t1 set b = convert_tz(b, 'UTC', 'UTC');
|
||||
update t1 join t2 on (t1.a = t2.a) set t1.b = '2005-01-01 10:00' where t2.b = 'foo';
|
||||
update t1 join t2 on (t1.a = t2.a) set t1.b = convert_tz('2005-01-01 10:00','UTC','UTC') where t2.b = 'foo';
|
||||
delete from mysql.user where user like 'mysqltest\_%';
|
||||
delete from mysql.db where user like 'mysqltest\_%';
|
||||
delete from mysql.tables_priv where user like 'mysqltest\_%';
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
drop table if exists t1, t2;
|
||||
drop table if exists t1, t2, t3;
|
||||
drop view if exists v1;
|
||||
drop database if exists mysqltest;
|
||||
drop function if exists f1;
|
||||
create table t1 (i int);
|
||||
create trigger trg before insert on t1 for each row set @a:=1;
|
||||
set @a:=0;
|
||||
|
@ -182,6 +183,93 @@ select @log;
|
|||
@log
|
||||
(BEFORE_INSERT: new=(id=1, data=5))(BEFORE_UPDATE: old=(id=1, data=4) new=(id=1, data=6))(AFTER_UPDATE: old=(id=1, data=4) new=(id=1, data=6))(BEFORE_INSERT: new=(id=3, data=3))(AFTER_INSERT: new=(id=3, data=3))
|
||||
drop table t1;
|
||||
create table t1 (id int primary key, data varchar(10), fk int);
|
||||
create table t2 (event varchar(100));
|
||||
create table t3 (id int primary key);
|
||||
create trigger t1_ai after insert on t1 for each row
|
||||
insert into t2 values (concat("INSERT INTO t1 id=", new.id, " data='", new.data, "'"));
|
||||
insert into t1 (id, data) values (1, "one"), (2, "two");
|
||||
select * from t1;
|
||||
id data fk
|
||||
1 one NULL
|
||||
2 two NULL
|
||||
select * from t2;
|
||||
event
|
||||
INSERT INTO t1 id=1 data='one'
|
||||
INSERT INTO t1 id=2 data='two'
|
||||
drop trigger t1.t1_ai;
|
||||
create trigger t1_bi before insert on t1 for each row
|
||||
begin
|
||||
if exists (select id from t3 where id=new.fk) then
|
||||
insert into t2 values (concat("INSERT INTO t1 id=", new.id, " data='", new.data, "' fk=", new.fk));
|
||||
else
|
||||
insert into t2 values (concat("INSERT INTO t1 FAILED id=", new.id, " data='", new.data, "' fk=", new.fk));
|
||||
set new.id= NULL;
|
||||
end if;
|
||||
end|
|
||||
insert into t3 values (1);
|
||||
insert into t1 values (4, "four", 1), (5, "five", 2);
|
||||
ERROR 23000: Column 'id' cannot be null
|
||||
select * from t1;
|
||||
id data fk
|
||||
1 one NULL
|
||||
2 two NULL
|
||||
4 four 1
|
||||
select * from t2;
|
||||
event
|
||||
INSERT INTO t1 id=1 data='one'
|
||||
INSERT INTO t1 id=2 data='two'
|
||||
INSERT INTO t1 id=4 data='four' fk=1
|
||||
INSERT INTO t1 FAILED id=5 data='five' fk=2
|
||||
drop table t1, t2, t3;
|
||||
create table t1 (id int primary key, data varchar(10));
|
||||
create table t2 (seq int);
|
||||
insert into t2 values (10);
|
||||
create function f1 () returns int return (select max(seq) from t2);
|
||||
create trigger t1_bi before insert on t1 for each row
|
||||
begin
|
||||
if new.id > f1() then
|
||||
set new.id:= f1();
|
||||
end if;
|
||||
end|
|
||||
insert into t1 values (1, "first");
|
||||
insert into t1 values (f1(), "max");
|
||||
select * from t1;
|
||||
id data
|
||||
1 first
|
||||
10 max
|
||||
drop table t1, t2;
|
||||
drop function f1;
|
||||
create table t1 (id int primary key, fk_t2 int);
|
||||
create table t2 (id int primary key, fk_t3 int);
|
||||
create table t3 (id int primary key);
|
||||
insert into t1 values (1,1), (2,1), (3,2);
|
||||
insert into t2 values (1,1), (2,2);
|
||||
insert into t3 values (1), (2);
|
||||
create trigger t3_ad after delete on t3 for each row
|
||||
delete from t2 where fk_t3=old.id;
|
||||
create trigger t2_ad after delete on t2 for each row
|
||||
delete from t1 where fk_t2=old.id;
|
||||
delete from t3 where id = 1;
|
||||
select * from t1 left join (t2 left join t3 on t2.fk_t3 = t3.id) on t1.fk_t2 = t2.id;
|
||||
id fk_t2 id fk_t3 id
|
||||
3 2 2 2 2
|
||||
drop table t1, t2, t3;
|
||||
create table t1 (id int primary key, copy int);
|
||||
create table t2 (id int primary key, data int);
|
||||
insert into t2 values (1,1), (2,2);
|
||||
create trigger t1_bi before insert on t1 for each row
|
||||
set new.copy= (select data from t2 where id = new.id);
|
||||
create trigger t1_bu before update on t1 for each row
|
||||
set new.copy= (select data from t2 where id = new.id);
|
||||
insert into t1 values (1,3), (2,4), (3,3);
|
||||
update t1 set copy= 1 where id = 2;
|
||||
select * from t1;
|
||||
id copy
|
||||
1 1
|
||||
2 2
|
||||
3 NULL
|
||||
drop table t1, t2;
|
||||
create table t1 (i int);
|
||||
create trigger trg before insert on t1 for each row set @a:= old.i;
|
||||
ERROR HY000: There is no OLD row in on INSERT trigger
|
||||
|
@ -209,7 +297,7 @@ drop trigger t1.trg;
|
|||
ERROR HY000: Trigger does not exist
|
||||
create view v1 as select * from t1;
|
||||
create trigger trg before insert on v1 for each row set @a:=1;
|
||||
ERROR HY000: Trigger's 'v1' is view or temporary table
|
||||
ERROR HY000: 'test.v1' is not BASE TABLE
|
||||
drop view v1;
|
||||
drop table t1;
|
||||
create temporary table t1 (i int);
|
||||
|
@ -490,4 +578,5 @@ create trigger t1_bu before update on t1 for each row set new.col1= bug5893();
|
|||
drop function bug5893;
|
||||
update t1 set col2 = 4;
|
||||
ERROR 42000: FUNCTION test.bug5893 does not exist
|
||||
drop trigger t1.t1_bu;
|
||||
drop table t1;
|
||||
|
|
|
@ -476,12 +476,7 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp
|
|||
CREATE TABLE t1 (a_dec DECIMAL(-1,1));
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1,1))' at line 1
|
||||
CREATE TABLE t1 (a_dec DECIMAL(0,11));
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a_dec` decimal(11,11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1;
|
||||
ERROR 42000: Scale may not be larger than the precision (column 'a_dec').
|
||||
create table t1(a decimal(7,3));
|
||||
insert into t1 values ('1'),('+1'),('-1'),('0000000001'),('+0000000001'),('-0000000001'),('10'),('+10'),('-10'),('0000000010'),('+0000000010'),('-0000000010'),('100'),('+100'),('-100'),('0000000100'),('+0000000100'),('-0000000100'),('1000'),('+1000'),('-1000'),('0000001000'),('+0000001000'),('-0000001000'),('10000'),('+10000'),('-10000'),('0000010000'),('+0000010000'),('-0000010000'),('100000'),('+100000'),('-100000'),('0000100000'),('+0000100000'),('-0000100000'),('1000000'),('+1000000'),('-1000000'),('0001000000'),('+0001000000'),('-0001000000'),('10000000'),('+10000000'),('-10000000'),('0010000000'),('+0010000000'),('-0010000000'),('100000000'),('+100000000'),('-100000000'),('0100000000'),('+0100000000'),('-0100000000'),('1000000000'),('+1000000000'),('-1000000000'),('1000000000'),('+1000000000'),('-1000000000');
|
||||
select * from t1;
|
||||
|
@ -699,24 +694,6 @@ select * from t1;
|
|||
d
|
||||
1
|
||||
drop table t1;
|
||||
create table t1 (d decimal(64,99));
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`d` decimal(64,30) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
insert into t1 values (1);
|
||||
select * from t1;
|
||||
d
|
||||
1.000000000000000000000000000000
|
||||
drop table t1;
|
||||
create table t1 (d decimal(10,12));
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`d` decimal(13,12) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
create table t1 (d decimal(5));
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
|
@ -732,7 +709,7 @@ t1 CREATE TABLE `t1` (
|
|||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
create table t1 (d decimal(66,0));
|
||||
ERROR 42000: Incorrect column specifier for column 'd'
|
||||
ERROR 42000: Too big precision 66 specified for column 'd'. Maximum is 65.
|
||||
CREATE TABLE t1 (i INT, d1 DECIMAL(9,2), d2 DECIMAL(9,2));
|
||||
INSERT INTO t1 VALUES (1, 101.40, 21.40), (1, -80.00, 0.00),
|
||||
(2, 0.00, 0.00), (2, -13.20, 0.00), (2, 59.60, 46.40),
|
||||
|
|
|
@ -103,7 +103,7 @@ select max(a),min(a),avg(a) from t1;
|
|||
max(a) min(a) avg(a)
|
||||
1 1 1
|
||||
drop table t1;
|
||||
create table t1 (f float, f2 float(24), f3 float(6,2), d double, d2 float(53), d3 double(10,3), de decimal, de2 decimal(6), de3 decimal(5,2), n numeric, n2 numeric(8), n3 numeric(5,6));
|
||||
create table t1 (f float, f2 float(24), f3 float(6,2), d double, d2 float(53), d3 double(10,3), de decimal, de2 decimal(6), de3 decimal(5,2), n numeric, n2 numeric(8), n3 numeric(7,6));
|
||||
show full columns from t1;
|
||||
Field Type Collation Null Key Default Extra Privileges Comment
|
||||
f float NULL YES NULL #
|
||||
|
@ -133,17 +133,7 @@ min(a)
|
|||
-0.010
|
||||
drop table t1;
|
||||
create table t1 (a float(200,100), b double(200,100));
|
||||
insert t1 values (1.0, 2.0);
|
||||
select * from t1;
|
||||
a b
|
||||
1.000000000000000000000000000000 2.000000000000000000000000000000
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` float(200,30) default NULL,
|
||||
`b` double(200,30) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
ERROR 42000: Too big scale 100 specified for column 'a'. Maximum is 30.
|
||||
create table t1 (c20 char);
|
||||
insert into t1 values (5000.0);
|
||||
Warnings:
|
||||
|
|
|
@ -876,15 +876,6 @@ SELECT * FROM t1;
|
|||
f1 f2
|
||||
9999999999999999999999999999999999.00000000000000000000 0.00
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (GRADE DECIMAL(4) NOT NULL, PRIMARY KEY (GRADE)) ENGINE=INNODB;
|
||||
INSERT INTO t1 (GRADE) VALUES (151),(252),(343);
|
||||
SELECT GRADE FROM t1 WHERE GRADE > 160 AND GRADE < 300;
|
||||
GRADE
|
||||
252
|
||||
SELECT GRADE FROM t1 WHERE GRADE= 151;
|
||||
GRADE
|
||||
151
|
||||
DROP TABLE t1;
|
||||
select abs(10/0);
|
||||
abs(10/0)
|
||||
NULL
|
||||
|
@ -934,3 +925,47 @@ select * from t1;
|
|||
col1
|
||||
-9223372036854775808
|
||||
drop table t1;
|
||||
select cast('1.00000001335143196001808973960578441619873046875E-10' as decimal(30,15));
|
||||
cast('1.00000001335143196001808973960578441619873046875E-10' as decimal(30,15))
|
||||
0.000000000100000
|
||||
select ln(14000) c1, convert(ln(14000),decimal(2,3)) c2, cast(ln(14000) as decimal(2,3)) c3;
|
||||
c1 c2 c3
|
||||
9.5468126085974 9.547 9.547
|
||||
create table t1 (sl decimal(70,30));
|
||||
ERROR 42000: Too big precision 70 specified for column 'sl'. Maximum is 65.
|
||||
create table t1 (sl decimal(32,31));
|
||||
ERROR 42000: Too big scale 31 specified for column 'sl'. Maximum is 30.
|
||||
create table t1 (sl decimal(0,38));
|
||||
ERROR 42000: Too big scale 38 specified for column 'sl'. Maximum is 30.
|
||||
create table t1 (sl decimal(0,30));
|
||||
ERROR 42000: Scale may not be larger than the precision (column 'sl').
|
||||
create table t1 (sl decimal(5, 5));
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`sl` decimal(5,5) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
create table t1 (
|
||||
f1 decimal unsigned not null default 17.49,
|
||||
f2 decimal unsigned not null default 17.68,
|
||||
f3 decimal unsigned not null default 99.2,
|
||||
f4 decimal unsigned not null default 99.7,
|
||||
f5 decimal unsigned not null default 104.49,
|
||||
f6 decimal unsigned not null default 199.91,
|
||||
f7 decimal unsigned not null default 999.9,
|
||||
f8 decimal unsigned not null default 9999.99);
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'f1' at row 1
|
||||
Note 1265 Data truncated for column 'f2' at row 1
|
||||
Note 1265 Data truncated for column 'f3' at row 1
|
||||
Note 1265 Data truncated for column 'f4' at row 1
|
||||
Note 1265 Data truncated for column 'f5' at row 1
|
||||
Note 1265 Data truncated for column 'f6' at row 1
|
||||
Note 1265 Data truncated for column 'f7' at row 1
|
||||
Note 1265 Data truncated for column 'f8' at row 1
|
||||
insert into t1 (f1) values (1);
|
||||
select * from t1;
|
||||
f1 f2 f3 f4 f5 f6 f7 f8
|
||||
1 18 99 100 104 200 1000 10000
|
||||
drop table t1;
|
||||
|
|
|
@ -240,3 +240,14 @@ update t1, t2 set t1.a = t2.a where t2.b = t1.b;
|
|||
show warnings;
|
||||
Level Code Message
|
||||
drop table t1, t2;
|
||||
create table t1(f1 int, f2 int);
|
||||
create table t2(f3 int, f4 int);
|
||||
create index idx on t2(f3);
|
||||
insert into t1 values(1,0),(2,0);
|
||||
insert into t2 values(1,1),(2,2);
|
||||
UPDATE t1 SET t1.f2=(SELECT MAX(t2.f4) FROM t2 WHERE t2.f3=t1.f1);
|
||||
select * from t1;
|
||||
f1 f2
|
||||
1 1
|
||||
2 2
|
||||
drop table t1,t2;
|
||||
|
|
|
@ -149,13 +149,13 @@ v5 VIEW
|
|||
v6 VIEW
|
||||
show table status;
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
t1 MyISAM 10 Fixed 5 9 45 2533274790395903 1024 0 NULL # # NULL latin1_swedish_ci NULL
|
||||
v1 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL # # NULL NULL NULL NULL view
|
||||
v2 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL # # NULL NULL NULL NULL view
|
||||
v3 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL # # NULL NULL NULL NULL view
|
||||
v4 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL # # NULL NULL NULL NULL view
|
||||
v5 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL # # NULL NULL NULL NULL view
|
||||
v6 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL # # NULL NULL NULL NULL view
|
||||
t1 MyISAM 10 Fixed 5 9 45 # 1024 0 NULL # # NULL latin1_swedish_ci NULL
|
||||
v1 NULL NULL NULL NULL NULL NULL # NULL NULL NULL # # NULL NULL NULL NULL view
|
||||
v2 NULL NULL NULL NULL NULL NULL # NULL NULL NULL # # NULL NULL NULL NULL view
|
||||
v3 NULL NULL NULL NULL NULL NULL # NULL NULL NULL # # NULL NULL NULL NULL view
|
||||
v4 NULL NULL NULL NULL NULL NULL # NULL NULL NULL # # NULL NULL NULL NULL view
|
||||
v5 NULL NULL NULL NULL NULL NULL # NULL NULL NULL # # NULL NULL NULL NULL view
|
||||
v6 NULL NULL NULL NULL NULL NULL # NULL NULL NULL # # NULL NULL NULL NULL view
|
||||
drop view v1,v2,v3,v4,v5,v6;
|
||||
create view v1 (c,d,e,f) as select a,b,
|
||||
a in (select a+2 from t1), a = all (select a from t1) from t1;
|
||||
|
@ -1831,6 +1831,31 @@ select * from v1;
|
|||
t
|
||||
01:00
|
||||
drop view v1;
|
||||
create table t1 (a timestamp default now());
|
||||
create table t2 (b timestamp default now());
|
||||
create view v1 as select a,b,t1.a < now() from t1,t2 where t1.a < now();
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View
|
||||
v1 CREATE ALGORITHM=UNDEFINED VIEW `test`.`v1` AS select sql_no_cache `test`.`t1`.`a` AS `a`,`test`.`t2`.`b` AS `b`,(`test`.`t1`.`a` < now()) AS `t1.a < now()` from (`test`.`t1` join `test`.`t2`) where (`test`.`t1`.`a` < now())
|
||||
drop view v1;
|
||||
drop table t1, t2;
|
||||
CREATE TABLE t1 ( a varchar(50) );
|
||||
CREATE VIEW v1 AS SELECT * FROM t1 WHERE a = CURRENT_USER();
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View
|
||||
v1 CREATE ALGORITHM=UNDEFINED VIEW `test`.`v1` AS select sql_no_cache `test`.`t1`.`a` AS `a` from `test`.`t1` where (`test`.`t1`.`a` = current_user())
|
||||
DROP VIEW v1;
|
||||
CREATE VIEW v1 AS SELECT * FROM t1 WHERE a = VERSION();
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View
|
||||
v1 CREATE ALGORITHM=UNDEFINED VIEW `test`.`v1` AS select `test`.`t1`.`a` AS `a` from `test`.`t1` where (`test`.`t1`.`a` = version())
|
||||
DROP VIEW v1;
|
||||
CREATE VIEW v1 AS SELECT * FROM t1 WHERE a = DATABASE();
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View
|
||||
v1 CREATE ALGORITHM=UNDEFINED VIEW `test`.`v1` AS select sql_no_cache `test`.`t1`.`a` AS `a` from `test`.`t1` where (`test`.`t1`.`a` = database())
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (col1 time);
|
||||
CREATE TABLE t2 (col1 time);
|
||||
CREATE VIEW v1 AS SELECT CONVERT_TZ(col1,'GMT','MET') FROM t1;
|
||||
|
@ -1923,3 +1948,71 @@ ERROR HY000: Field of view 'test.v2' underlying table doesn't have a default val
|
|||
set sql_mode=default;
|
||||
drop view v2,v1;
|
||||
drop table t1;
|
||||
create table t1 (f1 int);
|
||||
insert into t1 values (1);
|
||||
create view v1 as select f1 from t1;
|
||||
select f1 as alias from v1;
|
||||
alias
|
||||
1
|
||||
drop view v1;
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (s1 int, s2 int);
|
||||
INSERT INTO t1 VALUES (1,2);
|
||||
CREATE VIEW v1 AS SELECT s2 AS s1, s1 AS s2 FROM t1;
|
||||
SELECT * FROM v1;
|
||||
s1 s2
|
||||
2 1
|
||||
CREATE PROCEDURE p1 () SELECT * FROM v1;
|
||||
CALL p1();
|
||||
s1 s2
|
||||
2 1
|
||||
ALTER VIEW v1 AS SELECT s1 AS s1, s2 AS s2 FROM t1;
|
||||
CALL p1();
|
||||
s1 s2
|
||||
1 2
|
||||
DROP VIEW v1;
|
||||
CREATE VIEW v1 AS SELECT s2 AS s1, s1 AS s2 FROM t1;
|
||||
CALL p1();
|
||||
s1 s2
|
||||
2 1
|
||||
DROP PROCEDURE p1;
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
create table t1 (f1 int, f2 int);
|
||||
create view v1 as select f1 as f3, f2 as f1 from t1;
|
||||
insert into t1 values (1,3),(2,1),(3,2);
|
||||
select * from v1 order by f1;
|
||||
f3 f1
|
||||
2 1
|
||||
3 2
|
||||
1 3
|
||||
drop view v1;
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (f1 char) ENGINE = innodb;
|
||||
INSERT INTO t1 VALUES ('A');
|
||||
CREATE VIEW v1 AS SELECT * FROM t1;
|
||||
INSERT INTO t1 VALUES('B');
|
||||
SELECT * FROM v1;
|
||||
f1
|
||||
A
|
||||
B
|
||||
SELECT * FROM t1;
|
||||
f1
|
||||
A
|
||||
B
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 ( bug_table_seq INTEGER NOT NULL);
|
||||
CREATE OR REPLACE VIEW v1 AS SELECT * from t1;
|
||||
DROP PROCEDURE IF EXISTS p1;
|
||||
Warnings:
|
||||
Note 1305 PROCEDURE p1 does not exist
|
||||
CREATE PROCEDURE p1 ( )
|
||||
BEGIN
|
||||
DO (SELECT @next := IFNULL(max(bug_table_seq),0) + 1 FROM v1);
|
||||
INSERT INTO t1 VALUES (1);
|
||||
END //
|
||||
CALL p1();
|
||||
DROP PROCEDURE p1;
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -1313,6 +1313,11 @@ INSERT INTO t2 VALUES (4,011403,37,'intercepted','audiology','tinily','');
|
|||
SELECT * FROM t2;
|
||||
OPTIMIZE TABLE t2;
|
||||
SELECT * FROM t2;
|
||||
INSERT INTO t2 VALUES (2,011401,37,'breaking','dreaded','Steinberg','W');
|
||||
INSERT INTO t2 VALUES (3,011402,37,'Romans','scholastics','jarring','');
|
||||
INSERT INTO t2 VALUES (4,011403,37,'intercepted','audiology','tinily','');
|
||||
OPTIMIZE TABLE t2 EXTENDED;
|
||||
SELECT * FROM t2;
|
||||
REPAIR TABLE t2;
|
||||
SELECT * FROM t2;
|
||||
|
||||
|
|
|
@ -346,6 +346,18 @@ DROP TABLE t2;
|
|||
DROP TABLE t3;
|
||||
DROP TABLE t4;
|
||||
|
||||
#Test bug#11717
|
||||
CREATE TABLE t1(c1 varchar(10)) default character set = eucjpms;
|
||||
|
||||
insert into t1 values(_ucs2 0x00F7);
|
||||
insert into t1 values(_eucjpms 0xA1E0);
|
||||
insert into t1 values(_ujis 0xA1E0);
|
||||
insert into t1 values(_sjis 0x8180);
|
||||
insert into t1 values(_cp932 0x8180);
|
||||
|
||||
SELECT HEX(c1) FROM t1;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
SET collation_connection='eucjpms_japanese_ci';
|
||||
-- source include/ctype_filesort.inc
|
||||
|
|
|
@ -427,3 +427,17 @@ INSERT INTO t1 VALUES ("1.1", 0), ("2.1", 0);
|
|||
update t1 set b=a;
|
||||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug#9442 Set parameter make query fail if column character set is UCS2
|
||||
#
|
||||
create table t1 (utext varchar(20) character set ucs2);
|
||||
insert into t1 values ("lily");
|
||||
insert into t1 values ("river");
|
||||
prepare stmt from 'select utext from t1 where utext like ?';
|
||||
set @param1='%%';
|
||||
execute stmt using @param1;
|
||||
execute stmt using @param1;
|
||||
select utext from t1 where utext like '%%';
|
||||
drop table t1;
|
||||
deallocate prepare stmt;
|
||||
|
|
|
@ -747,6 +747,15 @@ select * from t1 where city = 'Durban';
|
|||
select * from t1 where city = 'Durban ';
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #11819 CREATE TABLE with a SET DEFAULT 0 and UTF8 crashes server.
|
||||
#
|
||||
--error 1067
|
||||
create table t1 (x set('A', 'B') default 0) character set utf8;
|
||||
--error 1067
|
||||
create table t1 (x enum('A', 'B') default 0) character set utf8;
|
||||
|
||||
|
||||
#
|
||||
# Test for bug #11167: join for utf8 varchar value longer than 255 bytes
|
||||
#
|
||||
|
@ -776,12 +785,14 @@ INSERT INTO t1 VALUES
|
|||
(1,'blah','464','aaa','fkc1c9ilc20x0hgae7lx6j09','ERR','ERR Имри.Афимим.Аеимимримдмримрмрирор имримримримр имридм ирбднримрфмририримрфмфмим.Ад.Д имдимримрад.Адимримримрмдиримримримр м.Дадимфшьмримд им.Адимимрн имадми','ИМРИ.АФИМИМ.АЕИМИМРИМДМРИМРМРИРОР',3,'2005-06-01 17:30:43','1234567890'),
|
||||
(2,'blah','464','aaa','haxpl2ilc20x00bj4tt2m5ti','11','11 g','G',3,'2005-06-02 22:43:10','1234567890');
|
||||
|
||||
--disable_warnings
|
||||
CREATE TABLE t2 (
|
||||
`msisdn` varchar(15) NOT NULL default '',
|
||||
`operator_id` int(11) NOT NULL default '0',
|
||||
`created` datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
UNIQUE KEY `PK_user` (`msisdn`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
--enable_warnings
|
||||
|
||||
INSERT INTO t2 VALUES ('1234567890',2,'2005-05-24 13:53:25');
|
||||
|
||||
|
@ -789,6 +800,16 @@ SELECT content, t2.msisdn FROM t1, t2 WHERE t1.msisdn = '1234567890';
|
|||
|
||||
DROP TABLE t1,t2;
|
||||
|
||||
#
|
||||
# Bug#11591: CHAR column with utf8 does not work properly
|
||||
# (more chars than expected)
|
||||
#
|
||||
create table t1 (a char(20) character set utf8);
|
||||
insert into t1 values ('123456'),('андрей');
|
||||
alter table t1 modify a char(2) character set utf8;
|
||||
select char_length(a), length(a), a from t1 order by a;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#9557 MyISAM utf8 table crash
|
||||
#
|
||||
|
@ -800,3 +821,16 @@ insert into t1 values (_utf8 0xe880bd);
|
|||
insert into t1 values (_utf8 0x5b);
|
||||
select hex(a) from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Test for bug #11484: wrong results for a DISTINCT varchar column in uft8.
|
||||
#
|
||||
|
||||
CREATE TABLE t1(id varchar(20) NOT NULL) DEFAULT CHARSET=utf8;
|
||||
INSERT INTO t1 VALUES ('xxx'), ('aa'), ('yyy'), ('aa');
|
||||
|
||||
SELECT id FROM t1;
|
||||
SELECT DISTINCT id FROM t1;
|
||||
SELECT DISTINCT id FROM t1 ORDER BY id;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -1,19 +1,7 @@
|
|||
--source include/have_federated_db.inc
|
||||
|
||||
source include/master-slave.inc;
|
||||
|
||||
# remote table creation
|
||||
source include/federated.inc;
|
||||
|
||||
connection slave;
|
||||
--replicate-ignore-db=federated
|
||||
stop slave;
|
||||
|
||||
--disable_warnings
|
||||
# at this point, we are connected to master
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
--enable_warnings
|
||||
CREATE DATABASE federated;
|
||||
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
CREATE TABLE federated.t1 (
|
||||
`id` int(20) NOT NULL,
|
||||
`name` varchar(32) NOT NULL default ''
|
||||
|
@ -21,14 +9,10 @@ CREATE TABLE federated.t1 (
|
|||
DEFAULT CHARSET=latin1;
|
||||
|
||||
connection master;
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
--enable_warnings
|
||||
CREATE DATABASE federated;
|
||||
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
# test too many items (malformed) in the comment string url
|
||||
--error 1005
|
||||
eval CREATE TABLE federated.t1 (
|
||||
--error 1432
|
||||
CREATE TABLE federated.t1 (
|
||||
`id` int(20) NOT NULL,
|
||||
`name` varchar(32) NOT NULL default ''
|
||||
)
|
||||
|
@ -36,8 +20,8 @@ eval CREATE TABLE federated.t1 (
|
|||
COMMENT='mysql://root@127.0.0.1:@/too/many/items/federated/t1';
|
||||
|
||||
# test not enough items (malformed) in the comment string url
|
||||
--error 1005
|
||||
eval CREATE TABLE federated.t1 (
|
||||
--error 1432
|
||||
CREATE TABLE federated.t1 (
|
||||
`id` int(20) NOT NULL,
|
||||
`name` varchar(32) NOT NULL default ''
|
||||
)
|
||||
|
@ -46,7 +30,7 @@ eval CREATE TABLE federated.t1 (
|
|||
|
||||
# test non-existant table
|
||||
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||
--error 1219
|
||||
--error 1434
|
||||
eval CREATE TABLE federated.t1 (
|
||||
`id` int(20) NOT NULL,
|
||||
`name` varchar(32) NOT NULL default ''
|
||||
|
@ -56,7 +40,7 @@ eval CREATE TABLE federated.t1 (
|
|||
|
||||
# test bad user/password
|
||||
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||
--error 1218
|
||||
--error 1429
|
||||
eval CREATE TABLE federated.t1 (
|
||||
`id` int(20) NOT NULL,
|
||||
`name` varchar(32) NOT NULL default ''
|
||||
|
@ -150,12 +134,9 @@ CREATE TABLE federated.t1 (
|
|||
`name` varchar(32) NOT NULL default '',
|
||||
`other` int(20) NOT NULL default '0',
|
||||
`created` datetime default '2004-04-04 04:04:04',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `name` (`name`),
|
||||
KEY `other_key` (`other`))
|
||||
PRIMARY KEY (`id`))
|
||||
DEFAULT CHARSET=latin1;
|
||||
|
||||
|
||||
connection master;
|
||||
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||
eval CREATE TABLE federated.t1 (
|
||||
|
@ -163,9 +144,7 @@ eval CREATE TABLE federated.t1 (
|
|||
`name` varchar(32) NOT NULL default '',
|
||||
`other` int(20) NOT NULL default '0',
|
||||
`created` datetime default '2004-04-04 04:04:04',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `name` (`name`),
|
||||
KEY `other_key` (`other`))
|
||||
PRIMARY KEY (`id`))
|
||||
ENGINE="FEDERATED" DEFAULT CHARSET=latin1
|
||||
COMMENT='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
|
||||
|
||||
|
@ -184,8 +163,84 @@ INSERT INTO federated.t1 (name, other) VALUES ('Tenth Name', 101010);
|
|||
SELECT * FROM federated.t1;
|
||||
# with PRIMARY KEY index_read_idx
|
||||
SELECT * FROM federated.t1 WHERE id = 5;
|
||||
# with regular key index_read -> index_read_idx
|
||||
SELECT * FROM federated.t1 WHERE name = 'Sixth Name';
|
||||
SELECT * FROM federated.t1 WHERE id = 6 and name = 'Sixth Name';
|
||||
SELECT * FROM federated.t1 WHERE name = 'Sixth Name' AND other = 44444;
|
||||
SELECT * FROM federated.t1 WHERE name like '%th%';
|
||||
UPDATE federated.t1 SET name = '3rd name' WHERE id = 3;
|
||||
SELECT * FROM federated.t1 WHERE name = '3rd name';
|
||||
UPDATE federated.t1 SET name = 'Third name' WHERE name = '3rd name';
|
||||
SELECT * FROM federated.t1 WHERE name = 'Third name';
|
||||
# rnd_post, ::position
|
||||
SELECT * FROM federated.t1 ORDER BY id DESC;
|
||||
SELECT * FROM federated.t1 ORDER BY name;
|
||||
SELECT * FROM federated.t1 ORDER BY name DESC;
|
||||
SELECT * FROM federated.t1 ORDER BY name ASC;
|
||||
SELECT * FROM federated.t1 GROUP BY other;
|
||||
|
||||
# ::delete_row
|
||||
DELETE FROM federated.t1 WHERE id = 5;
|
||||
SELECT * FROM federated.t1 WHERE id = 5;
|
||||
|
||||
# ::delete_all_rows
|
||||
DELETE FROM federated.t1;
|
||||
SELECT * FROM federated.t1 WHERE id = 5;
|
||||
|
||||
# previous test, but this time with indexes
|
||||
connection slave;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
CREATE TABLE federated.t1 (
|
||||
`id` int(20) NOT NULL auto_increment,
|
||||
`name` varchar(32) NOT NULL default '',
|
||||
`other` int(20) NOT NULL default '0',
|
||||
`created` datetime NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
key name(`name`),
|
||||
key other(`other`),
|
||||
key created(`created`))
|
||||
DEFAULT CHARSET=latin1;
|
||||
|
||||
connection master;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||
eval CREATE TABLE federated.t1 (
|
||||
`id` int(20) NOT NULL auto_increment,
|
||||
`name` varchar(32) NOT NULL default '',
|
||||
`other` int(20) NOT NULL default '0',
|
||||
`created` datetime NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
key name(`name`),
|
||||
key other(`other`),
|
||||
key created(`created`))
|
||||
ENGINE="FEDERATED" DEFAULT CHARSET=latin1
|
||||
COMMENT='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
|
||||
|
||||
INSERT INTO federated.t1 (name, other, created)
|
||||
VALUES ('First Name', 11111, '2004-01-01 01:01:01');
|
||||
INSERT INTO federated.t1 (name, other, created)
|
||||
VALUES ('Second Name', 22222, '2004-01-23 02:43:00');
|
||||
INSERT INTO federated.t1 (name, other, created)
|
||||
VALUES ('Third Name', 33333, '2004-02-14 02:14:00');
|
||||
INSERT INTO federated.t1 (name, other, created)
|
||||
VALUES ('Fourth Name', 44444, '2003-04-05 00:00:00');
|
||||
INSERT INTO federated.t1 (name, other, created)
|
||||
VALUES ('Fifth Name', 55555, '2001-02-02 02:02:02');
|
||||
INSERT INTO federated.t1 (name, other, created)
|
||||
VALUES ('Sixth Name', 66666, '2005-06-06 15:30:00');
|
||||
INSERT INTO federated.t1 (name, other, created)
|
||||
VALUES ('Seventh Name', 77777, '2003-12-12 18:32:00');
|
||||
INSERT INTO federated.t1 (name, other, created)
|
||||
VALUES ('Eigth Name', 88888, '2005-03-12 11:00:00');
|
||||
INSERT INTO federated.t1 (name, other, created)
|
||||
VALUES ('Ninth Name', 99999, '2005-03-12 11:00:01');
|
||||
INSERT INTO federated.t1 (name, other, created)
|
||||
VALUES ('Tenth Name', 101010, '2005-03-12 12:00:01');
|
||||
|
||||
# basic select
|
||||
SELECT * FROM federated.t1;
|
||||
# with PRIMARY KEY index_read_idx
|
||||
SELECT * FROM federated.t1 WHERE id = 5;
|
||||
# with regular key index_read -> index_read_idx
|
||||
# regular and PRIMARY KEY index_read_idx
|
||||
SELECT * FROM federated.t1 WHERE id = 6 and name = 'Sixth Name';
|
||||
# with regular key index_read -> index_read_idx
|
||||
|
@ -211,7 +266,6 @@ SELECT * FROM federated.t1 WHERE id = 5;
|
|||
# ::delete_all_rows
|
||||
DELETE FROM federated.t1;
|
||||
SELECT * FROM federated.t1 WHERE id = 5;
|
||||
|
||||
connection slave;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
CREATE TABLE federated.t1 (
|
||||
|
@ -253,8 +307,7 @@ SET name = 'Fourth Name', other = 'four four four'
|
|||
WHERE name IS NULL AND other IS NULL;
|
||||
|
||||
UPDATE federated.t1 SET other = 'two two two two' WHERE name = 'Second Name';
|
||||
UPDATE federated.t1 SET other = 'seven seven' WHERE name like 'Sec%';
|
||||
UPDATE federated.t1 SET other = 'seven seven' WHERE name = 'Seventh Name';
|
||||
UPDATE federated.t1 SET other = 'seven seven' WHERE name like 'Sev%';
|
||||
UPDATE federated.t1 SET name = 'Tenth Name' WHERE other like 'fee fie%';
|
||||
SELECT * FROM federated.t1 WHERE name IS NULL OR other IS NULL ;
|
||||
SELECT * FROM federated.t1;
|
||||
|
@ -338,6 +391,201 @@ SELECT * FROM federated.t1 WHERE name='third';
|
|||
SELECT * FROM federated.t1 WHERE other=2222;
|
||||
SELECT * FROM federated.t1 WHERE name='third' and other=2222;
|
||||
|
||||
# more multi-column indexes, in the primary key
|
||||
connection slave;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
CREATE TABLE federated.t1 (
|
||||
`id` int NOT NULL auto_increment,
|
||||
`col1` int(10) NOT NULL DEFAULT 0,
|
||||
`col2` varchar(64) NOT NULL DEFAULT '',
|
||||
`col3` int(20) NOT NULL,
|
||||
`col4` int(40) NOT NULL,
|
||||
primary key (`id`, `col1`, `col2`, `col3`, `col4`),
|
||||
key col1(col1),
|
||||
key col2(col2),
|
||||
key col3(col3),
|
||||
key col4(col4));
|
||||
|
||||
connection master;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||
eval CREATE TABLE federated.t1 (
|
||||
`id` int NOT NULL auto_increment,
|
||||
`col1` int(10) NOT NULL DEFAULT 0,
|
||||
`col2` varchar(64) NOT NULL DEFAULT '',
|
||||
`col3` int(20) NOT NULL,
|
||||
`col4` int(40) NOT NULL,
|
||||
primary key (`id`, `col1`, `col2`, `col3`, `col4`),
|
||||
key col1(col1),
|
||||
key col2(col2),
|
||||
key col3(col3),
|
||||
key col4(col4))
|
||||
ENGINE="FEDERATED"
|
||||
COMMENT='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
|
||||
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES (1, 'one One', 11, 1111);
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES (2, 'Two two', 22, 2222);
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES (3, 'three Three', 33, 33333);
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES (4, 'fourfourfour', 444, 4444444);
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES (5, 'five 5 five five 5', 5, 55555);
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES (6, 'six six Sixsix', 6666, 6);
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES (7, 'seven Sevenseven', 77777, 7777);
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES (8, 'eight eight eight', 88888, 88);
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES (9, 'nine Nine', 999999, 999999);
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES (10, 'Tenth ten TEN', 1010101, 1010);
|
||||
|
||||
SELECT * FROM federated.t1 WHERE col2 = 'two two';
|
||||
SELECT * FROM federated.t1 WHERE col2 = 'two Two';
|
||||
SELECT * FROM federated.t1 WHERE id = 3;
|
||||
SELECT * FROM federated.t1 WHERE id = 3 AND col1 = 3;
|
||||
SELECT * FROM federated.t1 WHERE id = 4 AND col1 = 4 AND col2 = 'Two two';
|
||||
SELECT * FROM federated.t1 WHERE id = 4 AND col1 = 4 AND col2 = 'fourfourfour';
|
||||
SELECT * FROM federated.t1 WHERE id = 5 AND col2 = 'five 5 five five 5'
|
||||
AND col3 = 5;
|
||||
SELECT * FROM federated.t1 WHERE id = 5 AND col2 = 'five 5 five five 5'
|
||||
AND col3 = 5
|
||||
AND col4 = 55555;
|
||||
SELECT * FROM federated.t1 WHERE id = 5
|
||||
AND col2 = 'Two two' AND col3 = 22
|
||||
AND col4 = 33;
|
||||
SELECT * FROM federated.t1 WHERE id = 5
|
||||
AND col2 = 'five 5 five five 5' AND col3 = 5
|
||||
AND col4 = 55555;
|
||||
SELECT * FROM federated.t1 WHERE (id = 5 AND col2 = 'five 5 five five 5')
|
||||
OR (col2 = 'three Three' AND col3 = 33);
|
||||
SELECT * FROM federated.t1 WHERE (id = 5 AND col2 = 'Two two')
|
||||
OR (col2 = 444 AND col3 = 4444444);
|
||||
SELECT * FROM federated.t1 WHERE id = 1
|
||||
OR col1 = 10
|
||||
OR col2 = 'Two two'
|
||||
OR col3 = 33
|
||||
OR col4 = 4444444;
|
||||
SELECT * FROM federated.t1 WHERE id > 5;
|
||||
SELECT * FROM federated.t1 WHERE id >= 5;
|
||||
SELECT * FROM federated.t1 WHERE id < 5;
|
||||
SELECT * FROM federated.t1 WHERE id <= 5;
|
||||
SELECT * FROM federated.t1 WHERE id != 5;
|
||||
SELECT * FROM federated.t1 WHERE id > 3 AND id < 7;
|
||||
SELECT * FROM federated.t1 WHERE id > 3 AND id <= 7;
|
||||
SELECT * FROM federated.t1 WHERE id >= 3 AND id <= 7;
|
||||
SELECT * FROM federated.t1 WHERE id < 3 AND id <= 7;
|
||||
SELECT * FROM federated.t1 WHERE id < 3 AND id > 7;
|
||||
SELECT * FROM federated.t1 WHERE id < 3 OR id > 7;
|
||||
SELECT * FROM federated.t1 WHERE col2 = 'three Three';
|
||||
SELECT * FROM federated.t1 WHERE col2 > 'one';
|
||||
SELECT * FROM federated.t1 WHERE col2 LIKE 's%';
|
||||
SELECT * FROM federated.t1 WHERE col2 LIKE 'si%';
|
||||
SELECT * FROM federated.t1 WHERE col2 LIKE 'se%';
|
||||
SELECT * FROM federated.t1 WHERE col2 NOT LIKE 'e%';
|
||||
SELECT * FROM federated.t1 WHERE col2 <> 'one One';
|
||||
|
||||
# more multi-column indexes, in the primary key
|
||||
connection slave;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
CREATE TABLE federated.t1 (
|
||||
`col1` varchar(8) NOT NULL DEFAULT '',
|
||||
`col2` varchar(128) NOT NULL DEFAULT '',
|
||||
`col3` varchar(20) NOT NULL DEFAULT '',
|
||||
`col4` varchar(40) NOT NULL DEFAULT '',
|
||||
primary key (`col1`, `col2`, `col3`, `col4`),
|
||||
key 3key(`col2`,`col3`,`col4`),
|
||||
key 2key (`col3`,`col4`),
|
||||
key col4(col4));
|
||||
|
||||
connection master;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||
eval CREATE TABLE federated.t1 (
|
||||
`col1` varchar(8) NOT NULL DEFAULT '',
|
||||
`col2` varchar(128) NOT NULL DEFAULT '',
|
||||
`col3` varchar(20) NOT NULL DEFAULT '',
|
||||
`col4` varchar(40) NOT NULL DEFAULT '',
|
||||
primary key (`col1`, `col2`, `col3`, `col4`),
|
||||
key 3key(`col2`,`col3`,`col4`),
|
||||
key 2key (`col3`,`col4`),
|
||||
key col4(col4))
|
||||
ENGINE="FEDERATED"
|
||||
COMMENT='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
|
||||
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES ('aaaa', 'aaaaaaaaaaaaaaaaaaa', 'ababababab', 'acacacacacacacac');
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES ('bbbb', 'bbbbbbbbbbbbbbbbbbb', 'bababababa', 'bcbcbcbcbcbcbcbc');
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES ('cccc', 'ccccccccccccccccccc', 'cacacacaca', 'cbcbcbcbcbcbcbcb');
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES ('dddd', 'ddddddddddddddddddd', 'dadadadada', 'dcdcdcdcdcdcdcdc');
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES ('eeee', 'eeeeeeeeeeeeeeeeeee', 'eaeaeaeaea', 'ecececececececec');
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES ('ffff', 'fffffffffffffffffff', 'fafafafafa', 'fcfcfcfcfcfcfcfc');
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES ('gggg', 'ggggggggggggggggggg', 'gagagagaga', 'gcgcgcgcgcgcgcgc');
|
||||
INSERT INTO federated.t1 (col1, col2, col3, col4)
|
||||
VALUES ('hhhh', 'hhhhhhhhhhhhhhhhhhh', 'hahahahaha', 'hchchchchchchchc');
|
||||
|
||||
SELECT * FROM federated.t1 WHERE col1 = 'cccc';
|
||||
SELECT * FROM federated.t1 WHERE col2 = 'eeeeeeeeeeeeeeeeeee';
|
||||
SELECT * FROM federated.t1 WHERE col3 = 'bababababa';
|
||||
SELECT * FROM federated.t1 WHERE col1 = 'gggg' AND col2 = 'ggggggggggggggggggg';
|
||||
SELECT * FROM federated.t1 WHERE col1 = 'gggg' AND col3 = 'gagagagaga';
|
||||
SELECT * FROM federated.t1 WHERE col1 = 'ffff' AND col4 = 'fcfcfcfcfcfcfcfc';
|
||||
SELECT * FROM federated.t1 WHERE col1 > 'bbbb';
|
||||
SELECT * FROM federated.t1 WHERE col1 >= 'bbbb';
|
||||
SELECT * FROM federated.t1 WHERE col1 < 'bbbb';
|
||||
SELECT * FROM federated.t1 WHERE col1 <= 'bbbb';
|
||||
SELECT * FROM federated.t1 WHERE col1 <> 'bbbb';
|
||||
SELECT * FROM federated.t1 WHERE col1 LIKE 'b%';
|
||||
SELECT * FROM federated.t1 WHERE col4 LIKE '%b%';
|
||||
SELECT * FROM federated.t1 WHERE col1 NOT LIKE 'c%';
|
||||
SELECT * FROM federated.t1 WHERE col4 NOT LIKE '%c%';
|
||||
connection slave;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
CREATE TABLE federated.t1 (
|
||||
`col1` varchar(8) NOT NULL DEFAULT '',
|
||||
`col2` int(8) NOT NULL DEFAULT 0,
|
||||
`col3` varchar(8) NOT NULL DEFAULT '',
|
||||
primary key (`col1`, `col2`, `col3`));
|
||||
|
||||
connection master;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||
eval CREATE TABLE federated.t1 (
|
||||
`col1` varchar(8) NOT NULL DEFAULT '',
|
||||
`col2` varchar(8) NOT NULL DEFAULT '',
|
||||
`col3` varchar(8) NOT NULL DEFAULT '',
|
||||
primary key (`col1`, `col2`, `col3`))
|
||||
ENGINE="FEDERATED"
|
||||
DEFAULT CHARSET=latin1
|
||||
COMMENT='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
|
||||
|
||||
INSERT INTO federated.t1 VALUES ('a00', '110', 'cc0');
|
||||
INSERT INTO federated.t1 VALUES ('aaa', '111', 'ccc');
|
||||
INSERT INTO federated.t1 VALUES ('bbb', '222', 'yyy');
|
||||
INSERT INTO federated.t1 VALUES ('ccc', '111', 'zzz');
|
||||
INSERT INTO federated.t1 VALUES ('ccd', '112', 'zzzz');
|
||||
|
||||
# let's see what the foreign database says
|
||||
connection slave;
|
||||
SELECT col3 FROM federated.t1 WHERE (
|
||||
(col1 = 'aaa' AND col2 >= '111') OR col1 > 'aaa') AND
|
||||
(col1 < 'ccc' OR ( col1 = 'ccc' AND col2 <= '111'));
|
||||
|
||||
connection master;
|
||||
SELECT col3 FROM federated.t1 WHERE (
|
||||
(col1 = 'aaa' AND col2 >= '111') OR col1 > 'aaa') AND
|
||||
(col1 < 'ccc' OR ( col1 = 'ccc' AND col2 <= '111'));
|
||||
|
||||
# test NULLs
|
||||
connection slave;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
|
@ -422,14 +670,6 @@ eval CREATE TABLE federated.t1 (
|
|||
COMMENT='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
|
||||
|
||||
INSERT INTO federated.t1 VALUES (3,3,3),(1,1,1),(2,2,2),(4,4,4);
|
||||
EXPLAIN SELECT * FROM federated.t1 ORDER BY a;
|
||||
EXPLAIN SELECT * FROM federated.t1 ORDER BY b;
|
||||
EXPLAIN SELECT * FROM federated.t1 ORDER BY c;
|
||||
EXPLAIN SELECT a FROM federated.t1 ORDER BY a;
|
||||
EXPLAIN SELECT b FROM federated.t1 ORDER BY b;
|
||||
EXPLAIN SELECT a,b FROM federated.t1 ORDER BY b;
|
||||
EXPLAIN SELECT a,b FROM federated.t1;
|
||||
EXPLAIN SELECT a,b,c FROM federated.t1;
|
||||
|
||||
connection slave;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
|
@ -862,32 +1102,16 @@ INSERT INTO federated.t1 (name, country_id, other) VALUES ('Monty', 4, 33333);
|
|||
INSERT INTO federated.t1 (name, country_id, other) VALUES ('Sanja', 5, 33333);
|
||||
|
||||
#inner join
|
||||
EXPLAIN SELECT federated.t1.name AS name, federated.t1.country_id AS country_id,
|
||||
federated.t1.other AS other, federated.countries.country AS country
|
||||
FROM federated.t1, federated.countries WHERE
|
||||
federated.t1.country_id = federated.countries.id;
|
||||
|
||||
SELECT federated.t1.name AS name, federated.t1.country_id AS country_id,
|
||||
federated.t1.other AS other, federated.countries.country AS country
|
||||
FROM federated.t1, federated.countries WHERE
|
||||
federated.t1.country_id = federated.countries.id;
|
||||
|
||||
EXPLAIN SELECT federated.t1.name AS name, federated.t1.country_id AS country_id,
|
||||
federated.t1.other AS other, federated.countries.country AS country
|
||||
FROM federated.t1 INNER JOIN federated.countries ON
|
||||
federated.t1.country_id = federated.countries.id;
|
||||
|
||||
SELECT federated.t1.name AS name, federated.t1.country_id AS country_id,
|
||||
federated.t1.other AS other, federated.countries.country AS country
|
||||
FROM federated.t1 INNER JOIN federated.countries ON
|
||||
federated.t1.country_id = federated.countries.id;
|
||||
|
||||
EXPLAIN SELECT federated.t1.name AS name, federated.t1.country_id AS country_id,
|
||||
federated.t1.other AS other, federated.countries.country AS country
|
||||
FROM federated.t1 INNER JOIN federated.countries ON
|
||||
federated.t1.country_id = federated.countries.id
|
||||
WHERE federated.t1.name = 'Monty';
|
||||
|
||||
SELECT federated.t1.name AS name, federated.t1.country_id AS country_id,
|
||||
federated.t1.other AS other, federated.countries.country AS country
|
||||
FROM federated.t1 INNER JOIN federated.countries ON
|
||||
|
@ -895,32 +1119,17 @@ federated.t1.country_id = federated.countries.id
|
|||
WHERE federated.t1.name = 'Monty';
|
||||
|
||||
#left join
|
||||
EXPLAIN SELECT federated.t1.*, federated.countries.country
|
||||
FROM federated.t1 LEFT JOIN federated.countries
|
||||
ON federated.t1.country_id = federated.countries.id
|
||||
ORDER BY federated.countries.id;
|
||||
|
||||
SELECT federated.t1.*, federated.countries.country
|
||||
FROM federated.t1 LEFT JOIN federated.countries
|
||||
ON federated.t1.country_id = federated.countries.id
|
||||
ORDER BY federated.countries.id;
|
||||
|
||||
EXPLAIN SELECT federated.t1.*, federated.countries.country
|
||||
FROM federated.t1 LEFT JOIN federated.countries
|
||||
ON federated.t1.country_id = federated.countries.id
|
||||
ORDER BY federated.countries.country;
|
||||
|
||||
SELECT federated.t1.*, federated.countries.country
|
||||
FROM federated.t1 LEFT JOIN federated.countries
|
||||
ON federated.t1.country_id = federated.countries.id
|
||||
ORDER BY federated.countries.country;
|
||||
|
||||
#right join
|
||||
EXPLAIN SELECT federated.t1.*, federated.countries.country
|
||||
FROM federated.t1 RIGHT JOIN federated.countries
|
||||
ON federated.t1.country_id = federated.countries.id
|
||||
ORDER BY federated.t1.country_id;
|
||||
|
||||
SELECT federated.t1.*, federated.countries.country
|
||||
FROM federated.t1 RIGHT JOIN federated.countries
|
||||
ON federated.t1.country_id = federated.countries.id
|
||||
|
@ -928,14 +1137,11 @@ ORDER BY federated.t1.country_id;
|
|||
|
||||
DROP TABLE federated.countries;
|
||||
|
||||
connection master;
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
--enable_warnings
|
||||
# optimize and repair tests
|
||||
OPTIMIZE TABLE federated.t1;
|
||||
REPAIR TABLE federated.t1;
|
||||
REPAIR TABLE federated.t1 QUICK;
|
||||
REPAIR TABLE federated.t1 EXTENDED;
|
||||
REPAIR TABLE federated.t1 USE_FRM;
|
||||
|
||||
connection slave;
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
--enable_warnings
|
||||
source include/federated_cleanup.inc;
|
||||
|
|
|
@ -54,3 +54,86 @@ SELECT a, MATCH (message) AGAINST ('t* f*' IN BOOLEAN MODE) as rel FROM t1;
|
|||
SELECT a, MATCH (message) AGAINST ('t* f*' IN BOOLEAN MODE) as rel FROM t1 ORDER BY rel,a;
|
||||
drop table t1;
|
||||
|
||||
# BUG#11869
|
||||
CREATE TABLE t1 (
|
||||
id int(11) NOT NULL auto_increment,
|
||||
thread int(11) NOT NULL default '0',
|
||||
beitrag longtext NOT NULL,
|
||||
PRIMARY KEY (id),
|
||||
KEY thread (thread),
|
||||
FULLTEXT KEY beitrag (beitrag)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7923 ;
|
||||
|
||||
CREATE TABLE t2 (
|
||||
id int(11) NOT NULL auto_increment,
|
||||
text varchar(100) NOT NULL default '',
|
||||
PRIMARY KEY (id),
|
||||
KEY text (text)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=63 ;
|
||||
|
||||
CREATE TABLE t3 (
|
||||
id int(11) NOT NULL auto_increment,
|
||||
forum int(11) NOT NULL default '0',
|
||||
betreff varchar(70) NOT NULL default '',
|
||||
PRIMARY KEY (id),
|
||||
KEY forum (forum),
|
||||
FULLTEXT KEY betreff (betreff)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=996 ;
|
||||
|
||||
--error 1109
|
||||
select a.text, b.id, b.betreff
|
||||
from
|
||||
t2 a inner join t3 b on a.id = b.forum inner join
|
||||
t1 c on b.id = c.thread
|
||||
where
|
||||
match(b.betreff) against ('+abc' in boolean mode)
|
||||
group by a.text, b.id, b.betreff
|
||||
union
|
||||
select a.text, b.id, b.betreff
|
||||
from
|
||||
t2 a inner join t3 b on a.id = b.forum inner join
|
||||
t1 c on b.id = c.thread
|
||||
where
|
||||
match(c.beitrag) against ('+abc' in boolean mode)
|
||||
group by
|
||||
a.text, b.id, b.betreff
|
||||
order by
|
||||
match(b.betreff) against ('+abc' in boolean mode) desc;
|
||||
|
||||
--error 1109
|
||||
select a.text, b.id, b.betreff
|
||||
from
|
||||
t2 a inner join t3 b on a.id = b.forum inner join
|
||||
t1 c on b.id = c.thread
|
||||
where
|
||||
match(b.betreff) against ('+abc' in boolean mode)
|
||||
union
|
||||
select a.text, b.id, b.betreff
|
||||
from
|
||||
t2 a inner join t3 b on a.id = b.forum inner join
|
||||
t1 c on b.id = c.thread
|
||||
where
|
||||
match(c.beitrag) against ('+abc' in boolean mode)
|
||||
order by
|
||||
match(b.betreff) against ('+abc' in boolean mode) desc;
|
||||
|
||||
-- todo psergey: fix
|
||||
--error 1214
|
||||
select a.text, b.id, b.betreff
|
||||
from
|
||||
t2 a inner join t3 b on a.id = b.forum inner join
|
||||
t1 c on b.id = c.thread
|
||||
where
|
||||
match(b.betreff) against ('+abc' in boolean mode)
|
||||
union
|
||||
select a.text, b.id, b.betreff
|
||||
from
|
||||
t2 a inner join t3 b on a.id = b.forum inner join
|
||||
t1 c on b.id = c.thread
|
||||
where
|
||||
match(c.beitrag) against ('+abc' in boolean mode)
|
||||
order by
|
||||
match(betreff) against ('+abc' in boolean mode) desc;
|
||||
|
||||
drop table t1,t2,t3;
|
||||
|
||||
|
|
9
mysql-test/t/func_des_encrypt.test
Normal file
9
mysql-test/t/func_des_encrypt.test
Normal file
|
@ -0,0 +1,9 @@
|
|||
-- source include/have_openssl.inc
|
||||
|
||||
# This test can't be in func_encrypt.test, because it requires
|
||||
# --des-key-file to not be set.
|
||||
|
||||
#
|
||||
# Bug #11643: des_encrypt() causes server to die
|
||||
#
|
||||
select des_encrypt('hello');
|
|
@ -101,3 +101,21 @@ create table t1 (a char(20) character set binary);
|
|||
insert into t1 values ('aa'), ('bb');
|
||||
select * from t1 where a in (NULL, 'aa');
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #11885: WHERE condition with NOT IN (one element)
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (a int PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES (44), (45), (46);
|
||||
|
||||
SELECT * FROM t1 WHERE a IN (45);
|
||||
SELECT * FROM t1 WHERE a NOT IN (0, 45);
|
||||
SELECT * FROM t1 WHERE a NOT IN (45);
|
||||
|
||||
CREATE VIEW v1 AS SELECT * FROM t1 WHERE a NOT IN (45);
|
||||
SHOW CREATE VIEW v1;
|
||||
SELECT * FROM v1;
|
||||
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -599,3 +599,17 @@ SELECT CONCAT_WS(' ', trackname, artistname) trackname, artistname
|
|||
WHERE CONCAT_WS(' ', trackname, artistname) LIKE '%In%';
|
||||
|
||||
DROP TABLE t1,t2,t3;
|
||||
|
||||
#
|
||||
# Correct length reporting from substring() (BUG#10269)
|
||||
#
|
||||
create table t1 (b varchar(5));
|
||||
insert t1 values ('ab'), ('abc'), ('abcd'), ('abcde');
|
||||
select *,substring(b,1),substring(b,-1),substring(b,-2),substring(b,-3),substring(b,-4),substring(b,-5) from t1;
|
||||
select * from (select *,substring(b,1),substring(b,-1),substring(b,-2),substring(b,-3),substring(b,-4),substring(b,-5) from t1) t;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #9854 hex() and out of range handling
|
||||
#
|
||||
select hex(29223372036854775809), hex(-29223372036854775809);
|
||||
|
|
|
@ -157,6 +157,8 @@ select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES;
|
|||
show create procedure sel2;
|
||||
show create function sub1;
|
||||
show create function sub2;
|
||||
--replace_column 5 # 6 #
|
||||
show function status like "sub2";
|
||||
connection default;
|
||||
disconnect user1;
|
||||
drop function sub2;
|
||||
|
@ -569,3 +571,19 @@ drop procedure p2;
|
|||
# Bug #9434 SHOW CREATE DATABASE information_schema;
|
||||
#
|
||||
show create database information_schema;
|
||||
|
||||
#
|
||||
# Bug #11057 information_schema: columns table has some questionable contents
|
||||
#
|
||||
create table t1(f1 LONGBLOB, f2 LONGTEXT);
|
||||
select column_name,data_type,CHARACTER_OCTET_LENGTH,
|
||||
CHARACTER_MAXIMUM_LENGTH
|
||||
from information_schema.columns
|
||||
where table_name='t1';
|
||||
drop table t1;
|
||||
create table t1(f1 tinyint, f2 SMALLINT, f3 mediumint, f4 int,
|
||||
f5 BIGINT, f6 BIT, f7 bit(64));
|
||||
select column_name, NUMERIC_PRECISION, NUMERIC_SCALE
|
||||
from information_schema.columns
|
||||
where table_name='t1';
|
||||
drop table t1;
|
||||
|
|
|
@ -1381,3 +1381,15 @@ update t1 set a=2 where a=1;
|
|||
insert into t1 (val) values (1);
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
#
|
||||
# Bug #10465
|
||||
#
|
||||
|
||||
--disable_warnings
|
||||
CREATE TABLE t1 (GRADE DECIMAL(4) NOT NULL, PRIMARY KEY (GRADE)) ENGINE=INNODB;
|
||||
--enable_warnings
|
||||
INSERT INTO t1 (GRADE) VALUES (151),(252),(343);
|
||||
SELECT GRADE FROM t1 WHERE GRADE > 160 AND GRADE < 300;
|
||||
SELECT GRADE FROM t1 WHERE GRADE= 151;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
|
|
@ -501,19 +501,20 @@ drop database test_only_ndb_tables;
|
|||
# a table with tha same name as a table that can't be
|
||||
# discovered( for example a table created via NDBAPI)
|
||||
|
||||
--error 1050
|
||||
CREATE TABLE sys.SYSTAB_0 (a int);
|
||||
--error 1105
|
||||
select * from sys.SYSTAB_0;
|
||||
# Test disabled since it doesn't work on case insensitive systems
|
||||
#--error 1050
|
||||
#CREATE TABLE sys.SYSTAB_0 (a int);
|
||||
#--error 1105
|
||||
#select * from sys.SYSTAB_0;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS sys.SYSTAB_0 (a int);
|
||||
show warnings;
|
||||
--error 1105
|
||||
select * from sys.SYSTAB_0;
|
||||
#CREATE TABLE IF NOT EXISTS sys.SYSTAB_0 (a int);
|
||||
#show warnings;
|
||||
#--error 1105
|
||||
#select * from sys.SYSTAB_0;
|
||||
|
||||
--error 1051
|
||||
drop table sys.SYSTAB_0;
|
||||
drop table IF EXISTS sys.SYSTAB_0;
|
||||
#--error 1051
|
||||
#drop table sys.SYSTAB_0;
|
||||
#drop table IF EXISTS sys.SYSTAB_0;
|
||||
|
||||
######################################################
|
||||
# Note! This should always be the last step in this
|
||||
|
|
|
@ -266,3 +266,13 @@ EXPLAIN SELECT type FROM v1 GROUP BY type WITH ROLLUP;
|
|||
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
# Test for bug #11543: ROLLUP query with a repeated column in GROUP BY
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (a INT(10) NOT NULL, b INT(10) NOT NULL);
|
||||
INSERT INTO t1 VALUES (1, 1);
|
||||
INSERT INTO t1 VALUES (1, 2);
|
||||
|
||||
SELECT a, b, a AS c, COUNT(*) AS count FROM t1 GROUP BY a, b, c WITH ROLLUP;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -705,3 +705,126 @@ execute stmt;
|
|||
execute stmt;
|
||||
deallocate prepare stmt;
|
||||
drop table t1;
|
||||
#
|
||||
# Bug#11458 "Prepared statement with subselects return random data":
|
||||
# drop PARAM_TABLE_BIT from the list of tables used by a subquery
|
||||
#
|
||||
create table t1 (
|
||||
id int(11) unsigned not null primary key auto_increment,
|
||||
partner_id varchar(35) not null,
|
||||
t1_status_id int(10) unsigned
|
||||
);
|
||||
|
||||
insert into t1 values ("1", "partner1", "10"), ("2", "partner2", "10"),
|
||||
("3", "partner3", "10"), ("4", "partner4", "10");
|
||||
|
||||
create table t2 (
|
||||
id int(11) unsigned not null default '0',
|
||||
t1_line_id int(11) unsigned not null default '0',
|
||||
article_id varchar(20),
|
||||
sequence int(11) not null default '0',
|
||||
primary key (id,t1_line_id)
|
||||
);
|
||||
|
||||
insert into t2 values ("1", "1", "sup", "0"), ("2", "1", "sup", "1"),
|
||||
("2", "2", "sup", "2"), ("2", "3", "sup", "3"),
|
||||
("2", "4", "imp", "4"), ("3", "1", "sup", "0"),
|
||||
("4", "1", "sup", "0");
|
||||
|
||||
create table t3 (
|
||||
id int(11) not null default '0',
|
||||
preceeding_id int(11) not null default '0',
|
||||
primary key (id,preceeding_id)
|
||||
);
|
||||
|
||||
create table t4 (
|
||||
user_id varchar(50) not null,
|
||||
article_id varchar(20) not null,
|
||||
primary key (user_id,article_id)
|
||||
);
|
||||
|
||||
insert into t4 values("nicke", "imp");
|
||||
|
||||
prepare stmt from
|
||||
'select distinct t1.partner_id
|
||||
from t1 left join t3 on t1.id = t3.id
|
||||
left join t1 pp on pp.id = t3.preceeding_id
|
||||
where
|
||||
exists (
|
||||
select *
|
||||
from t2 as pl_inner
|
||||
where pl_inner.id = t1.id
|
||||
and pl_inner.sequence <= (
|
||||
select min(sequence) from t2 pl_seqnr
|
||||
where pl_seqnr.id = t1.id
|
||||
)
|
||||
and exists (
|
||||
select * from t4
|
||||
where t4.article_id = pl_inner.article_id
|
||||
and t4.user_id = ?
|
||||
)
|
||||
)
|
||||
and t1.id = ?
|
||||
group by t1.id
|
||||
having count(pp.id) = 0';
|
||||
set @user_id = 'nicke';
|
||||
set @id = '2';
|
||||
execute stmt using @user_id, @id;
|
||||
execute stmt using @user_id, @id;
|
||||
deallocate prepare stmt;
|
||||
drop table t1, t2, t3, t4;
|
||||
#
|
||||
# Bug#9379: make sure that Item::collation is reset when one sets
|
||||
# a parameter marker from a string variable.
|
||||
#
|
||||
prepare stmt from 'select ?=?';
|
||||
set @a='CHRISTINE ';
|
||||
set @b='CHRISTINE';
|
||||
execute stmt using @a, @b;
|
||||
execute stmt using @a, @b;
|
||||
set @a=1, @b=2;
|
||||
execute stmt using @a, @b;
|
||||
set @a='CHRISTINE ';
|
||||
set @b='CHRISTINE';
|
||||
execute stmt using @a, @b;
|
||||
deallocate prepare stmt;
|
||||
#
|
||||
# Bug#11299 "prepared statement makes wrong SQL syntax in binlog which stops
|
||||
# replication": check that errouneous queries with placeholders are not
|
||||
# allowed
|
||||
#
|
||||
create table t1 (a int);
|
||||
--error 1064
|
||||
prepare stmt from "select ??";
|
||||
--error 1064
|
||||
prepare stmt from "select ?FROM t1";
|
||||
--error 1064
|
||||
prepare stmt from "select FROM t1 WHERE?=1";
|
||||
--error 1064
|
||||
prepare stmt from "update t1 set a=a+?WHERE 1";
|
||||
--disable_ps_protocol
|
||||
--error 1064
|
||||
select ?;
|
||||
--error 1064
|
||||
select ??;
|
||||
--error 1064
|
||||
select ? from t1;
|
||||
--enable_ps_protocol
|
||||
drop table t1;
|
||||
#
|
||||
# Bug#9359 "Prepared statements take snapshot of system vars at PREPARE
|
||||
# time"
|
||||
#
|
||||
prepare stmt from "select @@time_zone";
|
||||
execute stmt;
|
||||
set @@time_zone:='Japan';
|
||||
execute stmt;
|
||||
prepare stmt from "select @@tx_isolation";
|
||||
execute stmt;
|
||||
set transaction isolation level read committed;
|
||||
execute stmt;
|
||||
set transaction isolation level serializable;
|
||||
execute stmt;
|
||||
set @@tx_isolation=default;
|
||||
execute stmt;
|
||||
deallocate prepare stmt;
|
||||
|
|
|
@ -307,15 +307,13 @@ prepare stmt4 from ' show index from t2 from test ';
|
|||
execute stmt4;
|
||||
prepare stmt4 from ' show table status from test like ''t2%'' ';
|
||||
# egalize date and time values
|
||||
--replace_column 12 # 13 # 14 #
|
||||
--replace_result 2147483647 64424509439
|
||||
--replace_column 8 # 12 # 13 # 14 #
|
||||
# Bug#4288 : prepared statement 'show table status ..', wrong output on execute
|
||||
execute stmt4;
|
||||
# try the same with the big table
|
||||
prepare stmt4 from ' show table status from test like ''t9%'' ';
|
||||
# egalize date and time values
|
||||
--replace_column 12 # 13 # 14 #
|
||||
--replace_result 2147483647 4294967295
|
||||
--replace_column 8 # 12 # 13 # 14 #
|
||||
# Bug#4288
|
||||
execute stmt4;
|
||||
prepare stmt4 from ' show status like ''Threads_running'' ';
|
||||
|
|
|
@ -553,3 +553,26 @@ SELECT a,b FROM v1 WHERE a < 2 and b=3;
|
|||
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug #11853: DELETE statement with a NOT (LIKE/<=>) where condition
|
||||
# for an indexed attribute
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (name varchar(15) NOT NULL, KEY idx(name));
|
||||
INSERT INTO t1 VALUES ('Betty'), ('Anna');
|
||||
|
||||
SELECT * FROM t1;
|
||||
DELETE FROM t1 WHERE name NOT LIKE 'A%a';
|
||||
SELECT * FROM t1;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a int, KEY idx(a));
|
||||
INSERT INTO t1 VALUES (NULL), (1), (2), (3);
|
||||
|
||||
SELECT * FROM t1;
|
||||
DELETE FROM t1 WHERE NOT(a <=> 2);
|
||||
SELECT * FROM t1;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -107,5 +107,5 @@ select * from t2;
|
|||
show slave status;
|
||||
|
||||
connection master;
|
||||
drop table t1,t2;
|
||||
drop table t1,t2,t3,t4;
|
||||
sync_slave_with_master;
|
||||
|
|
|
@ -2290,3 +2290,82 @@ DROP TABLE t1,t2;
|
|||
#
|
||||
|
||||
select x'10' + 0, X'10' + 0, b'10' + 0, B'10' + 0;
|
||||
# Test for BUG#11700
|
||||
CREATE TABLE t1 (
|
||||
acct_id int(11) NOT NULL default '0',
|
||||
profile_id smallint(6) default NULL,
|
||||
UNIQUE KEY t1$acct_id (acct_id),
|
||||
KEY t1$profile_id (profile_id)
|
||||
);
|
||||
INSERT INTO t1 VALUES (132,17),(133,18);
|
||||
|
||||
CREATE TABLE t2 (
|
||||
profile_id smallint(6) default NULL,
|
||||
queue_id int(11) default NULL,
|
||||
seq int(11) default NULL,
|
||||
KEY t2$queue_id (queue_id)
|
||||
);
|
||||
INSERT INTO t2 VALUES (17,31,4),(17,30,3),(17,36,2),(17,37,1);
|
||||
|
||||
CREATE TABLE t3 (
|
||||
id int(11) NOT NULL default '0',
|
||||
qtype int(11) default NULL,
|
||||
seq int(11) default NULL,
|
||||
warn_lvl int(11) default NULL,
|
||||
crit_lvl int(11) default NULL,
|
||||
rr1 tinyint(4) NOT NULL default '0',
|
||||
rr2 int(11) default NULL,
|
||||
default_queue tinyint(4) NOT NULL default '0',
|
||||
KEY t3$qtype (qtype),
|
||||
KEY t3$id (id)
|
||||
);
|
||||
|
||||
INSERT INTO t3 VALUES (30,1,29,NULL,NULL,0,NULL,0),(31,1,28,NULL,NULL,0,NULL,0),
|
||||
(36,1,34,NULL,NULL,0,NULL,0),(37,1,35,NULL,NULL,0,121,0);
|
||||
|
||||
SELECT COUNT(*) FROM t1 a STRAIGHT_JOIN t2 pq STRAIGHT_JOIN t3 q
|
||||
WHERE
|
||||
(pq.profile_id = a.profile_id) AND (a.acct_id = 132) AND
|
||||
(pq.queue_id = q.id) AND (q.rr1 <> 1);
|
||||
|
||||
drop table t1,t2,t3;
|
||||
|
||||
#
|
||||
# Bug #11482 Wrongly applied optimization was erroneously rejecting valid
|
||||
# rows
|
||||
create table t1 (f1 int);
|
||||
insert into t1 values (1),(NULL);
|
||||
create table t2 (f2 int, f3 int, f4 int);
|
||||
create index idx1 on t2 (f4);
|
||||
insert into t2 values (1,2,3),(2,4,6);
|
||||
select A.f2 from t1 left join t2 A on A.f2 = f1 where A.f3=(select min(f3)
|
||||
from t2 C where A.f4 = C.f4) or A.f3 IS NULL;
|
||||
drop table t1,t2;
|
||||
#
|
||||
# Bug #11521 Negative integer keys incorrectly substituted for 0 during
|
||||
# range analysis.
|
||||
|
||||
create table t2 (a tinyint unsigned);
|
||||
create index t2i on t2(a);
|
||||
insert into t2 values (0), (254), (255);
|
||||
explain select * from t2 where a > -1;
|
||||
select * from t2 where a > -1;
|
||||
drop table t2;
|
||||
|
||||
#
|
||||
# Bug #11745: SELECT ... FROM DUAL with WHERE condition
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (a int, b int, c int);
|
||||
INSERT INTO t1
|
||||
SELECT 50, 3, 3 FROM DUAL
|
||||
WHERE NOT EXISTS
|
||||
(SELECT * FROM t1 WHERE a = 50 AND b = 3);
|
||||
SELECT * FROM t1;
|
||||
INSERT INTO t1
|
||||
SELECT 50, 3, 3 FROM DUAL
|
||||
WHERE NOT EXISTS
|
||||
(SELECT * FROM t1 WHERE a = 50 AND b = 3);
|
||||
SELECT * FROM t1;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -376,3 +376,12 @@ show index from t1;
|
|||
--disable_metadata
|
||||
drop table t1;
|
||||
|
||||
# Test for BUG#11635: mysqldump exports TYPE instead of USING for HASH
|
||||
create table t1 (
|
||||
c1 int NOT NULL,
|
||||
c2 int NOT NULL,
|
||||
PRIMARY KEY USING HASH (c1),
|
||||
INDEX USING BTREE(c2)
|
||||
);
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -386,6 +386,29 @@ call p(42, @tmp_y, 43)|
|
|||
drop procedure p|
|
||||
|
||||
|
||||
#
|
||||
# Let us test that we can access mysql.proc table for routines
|
||||
# definitions lookup without locking it explicitly.
|
||||
#
|
||||
create procedure p() begin end|
|
||||
lock table t1 read|
|
||||
# This should succeed
|
||||
call p()|
|
||||
unlock tables|
|
||||
drop procedure p|
|
||||
# Let us check restrictions which this ability puts on mysql.proc locking.
|
||||
--error ER_WRONG_LOCK_OF_SYSTEM_TABLE
|
||||
lock tables t1 read, mysql.proc write|
|
||||
--error ER_WRONG_LOCK_OF_SYSTEM_TABLE
|
||||
lock tables mysql.proc write, mysql.user write|
|
||||
# Locking for read should be OK
|
||||
lock tables t1 read, mysql.proc read|
|
||||
unlock tables|
|
||||
# You also should be able lock only mysql.proc for write
|
||||
lock tables mysql.proc write|
|
||||
unlock tables|
|
||||
|
||||
|
||||
#
|
||||
# BUG#1965
|
||||
#
|
||||
|
@ -676,9 +699,7 @@ create procedure bug6600()
|
|||
# BUG#9566: explicit LOCK TABLE and store procedures result in illegal state
|
||||
#
|
||||
# We should not think that mysql.proc table does not exist if we are unable
|
||||
# to open it under LOCK TABLE or in prelocked mode. Probably this test
|
||||
# should be removed when Monty will allow access to mysql.proc without
|
||||
# locking it.
|
||||
# to open it under LOCK TABLE or in prelocked mode.
|
||||
#
|
||||
--disable_warnings
|
||||
drop procedure if exists bug9566|
|
||||
|
@ -688,9 +709,11 @@ begin
|
|||
select * from t1;
|
||||
end|
|
||||
lock table t1 read|
|
||||
# This should fail because we forgot to lock mysql.proc table explicitly
|
||||
# This should fail since we forgot to lock mysql.proc for writing
|
||||
# explicitly, and we can't open mysql.proc for _writing_ if there
|
||||
# are locked tables.
|
||||
--error 1100
|
||||
call bug9566()|
|
||||
alter procedure bug9566 comment 'Some comment'|
|
||||
unlock tables|
|
||||
# This should succeed
|
||||
drop procedure bug9566|
|
||||
|
@ -874,9 +897,9 @@ end|
|
|||
#
|
||||
# BUG#9529: Stored Procedures: No Warning on truncation of procedure name
|
||||
# during creation.
|
||||
#
|
||||
# Note: When using utf8 for mysql.proc, this limit is much higher than before
|
||||
--error ER_TOO_LONG_IDENT
|
||||
create procedure bug9529_90123456789012345678901234567890123456789012345678901234567890()
|
||||
create procedure bug9529_90123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123()
|
||||
begin
|
||||
end|
|
||||
|
||||
|
@ -1025,4 +1048,27 @@ end|
|
|||
--error 1424
|
||||
call bug11394(2, 1)|
|
||||
drop procedure bug11394|
|
||||
delimiter |;
|
||||
delimiter ;|
|
||||
|
||||
#
|
||||
# Bug#11834 "Re-execution of prepared statement with dropped function
|
||||
# crashes server". Also tests handling of prepared stmts which use
|
||||
# stored functions but does not require prelocking.
|
||||
#
|
||||
--disable_warnings
|
||||
drop function if exists bug11834_1;
|
||||
drop function if exists bug11834_2;
|
||||
--enable_warnings
|
||||
create function bug11834_1() returns int return 10;
|
||||
create function bug11834_2() returns int return bug11834_1();
|
||||
prepare stmt from "select bug11834_2()";
|
||||
execute stmt;
|
||||
# Re-execution of statement should not crash server.
|
||||
execute stmt;
|
||||
drop function bug11834_1;
|
||||
# Attempt to execute statement should return proper error and
|
||||
# should not crash server.
|
||||
--error ER_SP_DOES_NOT_EXIST
|
||||
execute stmt;
|
||||
deallocate prepare stmt;
|
||||
drop function bug11834_2;
|
||||
|
|
|
@ -15,6 +15,7 @@ grant usage on *.* to user1@localhost;
|
|||
flush privileges;
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
drop database if exists db1_secret;
|
||||
--enable_warnings
|
||||
# Create our secret database
|
||||
|
@ -340,3 +341,33 @@ REVOKE ALL PRIVILEGES, GRANT OPTION FROM user1@localhost;
|
|||
drop function bug_9503;
|
||||
use test;
|
||||
drop database mysqltest;
|
||||
|
||||
#
|
||||
# correct value from current_user() in function run from "security definer"
|
||||
# (BUG#7291)
|
||||
#
|
||||
connection con1root;
|
||||
use test;
|
||||
|
||||
select current_user();
|
||||
select user();
|
||||
create procedure bug7291_0 () sql security invoker select current_user(), user();
|
||||
create procedure bug7291_1 () sql security definer call bug7291_0();
|
||||
create procedure bug7291_2 () sql security invoker call bug7291_0();
|
||||
grant execute on procedure bug7291_0 to user1@localhost;
|
||||
grant execute on procedure bug7291_1 to user1@localhost;
|
||||
grant execute on procedure bug7291_2 to user1@localhost;
|
||||
|
||||
connect (user1,localhost,user1,,);
|
||||
connection user1;
|
||||
|
||||
call bug7291_2();
|
||||
call bug7291_1();
|
||||
|
||||
connection con1root;
|
||||
drop procedure bug7291_1;
|
||||
drop procedure bug7291_2;
|
||||
drop procedure bug7291_0;
|
||||
disconnect user1;
|
||||
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user1@localhost;
|
||||
drop user user1@localhost;
|
||||
|
|
|
@ -111,6 +111,25 @@ connection con1root;
|
|||
drop procedure bug11158;
|
||||
drop table t1, t2;
|
||||
|
||||
#
|
||||
# BUG#11554: Server crashes on statement indirectly using non-cached function
|
||||
#
|
||||
--disable_warnings
|
||||
drop function if exists bug11554;
|
||||
drop view if exists v1;
|
||||
--enable_warnings
|
||||
create table t1 (i int);
|
||||
create function bug11554 () returns int return 1;
|
||||
create view v1 as select bug11554() as f;
|
||||
connection con2root;
|
||||
# This should not crash server
|
||||
insert into t1 (select f from v1);
|
||||
# Clean-up
|
||||
connection con1root;
|
||||
drop function bug11554;
|
||||
drop table t1;
|
||||
drop view v1;
|
||||
|
||||
#
|
||||
# BUG#NNNN: New bug synopsis
|
||||
#
|
||||
|
|
|
@ -1283,7 +1283,8 @@ select * from v1|
|
|||
# views and functions ?
|
||||
create function f1() returns int
|
||||
return (select sum(data) from t1) + (select sum(data) from v1)|
|
||||
# FIXME All these just exceed file limit for me :)
|
||||
# This queries will crash server because we can't use LEX in
|
||||
# reenterable fashion yet. Patch disabling recursion will heal this.
|
||||
#select f1()|
|
||||
#select * from v1|
|
||||
#select * from v2|
|
||||
|
@ -1328,15 +1329,12 @@ select * from v2|
|
|||
select * from v1|
|
||||
# These should not work as we have too little instances of tables locked
|
||||
--error 1100
|
||||
select * from v1, v2|
|
||||
select * from v1, t1|
|
||||
--error 1100
|
||||
select f4()|
|
||||
unlock tables|
|
||||
|
||||
|
||||
# TODO We also should test integration with triggers
|
||||
|
||||
|
||||
# Cleanup
|
||||
drop function f0|
|
||||
drop function f1|
|
||||
|
@ -3379,15 +3377,16 @@ drop procedure avg|
|
|||
--disable_warnings
|
||||
drop procedure if exists bug6129|
|
||||
--enable_warnings
|
||||
set @@sql_mode = 'traditional'|
|
||||
create procedure bug6129(mode text)
|
||||
select @@sql_mode = mode|
|
||||
|
||||
# 1
|
||||
call bug6129(@@sql_mode)|
|
||||
set @@sql_mode = ''|
|
||||
# 0
|
||||
call bug6129(@@sql_mode)|
|
||||
set @old_mode= @@sql_mode;
|
||||
set @@sql_mode= "";
|
||||
create procedure bug6129()
|
||||
select @@sql_mode|
|
||||
call bug6129()|
|
||||
set @@sql_mode= "NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO"|
|
||||
call bug6129()|
|
||||
set @@sql_mode= "NO_ZERO_IN_DATE"|
|
||||
call bug6129()|
|
||||
set @@sql_mode=@old_mode;
|
||||
|
||||
drop procedure bug6129|
|
||||
|
||||
|
@ -3803,6 +3802,80 @@ delete from t1|
|
|||
drop procedure bug11529|
|
||||
|
||||
|
||||
#
|
||||
# BUG#6063: Stored procedure labels are subject to restrictions (partial)
|
||||
# BUG#7088: Stored procedures: labels won't work if character set is utf8
|
||||
#
|
||||
--disable_warnings
|
||||
drop procedure if exists bug6063|
|
||||
drop procedure if exists bug7088_1|
|
||||
drop procedure if exists bug7088_2|
|
||||
--enable_warnings
|
||||
|
||||
create procedure bug6063()
|
||||
lâbel: begin end|
|
||||
call bug6063()|
|
||||
# QQ Known bug: this will not show the label correctly.
|
||||
show create procedure bug6063|
|
||||
|
||||
set character set utf8|
|
||||
create procedure bug7088_1()
|
||||
label1: begin end label1|
|
||||
create procedure bug7088_2()
|
||||
läbel1: begin end|
|
||||
call bug7088_1()|
|
||||
call bug7088_2()|
|
||||
set character set default|
|
||||
show create procedure bug7088_1|
|
||||
show create procedure bug7088_2|
|
||||
|
||||
drop procedure bug6063|
|
||||
drop procedure bug7088_1|
|
||||
drop procedure bug7088_2|
|
||||
|
||||
#
|
||||
# BUG#9565: "Wrong locking in stored procedure if a sub-sequent procedure
|
||||
# is called".
|
||||
#
|
||||
--disable_warnings
|
||||
drop procedure if exists bug9565_sub|
|
||||
drop procedure if exists bug9565|
|
||||
--enable_warnings
|
||||
create procedure bug9565_sub()
|
||||
begin
|
||||
select * from t1;
|
||||
end|
|
||||
create procedure bug9565()
|
||||
begin
|
||||
insert into t1 values ("one", 1);
|
||||
call bug9565_sub();
|
||||
end|
|
||||
call bug9565()|
|
||||
delete from t1|
|
||||
drop procedure bug9565_sub|
|
||||
drop procedure bug9565|
|
||||
|
||||
|
||||
#
|
||||
# BUG#9538: SProc: Creation fails if we try to SET system variable
|
||||
# using @@var_name in proc
|
||||
#
|
||||
--disable_warnings
|
||||
drop procedure if exists bug9538|
|
||||
--enable_warnings
|
||||
create procedure bug9538()
|
||||
set @@sort_buffer_size = 1000000|
|
||||
|
||||
set @x = @@sort_buffer_size|
|
||||
set @@sort_buffer_size = 2000000|
|
||||
select @@sort_buffer_size|
|
||||
call bug9538()|
|
||||
select @@sort_buffer_size|
|
||||
set @@sort_buffer_size = @x|
|
||||
|
||||
drop procedure bug9538|
|
||||
|
||||
|
||||
#
|
||||
# BUG#NNNN: New bug synopsis
|
||||
#
|
||||
|
@ -3816,4 +3889,3 @@ drop procedure bug11529|
|
|||
# practical, or create table t3, t4 etc temporarily (and drop them).
|
||||
delimiter ;|
|
||||
drop table t1,t2;
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue