mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
References: MDEV-4572 - merge with mariaDB 5.5.30
This commit is contained in:
@ -1148,3 +1148,4 @@ sql/db.opt
|
|||||||
./_CPack_Packages
|
./_CPack_Packages
|
||||||
./install_manifest_*.txt
|
./install_manifest_*.txt
|
||||||
typescript
|
typescript
|
||||||
|
mysql-test/collections/default.release.done
|
||||||
|
@ -132,14 +132,10 @@ IF (NOT CPACK_GENERATOR)
|
|||||||
ENDIF(WIN32)
|
ENDIF(WIN32)
|
||||||
ENDIF(NOT CPACK_GENERATOR)
|
ENDIF(NOT CPACK_GENERATOR)
|
||||||
|
|
||||||
IF(DEB)
|
|
||||||
SET(INSTALL_LAYOUT "DEB")
|
|
||||||
ENDIF(DEB)
|
|
||||||
|
|
||||||
INCLUDE(mysql_version)
|
INCLUDE(mysql_version)
|
||||||
INCLUDE(cpack_rpm)
|
|
||||||
INCLUDE(cpack_source_ignore_files)
|
INCLUDE(cpack_source_ignore_files)
|
||||||
INCLUDE(install_layout)
|
INCLUDE(install_layout)
|
||||||
|
INCLUDE(cpack_rpm)
|
||||||
|
|
||||||
# Add macros
|
# Add macros
|
||||||
INCLUDE(character_sets)
|
INCLUDE(character_sets)
|
||||||
|
2
VERSION
2
VERSION
@ -1,4 +1,4 @@
|
|||||||
MYSQL_VERSION_MAJOR=5
|
MYSQL_VERSION_MAJOR=5
|
||||||
MYSQL_VERSION_MINOR=5
|
MYSQL_VERSION_MINOR=5
|
||||||
MYSQL_VERSION_PATCH=29
|
MYSQL_VERSION_PATCH=30
|
||||||
MYSQL_VERSION_EXTRA=
|
MYSQL_VERSION_EXTRA=
|
||||||
|
@ -2312,17 +2312,19 @@ static bool add_line(String &buffer,char *line,char *in_string,
|
|||||||
{
|
{
|
||||||
uint length=(uint) (out-line);
|
uint length=(uint) (out-line);
|
||||||
|
|
||||||
if (!truncated &&
|
if (!truncated && (length < 9 ||
|
||||||
(length < 9 ||
|
my_strnncoll (charset_info, (uchar *)line, 9,
|
||||||
my_strnncoll (charset_info,
|
(const uchar *) "delimiter", 9) ||
|
||||||
(uchar *)line, 9, (const uchar *) "delimiter", 9)))
|
(*in_string || *ml_comment)))
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
Don't add a new line in case there's a DELIMITER command to be
|
Don't add a new line in case there's a DELIMITER command to be
|
||||||
added to the glob buffer (e.g. on processing a line like
|
added to the glob buffer (e.g. on processing a line like
|
||||||
"<command>;DELIMITER <non-eof>") : similar to how a new line is
|
"<command>;DELIMITER <non-eof>") : similar to how a new line is
|
||||||
not added in the case when the DELIMITER is the first command
|
not added in the case when the DELIMITER is the first command
|
||||||
entered with an empty glob buffer.
|
entered with an empty glob buffer. However, if the delimiter is
|
||||||
|
part of a string or a comment, the new line should be added. (e.g.
|
||||||
|
SELECT '\ndelimiter\n';\n)
|
||||||
*/
|
*/
|
||||||
*out++='\n';
|
*out++='\n';
|
||||||
length++;
|
length++;
|
||||||
@ -4723,7 +4725,13 @@ put_info(const char *str,INFO_TYPE info_type, uint error, const char *sqlstate)
|
|||||||
if (info_type == INFO_ERROR)
|
if (info_type == INFO_ERROR)
|
||||||
{
|
{
|
||||||
if (!opt_nobeep)
|
if (!opt_nobeep)
|
||||||
|
{
|
||||||
|
#ifdef _WIN32
|
||||||
|
MessageBeep(MB_ICONWARNING);
|
||||||
|
#else
|
||||||
putchar('\a'); /* This should make a bell */
|
putchar('\a'); /* This should make a bell */
|
||||||
|
#endif
|
||||||
|
}
|
||||||
vidattr(A_STANDOUT);
|
vidattr(A_STANDOUT);
|
||||||
if (error)
|
if (error)
|
||||||
{
|
{
|
||||||
|
@ -2430,6 +2430,8 @@ int main(int argc, char** argv)
|
|||||||
else
|
else
|
||||||
load_processor.init_by_cur_dir();
|
load_processor.init_by_cur_dir();
|
||||||
|
|
||||||
|
fprintf(result_file, "/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;\n");
|
||||||
|
|
||||||
fprintf(result_file,
|
fprintf(result_file,
|
||||||
"/*!40019 SET @@session.max_insert_delayed_threads=0*/;\n");
|
"/*!40019 SET @@session.max_insert_delayed_threads=0*/;\n");
|
||||||
|
|
||||||
@ -2480,6 +2482,8 @@ int main(int argc, char** argv)
|
|||||||
"/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;\n"
|
"/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;\n"
|
||||||
"/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;\n");
|
"/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;\n");
|
||||||
|
|
||||||
|
fprintf(result_file, "/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;\n");
|
||||||
|
|
||||||
if (tmpdir.list)
|
if (tmpdir.list)
|
||||||
free_tmpdir(&tmpdir);
|
free_tmpdir(&tmpdir);
|
||||||
if (result_file != stdout)
|
if (result_file != stdout)
|
||||||
|
@ -2298,7 +2298,6 @@ static uint dump_routines_for_db(char *db)
|
|||||||
const char *routine_type[]= {"FUNCTION", "PROCEDURE"};
|
const char *routine_type[]= {"FUNCTION", "PROCEDURE"};
|
||||||
char db_name_buff[NAME_LEN*2+3], name_buff[NAME_LEN*2+3];
|
char db_name_buff[NAME_LEN*2+3], name_buff[NAME_LEN*2+3];
|
||||||
char *routine_name;
|
char *routine_name;
|
||||||
char *query_str;
|
|
||||||
int i;
|
int i;
|
||||||
FILE *sql_file= md_result_file;
|
FILE *sql_file= md_result_file;
|
||||||
MYSQL_RES *routine_res, *routine_list_res;
|
MYSQL_RES *routine_res, *routine_list_res;
|
||||||
@ -2392,17 +2391,6 @@ static uint dump_routines_for_db(char *db)
|
|||||||
fprintf(sql_file, "/*!50003 DROP %s IF EXISTS %s */;\n",
|
fprintf(sql_file, "/*!50003 DROP %s IF EXISTS %s */;\n",
|
||||||
routine_type[i], routine_name);
|
routine_type[i], routine_name);
|
||||||
|
|
||||||
query_str= cover_definer_clause(row[2], strlen(row[2]),
|
|
||||||
C_STRING_WITH_LEN("50020"),
|
|
||||||
C_STRING_WITH_LEN("50003"),
|
|
||||||
C_STRING_WITH_LEN(" FUNCTION"));
|
|
||||||
|
|
||||||
if (!query_str)
|
|
||||||
query_str= cover_definer_clause(row[2], strlen(row[2]),
|
|
||||||
C_STRING_WITH_LEN("50020"),
|
|
||||||
C_STRING_WITH_LEN("50003"),
|
|
||||||
C_STRING_WITH_LEN(" PROCEDURE"));
|
|
||||||
|
|
||||||
if (mysql_num_fields(routine_res) >= 6)
|
if (mysql_num_fields(routine_res) >= 6)
|
||||||
{
|
{
|
||||||
if (switch_db_collation(sql_file, db_name_buff, ";",
|
if (switch_db_collation(sql_file, db_name_buff, ";",
|
||||||
@ -2440,9 +2428,9 @@ static uint dump_routines_for_db(char *db)
|
|||||||
|
|
||||||
fprintf(sql_file,
|
fprintf(sql_file,
|
||||||
"DELIMITER ;;\n"
|
"DELIMITER ;;\n"
|
||||||
"/*!50003 %s */;;\n"
|
"%s ;;\n"
|
||||||
"DELIMITER ;\n",
|
"DELIMITER ;\n",
|
||||||
(const char *) (query_str != NULL ? query_str : row[2]));
|
(const char *) row[2]);
|
||||||
|
|
||||||
restore_sql_mode(sql_file, ";");
|
restore_sql_mode(sql_file, ";");
|
||||||
|
|
||||||
@ -2457,7 +2445,6 @@ static uint dump_routines_for_db(char *db)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
my_free(query_str);
|
|
||||||
}
|
}
|
||||||
} /* end of routine printing */
|
} /* end of routine printing */
|
||||||
mysql_free_result(routine_res);
|
mysql_free_result(routine_res);
|
||||||
|
@ -2,7 +2,7 @@ IF(RPM)
|
|||||||
|
|
||||||
SET(CPACK_GENERATOR "RPM")
|
SET(CPACK_GENERATOR "RPM")
|
||||||
SET(CPACK_RPM_PACKAGE_DEBUG 1)
|
SET(CPACK_RPM_PACKAGE_DEBUG 1)
|
||||||
SET(INSTALL_LAYOUT "RPM")
|
SET(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
|
||||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.7)
|
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.7)
|
||||||
|
|
||||||
SET(CPACK_RPM_COMPONENT_INSTALL ON)
|
SET(CPACK_RPM_COMPONENT_INSTALL ON)
|
||||||
@ -47,9 +47,13 @@ MariaDB bug reports should be submitted through https://mariadb.atlassian.net/
|
|||||||
SET(CPACK_RPM_SPEC_MORE_DEFINE "
|
SET(CPACK_RPM_SPEC_MORE_DEFINE "
|
||||||
%define mysql_vendor ${CPACK_PACKAGE_VENDOR}
|
%define mysql_vendor ${CPACK_PACKAGE_VENDOR}
|
||||||
%define mysqlversion ${MYSQL_NO_DASH_VERSION}
|
%define mysqlversion ${MYSQL_NO_DASH_VERSION}
|
||||||
%define mysqldatadir /var/lib/mysql
|
%define mysqlbasedir ${CMAKE_INSTALL_PREFIX}
|
||||||
|
%define mysqldatadir ${INSTALL_MYSQLDATADIR}
|
||||||
%define mysqld_user mysql
|
%define mysqld_user mysql
|
||||||
%define mysqld_group mysql
|
%define mysqld_group mysql
|
||||||
|
%define _bindir ${CMAKE_INSTALL_PREFIX}/${INSTALL_BINDIR}
|
||||||
|
%define _sbindir ${CMAKE_INSTALL_PREFIX}/${INSTALL_SBINDIR}
|
||||||
|
%define _sysconfdir ${INSTALL_SYSCONFDIR}
|
||||||
")
|
")
|
||||||
|
|
||||||
# this creative hack is described here: http://www.cmake.org/pipermail/cmake/2012-January/048416.html
|
# this creative hack is described here: http://www.cmake.org/pipermail/cmake/2012-January/048416.html
|
||||||
@ -66,18 +70,18 @@ SET(ignored
|
|||||||
"%ignore /etc"
|
"%ignore /etc"
|
||||||
"%ignore /etc/init.d"
|
"%ignore /etc/init.d"
|
||||||
"%ignore /etc/logrotate.d"
|
"%ignore /etc/logrotate.d"
|
||||||
"%ignore /usr"
|
"%ignore ${CMAKE_INSTALL_PREFIX}"
|
||||||
"%ignore /usr/bin"
|
"%ignore ${CMAKE_INSTALL_PREFIX}/bin"
|
||||||
"%ignore /usr/include"
|
"%ignore ${CMAKE_INSTALL_PREFIX}/include"
|
||||||
"%ignore /usr/lib"
|
"%ignore ${CMAKE_INSTALL_PREFIX}/lib"
|
||||||
"%ignore /usr/lib64"
|
"%ignore ${CMAKE_INSTALL_PREFIX}/lib64"
|
||||||
"%ignore /usr/sbin"
|
"%ignore ${CMAKE_INSTALL_PREFIX}/sbin"
|
||||||
"%ignore /usr/share"
|
"%ignore ${CMAKE_INSTALL_PREFIX}/share"
|
||||||
"%ignore /usr/share/aclocal"
|
"%ignore ${CMAKE_INSTALL_PREFIX}/share/aclocal"
|
||||||
"%ignore /usr/share/doc"
|
"%ignore ${CMAKE_INSTALL_PREFIX}/share/doc"
|
||||||
"%ignore /usr/share/man"
|
"%ignore ${CMAKE_INSTALL_PREFIX}/share/man"
|
||||||
"%ignore /usr/share/man/man1*"
|
"%ignore ${CMAKE_INSTALL_PREFIX}/share/man/man1*"
|
||||||
"%ignore /usr/share/man/man8*"
|
"%ignore ${CMAKE_INSTALL_PREFIX}/share/man/man8*"
|
||||||
)
|
)
|
||||||
|
|
||||||
SET(CPACK_RPM_server_USER_FILELIST ${ignored} "%config(noreplace) /etc/my.cnf.d/*")
|
SET(CPACK_RPM_server_USER_FILELIST ${ignored} "%config(noreplace) /etc/my.cnf.d/*")
|
||||||
@ -101,7 +105,7 @@ SET(CPACK_RPM_devel_PACKAGE_OBSOLETES "mysql-devel MySQL-devel MySQL-OurDelta-de
|
|||||||
SET(CPACK_RPM_devel_PACKAGE_PROVIDES "MariaDB-devel MySQL-devel mysql-devel")
|
SET(CPACK_RPM_devel_PACKAGE_PROVIDES "MariaDB-devel MySQL-devel mysql-devel")
|
||||||
|
|
||||||
SET(CPACK_RPM_server_PACKAGE_OBSOLETES "MariaDB mysql mysql-server MySQL-server MySQL-OurDelta-server")
|
SET(CPACK_RPM_server_PACKAGE_OBSOLETES "MariaDB mysql mysql-server MySQL-server MySQL-OurDelta-server")
|
||||||
SET(CPACK_RPM_server_PACKAGE_PROVIDES "MariaDB MariaDB-server MySQL-server config(MariaDB-server) msqlormysql mysql mysql-server")
|
SET(CPACK_RPM_server_PACKAGE_PROVIDES "MariaDB MariaDB-server MySQL-server config(MariaDB-server) msqlormysql mysql mysql(x86-32) mysql(x86-64) mysql-server")
|
||||||
SET(CPACK_RPM_server_PACKAGE_REQUIRES "${CPACK_RPM_PACKAGE_REQUIRES} galera")
|
SET(CPACK_RPM_server_PACKAGE_REQUIRES "${CPACK_RPM_PACKAGE_REQUIRES} galera")
|
||||||
SET(CPACK_RPM_server_PRE_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-prein.sh)
|
SET(CPACK_RPM_server_PRE_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-prein.sh)
|
||||||
SET(CPACK_RPM_server_PRE_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-preun.sh)
|
SET(CPACK_RPM_server_PRE_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-preun.sh)
|
||||||
|
@ -67,8 +67,14 @@
|
|||||||
# http://forge.mysql.com/wiki/CMake#Fine-tuning_installation_paths
|
# http://forge.mysql.com/wiki/CMake#Fine-tuning_installation_paths
|
||||||
|
|
||||||
IF(NOT INSTALL_LAYOUT)
|
IF(NOT INSTALL_LAYOUT)
|
||||||
|
IF(DEB)
|
||||||
|
SET(INSTALL_LAYOUT "DEB")
|
||||||
|
ELSEIF(RPM)
|
||||||
|
SET(INSTALL_LAYOUT "RPM")
|
||||||
|
ELSE()
|
||||||
SET(INSTALL_LAYOUT "STANDALONE")
|
SET(INSTALL_LAYOUT "STANDALONE")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
SET(INSTALL_LAYOUT "${INSTALL_LAYOUT}"
|
SET(INSTALL_LAYOUT "${INSTALL_LAYOUT}"
|
||||||
CACHE STRING "Installation directory layout. Options are: STANDALONE (as in zip or tar.gz installer) RPM DEB SVR4")
|
CACHE STRING "Installation directory layout. Options are: STANDALONE (as in zip or tar.gz installer) RPM DEB SVR4")
|
||||||
@ -187,7 +193,7 @@ SET(INSTALL_SHAREDIR_DEB "share")
|
|||||||
SET(INSTALL_MYSQLSHAREDIR_DEB "share/mysql")
|
SET(INSTALL_MYSQLSHAREDIR_DEB "share/mysql")
|
||||||
SET(INSTALL_MYSQLTESTDIR_DEB "mysql-test")
|
SET(INSTALL_MYSQLTESTDIR_DEB "mysql-test")
|
||||||
SET(INSTALL_SQLBENCHDIR_DEB ".")
|
SET(INSTALL_SQLBENCHDIR_DEB ".")
|
||||||
SET(INSTALL_SUPPORTFILESDIR_DEB "support-files")
|
SET(INSTALL_SUPPORTFILESDIR_DEB "share/mysql")
|
||||||
#
|
#
|
||||||
SET(INSTALL_MYSQLDATADIR_DEB "/var/lib/mysql")
|
SET(INSTALL_MYSQLDATADIR_DEB "/var/lib/mysql")
|
||||||
SET(INSTALL_PLUGINTESTDIR_DEB ${plugin_tests})
|
SET(INSTALL_PLUGINTESTDIR_DEB ${plugin_tests})
|
||||||
|
@ -267,6 +267,7 @@ SET(HAVE_SYNCH_H CACHE INTERNAL "")
|
|||||||
SET(HAVE_SYSENT_H CACHE INTERNAL "")
|
SET(HAVE_SYSENT_H CACHE INTERNAL "")
|
||||||
SET(HAVE_SYS_CDEFS_H CACHE INTERNAL "")
|
SET(HAVE_SYS_CDEFS_H CACHE INTERNAL "")
|
||||||
SET(HAVE_SYS_DIR_H CACHE INTERNAL "")
|
SET(HAVE_SYS_DIR_H CACHE INTERNAL "")
|
||||||
|
SET(HAVE_SYS_EVENT_H CACHE INTERNAL "")
|
||||||
SET(HAVE_SYS_ERRLIST CACHE INTERNAL "")
|
SET(HAVE_SYS_ERRLIST CACHE INTERNAL "")
|
||||||
SET(HAVE_SYS_FILE_H CACHE INTERNAL "")
|
SET(HAVE_SYS_FILE_H CACHE INTERNAL "")
|
||||||
SET(HAVE_SYS_FPU_H CACHE INTERNAL "")
|
SET(HAVE_SYS_FPU_H CACHE INTERNAL "")
|
||||||
|
@ -45,6 +45,7 @@
|
|||||||
#cmakedefine HAVE_IA64INTRIN_H 1
|
#cmakedefine HAVE_IA64INTRIN_H 1
|
||||||
#cmakedefine HAVE_IEEEFP_H 1
|
#cmakedefine HAVE_IEEEFP_H 1
|
||||||
#cmakedefine HAVE_INTTYPES_H 1
|
#cmakedefine HAVE_INTTYPES_H 1
|
||||||
|
#cmakedefine HAVE_KQUEUE 1
|
||||||
#cmakedefine HAVE_LIMITS_H 1
|
#cmakedefine HAVE_LIMITS_H 1
|
||||||
#cmakedefine HAVE_LINUX_UNISTD_H 1
|
#cmakedefine HAVE_LINUX_UNISTD_H 1
|
||||||
#cmakedefine HAVE_LOCALE_H 1
|
#cmakedefine HAVE_LOCALE_H 1
|
||||||
|
@ -160,6 +160,7 @@ IF(UNIX)
|
|||||||
SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} wrap)
|
SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} wrap)
|
||||||
CHECK_C_SOURCE_COMPILES(
|
CHECK_C_SOURCE_COMPILES(
|
||||||
"
|
"
|
||||||
|
#include <sys/types.h>
|
||||||
#include <tcpd.h>
|
#include <tcpd.h>
|
||||||
int allow_severity = 0;
|
int allow_severity = 0;
|
||||||
int deny_severity = 0;
|
int deny_severity = 0;
|
||||||
@ -217,6 +218,7 @@ CHECK_INCLUDE_FILES (sched.h HAVE_SCHED_H)
|
|||||||
CHECK_INCLUDE_FILES (select.h HAVE_SELECT_H)
|
CHECK_INCLUDE_FILES (select.h HAVE_SELECT_H)
|
||||||
CHECK_INCLUDE_FILES (semaphore.h HAVE_SEMAPHORE_H)
|
CHECK_INCLUDE_FILES (semaphore.h HAVE_SEMAPHORE_H)
|
||||||
CHECK_INCLUDE_FILES ("sys/types.h;sys/dir.h" HAVE_SYS_DIR_H)
|
CHECK_INCLUDE_FILES ("sys/types.h;sys/dir.h" HAVE_SYS_DIR_H)
|
||||||
|
CHECK_INCLUDE_FILES ("sys/types.h;sys/event.h" HAVE_SYS_EVENT_H)
|
||||||
CHECK_INCLUDE_FILES (sys/ndir.h HAVE_SYS_NDIR_H)
|
CHECK_INCLUDE_FILES (sys/ndir.h HAVE_SYS_NDIR_H)
|
||||||
CHECK_INCLUDE_FILES (sys/pte.h HAVE_SYS_PTE_H)
|
CHECK_INCLUDE_FILES (sys/pte.h HAVE_SYS_PTE_H)
|
||||||
CHECK_INCLUDE_FILES (stddef.h HAVE_STDDEF_H)
|
CHECK_INCLUDE_FILES (stddef.h HAVE_STDDEF_H)
|
||||||
@ -230,13 +232,13 @@ CHECK_INCLUDE_FILES (sys/cdefs.h HAVE_SYS_CDEFS_H)
|
|||||||
CHECK_INCLUDE_FILES (sys/file.h HAVE_SYS_FILE_H)
|
CHECK_INCLUDE_FILES (sys/file.h HAVE_SYS_FILE_H)
|
||||||
CHECK_INCLUDE_FILES (sys/fpu.h HAVE_SYS_FPU_H)
|
CHECK_INCLUDE_FILES (sys/fpu.h HAVE_SYS_FPU_H)
|
||||||
CHECK_INCLUDE_FILES (sys/ioctl.h HAVE_SYS_IOCTL_H)
|
CHECK_INCLUDE_FILES (sys/ioctl.h HAVE_SYS_IOCTL_H)
|
||||||
CHECK_INCLUDE_FILES (sys/ipc.h HAVE_SYS_IPC_H)
|
CHECK_INCLUDE_FILES ("sys/types.h;sys/ipc.h" HAVE_SYS_IPC_H)
|
||||||
CHECK_INCLUDE_FILES (sys/malloc.h HAVE_SYS_MALLOC_H)
|
CHECK_INCLUDE_FILES ("sys/types.h;sys/malloc.h" HAVE_SYS_MALLOC_H)
|
||||||
CHECK_INCLUDE_FILES (sys/mman.h HAVE_SYS_MMAN_H)
|
CHECK_INCLUDE_FILES (sys/mman.h HAVE_SYS_MMAN_H)
|
||||||
CHECK_INCLUDE_FILES (sys/prctl.h HAVE_SYS_PRCTL_H)
|
CHECK_INCLUDE_FILES (sys/prctl.h HAVE_SYS_PRCTL_H)
|
||||||
CHECK_INCLUDE_FILES (sys/resource.h HAVE_SYS_RESOURCE_H)
|
CHECK_INCLUDE_FILES (sys/resource.h HAVE_SYS_RESOURCE_H)
|
||||||
CHECK_INCLUDE_FILES (sys/select.h HAVE_SYS_SELECT_H)
|
CHECK_INCLUDE_FILES (sys/select.h HAVE_SYS_SELECT_H)
|
||||||
CHECK_INCLUDE_FILES (sys/shm.h HAVE_SYS_SHM_H)
|
CHECK_INCLUDE_FILES ("sys/types.h;sys/shm.h" HAVE_SYS_SHM_H)
|
||||||
CHECK_INCLUDE_FILES (sys/socket.h HAVE_SYS_SOCKET_H)
|
CHECK_INCLUDE_FILES (sys/socket.h HAVE_SYS_SOCKET_H)
|
||||||
CHECK_INCLUDE_FILES (sys/stat.h HAVE_SYS_STAT_H)
|
CHECK_INCLUDE_FILES (sys/stat.h HAVE_SYS_STAT_H)
|
||||||
CHECK_INCLUDE_FILES (sys/stream.h HAVE_SYS_STREAM_H)
|
CHECK_INCLUDE_FILES (sys/stream.h HAVE_SYS_STREAM_H)
|
||||||
@ -466,6 +468,10 @@ CHECK_FUNCTION_EXISTS (memalign HAVE_MEMALIGN)
|
|||||||
CHECK_FUNCTION_EXISTS (chown HAVE_CHOWN)
|
CHECK_FUNCTION_EXISTS (chown HAVE_CHOWN)
|
||||||
CHECK_FUNCTION_EXISTS (nl_langinfo HAVE_NL_LANGINFO)
|
CHECK_FUNCTION_EXISTS (nl_langinfo HAVE_NL_LANGINFO)
|
||||||
|
|
||||||
|
IF(HAVE_SYS_EVENT_H)
|
||||||
|
CHECK_FUNCTION_EXISTS (kqueue HAVE_KQUEUE)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
# Support for WL#2373 (Use cycle counter for timing)
|
# Support for WL#2373 (Use cycle counter for timing)
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
|
@ -26,8 +26,13 @@
|
|||||||
#include <my_sys.h>
|
#include <my_sys.h>
|
||||||
#include <m_string.h>
|
#include <m_string.h>
|
||||||
#include <my_getopt.h>
|
#include <my_getopt.h>
|
||||||
|
#include <mysql_version.h>
|
||||||
|
|
||||||
|
#define load_default_groups mysqld_groups
|
||||||
|
#include <mysqld_default_groups.h>
|
||||||
|
#undef load_default_groups
|
||||||
|
|
||||||
|
my_bool opt_mysqld;
|
||||||
const char *config_file="my"; /* Default config file */
|
const char *config_file="my"; /* Default config file */
|
||||||
uint verbose= 0, opt_defaults_file_used= 0;
|
uint verbose= 0, opt_defaults_file_used= 0;
|
||||||
const char *default_dbug_option="d:t:o,/tmp/my_print_defaults.trace";
|
const char *default_dbug_option="d:t:o,/tmp/my_print_defaults.trace";
|
||||||
@ -78,6 +83,8 @@ static struct my_option my_long_options[] =
|
|||||||
(void *)&my_defaults_extra_file,
|
(void *)&my_defaults_extra_file,
|
||||||
(void *)&my_defaults_extra_file, 0, GET_STR,
|
(void *)&my_defaults_extra_file, 0, GET_STR,
|
||||||
REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
|
{"mysqld", 0, "Read the same set of groups that the mysqld binary does.",
|
||||||
|
&opt_mysqld, &opt_mysqld, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
{"no-defaults", 'n', "Return an empty string (useful for scripts).",
|
{"no-defaults", 'n', "Return an empty string (useful for scripts).",
|
||||||
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
|
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
{"help", '?', "Display this help message and exit.",
|
{"help", '?', "Display this help message and exit.",
|
||||||
@ -98,11 +105,12 @@ static void usage(my_bool version)
|
|||||||
return;
|
return;
|
||||||
puts("This software comes with ABSOLUTELY NO WARRANTY. This is free software,\nand you are welcome to modify and redistribute it under the GPL license\n");
|
puts("This software comes with ABSOLUTELY NO WARRANTY. This is free software,\nand you are welcome to modify and redistribute it under the GPL license\n");
|
||||||
puts("Prints all arguments that is give to some program using the default files");
|
puts("Prints all arguments that is give to some program using the default files");
|
||||||
printf("Usage: %s [OPTIONS] groups\n", my_progname);
|
printf("Usage: %s [OPTIONS] [groups]\n", my_progname);
|
||||||
my_print_help(my_long_options);
|
my_print_help(my_long_options);
|
||||||
my_print_default_files(config_file);
|
my_print_default_files(config_file);
|
||||||
my_print_variables(my_long_options);
|
my_print_variables(my_long_options);
|
||||||
printf("\nExample usage:\n%s --defaults-file=example.cnf client client-server mysql\n", my_progname);
|
printf("\nExample usage:\n%s --defaults-file=example.cnf client client-server mysql\n", my_progname);
|
||||||
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -119,13 +127,11 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
|||||||
case 'I':
|
case 'I':
|
||||||
case '?':
|
case '?':
|
||||||
usage(0);
|
usage(0);
|
||||||
exit(0);
|
|
||||||
case 'v':
|
case 'v':
|
||||||
verbose++;
|
verbose++;
|
||||||
break;
|
break;
|
||||||
case 'V':
|
case 'V':
|
||||||
usage(1);
|
usage(1);
|
||||||
exit(0);
|
|
||||||
case '#':
|
case '#':
|
||||||
DBUG_PUSH(argument ? argument : default_dbug_option);
|
DBUG_PUSH(argument ? argument : default_dbug_option);
|
||||||
break;
|
break;
|
||||||
@ -141,11 +147,6 @@ static int get_options(int *argc,char ***argv)
|
|||||||
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
|
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
|
||||||
exit(ho_error);
|
exit(ho_error);
|
||||||
|
|
||||||
if (*argc < 1)
|
|
||||||
{
|
|
||||||
usage(0);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -153,9 +154,10 @@ static int get_options(int *argc,char ***argv)
|
|||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
int count, error, args_used;
|
int count, error, args_used;
|
||||||
char **load_default_groups, *tmp_arguments[6];
|
char **load_default_groups= 0, *tmp_arguments[6];
|
||||||
char **argument, **arguments, **org_argv;
|
char **argument, **arguments, **org_argv;
|
||||||
char *defaults, *extra_defaults, *group_suffix;
|
char *defaults, *extra_defaults, *group_suffix;
|
||||||
|
int nargs, i= 0;
|
||||||
MY_INIT(argv[0]);
|
MY_INIT(argv[0]);
|
||||||
|
|
||||||
org_argv= argv;
|
org_argv= argv;
|
||||||
@ -169,13 +171,25 @@ int main(int argc, char **argv)
|
|||||||
arguments[count]= 0;
|
arguments[count]= 0;
|
||||||
|
|
||||||
/* Check out the args */
|
/* 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))
|
if (get_options(&argc,&argv))
|
||||||
exit(1);
|
exit(1);
|
||||||
memcpy((char*) load_default_groups, (char*) argv, (argc + 1) * sizeof(*argv));
|
|
||||||
|
|
||||||
|
nargs= argc + 1;
|
||||||
|
if (opt_mysqld)
|
||||||
|
nargs+= array_elements(mysqld_groups);
|
||||||
|
|
||||||
|
if (nargs < 2)
|
||||||
|
usage(0);
|
||||||
|
|
||||||
|
load_default_groups=(char**) my_malloc(nargs*sizeof(char*), MYF(MY_WME));
|
||||||
|
if (!load_default_groups)
|
||||||
|
exit(1);
|
||||||
|
if (opt_mysqld)
|
||||||
|
{
|
||||||
|
for (; mysqld_groups[i]; i++)
|
||||||
|
load_default_groups[i]= (char*) mysqld_groups[i];
|
||||||
|
}
|
||||||
|
memcpy(load_default_groups + i, argv, (argc + 1) * sizeof(*argv));
|
||||||
if ((error= load_defaults(config_file, (const char **) load_default_groups,
|
if ((error= load_defaults(config_file, (const char **) load_default_groups,
|
||||||
&count, &arguments)))
|
&count, &arguments)))
|
||||||
{
|
{
|
||||||
@ -198,6 +212,6 @@ int main(int argc, char **argv)
|
|||||||
puts(*argument);
|
puts(*argument);
|
||||||
my_free(load_default_groups);
|
my_free(load_default_groups);
|
||||||
free_defaults(arguments);
|
free_defaults(arguments);
|
||||||
|
my_end(0);
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
@ -767,8 +767,14 @@ int DoProcessReply(SSL& ssl)
|
|||||||
|
|
||||||
while (buffer.get_current() < hdr.length_ + RECORD_HEADER + offset) {
|
while (buffer.get_current() < hdr.length_ + RECORD_HEADER + offset) {
|
||||||
// each message in record, can be more than 1 if not encrypted
|
// each message in record, can be more than 1 if not encrypted
|
||||||
if (ssl.getSecurity().get_parms().pending_ == false) // cipher on
|
if (ssl.getSecurity().get_parms().pending_ == false) { // cipher on
|
||||||
|
// sanity check for malicious/corrupted/illegal input
|
||||||
|
if (buffer.get_remaining() < hdr.length_) {
|
||||||
|
ssl.SetError(bad_input);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
decrypt_message(ssl, buffer, hdr.length_);
|
decrypt_message(ssl, buffer, hdr.length_);
|
||||||
|
}
|
||||||
|
|
||||||
mySTL::auto_ptr<Message> msg(mf.CreateObject(hdr.type_));
|
mySTL::auto_ptr<Message> msg(mf.CreateObject(hdr.type_));
|
||||||
if (!msg.get()) {
|
if (!msg.get()) {
|
||||||
|
@ -138,9 +138,9 @@ typedef struct st_handler_check_param
|
|||||||
/* Following is used to check if rows are visible */
|
/* Following is used to check if rows are visible */
|
||||||
ulonglong max_trid, max_found_trid;
|
ulonglong max_trid, max_found_trid;
|
||||||
ulonglong not_visible_rows_found;
|
ulonglong not_visible_rows_found;
|
||||||
|
ulonglong sort_buffer_length;
|
||||||
ulonglong use_buffers; /* Used as param to getopt() */
|
ulonglong use_buffers; /* Used as param to getopt() */
|
||||||
size_t read_buffer_length, write_buffer_length;
|
size_t read_buffer_length, write_buffer_length, sort_key_blocks;
|
||||||
size_t sort_buffer_length, sort_key_blocks;
|
|
||||||
time_t backup_time; /* To sign backup files */
|
time_t backup_time; /* To sign backup files */
|
||||||
ulong rec_per_key_part[HA_MAX_KEY_SEG * HA_MAX_POSSIBLE_KEY];
|
ulong rec_per_key_part[HA_MAX_KEY_SEG * HA_MAX_POSSIBLE_KEY];
|
||||||
double new_rec_per_key_part[HA_MAX_KEY_SEG * HA_MAX_POSSIBLE_KEY];
|
double new_rec_per_key_part[HA_MAX_KEY_SEG * HA_MAX_POSSIBLE_KEY];
|
||||||
|
@ -49,6 +49,7 @@
|
|||||||
string will be quoted according to MySQL identifier quoting rules.
|
string will be quoted according to MySQL identifier quoting rules.
|
||||||
|
|
||||||
Both <width> and <precision> can be specified as numbers or '*'.
|
Both <width> and <precision> can be specified as numbers or '*'.
|
||||||
|
If an asterisk is used, an argument of type int is consumed.
|
||||||
|
|
||||||
<length modifier> can be 'l', 'll', or 'z'.
|
<length modifier> can be 'l', 'll', or 'z'.
|
||||||
|
|
||||||
|
8
include/mysqld_default_groups.h
Normal file
8
include/mysqld_default_groups.h
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
const char *load_default_groups[]= {
|
||||||
|
#ifdef WITH_NDBCLUSTER_STORAGE_ENGINE
|
||||||
|
"mysql_cluster",
|
||||||
|
#endif
|
||||||
|
"mysqld", "server", MYSQL_BASE_VERSION,
|
||||||
|
"mariadb", MARIADB_BASE_VERSION,
|
||||||
|
"client-server",
|
||||||
|
0, 0};
|
@ -61,6 +61,7 @@ uint thd_get_net_read_write(THD *thd);
|
|||||||
void thd_set_mysys_var(THD *thd, st_my_thread_var *mysys_var);
|
void thd_set_mysys_var(THD *thd, st_my_thread_var *mysys_var);
|
||||||
ulong thd_get_net_wait_timeout(THD *thd);
|
ulong thd_get_net_wait_timeout(THD *thd);
|
||||||
my_socket thd_get_fd(THD *thd);
|
my_socket thd_get_fd(THD *thd);
|
||||||
|
int thd_store_globals(THD* thd);
|
||||||
|
|
||||||
THD *first_global_thread();
|
THD *first_global_thread();
|
||||||
THD *next_global_thread(THD *thd);
|
THD *next_global_thread(THD *thd);
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (c) 2011, 2012, Oracle and/or its affiliates.
|
/* Copyright (c) 2011, 2013, Oracle and/or its affiliates.
|
||||||
Copyright (c) 2011, 2012, Monty Program Ab
|
Copyright (c) 2011, 2012, Monty Program Ab
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
@ -17,7 +17,7 @@
|
|||||||
#ifndef _welcome_copyright_notice_h_
|
#ifndef _welcome_copyright_notice_h_
|
||||||
#define _welcome_copyright_notice_h_
|
#define _welcome_copyright_notice_h_
|
||||||
|
|
||||||
#define COPYRIGHT_NOTICE_CURRENT_YEAR "2012"
|
#define COPYRIGHT_NOTICE_CURRENT_YEAR "2013"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
This define specifies copyright notice which is displayed by every MySQL
|
This define specifies copyright notice which is displayed by every MySQL
|
||||||
|
@ -141,13 +141,14 @@ mysql_load_plugin
|
|||||||
mysql_load_plugin_v
|
mysql_load_plugin_v
|
||||||
mysql_plugin_options
|
mysql_plugin_options
|
||||||
# Async API
|
# Async API
|
||||||
|
mysql_get_timeout_value
|
||||||
|
mysql_get_timeout_value_ms
|
||||||
|
mysql_get_socket
|
||||||
mysql_autocommit_cont
|
mysql_autocommit_cont
|
||||||
mysql_autocommit_start
|
mysql_autocommit_start
|
||||||
mysql_change_user_cont
|
mysql_change_user_cont
|
||||||
mysql_change_user_start
|
mysql_change_user_start
|
||||||
mysql_close_cont
|
mysql_close_cont
|
||||||
mysql_close_slow_part_cont
|
|
||||||
mysql_close_slow_part_start
|
|
||||||
mysql_close_start
|
mysql_close_start
|
||||||
mysql_commit_cont
|
mysql_commit_cont
|
||||||
mysql_commit_start
|
mysql_commit_start
|
||||||
@ -257,10 +258,12 @@ IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
|||||||
get_charset
|
get_charset
|
||||||
get_charset_by_csname
|
get_charset_by_csname
|
||||||
net_realloc
|
net_realloc
|
||||||
client_errors)
|
client_errors
|
||||||
|
THR_KEY_mysys
|
||||||
|
)
|
||||||
|
|
||||||
# Add special script to fix symbols renames by Fedora
|
# Add special script to fix symbols renames by Fedora
|
||||||
SET(CLIENT_SOURCES_EXTRA ${CLIENT_SOURCES} rpm_support.cc)
|
SET(CLIENT_SOURCES_EXTRA rpm_support.cc)
|
||||||
SET(VERSION_SCRIPT_TEMPLATE
|
SET(VERSION_SCRIPT_TEMPLATE
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/libmysql_rpm_version.in)
|
${CMAKE_CURRENT_SOURCE_DIR}/libmysql_rpm_version.in)
|
||||||
ELSEIF(DEB)
|
ELSEIF(DEB)
|
||||||
@ -349,7 +352,7 @@ IF(UNIX)
|
|||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
IF(NOT DISABLE_SHARED)
|
IF(NOT DISABLE_SHARED)
|
||||||
MERGE_LIBRARIES(libmysql SHARED ${LIBS} EXPORTS ${CLIENT_API_FUNCTIONS} COMPONENT SharedLibraries)
|
MERGE_LIBRARIES(libmysql SHARED ${LIBS} EXPORTS ${CLIENT_API_FUNCTIONS} ${CLIENT_API_EXTRA} COMPONENT SharedLibraries)
|
||||||
IF(UNIX)
|
IF(UNIX)
|
||||||
# libtool compatability
|
# libtool compatability
|
||||||
IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR APPLE)
|
IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR APPLE)
|
||||||
|
@ -62,13 +62,34 @@
|
|||||||
/* were just going to fake it here and get input from the keyboard */
|
/* were just going to fake it here and get input from the keyboard */
|
||||||
void get_tty_password_buff(const char *opt_message, char *to, size_t length)
|
void get_tty_password_buff(const char *opt_message, char *to, size_t length)
|
||||||
{
|
{
|
||||||
|
HANDLE consoleinput;
|
||||||
|
DWORD oldstate;
|
||||||
char *pos=to,*end=to+length-1;
|
char *pos=to,*end=to+length-1;
|
||||||
int i=0;
|
int i=0;
|
||||||
|
|
||||||
|
consoleinput= GetStdHandle(STD_INPUT_HANDLE);
|
||||||
|
if (!consoleinput)
|
||||||
|
{
|
||||||
|
/* This is a GUI application or service without console input, bail out. */
|
||||||
|
*to= 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
_cputs(opt_message ? opt_message : "Enter password: ");
|
_cputs(opt_message ? opt_message : "Enter password: ");
|
||||||
|
|
||||||
|
/*
|
||||||
|
Switch to raw mode (no line input, no echo input).
|
||||||
|
Allow Ctrl-C handler with ENABLE_PROCESSED_INPUT.
|
||||||
|
*/
|
||||||
|
GetConsoleMode(consoleinput, &oldstate);
|
||||||
|
SetConsoleMode(consoleinput, ENABLE_PROCESSED_INPUT);
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
int tmp;
|
char tmp;
|
||||||
tmp=_getch();
|
DWORD chars_read;
|
||||||
|
if (!ReadConsole(consoleinput, &tmp, 1, &chars_read, NULL))
|
||||||
|
break;
|
||||||
|
if (chars_read == 0)
|
||||||
|
break;
|
||||||
if (tmp == '\b' || tmp == 127)
|
if (tmp == '\b' || tmp == 127)
|
||||||
{
|
{
|
||||||
if (pos != to)
|
if (pos != to)
|
||||||
@ -78,13 +99,15 @@ void get_tty_password_buff(const char *opt_message, char *to, size_t length)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (tmp == -1 || tmp == '\n' || tmp == '\r' || tmp == 3)
|
if (tmp == '\n' || tmp == '\r')
|
||||||
break;
|
break;
|
||||||
if (iscntrl(tmp) || pos == end)
|
if (iscntrl(tmp) || pos == end)
|
||||||
continue;
|
continue;
|
||||||
_cputs("*");
|
_cputs("*");
|
||||||
*(pos++) = (char)tmp;
|
*(pos++) = tmp;
|
||||||
}
|
}
|
||||||
|
/* Reset console mode after password input. */
|
||||||
|
SetConsoleMode(consoleinput, oldstate);
|
||||||
*pos=0;
|
*pos=0;
|
||||||
_cputs("\n");
|
_cputs("\n");
|
||||||
}
|
}
|
||||||
|
@ -21,6 +21,8 @@ libmysqlclient_16 {
|
|||||||
my_print_help;
|
my_print_help;
|
||||||
# pure-ftpd requires this
|
# pure-ftpd requires this
|
||||||
my_make_scrambled_password;
|
my_make_scrambled_password;
|
||||||
|
# fedora18 export
|
||||||
|
THR_KEY_mysys;
|
||||||
# hydra requires this
|
# hydra requires this
|
||||||
scramble;
|
scramble;
|
||||||
# DBD::mysql requires this
|
# DBD::mysql requires this
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
@ -154,8 +154,10 @@ ENDMACRO()
|
|||||||
FILE(GLOB infiles "collections/*.in")
|
FILE(GLOB infiles "collections/*.in")
|
||||||
FOREACH(collin ${infiles})
|
FOREACH(collin ${infiles})
|
||||||
STRING(REPLACE ".in" "" collection ${collin})
|
STRING(REPLACE ".in" "" collection ${collin})
|
||||||
|
STRING(REPLACE ".in" ".done" colldone ${collin})
|
||||||
# Only generate file once
|
# Only generate file once
|
||||||
IF(NOT EXISTS ${collection})
|
IF(NOT EXISTS ${colldone})
|
||||||
PROCESS_COLLECTION_INCLUDE(${collin} ${collection})
|
PROCESS_COLLECTION_INCLUDE(${collin} ${collection})
|
||||||
|
FILE(APPEND ${colldone} "${collin}\n")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ENDFOREACH()
|
ENDFOREACH()
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
perl mysql-test-run.pl --force --timer --debug-server --parallel=auto --experimental=collections/default.experimental --comment=normal --vardir=var-normal --report-features --skip-test-list=collections/disabled-daily.list --unit-tests
|
perl mysql-test-run.pl --force --timer --debug-server --parallel=auto --experimental=collections/default.experimental --comment=normal --vardir=var-normal --report-features --skip-test-list=collections/disabled-daily.list
|
||||||
perl mysql-test-run.pl --force --timer --debug-server --parallel=auto --experimental=collections/default.experimental --comment=n_mix --vardir=var-n_mix --mysqld=--binlog-format=mixed --skip-test-list=collections/disabled-daily.list
|
perl mysql-test-run.pl --force --timer --debug-server --parallel=auto --experimental=collections/default.experimental --comment=n_mix --vardir=var-n_mix --mysqld=--binlog-format=mixed --skip-test-list=collections/disabled-daily.list
|
||||||
perl mysql-test-run.pl --force --timer --debug-server --parallel=auto --experimental=collections/default.experimental --comment=row --vardir=var-row --mysqld=--binlog-format=row --skip-test-list=collections/disabled-daily.list
|
perl mysql-test-run.pl --force --timer --debug-server --parallel=auto --experimental=collections/default.experimental --comment=row --vardir=var-row --mysqld=--binlog-format=row --skip-test-list=collections/disabled-daily.list
|
||||||
perl mysql-test-run.pl --force --timer --debug-server --parallel=auto --experimental=collections/default.experimental --comment=ps_row --vardir=var-ps_row --mysqld=--binlog-format=row --ps-protocol --skip-test-list=collections/disabled-daily.list
|
perl mysql-test-run.pl --force --timer --debug-server --parallel=auto --experimental=collections/default.experimental --comment=ps_row --vardir=var-ps_row --mysqld=--binlog-format=row --ps-protocol --skip-test-list=collections/disabled-daily.list
|
||||||
|
@ -18,9 +18,4 @@ rpl.rpl_row_sp011 @solaris # Bug#11753919 2011-07-25 sven Several
|
|||||||
sys_vars.max_sp_recursion_depth_func @solaris # Bug#11753919 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun
|
sys_vars.max_sp_recursion_depth_func @solaris # Bug#11753919 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun
|
||||||
sys_vars.wait_timeout_func # Bug#11750645 2010-04-26 alik wait_timeout_func fails
|
sys_vars.wait_timeout_func # Bug#11750645 2010-04-26 alik wait_timeout_func fails
|
||||||
|
|
||||||
# BUG #59055 : All ndb tests should be removed from the repository
|
|
||||||
# Leaving the sys_vars tests for now. sys_vars.all_vars.test fails on removing ndb tests
|
|
||||||
sys_vars.ndb_log_update_as_write_basic
|
|
||||||
sys_vars.have_ndbcluster_basic
|
|
||||||
sys_vars.ndb_log_updated_only_basic
|
|
||||||
sys_vars.rpl_init_slave_func # Bug#12535301 2011-05-09 andrei sys_vars.rpl_init_slave_func mismatches in daily-5.5
|
sys_vars.rpl_init_slave_func # Bug#12535301 2011-05-09 andrei sys_vars.rpl_init_slave_func mismatches in daily-5.5
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
perl mysql-test-run.pl --timer --force --parallel=auto --comment=n_mix --vardir=var-n_mix --mysqld=--binlog-format=mixed --experimental=collections/default.experimental --skip-ndb --skip-test-list=collections/disabled-per-push.list --unit-tests
|
perl mysql-test-run.pl --timer --force --parallel=auto --comment=n_mix --vardir=var-n_mix --mysqld=--binlog-format=mixed --experimental=collections/default.experimental --skip-test-list=collections/disabled-per-push.list
|
||||||
perl mysql-test-run.pl --timer --force --parallel=auto --comment=ps_row --vardir=var-ps_row --ps-protocol --mysqld=--binlog-format=row --experimental=collections/default.experimental --skip-ndb --skip-test-list=collections/disabled-per-push.list
|
perl mysql-test-run.pl --timer --force --parallel=auto --comment=ps_row --vardir=var-ps_row --ps-protocol --mysqld=--binlog-format=row --experimental=collections/default.experimental --skip-test-list=collections/disabled-per-push.list
|
||||||
perl mysql-test-run.pl --timer --force --parallel=auto --comment=embedded --vardir=var-emebbed --embedded --experimental=collections/default.experimental --skip-ndb
|
perl mysql-test-run.pl --timer --force --parallel=auto --comment=embedded --vardir=var-emebbed --embedded --experimental=collections/default.experimental
|
||||||
perl mysql-test-run.pl --timer --force --parallel=auto --comment=rpl_binlog_row --vardir=var-rpl_binlog_row --suite=rpl,binlog --mysqld=--binlog-format=row --experimental=collections/default.experimental --skip-ndb --skip-test-list=collections/disabled-per-push.list
|
perl mysql-test-run.pl --timer --force --parallel=auto --comment=rpl_binlog_row --vardir=var-rpl_binlog_row --suite=rpl,binlog --mysqld=--binlog-format=row --experimental=collections/default.experimental --skip-test-list=collections/disabled-per-push.list
|
||||||
perl mysql-test-run.pl --timer --force --parallel=auto --comment=funcs_1 --vardir=var-funcs_1 --suite=funcs_1 --experimental=collections/default.experimental --skip-ndb
|
perl mysql-test-run.pl --timer --force --parallel=auto --comment=funcs_1 --vardir=var-funcs_1 --suite=funcs_1 --experimental=collections/default.experimental
|
||||||
|
|
||||||
|
@ -4,14 +4,14 @@
|
|||||||
# include default.daily
|
# include default.daily
|
||||||
# include default.weekly
|
# include default.weekly
|
||||||
|
|
||||||
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=debug --vardir=var-debug --skip-ndbcluster --skip-rpl --report-features --debug-server
|
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=debug --vardir=var-debug --skip-rpl --report-features --debug-server
|
||||||
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=normal --vardir=var-normal --skip-ndbcluster --report-features
|
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=normal --vardir=var-normal --report-features
|
||||||
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=ps --vardir=var-ps --skip-ndbcluster --ps-protocol
|
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=ps --vardir=var-ps --ps-protocol
|
||||||
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=funcs1+ps --vardir=var-funcs_1_ps --suite=funcs_1 --ps-protocol
|
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=funcs1+ps --vardir=var-funcs_1_ps --suite=funcs_1 --ps-protocol
|
||||||
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=funcs2 --vardir=var-funcs2 --suite=funcs_2
|
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=funcs2 --vardir=var-funcs2 --suite=funcs_2
|
||||||
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=partitions --vardir=var-parts --suite=parts
|
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=partitions --vardir=var-parts --suite=parts
|
||||||
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=stress --vardir=var-stress --suite=stress
|
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=stress --vardir=var-stress --suite=stress
|
||||||
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=jp --vardir=var-jp --suite=jp
|
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=jp --vardir=var-jp --suite=jp
|
||||||
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=embedded --vardir=var-embedded --embedded-server --skip-rpl --skip-ndbcluster
|
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=embedded --vardir=var-embedded --embedded-server --skip-rpl
|
||||||
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=nist --vardir=var-nist --suite=nist
|
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=nist --vardir=var-nist --suite=nist
|
||||||
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=nist+ps --vardir=var-nist_ps --suite=nist --ps-protocol
|
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=nist+ps --vardir=var-nist_ps --suite=nist --ps-protocol
|
||||||
|
@ -1,22 +0,0 @@
|
|||||||
--exec $MYSQL test -e "show processlist" > $MYSQLTEST_VARDIR/tmp/bl_dump_thread_id
|
|
||||||
--disable_warnings
|
|
||||||
drop table if exists t999;
|
|
||||||
--enable_warnings
|
|
||||||
# Create a table to hold the process list
|
|
||||||
create temporary table t999(
|
|
||||||
id int,
|
|
||||||
user char(255),
|
|
||||||
host char(255),
|
|
||||||
db char(255),
|
|
||||||
Command char(255),
|
|
||||||
time int,
|
|
||||||
State char(255),
|
|
||||||
info char(255)
|
|
||||||
);
|
|
||||||
# Load processlist into table, headers will create seom warnings
|
|
||||||
--disable_warnings
|
|
||||||
--replace_result $MYSQLTEST_VARDIR "."
|
|
||||||
eval LOAD DATA INFILE "$MYSQLTEST_VARDIR/tmp/bl_dump_thread_id" into table t999;
|
|
||||||
--enable_warnings
|
|
||||||
let $id = `select Id from t999 where Command="Binlog Dump"`;
|
|
||||||
drop table t999;
|
|
@ -29,4 +29,4 @@ INSTALL(TARGETS my_safe_process DESTINATION "${INSTALL_MYSQLTESTDIR}/lib/My/Safe
|
|||||||
IF(WIN32)
|
IF(WIN32)
|
||||||
INSTALL(TARGETS my_safe_kill DESTINATION "${INSTALL_MYSQLTESTDIR}/lib/My/SafeProcess" COMPONENT Test)
|
INSTALL(TARGETS my_safe_kill DESTINATION "${INSTALL_MYSQLTESTDIR}/lib/My/SafeProcess" COMPONENT Test)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
INSTALL(FILES safe_process.pl Base.pm DESTINATION "${INSTALL_MYSQLTESTDIR}/lib/My/SafeProcess" COMPONENT Test)
|
INSTALL(FILES Base.pm DESTINATION "${INSTALL_MYSQLTESTDIR}/lib/My/SafeProcess" COMPONENT Test)
|
||||||
|
@ -153,12 +153,19 @@ int main(int argc, char* const argv[] )
|
|||||||
pid_t own_pid= getpid();
|
pid_t own_pid= getpid();
|
||||||
pid_t parent_pid= getppid();
|
pid_t parent_pid= getppid();
|
||||||
bool nocore = false;
|
bool nocore = false;
|
||||||
|
struct sigaction sa,sa_abort;
|
||||||
|
|
||||||
|
sa.sa_handler= handle_signal;
|
||||||
|
sa.sa_flags= SA_NOCLDSTOP;
|
||||||
|
sigemptyset(&sa.sa_mask);
|
||||||
|
|
||||||
|
sa_abort.sa_handler= handle_abort;
|
||||||
|
sigemptyset(&sa_abort.sa_mask);
|
||||||
/* Install signal handlers */
|
/* Install signal handlers */
|
||||||
signal(SIGTERM, handle_signal);
|
sigaction(SIGTERM, &sa,NULL);
|
||||||
signal(SIGINT, handle_signal);
|
sigaction(SIGINT, &sa,NULL);
|
||||||
signal(SIGCHLD, handle_signal);
|
sigaction(SIGCHLD, &sa,NULL);
|
||||||
signal(SIGABRT, handle_abort);
|
sigaction(SIGABRT, &sa_abort,NULL);
|
||||||
|
|
||||||
sprintf(safe_process_name, "safe_process[%ld]", (long) own_pid);
|
sprintf(safe_process_name, "safe_process[%ld]", (long) own_pid);
|
||||||
|
|
||||||
|
@ -1,166 +0,0 @@
|
|||||||
#!/usr/bin/perl
|
|
||||||
# -*- cperl -*-
|
|
||||||
|
|
||||||
# Copyright (c) 2007, 2011, Oracle and/or its affiliates
|
|
||||||
#
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation; version 2 of the License.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program; if not, write to the Free Software
|
|
||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
|
|
||||||
use strict;
|
|
||||||
use warnings;
|
|
||||||
|
|
||||||
use lib 'lib';
|
|
||||||
use My::SafeProcess::Base;
|
|
||||||
use POSIX qw(WNOHANG);
|
|
||||||
|
|
||||||
###########################################################################
|
|
||||||
# Util functions
|
|
||||||
###########################################################################
|
|
||||||
|
|
||||||
#
|
|
||||||
#Print message to stderr
|
|
||||||
#
|
|
||||||
my $verbose= 0;
|
|
||||||
sub message {
|
|
||||||
if ($verbose > 0){
|
|
||||||
use Time::localtime;
|
|
||||||
my $tm= localtime();
|
|
||||||
my $timestamp= sprintf("%02d%02d%02d %2d:%02d:%02d",
|
|
||||||
$tm->year % 100, $tm->mon+1, $tm->mday,
|
|
||||||
$tm->hour, $tm->min, $tm->sec);
|
|
||||||
print STDERR $timestamp, " monitor[$$]: ", @_, "\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
###########################################################################
|
|
||||||
# Main program
|
|
||||||
###########################################################################
|
|
||||||
|
|
||||||
my $terminated= 0;
|
|
||||||
|
|
||||||
# Protect against being killed in the middle
|
|
||||||
# of child creation, just set the terminated flag
|
|
||||||
# to make sure the child will be killed off
|
|
||||||
# when program is ready to do that
|
|
||||||
$SIG{TERM}= sub { message("!Got signal @_"); $terminated= 1; };
|
|
||||||
$SIG{INT}= sub { message("!Got signal @_"); $terminated= 1; };
|
|
||||||
|
|
||||||
my $parent_pid= getppid();
|
|
||||||
|
|
||||||
my $found_double_dash= 0;
|
|
||||||
while (my $arg= shift(@ARGV)){
|
|
||||||
|
|
||||||
if ($arg =~ /^--$/){
|
|
||||||
$found_double_dash= 1;
|
|
||||||
last;
|
|
||||||
}
|
|
||||||
elsif ($arg =~ /^--verbose$/){
|
|
||||||
$verbose= 1;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
die "Unknown option: $arg";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
my $path= shift(@ARGV); # Executable
|
|
||||||
|
|
||||||
die "usage:\n" .
|
|
||||||
" safe_process.pl [opts] -- <path> [<args> [...<args_n>]]"
|
|
||||||
unless defined $path || $found_double_dash;
|
|
||||||
|
|
||||||
|
|
||||||
message("started");
|
|
||||||
#message("path: '$path'");
|
|
||||||
message("parent: $parent_pid");
|
|
||||||
|
|
||||||
# Start process to monitor
|
|
||||||
my $child_pid=
|
|
||||||
create_process(
|
|
||||||
path => $path,
|
|
||||||
args => \@ARGV,
|
|
||||||
setpgrp => 1,
|
|
||||||
);
|
|
||||||
message("Started child $child_pid");
|
|
||||||
|
|
||||||
eval {
|
|
||||||
sub handle_signal {
|
|
||||||
$terminated= 1;
|
|
||||||
message("Got signal @_");
|
|
||||||
|
|
||||||
# Ignore all signals
|
|
||||||
foreach my $name (keys %SIG){
|
|
||||||
$SIG{$name}= 'IGNORE';
|
|
||||||
}
|
|
||||||
|
|
||||||
die "signaled\n";
|
|
||||||
};
|
|
||||||
local $SIG{TERM}= \&handle_signal;
|
|
||||||
local $SIG{INT}= \&handle_signal;
|
|
||||||
local $SIG{CHLD}= sub {
|
|
||||||
message("Got signal @_");
|
|
||||||
kill('KILL', -$child_pid);
|
|
||||||
my $ret= waitpid($child_pid, 0);
|
|
||||||
if ($? & 127){
|
|
||||||
exit(65); # Killed by signal
|
|
||||||
}
|
|
||||||
exit($? >> 8);
|
|
||||||
};
|
|
||||||
|
|
||||||
# Monitoring loop
|
|
||||||
while(!$terminated) {
|
|
||||||
|
|
||||||
# Check if parent is still alive
|
|
||||||
if (kill(0, $parent_pid) < 1){
|
|
||||||
message("Parent is not alive anymore");
|
|
||||||
last;
|
|
||||||
}
|
|
||||||
|
|
||||||
# Wait for child to terminate but wakeup every
|
|
||||||
# second to also check that parent is still alive
|
|
||||||
my $ret_pid;
|
|
||||||
$ret_pid= waitpid($child_pid, &WNOHANG);
|
|
||||||
if ($ret_pid == $child_pid) {
|
|
||||||
# Process has exited, collect return status
|
|
||||||
my $ret_code= $? >> 8;
|
|
||||||
message("Child exit: $ret_code");
|
|
||||||
# Exit with exit status of the child
|
|
||||||
exit ($ret_code);
|
|
||||||
}
|
|
||||||
sleep(1);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
if ( $@ ) {
|
|
||||||
# The monitoring loop should have been
|
|
||||||
# broken by handle_signal
|
|
||||||
warn "Unexpected: $@" unless ( $@ =~ /signaled/ );
|
|
||||||
}
|
|
||||||
|
|
||||||
# Use negative pid in order to kill the whole
|
|
||||||
# process group
|
|
||||||
#
|
|
||||||
my $ret= kill('KILL', -$child_pid);
|
|
||||||
message("Killed child: $child_pid, ret: $ret");
|
|
||||||
if ($ret > 0) {
|
|
||||||
message("Killed child: $child_pid");
|
|
||||||
# Wait blocking for the child to return
|
|
||||||
my $ret_pid= waitpid($child_pid, 0);
|
|
||||||
if ($ret_pid != $child_pid){
|
|
||||||
message("unexpected pid $ret_pid returned from waitpid($child_pid)");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
message("DONE!");
|
|
||||||
exit (1);
|
|
||||||
|
|
||||||
|
|
@ -769,18 +769,11 @@ sub collect_one_test_case {
|
|||||||
if ( $tinfo->{'ndb_test'} )
|
if ( $tinfo->{'ndb_test'} )
|
||||||
{
|
{
|
||||||
# This is a NDB test
|
# This is a NDB test
|
||||||
if ( $::opt_skip_ndbcluster == 2 )
|
if ( $::ndbcluster_enabled == 0)
|
||||||
{
|
{
|
||||||
# Ndb is not supported, skip it
|
# ndbcluster is disabled
|
||||||
$tinfo->{'skip'}= 1;
|
$tinfo->{'skip'}= 1;
|
||||||
$tinfo->{'comment'}= "No ndbcluster support or ndb tests not enabled";
|
$tinfo->{'comment'}= "ndbcluster disabled";
|
||||||
return $tinfo;
|
|
||||||
}
|
|
||||||
elsif ( $::opt_skip_ndbcluster )
|
|
||||||
{
|
|
||||||
# All ndb test's should be skipped
|
|
||||||
$tinfo->{'skip'}= 1;
|
|
||||||
$tinfo->{'comment'}= "No ndbcluster";
|
|
||||||
return $tinfo;
|
return $tinfo;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@ our @EXPORT= qw(report_option mtr_print_line mtr_print_thick_line
|
|||||||
mtr_warning mtr_error mtr_debug mtr_verbose
|
mtr_warning mtr_error mtr_debug mtr_verbose
|
||||||
mtr_verbose_restart mtr_report_test_passed
|
mtr_verbose_restart mtr_report_test_passed
|
||||||
mtr_report_test_skipped mtr_print
|
mtr_report_test_skipped mtr_print
|
||||||
mtr_report_test);
|
mtr_report_test isotime);
|
||||||
|
|
||||||
use mtr_match;
|
use mtr_match;
|
||||||
use My::Platform;
|
use My::Platform;
|
||||||
@ -106,6 +106,8 @@ sub mtr_report_test_passed ($) {
|
|||||||
$tinfo->{'result'}= 'MTR_RES_PASSED';
|
$tinfo->{'result'}= 'MTR_RES_PASSED';
|
||||||
|
|
||||||
mtr_report_test($tinfo);
|
mtr_report_test($tinfo);
|
||||||
|
|
||||||
|
resfile_global("endtime ", isotime (time));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -550,4 +552,12 @@ sub mtr_verbose_restart (@) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Used by --result-file for for formatting times
|
||||||
|
|
||||||
|
sub isotime($) {
|
||||||
|
my ($sec,$min,$hr,$day,$mon,$yr)= gmtime($_[0]);
|
||||||
|
return sprintf "%d-%02d-%02dT%02d:%02d:%02dZ",
|
||||||
|
$yr+1900, $mon+1, $day, $hr, $min, $sec;
|
||||||
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
@ -333,8 +333,9 @@ sub check_timeout ($) { return testcase_timeout($_[0]) / 10; }
|
|||||||
|
|
||||||
our $opt_warnings= 1;
|
our $opt_warnings= 1;
|
||||||
|
|
||||||
our $opt_include_ndbcluster= 0;
|
our $ndbcluster_enabled= 0;
|
||||||
our $opt_skip_ndbcluster= 1;
|
my $opt_include_ndbcluster= 0;
|
||||||
|
my $opt_skip_ndbcluster= 0;
|
||||||
|
|
||||||
my $exe_ndbd;
|
my $exe_ndbd;
|
||||||
my $exe_ndbmtd;
|
my $exe_ndbmtd;
|
||||||
@ -361,14 +362,6 @@ my $opt_stop_keep_alive= $ENV{MTR_STOP_KEEP_ALIVE};
|
|||||||
select(STDOUT);
|
select(STDOUT);
|
||||||
$| = 1; # Automatically flush STDOUT
|
$| = 1; # Automatically flush STDOUT
|
||||||
|
|
||||||
# Used by --result-file for for formatting times
|
|
||||||
|
|
||||||
sub isotime($) {
|
|
||||||
my ($sec,$min,$hr,$day,$mon,$yr)= gmtime($_[0]);
|
|
||||||
return sprintf "%d-%02d-%02dT%02d:%02d:%02dZ",
|
|
||||||
$yr+1900, $mon+1, $day, $hr, $min, $sec;
|
|
||||||
}
|
|
||||||
|
|
||||||
main();
|
main();
|
||||||
|
|
||||||
|
|
||||||
@ -393,26 +386,6 @@ sub main {
|
|||||||
|
|
||||||
if (!$opt_suites) {
|
if (!$opt_suites) {
|
||||||
$opt_suites= $DEFAULT_SUITES;
|
$opt_suites= $DEFAULT_SUITES;
|
||||||
|
|
||||||
# Check for any extra suites to enable based on the path name
|
|
||||||
my %extra_suites=
|
|
||||||
(
|
|
||||||
"mysql-5.1-new-ndb" => "ndb_team",
|
|
||||||
"mysql-5.1-new-ndb-merge" => "ndb_team",
|
|
||||||
"mysql-5.1-telco-6.2" => "ndb_team",
|
|
||||||
"mysql-5.1-telco-6.2-merge" => "ndb_team",
|
|
||||||
"mysql-5.1-telco-6.3" => "ndb_team",
|
|
||||||
"mysql-6.0-ndb" => "ndb_team",
|
|
||||||
);
|
|
||||||
|
|
||||||
foreach my $dir ( reverse splitdir($basedir) ) {
|
|
||||||
my $extra_suite= $extra_suites{$dir};
|
|
||||||
if (defined $extra_suite) {
|
|
||||||
mtr_report("Found extra suite: $extra_suite");
|
|
||||||
$opt_suites= "$extra_suite,$opt_suites";
|
|
||||||
last;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
mtr_report("Using suites: $opt_suites") unless @opt_cases;
|
mtr_report("Using suites: $opt_suites") unless @opt_cases;
|
||||||
|
|
||||||
@ -762,6 +735,10 @@ sub run_test_server ($$$) {
|
|||||||
else {
|
else {
|
||||||
mtr_report("\nRetrying test $tname, ".
|
mtr_report("\nRetrying test $tname, ".
|
||||||
"attempt($retries/$opt_retry)...\n");
|
"attempt($retries/$opt_retry)...\n");
|
||||||
|
#saving the log file as filename.failed in case of retry
|
||||||
|
my $worker_logdir= $result->{savedir};
|
||||||
|
my $log_file_name=dirname($worker_logdir)."/".$result->{shortname}.".log";
|
||||||
|
rename $log_file_name,$log_file_name.".failed";
|
||||||
delete($result->{result});
|
delete($result->{result});
|
||||||
$result->{retries}= $retries+1;
|
$result->{retries}= $retries+1;
|
||||||
$result->write_test($sock, 'TESTCASE');
|
$result->write_test($sock, 'TESTCASE');
|
||||||
@ -1138,7 +1115,7 @@ sub command_line_setup {
|
|||||||
# Control what test suites or cases to run
|
# Control what test suites or cases to run
|
||||||
'force+' => \$opt_force,
|
'force+' => \$opt_force,
|
||||||
'with-ndbcluster-only' => \&collect_option,
|
'with-ndbcluster-only' => \&collect_option,
|
||||||
'include-ndbcluster' => \$opt_include_ndbcluster,
|
'ndb|include-ndbcluster' => \$opt_include_ndbcluster,
|
||||||
'skip-ndbcluster|skip-ndb' => \$opt_skip_ndbcluster,
|
'skip-ndbcluster|skip-ndb' => \$opt_skip_ndbcluster,
|
||||||
'suite|suites=s' => \$opt_suites,
|
'suite|suites=s' => \$opt_suites,
|
||||||
'skip-rpl' => \&collect_option,
|
'skip-rpl' => \&collect_option,
|
||||||
@ -1580,7 +1557,6 @@ sub command_line_setup {
|
|||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
if ( $opt_embedded_server )
|
if ( $opt_embedded_server )
|
||||||
{
|
{
|
||||||
$opt_skip_ndbcluster= 1; # Turn off use of NDB cluster
|
|
||||||
$opt_skip_ssl= 1; # Turn off use of SSL
|
$opt_skip_ssl= 1; # Turn off use of SSL
|
||||||
|
|
||||||
# Turn off use of bin log
|
# Turn off use of bin log
|
||||||
@ -2036,7 +2012,7 @@ sub executable_setup () {
|
|||||||
|
|
||||||
$exe_mysql_embedded= mtr_exe_maybe_exists("$basedir/libmysqld/examples/mysql_embedded");
|
$exe_mysql_embedded= mtr_exe_maybe_exists("$basedir/libmysqld/examples/mysql_embedded");
|
||||||
|
|
||||||
if ( ! $opt_skip_ndbcluster )
|
if ( $ndbcluster_enabled )
|
||||||
{
|
{
|
||||||
# Look for single threaded NDB
|
# Look for single threaded NDB
|
||||||
$exe_ndbd=
|
$exe_ndbd=
|
||||||
@ -2298,7 +2274,7 @@ sub environment_setup {
|
|||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
# Add the path where libndbclient can be found
|
# Add the path where libndbclient can be found
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
if ( !$opt_skip_ndbcluster )
|
if ( $ndbcluster_enabled )
|
||||||
{
|
{
|
||||||
push(@ld_library_paths, "$basedir/storage/ndb/src/.libs");
|
push(@ld_library_paths, "$basedir/storage/ndb/src/.libs");
|
||||||
}
|
}
|
||||||
@ -2391,7 +2367,7 @@ sub environment_setup {
|
|||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
# Setup env for NDB
|
# Setup env for NDB
|
||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
if ( ! $opt_skip_ndbcluster )
|
if ( $ndbcluster_enabled )
|
||||||
{
|
{
|
||||||
$ENV{'NDB_MGM'}=
|
$ENV{'NDB_MGM'}=
|
||||||
my_find_bin($bindir,
|
my_find_bin($bindir,
|
||||||
@ -2822,7 +2798,7 @@ sub fix_vs_config_dir () {
|
|||||||
$opt_vs_config="";
|
$opt_vs_config="";
|
||||||
|
|
||||||
|
|
||||||
for (<$bindir/sql/*/mysqld.exe>) {
|
for (<$bindir/sql/*/mysqld.exe>) { #/
|
||||||
if (-M $_ < $modified)
|
if (-M $_ < $modified)
|
||||||
{
|
{
|
||||||
$modified = -M _;
|
$modified = -M _;
|
||||||
@ -2864,37 +2840,87 @@ sub vs_config_dirs ($$) {
|
|||||||
|
|
||||||
sub check_ndbcluster_support {
|
sub check_ndbcluster_support {
|
||||||
|
|
||||||
|
my $ndbcluster_supported = 0;
|
||||||
|
if ($mysqld_variables{'ndb-connectstring'})
|
||||||
|
{
|
||||||
|
$ndbcluster_supported = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($opt_skip_ndbcluster && $opt_include_ndbcluster)
|
||||||
|
{
|
||||||
|
# User is ambivalent. Theoretically the arg which was
|
||||||
|
# given last on command line should win, but that order is
|
||||||
|
# unknown at this time.
|
||||||
|
mtr_error("Ambigous command, both --include-ndbcluster " .
|
||||||
|
" and --skip-ndbcluster was specified");
|
||||||
|
}
|
||||||
|
|
||||||
# Check if this is MySQL Cluster, ie. mysql version string ends
|
# Check if this is MySQL Cluster, ie. mysql version string ends
|
||||||
# with -ndb-Y.Y.Y[-status]
|
# with -ndb-Y.Y.Y[-status]
|
||||||
if ( defined $mysql_version_extra &&
|
if ( defined $mysql_version_extra &&
|
||||||
$mysql_version_extra =~ /^-ndb-/ )
|
$mysql_version_extra =~ /-ndb-([0-9]*)\.([0-9]*)\.([0-9]*)/ )
|
||||||
{
|
{
|
||||||
mtr_report(" - MySQL Cluster");
|
# MySQL Cluster tree
|
||||||
# Enable ndb engine and add more test suites
|
mtr_report(" - MySQL Cluster detected");
|
||||||
$opt_include_ndbcluster = 1;
|
|
||||||
$DEFAULT_SUITES.=",ndb";
|
if ($opt_skip_ndbcluster)
|
||||||
|
{
|
||||||
|
mtr_report(" - skipping ndbcluster(--skip-ndbcluster)");
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!$ndbcluster_supported)
|
||||||
|
{
|
||||||
|
# MySQL Cluster tree, but mysqld was not compiled with
|
||||||
|
# ndbcluster -> fail unless --skip-ndbcluster was used
|
||||||
|
mtr_error("This is MySQL Cluster but mysqld does not " .
|
||||||
|
"support ndbcluster. Use --skip-ndbcluster to " .
|
||||||
|
"force mtr to run without it.");
|
||||||
|
}
|
||||||
|
|
||||||
|
# mysqld was compiled with ndbcluster -> auto enable
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
# Not a MySQL Cluster tree
|
||||||
|
if (!$ndbcluster_supported)
|
||||||
|
{
|
||||||
if ($opt_include_ndbcluster)
|
if ($opt_include_ndbcluster)
|
||||||
{
|
{
|
||||||
$opt_skip_ndbcluster= 0;
|
mtr_error("Could not detect ndbcluster support ".
|
||||||
|
"requested with --include-ndbcluster");
|
||||||
|
}
|
||||||
|
|
||||||
|
# Silently skip, mysqld was compiled without ndbcluster
|
||||||
|
# which is the default case
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($opt_skip_ndbcluster)
|
if ($opt_skip_ndbcluster)
|
||||||
{
|
{
|
||||||
mtr_report(" - skipping ndbcluster");
|
# Compiled with ndbcluster but ndbcluster skipped
|
||||||
|
mtr_report(" - skipping ndbcluster(--skip-ndbcluster)");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! $mysqld_variables{'ndb-connectstring'} )
|
|
||||||
|
# Not a MySQL Cluster tree, enable ndbcluster
|
||||||
|
# if --include-ndbcluster was used
|
||||||
|
if ($opt_include_ndbcluster)
|
||||||
{
|
{
|
||||||
#mtr_report(" - skipping ndbcluster, mysqld not compiled with ndbcluster");
|
# enable ndbcluster
|
||||||
$opt_skip_ndbcluster= 2;
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mtr_report(" - skipping ndbcluster(disabled by default)");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
mtr_report(" - using ndbcluster when necessary, mysqld supports it");
|
mtr_report(" - enabling ndbcluster");
|
||||||
|
$ndbcluster_enabled= 1;
|
||||||
|
# Add MySQL Cluster test suites
|
||||||
|
$DEFAULT_SUITES.=",ndb,ndb_binlog,rpl_ndb,ndb_rpl,ndb_memcache";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4745,6 +4771,7 @@ sub extract_warning_lines ($$) {
|
|||||||
qr|Error: io_setup\(\) failed|,
|
qr|Error: io_setup\(\) failed|,
|
||||||
qr|Warning: io_setup\(\) failed|,
|
qr|Warning: io_setup\(\) failed|,
|
||||||
qr|Warning: io_setup\(\) attempt|,
|
qr|Warning: io_setup\(\) attempt|,
|
||||||
|
qr|setrlimit could not change the size of core files to 'infinity';|,
|
||||||
);
|
);
|
||||||
|
|
||||||
my $matched_lines= [];
|
my $matched_lines= [];
|
||||||
|
@ -4,18 +4,18 @@
|
|||||||
CREATE TABLE t1 (
|
CREATE TABLE t1 (
|
||||||
`a` int(11) DEFAULT NULL,
|
`a` int(11) DEFAULT NULL,
|
||||||
`col432` bit(8) DEFAULT NULL,
|
`col432` bit(8) DEFAULT NULL,
|
||||||
`col433` multipoint DEFAULT NULL,
|
`col433` geometry DEFAULT NULL,
|
||||||
`col434` polygon DEFAULT NULL,
|
`col434` geometry DEFAULT NULL,
|
||||||
`col435` decimal(50,17) unsigned DEFAULT NULL,
|
`col435` decimal(50,17) unsigned DEFAULT NULL,
|
||||||
`col436` geometry NOT NULL,
|
`col436` geometry NOT NULL,
|
||||||
`col437` tinyblob NOT NULL,
|
`col437` tinyblob NOT NULL,
|
||||||
`col438` multipolygon DEFAULT NULL,
|
`col438` geometry DEFAULT NULL,
|
||||||
`col439` mediumblob NOT NULL,
|
`col439` mediumblob NOT NULL,
|
||||||
`col440` tinyblob NOT NULL,
|
`col440` tinyblob NOT NULL,
|
||||||
`col441` double unsigned DEFAULT NULL
|
`col441` double unsigned DEFAULT NULL
|
||||||
);
|
);
|
||||||
CREATE TABLE t2 (
|
CREATE TABLE t2 (
|
||||||
`a` multipoint DEFAULT NULL,
|
`a` geometry DEFAULT NULL,
|
||||||
`col460` date DEFAULT NULL,
|
`col460` date DEFAULT NULL,
|
||||||
`col461` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
`col461` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
`col462` date NOT NULL,
|
`col462` date NOT NULL,
|
||||||
@ -31,7 +31,7 @@ CREATE TABLE t3 (
|
|||||||
`col579` bit(38) NOT NULL,
|
`col579` bit(38) NOT NULL,
|
||||||
`col580` varchar(93) NOT NULL,
|
`col580` varchar(93) NOT NULL,
|
||||||
`col581` datetime DEFAULT NULL,
|
`col581` datetime DEFAULT NULL,
|
||||||
`col583` multipolygon DEFAULT NULL,
|
`col583` geometry DEFAULT NULL,
|
||||||
`col584` bit(47) NOT NULL
|
`col584` bit(47) NOT NULL
|
||||||
);
|
);
|
||||||
set session sort_buffer_size= 32768;
|
set session sort_buffer_size= 32768;
|
||||||
|
@ -734,7 +734,7 @@ ALTER DATABASE `mysqltest1` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
|
|||||||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||||||
/*!50003 SET sql_mode = '' */ ;
|
/*!50003 SET sql_mode = '' */ ;
|
||||||
DELIMITER ;;
|
DELIMITER ;;
|
||||||
/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `p1`(
|
CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`(
|
||||||
INOUT <20><><EFBFBD><EFBFBD><EFBFBD>1 CHAR(10),
|
INOUT <20><><EFBFBD><EFBFBD><EFBFBD>1 CHAR(10),
|
||||||
OUT <20><><EFBFBD><EFBFBD><EFBFBD>2 CHAR(10))
|
OUT <20><><EFBFBD><EFBFBD><EFBFBD>2 CHAR(10))
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -751,7 +751,7 @@ COLLATION(_utf8 'текст') AS c6,
|
|||||||
@@character_set_client AS c8;
|
@@character_set_client AS c8;
|
||||||
SET <20><><EFBFBD><EFBFBD><EFBFBD>1 = 'a';
|
SET <20><><EFBFBD><EFBFBD><EFBFBD>1 = 'a';
|
||||||
SET <20><><EFBFBD><EFBFBD><EFBFBD>2 = 'b';
|
SET <20><><EFBFBD><EFBFBD><EFBFBD>2 = 'b';
|
||||||
END */;;
|
END ;;
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||||||
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
||||||
@ -768,7 +768,7 @@ ALTER DATABASE `mysqltest1` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
|
|||||||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||||||
/*!50003 SET sql_mode = '' */ ;
|
/*!50003 SET sql_mode = '' */ ;
|
||||||
DELIMITER ;;
|
DELIMITER ;;
|
||||||
/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `p2`(
|
CREATE DEFINER=`root`@`localhost` PROCEDURE `p2`(
|
||||||
INOUT <20><><EFBFBD><EFBFBD><EFBFBD>1 CHAR(10) CHARACTER SET utf8,
|
INOUT <20><><EFBFBD><EFBFBD><EFBFBD>1 CHAR(10) CHARACTER SET utf8,
|
||||||
OUT <20><><EFBFBD><EFBFBD><EFBFBD>2 CHAR(10) CHARACTER SET utf8)
|
OUT <20><><EFBFBD><EFBFBD><EFBFBD>2 CHAR(10) CHARACTER SET utf8)
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -785,7 +785,7 @@ COLLATION(_utf8 'текст') AS c6,
|
|||||||
@@character_set_client AS c8;
|
@@character_set_client AS c8;
|
||||||
SET <20><><EFBFBD><EFBFBD><EFBFBD>1 = 'a';
|
SET <20><><EFBFBD><EFBFBD><EFBFBD>1 = 'a';
|
||||||
SET <20><><EFBFBD><EFBFBD><EFBFBD>2 = 'b';
|
SET <20><><EFBFBD><EFBFBD><EFBFBD>2 = 'b';
|
||||||
END */;;
|
END ;;
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||||||
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
||||||
@ -810,7 +810,7 @@ ALTER DATABASE `mysqltest2` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
|
|||||||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||||||
/*!50003 SET sql_mode = '' */ ;
|
/*!50003 SET sql_mode = '' */ ;
|
||||||
DELIMITER ;;
|
DELIMITER ;;
|
||||||
/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `p3`(
|
CREATE DEFINER=`root`@`localhost` PROCEDURE `p3`(
|
||||||
INOUT <20><><EFBFBD><EFBFBD><EFBFBD>1 CHAR(10),
|
INOUT <20><><EFBFBD><EFBFBD><EFBFBD>1 CHAR(10),
|
||||||
OUT <20><><EFBFBD><EFBFBD><EFBFBD>2 CHAR(10))
|
OUT <20><><EFBFBD><EFBFBD><EFBFBD>2 CHAR(10))
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -827,7 +827,7 @@ COLLATION(_utf8 'текст') AS c6,
|
|||||||
@@character_set_client AS c8;
|
@@character_set_client AS c8;
|
||||||
SET <20><><EFBFBD><EFBFBD><EFBFBD>1 = 'a';
|
SET <20><><EFBFBD><EFBFBD><EFBFBD>1 = 'a';
|
||||||
SET <20><><EFBFBD><EFBFBD><EFBFBD>2 = 'b';
|
SET <20><><EFBFBD><EFBFBD><EFBFBD>2 = 'b';
|
||||||
END */;;
|
END ;;
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||||||
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
||||||
@ -844,7 +844,7 @@ ALTER DATABASE `mysqltest2` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
|
|||||||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||||||
/*!50003 SET sql_mode = '' */ ;
|
/*!50003 SET sql_mode = '' */ ;
|
||||||
DELIMITER ;;
|
DELIMITER ;;
|
||||||
/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `p4`(
|
CREATE DEFINER=`root`@`localhost` PROCEDURE `p4`(
|
||||||
INOUT <20><><EFBFBD><EFBFBD><EFBFBD>1 CHAR(10) CHARACTER SET utf8,
|
INOUT <20><><EFBFBD><EFBFBD><EFBFBD>1 CHAR(10) CHARACTER SET utf8,
|
||||||
OUT <20><><EFBFBD><EFBFBD><EFBFBD>2 CHAR(10) CHARACTER SET utf8)
|
OUT <20><><EFBFBD><EFBFBD><EFBFBD>2 CHAR(10) CHARACTER SET utf8)
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -861,7 +861,7 @@ COLLATION(_utf8 'текст') AS c6,
|
|||||||
@@character_set_client AS c8;
|
@@character_set_client AS c8;
|
||||||
SET <20><><EFBFBD><EFBFBD><EFBFBD>1 = 'a';
|
SET <20><><EFBFBD><EFBFBD><EFBFBD>1 = 'a';
|
||||||
SET <20><><EFBFBD><EFBFBD><EFBFBD>2 = 'b';
|
SET <20><><EFBFBD><EFBFBD><EFBFBD>2 = 'b';
|
||||||
END */;;
|
END ;;
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||||||
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
||||||
|
@ -734,7 +734,7 @@ ALTER DATABASE `mysqltest1` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
|
|||||||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||||||
/*!50003 SET sql_mode = '' */ ;
|
/*!50003 SET sql_mode = '' */ ;
|
||||||
DELIMITER ;;
|
DELIMITER ;;
|
||||||
/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `p1`(
|
CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`(
|
||||||
INOUT парам1 CHAR(10),
|
INOUT парам1 CHAR(10),
|
||||||
OUT парам2 CHAR(10))
|
OUT парам2 CHAR(10))
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -751,7 +751,7 @@ COLLATION(_koi8r '
|
|||||||
@@character_set_client AS c8;
|
@@character_set_client AS c8;
|
||||||
SET парам1 = 'a';
|
SET парам1 = 'a';
|
||||||
SET парам2 = 'b';
|
SET парам2 = 'b';
|
||||||
END */;;
|
END ;;
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||||||
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
||||||
@ -768,7 +768,7 @@ ALTER DATABASE `mysqltest1` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
|
|||||||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||||||
/*!50003 SET sql_mode = '' */ ;
|
/*!50003 SET sql_mode = '' */ ;
|
||||||
DELIMITER ;;
|
DELIMITER ;;
|
||||||
/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `p2`(
|
CREATE DEFINER=`root`@`localhost` PROCEDURE `p2`(
|
||||||
INOUT парам1 CHAR(10) CHARACTER SET utf8,
|
INOUT парам1 CHAR(10) CHARACTER SET utf8,
|
||||||
OUT парам2 CHAR(10) CHARACTER SET utf8)
|
OUT парам2 CHAR(10) CHARACTER SET utf8)
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -785,7 +785,7 @@ COLLATION(_koi8r '
|
|||||||
@@character_set_client AS c8;
|
@@character_set_client AS c8;
|
||||||
SET парам1 = 'a';
|
SET парам1 = 'a';
|
||||||
SET парам2 = 'b';
|
SET парам2 = 'b';
|
||||||
END */;;
|
END ;;
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||||||
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
||||||
@ -810,7 +810,7 @@ ALTER DATABASE `mysqltest2` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
|
|||||||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||||||
/*!50003 SET sql_mode = '' */ ;
|
/*!50003 SET sql_mode = '' */ ;
|
||||||
DELIMITER ;;
|
DELIMITER ;;
|
||||||
/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `p3`(
|
CREATE DEFINER=`root`@`localhost` PROCEDURE `p3`(
|
||||||
INOUT парам1 CHAR(10),
|
INOUT парам1 CHAR(10),
|
||||||
OUT парам2 CHAR(10))
|
OUT парам2 CHAR(10))
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -827,7 +827,7 @@ COLLATION(_koi8r '
|
|||||||
@@character_set_client AS c8;
|
@@character_set_client AS c8;
|
||||||
SET парам1 = 'a';
|
SET парам1 = 'a';
|
||||||
SET парам2 = 'b';
|
SET парам2 = 'b';
|
||||||
END */;;
|
END ;;
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||||||
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
||||||
@ -844,7 +844,7 @@ ALTER DATABASE `mysqltest2` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
|
|||||||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||||||
/*!50003 SET sql_mode = '' */ ;
|
/*!50003 SET sql_mode = '' */ ;
|
||||||
DELIMITER ;;
|
DELIMITER ;;
|
||||||
/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `p4`(
|
CREATE DEFINER=`root`@`localhost` PROCEDURE `p4`(
|
||||||
INOUT парам1 CHAR(10) CHARACTER SET utf8,
|
INOUT парам1 CHAR(10) CHARACTER SET utf8,
|
||||||
OUT парам2 CHAR(10) CHARACTER SET utf8)
|
OUT парам2 CHAR(10) CHARACTER SET utf8)
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -861,7 +861,7 @@ COLLATION(_koi8r '
|
|||||||
@@character_set_client AS c8;
|
@@character_set_client AS c8;
|
||||||
SET парам1 = 'a';
|
SET парам1 = 'a';
|
||||||
SET парам2 = 'b';
|
SET парам2 = 'b';
|
||||||
END */;;
|
END ;;
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||||||
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
||||||
|
@ -441,3 +441,16 @@ ERROR 21000: Subquery returns more than 1 row
|
|||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
DROP VIEW v1, v2;
|
DROP VIEW v1, v2;
|
||||||
set optimizer_switch=@save_derived_optimizer_switch;
|
set optimizer_switch=@save_derived_optimizer_switch;
|
||||||
|
create table t1 (n bigint(20) unsigned, d1 datetime, d2 datetime, key (d1));
|
||||||
|
insert t1 values (2085,'2012-01-01 00:00:00','2013-01-01 00:00:00');
|
||||||
|
insert t1 values (2084,'2012-02-01 00:00:00','2013-01-01 00:00:00');
|
||||||
|
insert t1 values (2088,'2012-03-01 00:00:00','2013-01-01 00:00:00');
|
||||||
|
select * from (
|
||||||
|
select n, d1, d2, @result := 0 as result
|
||||||
|
from t1
|
||||||
|
where d1 < '2012-12-12 12:12:12' and n in (2085, 2084) order by d2 asc
|
||||||
|
) as calculated_result;
|
||||||
|
n d1 d2 result
|
||||||
|
2085 2012-01-01 00:00:00 2013-01-01 00:00:00 0
|
||||||
|
2084 2012-02-01 00:00:00 2013-01-01 00:00:00 0
|
||||||
|
drop table t1;
|
||||||
|
@ -2164,6 +2164,57 @@ a
|
|||||||
set optimizer_switch=@save3912_optimizer_switch;
|
set optimizer_switch=@save3912_optimizer_switch;
|
||||||
drop table t1, t2, t3;
|
drop table t1, t2, t3;
|
||||||
#
|
#
|
||||||
|
# MDEV-4209: equi-join on BLOB column from materialized view
|
||||||
|
# or derived table
|
||||||
|
#
|
||||||
|
set @save_optimizer_switch=@@optimizer_switch;
|
||||||
|
set optimizer_switch='derived_with_keys=on';
|
||||||
|
CREATE TABLE t1 (c1 text, c2 int);
|
||||||
|
INSERT INTO t1 VALUES ('a',1), ('c',3), ('g',7), ('d',4), ('c',3);
|
||||||
|
CREATE TABLE t2 (c1 text, c2 int);
|
||||||
|
INSERT INTO t2 VALUES ('b',2), ('c',3);
|
||||||
|
CREATE ALGORITHM=TEMPTABLE VIEW v1 AS SELECT * FROM t1;
|
||||||
|
EXPLAIN EXTENDED
|
||||||
|
SELECT v1.c1, v1.c2 FROM v1, t2 WHERE v1.c1=t2.c1 AND v1.c2=t2.c2;
|
||||||
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
|
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||||
|
1 PRIMARY <derived2> ref key0 key0 5 test.t2.c2 2 100.00 Using where
|
||||||
|
2 DERIVED t1 ALL NULL NULL NULL NULL 5 100.00
|
||||||
|
Warnings:
|
||||||
|
Note 1003 select `v1`.`c1` AS `c1`,`v1`.`c2` AS `c2` from `test`.`v1` join `test`.`t2` where ((`v1`.`c1` = `test`.`t2`.`c1`) and (`v1`.`c2` = `test`.`t2`.`c2`))
|
||||||
|
SELECT v1.c1, v1.c2 FROM v1, t2 WHERE v1.c1=t2.c1 AND v1.c2=t2.c2;
|
||||||
|
c1 c2
|
||||||
|
c 3
|
||||||
|
c 3
|
||||||
|
EXPLAIN EXTENDED
|
||||||
|
SELECT t2.c1, t2.c2 FROM (SELECT c1 g, MAX(c2) m FROM t1 GROUP BY c1) t, t2
|
||||||
|
WHERE t.g=t2.c1 AND t.m=t2.c2;
|
||||||
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
|
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||||
|
1 PRIMARY <derived2> ref key0 key0 5 test.t2.c2 2 100.00 Using where
|
||||||
|
2 DERIVED t1 ALL NULL NULL NULL NULL 5 100.00 Using temporary; Using filesort
|
||||||
|
Warnings:
|
||||||
|
Note 1003 select `test`.`t2`.`c1` AS `c1`,`test`.`t2`.`c2` AS `c2` from (select `test`.`t1`.`c1` AS `g`,max(`test`.`t1`.`c2`) AS `m` from `test`.`t1` group by `test`.`t1`.`c1`) `t` join `test`.`t2` where ((`t`.`g` = `test`.`t2`.`c1`) and (`t`.`m` = `test`.`t2`.`c2`))
|
||||||
|
SELECT t2.c1, t2.c2 FROM (SELECT c1 g, MAX(c2) m FROM t1 GROUP BY c1) t, t2
|
||||||
|
WHERE t.g=t2.c1 AND t.m=t2.c2;
|
||||||
|
c1 c2
|
||||||
|
c 3
|
||||||
|
EXPLAIN EXTENDED
|
||||||
|
SELECT v1.c1, v1.c2, t2.c1, t2.c2 FROM v1, t2 WHERE v1.c1=t2.c1;
|
||||||
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
|
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00
|
||||||
|
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 5 100.00 Using where; Using join buffer (flat, BNL join)
|
||||||
|
2 DERIVED t1 ALL NULL NULL NULL NULL 5 100.00
|
||||||
|
Warnings:
|
||||||
|
Note 1003 select `v1`.`c1` AS `c1`,`v1`.`c2` AS `c2`,`test`.`t2`.`c1` AS `c1`,`test`.`t2`.`c2` AS `c2` from `test`.`v1` join `test`.`t2` where (`v1`.`c1` = `test`.`t2`.`c1`)
|
||||||
|
SELECT v1.c1, v1.c2, t2.c1, t2.c2 FROM v1, t2 WHERE v1.c1=t2.c1;
|
||||||
|
c1 c2 c1 c2
|
||||||
|
c 3 c 3
|
||||||
|
c 3 c 3
|
||||||
|
DROP VIEW v1;
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
set optimizer_switch=@save_optimizer_switch;
|
||||||
|
#
|
||||||
# end of 5.3 tests
|
# end of 5.3 tests
|
||||||
#
|
#
|
||||||
set optimizer_switch=@exit_optimizer_switch;
|
set optimizer_switch=@exit_optimizer_switch;
|
||||||
|
@ -1851,7 +1851,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 range a a 4 NULL 4 100.00 Using where; Using index; Using join buffer (flat, BNL join)
|
1 PRIMARY t1 range a a 4 NULL 4 100.00 Using where; Using index; Using join buffer (flat, BNL join)
|
||||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 100.00 Using where
|
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 100.00 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select max(`test`.`t1`.`a`) AS `MAX(a)` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`b` = 2) and (`test`.`t2`.`a` = 1) and (`test`.`t1`.`a` < 10))
|
Note 1003 select max(`test`.`t1`.`a`) AS `MAX(a)` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`a` = 1) and (`test`.`t2`.`b` = 2) and (`test`.`t1`.`a` < 10))
|
||||||
SELECT MAX(a) FROM t1 WHERE (1,2) IN (SELECT a,b FROM t2 WHERE b<5) and a<10;
|
SELECT MAX(a) FROM t1 WHERE (1,2) IN (SELECT a,b FROM t2 WHERE b<5) and a<10;
|
||||||
MAX(a)
|
MAX(a)
|
||||||
NULL
|
NULL
|
||||||
|
@ -758,7 +758,7 @@ SPATIAL KEY(g)
|
|||||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(1 2, 2 3)')),(GeomFromText('LineString(1 2, 2 4)'));
|
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(1 2, 2 3)')),(GeomFromText('LineString(1 2, 2 4)'));
|
||||||
drop table t1;
|
drop table t1;
|
||||||
CREATE TABLE t1 (
|
CREATE TABLE t1 (
|
||||||
line LINESTRING NOT NULL,
|
line GEOMETRY NOT NULL,
|
||||||
kind ENUM('po', 'pp', 'rr', 'dr', 'rd', 'ts', 'cl') NOT NULL DEFAULT 'po',
|
kind ENUM('po', 'pp', 'rr', 'dr', 'rd', 'ts', 'cl') NOT NULL DEFAULT 'po',
|
||||||
name VARCHAR(32),
|
name VARCHAR(32),
|
||||||
SPATIAL KEY (line)
|
SPATIAL KEY (line)
|
||||||
@ -1553,7 +1553,7 @@ End of 5.0 tests.
|
|||||||
# Bug #57323/11764487: myisam corruption with insert ignore
|
# Bug #57323/11764487: myisam corruption with insert ignore
|
||||||
# and invalid spatial data
|
# and invalid spatial data
|
||||||
#
|
#
|
||||||
CREATE TABLE t1(a LINESTRING NOT NULL, b GEOMETRY NOT NULL,
|
CREATE TABLE t1(a POINT NOT NULL, b GEOMETRY NOT NULL,
|
||||||
SPATIAL KEY(a), SPATIAL KEY(b)) ENGINE=MyISAM;
|
SPATIAL KEY(a), SPATIAL KEY(b)) ENGINE=MyISAM;
|
||||||
INSERT INTO t1 VALUES(GEOMFROMTEXT("point (0 0)"), GEOMFROMTEXT("point (1 1)"));
|
INSERT INTO t1 VALUES(GEOMFROMTEXT("point (0 0)"), GEOMFROMTEXT("point (1 1)"));
|
||||||
INSERT IGNORE INTO t1 SET a=GEOMFROMTEXT("point (-6 0)"), b=GEOMFROMTEXT("error");
|
INSERT IGNORE INTO t1 SET a=GEOMFROMTEXT("point (-6 0)"), b=GEOMFROMTEXT("error");
|
||||||
|
@ -1047,7 +1047,7 @@ SET @a=0x00000000030000000100000000000000000000000000144000000000000014400000000
|
|||||||
SET @a=POLYFROMWKB(@a);
|
SET @a=POLYFROMWKB(@a);
|
||||||
SET @a=0x00000000030000000000000000000000000000000000144000000000000014400000000000001840000000000000184000000000000014400000000000001440;
|
SET @a=0x00000000030000000000000000000000000000000000144000000000000014400000000000001840000000000000184000000000000014400000000000001440;
|
||||||
SET @a=POLYFROMWKB(@a);
|
SET @a=POLYFROMWKB(@a);
|
||||||
create table t1(a polygon NOT NULL)engine=myisam;
|
create table t1(a geometry NOT NULL)engine=myisam;
|
||||||
insert into t1 values (geomfromtext("point(0 1)"));
|
insert into t1 values (geomfromtext("point(0 1)"));
|
||||||
insert into t1 values (geomfromtext("point(1 0)"));
|
insert into t1 values (geomfromtext("point(1 0)"));
|
||||||
select * from (select polygon(t1.a) as p from t1 order by t1.a) d;
|
select * from (select polygon(t1.a) as p from t1 order by t1.a) d;
|
||||||
@ -1491,4 +1491,26 @@ SELECT 1 FROM g1 WHERE a >= ANY
|
|||||||
(SELECT 1 FROM g1 WHERE a = geomfromtext('') OR a) ;
|
(SELECT 1 FROM g1 WHERE a = geomfromtext('') OR a) ;
|
||||||
1
|
1
|
||||||
DROP TABLE g1;
|
DROP TABLE g1;
|
||||||
|
#
|
||||||
|
# MDEV-3819 missing constraints for spatial column types
|
||||||
|
#
|
||||||
|
create table t1 (pt point);
|
||||||
|
insert into t1 values(Geomfromtext('POLYGON((1 1, 2 2, 2 1, 1 1))'));
|
||||||
|
ERROR 22007: Incorrect POINT value: 'POLYGON' for column 'pt' at row 1
|
||||||
|
drop table t1;
|
||||||
|
#
|
||||||
|
# TODO-424 geometry query crashes server
|
||||||
|
#
|
||||||
|
select astext(0x0100000000030000000100000000000010);
|
||||||
|
astext(0x0100000000030000000100000000000010)
|
||||||
|
NULL
|
||||||
|
select st_area(0x0100000000030000000100000000000010);
|
||||||
|
st_area(0x0100000000030000000100000000000010)
|
||||||
|
NULL
|
||||||
|
select astext(st_exteriorring(0x0100000000030000000100000000000010));
|
||||||
|
astext(st_exteriorring(0x0100000000030000000100000000000010))
|
||||||
|
NULL
|
||||||
|
select astext(st_centroid(0x0100000000030000000100000000000010));
|
||||||
|
astext(st_centroid(0x0100000000030000000100000000000010))
|
||||||
|
NULL
|
||||||
End of 5.5 tests
|
End of 5.5 tests
|
||||||
|
@ -1946,6 +1946,250 @@ Warning 1292 Truncated incorrect INTEGER value: 'K'
|
|||||||
Warning 1292 Truncated incorrect INTEGER value: 'jxW<'
|
Warning 1292 Truncated incorrect INTEGER value: 'jxW<'
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
SET SQL_BIG_TABLES=0;
|
SET SQL_BIG_TABLES=0;
|
||||||
|
#
|
||||||
|
# MDEV-641 LP:1002108 - Wrong result (or crash) from a query with duplicated field in the group list and a limit clause
|
||||||
|
# Bug#11761078: 53534: INCORRECT 'SELECT SQL_BIG_RESULT...'
|
||||||
|
# WITH GROUP BY ON DUPLICATED FIELDS
|
||||||
|
#
|
||||||
|
CREATE TABLE t1(
|
||||||
|
col1 int,
|
||||||
|
UNIQUE INDEX idx (col1));
|
||||||
|
INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),
|
||||||
|
(11),(12),(13),(14),(15),(16),(17),(18),(19),(20);
|
||||||
|
EXPLAIN SELECT col1 AS field1, col1 AS field2
|
||||||
|
FROM t1 GROUP BY field1, field2;;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 index NULL idx 5 NULL 20 Using index; Using temporary; Using filesort
|
||||||
|
FLUSH STATUS;
|
||||||
|
SELECT col1 AS field1, col1 AS field2
|
||||||
|
FROM t1 GROUP BY field1, field2;;
|
||||||
|
field1 field2
|
||||||
|
1 1
|
||||||
|
2 2
|
||||||
|
3 3
|
||||||
|
4 4
|
||||||
|
5 5
|
||||||
|
6 6
|
||||||
|
7 7
|
||||||
|
8 8
|
||||||
|
9 9
|
||||||
|
10 10
|
||||||
|
11 11
|
||||||
|
12 12
|
||||||
|
13 13
|
||||||
|
14 14
|
||||||
|
15 15
|
||||||
|
16 16
|
||||||
|
17 17
|
||||||
|
18 18
|
||||||
|
19 19
|
||||||
|
20 20
|
||||||
|
SHOW SESSION STATUS LIKE 'Sort_scan%';
|
||||||
|
Variable_name Value
|
||||||
|
Sort_scan 1
|
||||||
|
EXPLAIN SELECT SQL_BIG_RESULT col1 AS field1, col1 AS field2
|
||||||
|
FROM t1 GROUP BY field1, field2;;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 index NULL idx 5 NULL 20 Using index; Using filesort
|
||||||
|
FLUSH STATUS;
|
||||||
|
SELECT SQL_BIG_RESULT col1 AS field1, col1 AS field2
|
||||||
|
FROM t1 GROUP BY field1, field2;;
|
||||||
|
field1 field2
|
||||||
|
1 1
|
||||||
|
2 2
|
||||||
|
3 3
|
||||||
|
4 4
|
||||||
|
5 5
|
||||||
|
6 6
|
||||||
|
7 7
|
||||||
|
8 8
|
||||||
|
9 9
|
||||||
|
10 10
|
||||||
|
11 11
|
||||||
|
12 12
|
||||||
|
13 13
|
||||||
|
14 14
|
||||||
|
15 15
|
||||||
|
16 16
|
||||||
|
17 17
|
||||||
|
18 18
|
||||||
|
19 19
|
||||||
|
20 20
|
||||||
|
SHOW SESSION STATUS LIKE 'Sort_scan%';
|
||||||
|
Variable_name Value
|
||||||
|
Sort_scan 1
|
||||||
|
CREATE VIEW v1 AS SELECT * FROM t1;
|
||||||
|
SELECT SQL_BIG_RESULT col1 AS field1, col1 AS field2
|
||||||
|
FROM v1
|
||||||
|
GROUP BY field1, field2;
|
||||||
|
field1 field2
|
||||||
|
1 1
|
||||||
|
2 2
|
||||||
|
3 3
|
||||||
|
4 4
|
||||||
|
5 5
|
||||||
|
6 6
|
||||||
|
7 7
|
||||||
|
8 8
|
||||||
|
9 9
|
||||||
|
10 10
|
||||||
|
11 11
|
||||||
|
12 12
|
||||||
|
13 13
|
||||||
|
14 14
|
||||||
|
15 15
|
||||||
|
16 16
|
||||||
|
17 17
|
||||||
|
18 18
|
||||||
|
19 19
|
||||||
|
20 20
|
||||||
|
SELECT SQL_BIG_RESULT tbl1.col1 AS field1, tbl2.col1 AS field2
|
||||||
|
FROM t1 as tbl1, t1 as tbl2
|
||||||
|
GROUP BY field1, field2
|
||||||
|
LIMIT 3;
|
||||||
|
field1 field2
|
||||||
|
1 1
|
||||||
|
1 2
|
||||||
|
1 3
|
||||||
|
explain
|
||||||
|
select col1 f1, col1 f2 from t1 order by f2, f1;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 index NULL idx 5 NULL 20 Using index; Using filesort
|
||||||
|
select col1 f1, col1 f2 from t1 order by f2, f1;
|
||||||
|
f1 f2
|
||||||
|
1 1
|
||||||
|
2 2
|
||||||
|
3 3
|
||||||
|
4 4
|
||||||
|
5 5
|
||||||
|
6 6
|
||||||
|
7 7
|
||||||
|
8 8
|
||||||
|
9 9
|
||||||
|
10 10
|
||||||
|
11 11
|
||||||
|
12 12
|
||||||
|
13 13
|
||||||
|
14 14
|
||||||
|
15 15
|
||||||
|
16 16
|
||||||
|
17 17
|
||||||
|
18 18
|
||||||
|
19 19
|
||||||
|
20 20
|
||||||
|
explain
|
||||||
|
select col1 f1, col1 f2 from t1 group by f2 order by f2, f1;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 range NULL idx 5 NULL 7 Using index for group-by; Using temporary; Using filesort
|
||||||
|
select col1 f1, col1 f2 from t1 group by f2 order by f2, f1;
|
||||||
|
f1 f2
|
||||||
|
1 1
|
||||||
|
2 2
|
||||||
|
3 3
|
||||||
|
4 4
|
||||||
|
5 5
|
||||||
|
6 6
|
||||||
|
7 7
|
||||||
|
8 8
|
||||||
|
9 9
|
||||||
|
10 10
|
||||||
|
11 11
|
||||||
|
12 12
|
||||||
|
13 13
|
||||||
|
14 14
|
||||||
|
15 15
|
||||||
|
16 16
|
||||||
|
17 17
|
||||||
|
18 18
|
||||||
|
19 19
|
||||||
|
20 20
|
||||||
|
explain
|
||||||
|
select col1 f1, col1 f2 from t1 group by f1, f2 order by f2, f1;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 index NULL idx 5 NULL 20 Using index; Using temporary; Using filesort
|
||||||
|
select col1 f1, col1 f2 from t1 group by f1, f2 order by f2, f1;
|
||||||
|
f1 f2
|
||||||
|
1 1
|
||||||
|
2 2
|
||||||
|
3 3
|
||||||
|
4 4
|
||||||
|
5 5
|
||||||
|
6 6
|
||||||
|
7 7
|
||||||
|
8 8
|
||||||
|
9 9
|
||||||
|
10 10
|
||||||
|
11 11
|
||||||
|
12 12
|
||||||
|
13 13
|
||||||
|
14 14
|
||||||
|
15 15
|
||||||
|
16 16
|
||||||
|
17 17
|
||||||
|
18 18
|
||||||
|
19 19
|
||||||
|
20 20
|
||||||
|
CREATE TABLE t2(
|
||||||
|
col1 int,
|
||||||
|
col2 int,
|
||||||
|
UNIQUE INDEX idx (col1, col2));
|
||||||
|
INSERT INTO t2(col1, col2) VALUES
|
||||||
|
(1,20),(2,19),(3,18),(4,17),(5,16),(6,15),(7,14),(8,13),(9,12),(10,11),
|
||||||
|
(11,10),(12,9),(13,8),(14,7),(15,6),(16,5),(17,4),(18,3),(19,2),(20,1);
|
||||||
|
explain
|
||||||
|
select col1 f1, col2 f2, col1 f3 from t2 group by f1, f2, f3;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t2 index NULL idx 10 NULL 20 Using index; Using temporary; Using filesort
|
||||||
|
select col1 f1, col2 f2, col1 f3 from t2 group by f1, f2, f3;
|
||||||
|
f1 f2 f3
|
||||||
|
1 20 1
|
||||||
|
2 19 2
|
||||||
|
3 18 3
|
||||||
|
4 17 4
|
||||||
|
5 16 5
|
||||||
|
6 15 6
|
||||||
|
7 14 7
|
||||||
|
8 13 8
|
||||||
|
9 12 9
|
||||||
|
10 11 10
|
||||||
|
11 10 11
|
||||||
|
12 9 12
|
||||||
|
13 8 13
|
||||||
|
14 7 14
|
||||||
|
15 6 15
|
||||||
|
16 5 16
|
||||||
|
17 4 17
|
||||||
|
18 3 18
|
||||||
|
19 2 19
|
||||||
|
20 1 20
|
||||||
|
explain
|
||||||
|
select col1 f1, col2 f2, col1 f3 from t2 order by f1, f2, f3;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t2 index NULL idx 10 NULL 20 Using index; Using filesort
|
||||||
|
select col1 f1, col2 f2, col1 f3 from t2 order by f1, f2, f3;
|
||||||
|
f1 f2 f3
|
||||||
|
1 20 1
|
||||||
|
2 19 2
|
||||||
|
3 18 3
|
||||||
|
4 17 4
|
||||||
|
5 16 5
|
||||||
|
6 15 6
|
||||||
|
7 14 7
|
||||||
|
8 13 8
|
||||||
|
9 12 9
|
||||||
|
10 11 10
|
||||||
|
11 10 11
|
||||||
|
12 9 12
|
||||||
|
13 8 13
|
||||||
|
14 7 14
|
||||||
|
15 6 15
|
||||||
|
16 5 16
|
||||||
|
17 4 17
|
||||||
|
18 3 18
|
||||||
|
19 2 19
|
||||||
|
20 1 20
|
||||||
|
DROP VIEW v1;
|
||||||
|
DROP TABLE t1, t2;
|
||||||
# End of 5.1 tests
|
# End of 5.1 tests
|
||||||
#
|
#
|
||||||
# LP bug#694450 Wrong result with non-standard GROUP BY + ORDER BY
|
# LP bug#694450 Wrong result with non-standard GROUP BY + ORDER BY
|
||||||
|
@ -1714,7 +1714,7 @@ explain extended select distinct a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a
|
|||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t1 index NULL idx_t1_1 163 NULL 128 50.78 Using where; Using index
|
1 SIMPLE t1 index NULL idx_t1_1 163 NULL 128 50.78 Using where; Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select distinct `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c` from `test`.`t1` where ((`test`.`t1`.`c` = 'i121') and (`test`.`t1`.`b` = 'a') and (`test`.`t1`.`a2` >= 'b'))
|
Note 1003 select distinct `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c` from `test`.`t1` where ((`test`.`t1`.`b` = 'a') and (`test`.`t1`.`c` = 'i121') and (`test`.`t1`.`a2` >= 'b'))
|
||||||
explain select distinct a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c');
|
explain select distinct a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 Using where; Using index for group-by
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 Using where; Using index for group-by
|
||||||
@ -1731,7 +1731,7 @@ explain extended select distinct a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a
|
|||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t2 index NULL idx_t2_1 163 NULL 164 50.61 Using where; Using index
|
1 SIMPLE t2 index NULL idx_t2_1 163 NULL 164 50.61 Using where; Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select distinct `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t2` where ((`test`.`t2`.`c` = 'i121') and (`test`.`t2`.`b` = 'a') and (`test`.`t2`.`a2` >= 'b'))
|
Note 1003 select distinct `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t2` where ((`test`.`t2`.`b` = 'a') and (`test`.`t2`.`c` = 'i121') and (`test`.`t2`.`a2` >= 'b'))
|
||||||
explain select distinct a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c');
|
explain select distinct a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by
|
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by
|
||||||
@ -3187,6 +3187,106 @@ a b
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
End of 5.1 tests
|
End of 5.1 tests
|
||||||
#
|
#
|
||||||
|
# MDEV-765 lp:825075 - Wrong result with GROUP BY + multipart key + MIN/MAX loose scan
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a varchar(1), b varchar(1), KEY (b,a));
|
||||||
|
INSERT INTO t1 VALUES
|
||||||
|
('0',NULL),('9',NULL),('8','c'),('4','d'),('7','d'),(NULL,'f'),
|
||||||
|
('7','f'),('8','g'),(NULL,'j');
|
||||||
|
explain
|
||||||
|
SELECT max(a) , b FROM t1 WHERE a IS NULL OR b = 'z' GROUP BY b;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 index b b 8 NULL 9 Using where; Using index
|
||||||
|
SELECT max(a) , b FROM t1 WHERE a IS NULL OR b = 'z' GROUP BY b;
|
||||||
|
max(a) b
|
||||||
|
NULL f
|
||||||
|
NULL j
|
||||||
|
explain
|
||||||
|
SELECT b, min(a) FROM t1 WHERE a = '7' OR b = 'z' GROUP BY b;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 index b b 8 NULL 9 Using where; Using index
|
||||||
|
SELECT b, min(a) FROM t1 WHERE a = '7' OR b = 'z' GROUP BY b;
|
||||||
|
b min(a)
|
||||||
|
d 7
|
||||||
|
f 7
|
||||||
|
explain
|
||||||
|
SELECT b, min(a) FROM t1 WHERE (a = b OR b = 'd' OR b is NULL) GROUP BY b;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 index b b 8 NULL 9 Using where; Using index
|
||||||
|
SELECT b, min(a) FROM t1 WHERE (a = b OR b = 'd' OR b is NULL) GROUP BY b;
|
||||||
|
b min(a)
|
||||||
|
NULL 0
|
||||||
|
d 4
|
||||||
|
explain
|
||||||
|
SELECT b, min(a) FROM t1 WHERE a > ('0' = b) AND b = 'z' GROUP BY b;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 ref b b 4 const 1 Using where; Using index
|
||||||
|
SELECT b, min(a) FROM t1 WHERE a > ('0' = b) AND b = 'z' GROUP BY b;
|
||||||
|
b min(a)
|
||||||
|
explain
|
||||||
|
SELECT b, min(a) FROM t1 WHERE a > '0' AND (b < (a = '7')) GROUP BY b;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 index NULL b 8 NULL 9 Using where; Using index
|
||||||
|
SELECT b, min(a) FROM t1 WHERE a > '0' AND (b < (a = '7')) GROUP BY b;
|
||||||
|
b min(a)
|
||||||
|
d 7
|
||||||
|
f 7
|
||||||
|
Warnings:
|
||||||
|
Warning 1292 Truncated incorrect DOUBLE value: 'c'
|
||||||
|
Warning 1292 Truncated incorrect DOUBLE value: 'd'
|
||||||
|
Warning 1292 Truncated incorrect DOUBLE value: 'd'
|
||||||
|
Warning 1292 Truncated incorrect DOUBLE value: 'f'
|
||||||
|
Warning 1292 Truncated incorrect DOUBLE value: 'g'
|
||||||
|
explain
|
||||||
|
SELECT b, min(a) FROM t1 WHERE (a > '0' AND (a > '1' OR b = 'd')) GROUP BY b;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 index b b 8 NULL 9 Using where; Using index
|
||||||
|
SELECT b, min(a) FROM t1 WHERE (a > '0' AND (a > '1' OR b = 'd')) GROUP BY b;
|
||||||
|
b min(a)
|
||||||
|
NULL 9
|
||||||
|
c 8
|
||||||
|
d 4
|
||||||
|
f 7
|
||||||
|
g 8
|
||||||
|
drop table t1;
|
||||||
|
#
|
||||||
|
# MDEV-4140 Wrong result with GROUP BY + multipart key + MIN/MAX loose scan and a subquery
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a int, b int, KEY (b, a)) ;
|
||||||
|
INSERT INTO t1 VALUES (0,99),(9,99),(4,0),(7,0),(99,0),(7,0),(8,0),(99,0),(1,0);
|
||||||
|
CREATE TABLE t2 (c int) ;
|
||||||
|
INSERT INTO t2 VALUES (0),(1);
|
||||||
|
EXPLAIN
|
||||||
|
SELECT MIN(a), b FROM t1 WHERE a > 0 GROUP BY b;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 range NULL b 10 NULL 10 Using where; Using index for group-by
|
||||||
|
SELECT MIN(a), b FROM t1 WHERE a > 0 GROUP BY b;
|
||||||
|
MIN(a) b
|
||||||
|
1 0
|
||||||
|
9 99
|
||||||
|
EXPLAIN
|
||||||
|
SELECT MIN(a), b FROM t1 WHERE a > ( SELECT c FROM t2 WHERE c = 0 ) GROUP BY b;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY t1 range NULL b 10 NULL 10 Using where; Using index for group-by
|
||||||
|
2 SUBQUERY t2 ALL NULL NULL NULL NULL 2 Using where
|
||||||
|
SELECT MIN(a), b FROM t1 WHERE a > ( SELECT c FROM t2 WHERE c = 0 ) GROUP BY b;
|
||||||
|
MIN(a) b
|
||||||
|
1 0
|
||||||
|
9 99
|
||||||
|
EXPLAIN
|
||||||
|
SELECT MIN(a), b FROM t1 WHERE a > ( SELECT min(c) FROM t2, t1 t1a, t1 t1b WHERE c = 0 ) GROUP BY b;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY t1 index NULL b 10 NULL 9 Using where; Using index
|
||||||
|
2 SUBQUERY t2 ALL NULL NULL NULL NULL 2 Using where
|
||||||
|
2 SUBQUERY t1a index NULL b 10 NULL 9 Using index; Using join buffer (flat, BNL join)
|
||||||
|
2 SUBQUERY t1b index NULL b 10 NULL 9 Using index; Using join buffer (incremental, BNL join)
|
||||||
|
SELECT MIN(a), b FROM t1 WHERE a > ( SELECT min(c) FROM t2, t1 t1a, t1 t1b WHERE c = 0 ) GROUP BY b;
|
||||||
|
MIN(a) b
|
||||||
|
1 0
|
||||||
|
9 99
|
||||||
|
drop table t1, t2;
|
||||||
|
End of 5.3 tests
|
||||||
|
#
|
||||||
# WL#3220 (Loose index scan for COUNT DISTINCT)
|
# WL#3220 (Loose index scan for COUNT DISTINCT)
|
||||||
#
|
#
|
||||||
CREATE TABLE t1 (a INT, b INT, c INT, KEY (a,b));
|
CREATE TABLE t1 (a INT, b INT, c INT, KEY (a,b));
|
||||||
|
@ -70,7 +70,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t1 index NULL PRIMARY 5 NULL 4 Using index; Using temporary
|
1 SIMPLE t1 index NULL PRIMARY 5 NULL 4 Using index; Using temporary
|
||||||
explain select distinct f1, f2 from t1;
|
explain select distinct f1, f2 from t1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 range NULL PRIMARY 5 NULL 3 Using index for group-by; Using temporary
|
1 SIMPLE t1 index NULL PRIMARY 5 NULL 4 Using index
|
||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1(pk int primary key) engine=innodb;
|
create table t1(pk int primary key) engine=innodb;
|
||||||
create view v1 as select pk from t1 where pk < 20;
|
create view v1 as select pk from t1 where pk < 20;
|
||||||
|
@ -473,7 +473,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE table2 const PRIMARY PRIMARY 4 const 1 100.00 Using filesort
|
1 SIMPLE table2 const PRIMARY PRIMARY 4 const 1 100.00 Using filesort
|
||||||
1 SIMPLE table1 ALL NULL NULL NULL NULL 4 100.00 Using where
|
1 SIMPLE table1 ALL NULL NULL NULL NULL 4 100.00 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`table1`.`f1` AS `f1`,7 AS `f2` from `test`.`t1` `table1` join `test`.`t1` `table2` where ((`test`.`table1`.`f3` = 9)) group by `test`.`table1`.`f1`,7 having ((7 = 8) and (`test`.`table1`.`f1` >= 6))
|
Note 1003 select `test`.`table1`.`f1` AS `f1`,7 AS `f2` from `test`.`t1` `table1` join `test`.`t1` `table2` where (`test`.`table1`.`f3` = 9) group by `test`.`table1`.`f1`,7 having ((7 = 8) and (`test`.`table1`.`f1` >= 6))
|
||||||
EXPLAIN EXTENDED
|
EXPLAIN EXTENDED
|
||||||
SELECT table1.f1, table2.f2
|
SELECT table1.f1, table2.f2
|
||||||
FROM t1 AS table1
|
FROM t1 AS table1
|
||||||
@ -485,7 +485,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE table2 const PRIMARY PRIMARY 4 const 1 100.00 Using filesort
|
1 SIMPLE table2 const PRIMARY PRIMARY 4 const 1 100.00 Using filesort
|
||||||
1 SIMPLE table1 ALL NULL NULL NULL NULL 4 100.00 Using where
|
1 SIMPLE table1 ALL NULL NULL NULL NULL 4 100.00 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`table1`.`f1` AS `f1`,7 AS `f2` from `test`.`t1` `table1` join `test`.`t1` `table2` where ((`test`.`table1`.`f3` = 9)) group by `test`.`table1`.`f1`,7 having (7 = 8)
|
Note 1003 select `test`.`table1`.`f1` AS `f1`,7 AS `f2` from `test`.`t1` `table1` join `test`.`t1` `table2` where (`test`.`table1`.`f3` = 9) group by `test`.`table1`.`f1`,7 having (7 = 8)
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
#
|
#
|
||||||
# Bug#52336 Segfault / crash in 5.1 copy_fields (param=0x9872980) at sql_select.cc:15355
|
# Bug#52336 Segfault / crash in 5.1 copy_fields (param=0x9872980) at sql_select.cc:15355
|
||||||
|
@ -731,6 +731,7 @@ CREATE TABLE t2 (b int) ENGINE=MyISAM;
|
|||||||
INSERT INTO t1 (a) VALUES (4), (6);
|
INSERT INTO t1 (a) VALUES (4), (6);
|
||||||
INSERT INTO t2 (b) VALUES (0), (8);
|
INSERT INTO t2 (b) VALUES (0), (8);
|
||||||
set @save_optimizer_switch=@@optimizer_switch;
|
set @save_optimizer_switch=@@optimizer_switch;
|
||||||
|
set @save_join_cache_level=@@join_cache_level;
|
||||||
SET join_cache_level=3;
|
SET join_cache_level=3;
|
||||||
SET optimizer_switch='join_cache_hashed=on';
|
SET optimizer_switch='join_cache_hashed=on';
|
||||||
SET optimizer_switch='join_cache_bka=on';
|
SET optimizer_switch='join_cache_bka=on';
|
||||||
@ -742,6 +743,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t2 hash_ALL NULL #hash#$hj 5 test.t1.a 2 Using where; Using join buffer (flat, BNLH join)
|
1 SIMPLE t2 hash_ALL NULL #hash#$hj 5 test.t1.a 2 Using where; Using join buffer (flat, BNLH join)
|
||||||
SELECT * FROM t1, t2 WHERE b=a;
|
SELECT * FROM t1, t2 WHERE b=a;
|
||||||
a b
|
a b
|
||||||
|
set join_cache_level=@save_join_cache_level;
|
||||||
set optimizer_switch=@save_optimizer_switch;
|
set optimizer_switch=@save_optimizer_switch;
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
#
|
#
|
||||||
@ -772,5 +774,97 @@ INSERT INTO t1 (c2, c3, c4) VALUES (58291525, 2580, 'foobar')
|
|||||||
ON DUPLICATE KEY UPDATE c4 = VALUES(c4);
|
ON DUPLICATE KEY UPDATE c4 = VALUES(c4);
|
||||||
set optimizer_switch=@save_optimizer_switch;
|
set optimizer_switch=@save_optimizer_switch;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# Bug mdev-4220: using ref instead of eq_ref
|
||||||
|
# with extended_keys=on
|
||||||
|
# (performance regression introduced in the patch for mdev-3851)
|
||||||
|
#
|
||||||
|
set @save_optimizer_switch=@@optimizer_switch;
|
||||||
|
create table t1 (a int not null) engine=innodb;
|
||||||
|
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||||
|
create table t2 (
|
||||||
|
pk int primary key, a int not null, b int, unique(a)
|
||||||
|
)engine=innodb;
|
||||||
|
insert into t2
|
||||||
|
select
|
||||||
|
A.a + 10 * B.a, A.a + 10 * B.a, A.a + 10 * B.a
|
||||||
|
from t1 A, t1 B;
|
||||||
|
set optimizer_switch='extended_keys=off';
|
||||||
|
explain
|
||||||
|
select * from t1, t2 where t2.a=t1.a and t2.b < 2;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 10
|
||||||
|
1 SIMPLE t2 eq_ref a a 4 test.t1.a 1 Using where
|
||||||
|
flush status;
|
||||||
|
select * from t1, t2 where t2.a=t1.a and t2.b < 2;
|
||||||
|
a pk a b
|
||||||
|
0 0 0 0
|
||||||
|
1 1 1 1
|
||||||
|
show status like 'handler_read%';
|
||||||
|
Variable_name Value
|
||||||
|
Handler_read_first 0
|
||||||
|
Handler_read_key 10
|
||||||
|
Handler_read_last 0
|
||||||
|
Handler_read_next 0
|
||||||
|
Handler_read_prev 0
|
||||||
|
Handler_read_rnd 0
|
||||||
|
Handler_read_rnd_deleted 0
|
||||||
|
Handler_read_rnd_next 11
|
||||||
|
set optimizer_switch='extended_keys=on';
|
||||||
|
explain
|
||||||
|
select * from t1, t2 where t2.a=t1.a and t2.b < 2;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 10
|
||||||
|
1 SIMPLE t2 eq_ref a a 4 test.t1.a 1 Using where
|
||||||
|
flush status;
|
||||||
|
select * from t1, t2 where t2.a=t1.a and t2.b < 2;
|
||||||
|
a pk a b
|
||||||
|
0 0 0 0
|
||||||
|
1 1 1 1
|
||||||
|
show status like 'handler_read%';
|
||||||
|
Variable_name Value
|
||||||
|
Handler_read_first 0
|
||||||
|
Handler_read_key 10
|
||||||
|
Handler_read_last 0
|
||||||
|
Handler_read_next 0
|
||||||
|
Handler_read_prev 0
|
||||||
|
Handler_read_rnd 0
|
||||||
|
Handler_read_rnd_deleted 0
|
||||||
|
Handler_read_rnd_next 11
|
||||||
|
drop table t1,t2;
|
||||||
|
create table t1(a int) engine=myisam;
|
||||||
|
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||||
|
create table t2(a int) engine=myisam;
|
||||||
|
insert into t2 select A.a + 10*B.a + 100*C.a from t1 A, t1 B, t1 C;
|
||||||
|
create table t3 (
|
||||||
|
pk1 int not null, pk2 int not null, col1 int not null, col2 int not null)
|
||||||
|
engine=innodb;
|
||||||
|
insert into t3 select a,a,a,a from t2;
|
||||||
|
alter table t3 add primary key (pk1, pk2);
|
||||||
|
alter table t3 add key (col1, col2);
|
||||||
|
set optimizer_switch='extended_keys=off';
|
||||||
|
explain
|
||||||
|
select * from t1, t3 where t3.col1=t1.a and t3.col2=t1.a;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 ALL NULL NULL NULL NULL # Using where
|
||||||
|
1 SIMPLE t3 ref col1 col1 8 test.t1.a,test.t1.a # Using index
|
||||||
|
explain
|
||||||
|
select * from t1, t3 where t3.col1=t1.a and t3.col2=t1.a and t3.pk1=t1.a;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 ALL NULL NULL NULL NULL # Using where
|
||||||
|
1 SIMPLE t3 ref PRIMARY,col1 PRIMARY 4 test.t1.a # Using where
|
||||||
|
set optimizer_switch='extended_keys=on';
|
||||||
|
explain
|
||||||
|
select * from t1, t3 where t3.col1=t1.a and t3.col2=t1.a;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 ALL NULL NULL NULL NULL # Using where
|
||||||
|
1 SIMPLE t3 ref col1 col1 8 test.t1.a,test.t1.a # Using index
|
||||||
|
explain
|
||||||
|
select * from t1, t3 where t3.col1=t1.a and t3.col2=t1.a and t3.pk1=t1.a;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 ALL NULL NULL NULL NULL # Using where
|
||||||
|
1 SIMPLE t3 ref PRIMARY,col1 col1 12 test.t1.a,test.t1.a,test.t1.a # Using index
|
||||||
|
drop table t1,t2,t3;
|
||||||
|
set optimizer_switch=@save_optimizer_switch;
|
||||||
set optimizer_switch=@save_ext_key_optimizer_switch;
|
set optimizer_switch=@save_ext_key_optimizer_switch;
|
||||||
SET SESSION STORAGE_ENGINE=DEFAULT;
|
SET SESSION STORAGE_ENGINE=DEFAULT;
|
||||||
|
@ -5595,7 +5595,7 @@ DROP TABLE t1,t2,t3;
|
|||||||
#
|
#
|
||||||
CREATE TABLE t1 (
|
CREATE TABLE t1 (
|
||||||
col269 decimal(31,10) unsigned DEFAULT NULL,
|
col269 decimal(31,10) unsigned DEFAULT NULL,
|
||||||
col280 multipoint DEFAULT NULL,
|
col280 geometry DEFAULT NULL,
|
||||||
col281 tinyint(1) DEFAULT NULL,
|
col281 tinyint(1) DEFAULT NULL,
|
||||||
col282 time NOT NULL,
|
col282 time NOT NULL,
|
||||||
col284 datetime DEFAULT NULL,
|
col284 datetime DEFAULT NULL,
|
||||||
|
@ -235,7 +235,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (flat, BNL join)
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (flat, BNL join)
|
||||||
1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where
|
1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b` from `test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t6`.`b` < 10) and (`test`.`t8`.`b` = `test`.`t7`.`b`))) where 1
|
Note 1003 select `test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b` from `test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t7`.`b`) and (`test`.`t6`.`b` < 10))) where 1
|
||||||
SELECT t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
|
SELECT t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
|
||||||
FROM (t6, t7)
|
FROM (t6, t7)
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
@ -556,7 +556,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where
|
1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t6`.`b` < 10) and ((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t8`.`b` = `test`.`t5`.`b`))))) on(((`test`.`t6`.`b` >= 2) and (`test`.`t7`.`b` = `test`.`t5`.`b`)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and (((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t5`.`b` = `test`.`t0`.`b`)) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) where ((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)))
|
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) where ((`test`.`t0`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)))
|
||||||
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
|
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
|
||||||
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
|
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
|
||||||
FROM t0,t1
|
FROM t0,t1
|
||||||
@ -652,7 +652,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where
|
1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||||
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
|
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t6`.`b` < 10) and ((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t8`.`b` = `test`.`t5`.`b`))))) on(((`test`.`t6`.`b` >= 2) and (`test`.`t7`.`b` = `test`.`t5`.`b`)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and (((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t5`.`b` = `test`.`t0`.`b`)) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
|
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t0`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t9`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
|
||||||
SELECT t9.a,t9.b
|
SELECT t9.a,t9.b
|
||||||
FROM t9;
|
FROM t9;
|
||||||
a b
|
a b
|
||||||
@ -858,7 +858,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t2 ref idx_b idx_b 5 test.t3.b 2 100.00 Using where
|
1 SIMPLE t2 ref idx_b idx_b 5 test.t3.b 2 100.00 Using where
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b` from `test`.`t3` join `test`.`t4` left join (`test`.`t1` join `test`.`t2`) on(((`test`.`t2`.`a` > 0) and (`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t3`.`b`) and (`test`.`t2`.`b` = `test`.`t3`.`b`) and (`test`.`t3`.`b` is not null))) where 1
|
Note 1003 select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b` from `test`.`t3` join `test`.`t4` left join (`test`.`t1` join `test`.`t2`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t3`.`b`) and (`test`.`t2`.`b` = `test`.`t3`.`b`) and (`test`.`t2`.`a` > 0) and (`test`.`t3`.`b` is not null))) where 1
|
||||||
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
|
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
|
||||||
FROM (t3,t4)
|
FROM (t3,t4)
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
@ -920,7 +920,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where
|
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||||
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
|
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t2`.`a` > 0) and (`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t6`.`b` < 10) and ((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t8`.`b` = `test`.`t5`.`b`))))) on(((`test`.`t6`.`b` >= 2) and (`test`.`t7`.`b` = `test`.`t5`.`b`)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and (((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t5`.`b` = `test`.`t0`.`b`)) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t3`.`b` = `test`.`t4`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
|
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`a` > 0))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t0`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t9`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t3`.`b` = `test`.`t4`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
|
||||||
INSERT INTO t4 VALUES (-3,12,0), (-4,13,0), (-1,11,0), (-3,11,0), (-5,15,0);
|
INSERT INTO t4 VALUES (-3,12,0), (-4,13,0), (-1,11,0), (-3,11,0), (-5,15,0);
|
||||||
INSERT INTO t5 VALUES (-3,11,0), (-2,12,0), (-3,13,0), (-4,12,0);
|
INSERT INTO t5 VALUES (-3,11,0), (-2,12,0), (-3,13,0), (-4,12,0);
|
||||||
CREATE INDEX idx_b ON t4(b);
|
CREATE INDEX idx_b ON t4(b);
|
||||||
@ -972,7 +972,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where
|
1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t2`.`a` > 0) and (`test`.`t4`.`a` > 0) and (`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t6`.`b` < 10) and ((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t8`.`b` = `test`.`t5`.`b`))))) on(((`test`.`t6`.`b` >= 2) and (`test`.`t5`.`a` > 0) and (`test`.`t7`.`b` = `test`.`t5`.`b`)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and (((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t5`.`b` = `test`.`t0`.`b`)) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t8`.`b` = `test`.`t9`.`b`) or isnull(`test`.`t8`.`c`)))
|
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`a` > 0) and (`test`.`t4`.`a` > 0) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2) and (`test`.`t5`.`a` > 0)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t0`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t9`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t8`.`b` = `test`.`t9`.`b`) or isnull(`test`.`t8`.`c`)))
|
||||||
INSERT INTO t8 VALUES (-3,12,0), (-1,14,0), (-5,15,0), (-1,11,0), (-4,13,0);
|
INSERT INTO t8 VALUES (-3,12,0), (-1,14,0), (-5,15,0), (-1,11,0), (-4,13,0);
|
||||||
CREATE INDEX idx_b ON t8(b);
|
CREATE INDEX idx_b ON t8(b);
|
||||||
EXPLAIN EXTENDED
|
EXPLAIN EXTENDED
|
||||||
@ -1022,7 +1022,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where
|
1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t2`.`a` > 0) and (`test`.`t4`.`a` > 0) and (`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t6`.`b` < 10) and (`test`.`t8`.`a` >= 0) and (`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t5`.`b` is not null)))) on(((`test`.`t6`.`b` >= 2) and (`test`.`t5`.`a` > 0) and (`test`.`t7`.`b` = `test`.`t5`.`b`)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and (((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t5`.`b` = `test`.`t0`.`b`)) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t8`.`b` = `test`.`t9`.`b`) or isnull(`test`.`t8`.`c`)))
|
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`a` > 0) and (`test`.`t4`.`a` > 0) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10) and (`test`.`t8`.`a` >= 0) and (`test`.`t5`.`b` is not null)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2) and (`test`.`t5`.`a` > 0)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t0`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t9`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t8`.`b` = `test`.`t9`.`b`) or isnull(`test`.`t8`.`c`)))
|
||||||
INSERT INTO t1 VALUES (-1,133,0), (-2,12,0), (-3,11,0), (-5,15,0);
|
INSERT INTO t1 VALUES (-1,133,0), (-2,12,0), (-3,11,0), (-5,15,0);
|
||||||
CREATE INDEX idx_b ON t1(b);
|
CREATE INDEX idx_b ON t1(b);
|
||||||
CREATE INDEX idx_a ON t0(a);
|
CREATE INDEX idx_a ON t0(a);
|
||||||
@ -1073,7 +1073,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where
|
1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t6`.`b` < 10) and (`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t5`.`b` is not null)))) on(((`test`.`t6`.`b` >= 2) and (`test`.`t7`.`b` = `test`.`t5`.`b`)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and (((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t5`.`b` = `test`.`t0`.`b`)) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2) and (`test`.`t1`.`a` > 0))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t8`.`b` = `test`.`t9`.`b`) or isnull(`test`.`t8`.`c`)))
|
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10) and (`test`.`t5`.`b` is not null)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2) and (`test`.`t1`.`a` > 0))) join `test`.`t9` where ((`test`.`t0`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t9`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t8`.`b` = `test`.`t9`.`b`) or isnull(`test`.`t8`.`c`)))
|
||||||
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
|
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
|
||||||
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
|
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
|
||||||
FROM t0,t1
|
FROM t0,t1
|
||||||
@ -1215,7 +1215,7 @@ EXPLAIN SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
|
|||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 index NULL a 5 NULL 21 Using index
|
1 SIMPLE t1 index NULL a 5 NULL 21 Using index
|
||||||
1 SIMPLE t3 index c c 5 NULL 6 Using where; Using index
|
1 SIMPLE t3 index c c 5 NULL 6 Using where; Using index
|
||||||
1 SIMPLE t2 ref b b 5 test.t3.c 2 Using where; Using index
|
1 SIMPLE t2 ref b b 5 test.t3.c 2 Using index
|
||||||
SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
|
SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
|
||||||
a b c
|
a b c
|
||||||
NULL 0 0
|
NULL 0 0
|
||||||
@ -1286,7 +1286,7 @@ EXPLAIN SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
|
|||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 index NULL a 5 NULL 21 Using index
|
1 SIMPLE t1 index NULL a 5 NULL 21 Using index
|
||||||
1 SIMPLE t3 index c c 5 NULL 0 Using where; Using index
|
1 SIMPLE t3 index c c 5 NULL 0 Using where; Using index
|
||||||
1 SIMPLE t2 ref b b 5 test.t3.c 2 Using where; Using index
|
1 SIMPLE t2 ref b b 5 test.t3.c 2 Using index
|
||||||
SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
|
SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
|
||||||
a b c
|
a b c
|
||||||
NULL NULL NULL
|
NULL NULL NULL
|
||||||
@ -1843,7 +1843,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 100.00 Using where; Not exists
|
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 100.00 Using where; Not exists
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 0 0.00 Using where
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 0 0.00 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t2`.`a` AS `a`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`b` AS `b` from `test`.`t1` left join (`test`.`t2` left join `test`.`t3` on(((`test`.`t2`.`a` = `test`.`t1`.`a`) and (`test`.`t3`.`b` = `test`.`t1`.`a`))) left join `test`.`t4` on((`test`.`t4`.`b` = `test`.`t3`.`a`))) on((`test`.`t2`.`a` = `test`.`t1`.`a`)) where isnull(`test`.`t3`.`a`)
|
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t2`.`a` AS `a`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`b` AS `b` from `test`.`t1` left join (`test`.`t2` left join `test`.`t3` on((`test`.`t3`.`b` = `test`.`t1`.`a`)) left join `test`.`t4` on((`test`.`t4`.`b` = `test`.`t3`.`a`))) on((`test`.`t2`.`a` = `test`.`t1`.`a`)) where isnull(`test`.`t3`.`a`)
|
||||||
DROP TABLE t1,t2,t3,t4;
|
DROP TABLE t1,t2,t3,t4;
|
||||||
SET optimizer_switch=@save_optimizer_switch;
|
SET optimizer_switch=@save_optimizer_switch;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
|
@ -246,7 +246,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (flat, BNL join)
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (flat, BNL join)
|
||||||
1 SIMPLE t8 hash_ALL NULL #hash#$hj 5 test.t7.b 2 100.00 Using where; Using join buffer (incremental, BNLH join)
|
1 SIMPLE t8 hash_ALL NULL #hash#$hj 5 test.t7.b 2 100.00 Using where; Using join buffer (incremental, BNLH join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b` from `test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t6`.`b` < 10) and (`test`.`t8`.`b` = `test`.`t7`.`b`) and (`test`.`t7`.`b` is not null))) where 1
|
Note 1003 select `test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b` from `test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t7`.`b`) and (`test`.`t6`.`b` < 10) and (`test`.`t7`.`b` is not null))) where 1
|
||||||
SELECT t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
|
SELECT t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
|
||||||
FROM (t6, t7)
|
FROM (t6, t7)
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
@ -567,7 +567,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
||||||
1 SIMPLE t8 hash_ALL NULL #hash#$hj 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BNLH join)
|
1 SIMPLE t8 hash_ALL NULL #hash#$hj 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BNLH join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t6`.`b` < 10) and (`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t5`.`b` is not null)))) on(((`test`.`t6`.`b` >= 2) and (`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t5`.`b` is not null)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and (((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t5`.`b` = `test`.`t0`.`b`)) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) where ((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)))
|
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10) and (`test`.`t5`.`b` is not null)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2) and (`test`.`t5`.`b` is not null)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) where ((`test`.`t0`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)))
|
||||||
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
|
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
|
||||||
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
|
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
|
||||||
FROM t0,t1
|
FROM t0,t1
|
||||||
@ -663,7 +663,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t8 hash_ALL NULL #hash#$hj 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BNLH join)
|
1 SIMPLE t8 hash_ALL NULL #hash#$hj 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BNLH join)
|
||||||
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t6`.`b` < 10) and (`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t5`.`b` is not null)))) on(((`test`.`t6`.`b` >= 2) and (`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t5`.`b` is not null)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and (((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t5`.`b` = `test`.`t0`.`b`)) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
|
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10) and (`test`.`t5`.`b` is not null)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2) and (`test`.`t5`.`b` is not null)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t0`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t9`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
|
||||||
SELECT t9.a,t9.b
|
SELECT t9.a,t9.b
|
||||||
FROM t9;
|
FROM t9;
|
||||||
a b
|
a b
|
||||||
@ -869,7 +869,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t2 ref idx_b idx_b 5 test.t3.b 2 100.00 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
1 SIMPLE t2 ref idx_b idx_b 5 test.t3.b 2 100.00 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (incremental, BNL join)
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (incremental, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b` from `test`.`t3` join `test`.`t4` left join (`test`.`t1` join `test`.`t2`) on(((`test`.`t2`.`a` > 0) and (`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t3`.`b`) and (`test`.`t2`.`b` = `test`.`t3`.`b`) and (`test`.`t3`.`b` is not null))) where 1
|
Note 1003 select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b` from `test`.`t3` join `test`.`t4` left join (`test`.`t1` join `test`.`t2`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t3`.`b`) and (`test`.`t2`.`b` = `test`.`t3`.`b`) and (`test`.`t2`.`a` > 0) and (`test`.`t3`.`b` is not null))) where 1
|
||||||
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
|
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
|
||||||
FROM (t3,t4)
|
FROM (t3,t4)
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
@ -931,7 +931,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
|
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
|
||||||
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t2`.`a` > 0) and (`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t6`.`b` < 10) and (`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t5`.`b` is not null)))) on(((`test`.`t6`.`b` >= 2) and (`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t5`.`b` is not null)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and (((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t5`.`b` = `test`.`t0`.`b`)) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t3`.`b` = `test`.`t4`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
|
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`a` > 0) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10) and (`test`.`t5`.`b` is not null)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2) and (`test`.`t5`.`b` is not null)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t0`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t9`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t3`.`b` = `test`.`t4`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
|
||||||
INSERT INTO t4 VALUES (-3,12,0), (-4,13,0), (-1,11,0), (-3,11,0), (-5,15,0);
|
INSERT INTO t4 VALUES (-3,12,0), (-4,13,0), (-1,11,0), (-3,11,0), (-5,15,0);
|
||||||
INSERT INTO t5 VALUES (-3,11,0), (-2,12,0), (-3,13,0), (-4,12,0);
|
INSERT INTO t5 VALUES (-3,11,0), (-2,12,0), (-3,13,0), (-4,12,0);
|
||||||
CREATE INDEX idx_b ON t4(b);
|
CREATE INDEX idx_b ON t4(b);
|
||||||
@ -983,7 +983,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
||||||
1 SIMPLE t8 hash_ALL NULL #hash#$hj 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BNLH join)
|
1 SIMPLE t8 hash_ALL NULL #hash#$hj 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BNLH join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t2`.`a` > 0) and (`test`.`t4`.`a` > 0) and (`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t6`.`b` < 10) and (`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t5`.`b` is not null)))) on(((`test`.`t6`.`b` >= 2) and (`test`.`t5`.`a` > 0) and (`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t5`.`b` is not null)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and (((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t5`.`b` = `test`.`t0`.`b`)) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t8`.`b` = `test`.`t9`.`b`) or isnull(`test`.`t8`.`c`)))
|
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`a` > 0) and (`test`.`t4`.`a` > 0) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10) and (`test`.`t5`.`b` is not null)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2) and (`test`.`t5`.`a` > 0) and (`test`.`t5`.`b` is not null)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t0`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t9`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t8`.`b` = `test`.`t9`.`b`) or isnull(`test`.`t8`.`c`)))
|
||||||
INSERT INTO t8 VALUES (-3,12,0), (-1,14,0), (-5,15,0), (-1,11,0), (-4,13,0);
|
INSERT INTO t8 VALUES (-3,12,0), (-1,14,0), (-5,15,0), (-1,11,0), (-4,13,0);
|
||||||
CREATE INDEX idx_b ON t8(b);
|
CREATE INDEX idx_b ON t8(b);
|
||||||
EXPLAIN EXTENDED
|
EXPLAIN EXTENDED
|
||||||
@ -1033,7 +1033,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t7 hash_ALL NULL #hash#$hj 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BNLH join)
|
1 SIMPLE t7 hash_ALL NULL #hash#$hj 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BNLH join)
|
||||||
1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t2`.`a` > 0) and (`test`.`t4`.`a` > 0) and (`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t6`.`b` < 10) and (`test`.`t8`.`a` >= 0) and (`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t5`.`b` is not null)))) on(((`test`.`t6`.`b` >= 2) and (`test`.`t5`.`a` > 0) and (`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t5`.`b` is not null)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and (((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t5`.`b` = `test`.`t0`.`b`)) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t8`.`b` = `test`.`t9`.`b`) or isnull(`test`.`t8`.`c`)))
|
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`a` > 0) and (`test`.`t4`.`a` > 0) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10) and (`test`.`t8`.`a` >= 0) and (`test`.`t5`.`b` is not null)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2) and (`test`.`t5`.`a` > 0) and (`test`.`t5`.`b` is not null)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t0`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t9`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t8`.`b` = `test`.`t9`.`b`) or isnull(`test`.`t8`.`c`)))
|
||||||
INSERT INTO t1 VALUES (-1,133,0), (-2,12,0), (-3,11,0), (-5,15,0);
|
INSERT INTO t1 VALUES (-1,133,0), (-2,12,0), (-3,11,0), (-5,15,0);
|
||||||
CREATE INDEX idx_b ON t1(b);
|
CREATE INDEX idx_b ON t1(b);
|
||||||
CREATE INDEX idx_a ON t0(a);
|
CREATE INDEX idx_a ON t0(a);
|
||||||
@ -1082,9 +1082,9 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t5 ALL idx_b NULL NULL NULL 7 100.00 Using where; Using join buffer (incremental, BNL join)
|
1 SIMPLE t5 ALL idx_b NULL NULL NULL 7 100.00 Using where; Using join buffer (incremental, BNL join)
|
||||||
1 SIMPLE t7 hash_ALL NULL #hash#$hj 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BNLH join)
|
1 SIMPLE t7 hash_ALL NULL #hash#$hj 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BNLH join)
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
||||||
1 SIMPLE t8 ref idx_b idx_b 5 test.t7.b 2 100.00 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t6`.`b` < 10) and (`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t7`.`b` is not null)))) on(((`test`.`t6`.`b` >= 2) and (`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t5`.`b` is not null)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and (((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t5`.`b` = `test`.`t0`.`b`)) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2) and (`test`.`t1`.`a` > 0))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t8`.`b` = `test`.`t9`.`b`) or isnull(`test`.`t8`.`c`)))
|
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10) and (`test`.`t5`.`b` is not null)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2) and (`test`.`t5`.`b` is not null)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2) and (`test`.`t1`.`a` > 0))) join `test`.`t9` where ((`test`.`t0`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t9`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t8`.`b` = `test`.`t9`.`b`) or isnull(`test`.`t8`.`c`)))
|
||||||
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
|
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
|
||||||
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
|
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
|
||||||
FROM t0,t1
|
FROM t0,t1
|
||||||
@ -1226,7 +1226,7 @@ EXPLAIN SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
|
|||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 index NULL a 5 NULL 21 Using index
|
1 SIMPLE t1 index NULL a 5 NULL 21 Using index
|
||||||
1 SIMPLE t3 index c c 5 NULL 6 Using where; Using index
|
1 SIMPLE t3 index c c 5 NULL 6 Using where; Using index
|
||||||
1 SIMPLE t2 ref b b 5 test.t3.c 2 Using where; Using index
|
1 SIMPLE t2 ref b b 5 test.t3.c 2 Using index
|
||||||
SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
|
SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
|
||||||
a b c
|
a b c
|
||||||
NULL 0 0
|
NULL 0 0
|
||||||
@ -1297,7 +1297,7 @@ EXPLAIN SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
|
|||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 index NULL a 5 NULL 21 Using index
|
1 SIMPLE t1 index NULL a 5 NULL 21 Using index
|
||||||
1 SIMPLE t3 index c c 5 NULL 0 Using where; Using index
|
1 SIMPLE t3 index c c 5 NULL 0 Using where; Using index
|
||||||
1 SIMPLE t2 ref b b 5 test.t3.c 2 Using where; Using index
|
1 SIMPLE t2 ref b b 5 test.t3.c 2 Using index
|
||||||
SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
|
SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
|
||||||
a b c
|
a b c
|
||||||
NULL NULL NULL
|
NULL NULL NULL
|
||||||
@ -1854,7 +1854,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t3 hash_ALL NULL #hash#$hj 5 test.t1.a 1 100.00 Using where; Not exists; Using join buffer (incremental, BNLH join)
|
1 SIMPLE t3 hash_ALL NULL #hash#$hj 5 test.t1.a 1 100.00 Using where; Not exists; Using join buffer (incremental, BNLH join)
|
||||||
1 SIMPLE t4 hash_ALL NULL #hash#$hj 5 test.t3.a 0 0.00 Using where; Using join buffer (incremental, BNLH join)
|
1 SIMPLE t4 hash_ALL NULL #hash#$hj 5 test.t3.a 0 0.00 Using where; Using join buffer (incremental, BNLH join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t2`.`a` AS `a`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`b` AS `b` from `test`.`t1` left join (`test`.`t2` left join `test`.`t3` on(((`test`.`t2`.`a` = `test`.`t1`.`a`) and (`test`.`t3`.`b` = `test`.`t1`.`a`))) left join `test`.`t4` on(((`test`.`t4`.`b` = `test`.`t3`.`a`) and (`test`.`t3`.`a` is not null)))) on((`test`.`t2`.`a` = `test`.`t1`.`a`)) where isnull(`test`.`t3`.`a`)
|
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t2`.`a` AS `a`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`b` AS `b` from `test`.`t1` left join (`test`.`t2` left join `test`.`t3` on((`test`.`t3`.`b` = `test`.`t1`.`a`)) left join `test`.`t4` on(((`test`.`t4`.`b` = `test`.`t3`.`a`) and (`test`.`t3`.`a` is not null)))) on((`test`.`t2`.`a` = `test`.`t1`.`a`)) where isnull(`test`.`t3`.`a`)
|
||||||
DROP TABLE t1,t2,t3,t4;
|
DROP TABLE t1,t2,t3,t4;
|
||||||
SET optimizer_switch=@save_optimizer_switch;
|
SET optimizer_switch=@save_optimizer_switch;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
|
@ -2008,7 +2008,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 100.00
|
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 100.00
|
||||||
1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1 100.00 Using index
|
1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1 100.00 Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select 5 AS `pk` from `test`.`t2` join `test`.`t1` where (1) order by 5
|
Note 1003 select 5 AS `pk` from `test`.`t2` join `test`.`t1` where 1 order by 5
|
||||||
SELECT t1.pk FROM t2 JOIN t1 ON t2.pk = t1.a
|
SELECT t1.pk FROM t2 JOIN t1 ON t2.pk = t1.a
|
||||||
WHERE t1.b BETWEEN 5 AND 6 AND t1.pk IS NULL OR t1.pk = 5
|
WHERE t1.b BETWEEN 5 AND 6 AND t1.pk IS NULL OR t1.pk = 5
|
||||||
ORDER BY t1.pk;
|
ORDER BY t1.pk;
|
||||||
|
@ -2019,7 +2019,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 100.00
|
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 100.00
|
||||||
1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1 100.00 Using index
|
1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1 100.00 Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select 5 AS `pk` from `test`.`t2` join `test`.`t1` where (1) order by 5
|
Note 1003 select 5 AS `pk` from `test`.`t2` join `test`.`t1` where 1 order by 5
|
||||||
SELECT t1.pk FROM t2 JOIN t1 ON t2.pk = t1.a
|
SELECT t1.pk FROM t2 JOIN t1 ON t2.pk = t1.a
|
||||||
WHERE t1.b BETWEEN 5 AND 6 AND t1.pk IS NULL OR t1.pk = 5
|
WHERE t1.b BETWEEN 5 AND 6 AND t1.pk IS NULL OR t1.pk = 5
|
||||||
ORDER BY t1.pk;
|
ORDER BY t1.pk;
|
||||||
|
@ -689,6 +689,58 @@ DROP VIEW v1;
|
|||||||
DROP FUNCTION f1;
|
DROP FUNCTION f1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
#
|
#
|
||||||
|
# MDEV-4123: Incorrect results after multi-table update or
|
||||||
|
# assertion `!table || (!table->read_set ||
|
||||||
|
# bitmap_is_set(table->read_set, field_index))' failure
|
||||||
|
#
|
||||||
|
DROP TABLE IF EXISTS t1;
|
||||||
|
Warnings:
|
||||||
|
Note 1051 Unknown table 't1'
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
id int(10) unsigned NOT NULL,
|
||||||
|
level tinyint(3) unsigned NOT NULL,
|
||||||
|
PRIMARY KEY (id)
|
||||||
|
);
|
||||||
|
INSERT INTO t1 VALUES (2519583,1);
|
||||||
|
DROP TABLE IF EXISTS t2;
|
||||||
|
Warnings:
|
||||||
|
Note 1051 Unknown table 't2'
|
||||||
|
CREATE TABLE t2 (
|
||||||
|
club_id int(11) NOT NULL DEFAULT '0',
|
||||||
|
profile_id int(11) NOT NULL DEFAULT '0',
|
||||||
|
member_level_id int(11) NOT NULL DEFAULT '0',
|
||||||
|
PRIMARY KEY (profile_id,club_id)
|
||||||
|
);
|
||||||
|
INSERT INTO t2 VALUES (2,2519583,12);
|
||||||
|
DROP TABLE IF EXISTS t3;
|
||||||
|
Warnings:
|
||||||
|
Note 1051 Unknown table 't3'
|
||||||
|
CREATE TABLE t3 (
|
||||||
|
member_level_id int(11) unsigned NOT NULL DEFAULT '0',
|
||||||
|
map_level int(11) unsigned NOT NULL DEFAULT '0',
|
||||||
|
map_status int(11) unsigned NOT NULL DEFAULT '0',
|
||||||
|
PRIMARY KEY (member_level_id)
|
||||||
|
);
|
||||||
|
INSERT INTO t3 VALUES (12,12,1);
|
||||||
|
CREATE
|
||||||
|
VIEW v1 AS
|
||||||
|
select club_id,profile_id,
|
||||||
|
map_level AS member_level_id,map_status AS member_status
|
||||||
|
from (t2 tc join t3 map
|
||||||
|
on(((tc.member_level_id = map.member_level_id) and
|
||||||
|
(club_id = 2))));
|
||||||
|
select level, count(*) as cnt from t1 group by level;
|
||||||
|
level cnt
|
||||||
|
1 1
|
||||||
|
UPDATE t1 c LEFT JOIN v1 t ON (c.id = t.profile_id AND t.club_id = 2)
|
||||||
|
SET c.level = IF (t.member_status IS NULL, 1, IF (t.member_status = 1, 2,3));
|
||||||
|
select level, count(*) as cnt from t1 group by level;
|
||||||
|
level cnt
|
||||||
|
2 1
|
||||||
|
drop view v1;
|
||||||
|
drop table t1,t2,t3;
|
||||||
|
end of tests
|
||||||
|
#
|
||||||
# BUG#57373: Multi update+InnoDB reports ER_KEY_NOT_FOUND if a
|
# BUG#57373: Multi update+InnoDB reports ER_KEY_NOT_FOUND if a
|
||||||
# table is updated twice
|
# table is updated twice
|
||||||
#
|
#
|
||||||
@ -742,3 +794,4 @@ SELECT * FROM t2;
|
|||||||
col_int_key pk_1 pk_2 col_int
|
col_int_key pk_1 pk_2 col_int
|
||||||
1 7 11 4
|
1 7 11 4
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
end of 5.5 tests
|
||||||
|
12
mysql-test/r/myisam-metadata.result
Normal file
12
mysql-test/r/myisam-metadata.result
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
DROP TABLE IF EXISTS t1;
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
id INT PRIMARY KEY,
|
||||||
|
a VARCHAR(100),
|
||||||
|
INDEX(a)
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
ALTER TABLE t1 DISABLE KEYS;
|
||||||
|
ALTER TABLE t1 ENABLE KEYS;
|
||||||
|
SHOW TABLE STATUS LIKE 't1';
|
||||||
|
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 Dynamic 100000 27 # # # 0 NULL # # # latin1_swedish_ci NULL
|
||||||
|
DROP TABLE t1;
|
@ -2291,19 +2291,19 @@ t1 CREATE TABLE `t1` (
|
|||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 TRANSACTIONAL=1
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 TRANSACTIONAL=1
|
||||||
drop table t1;
|
drop table t1;
|
||||||
CREATE TABLE t1 (line LINESTRING NOT NULL) engine=myisam;
|
CREATE TABLE t1 (line LINESTRING NOT NULL) engine=myisam;
|
||||||
INSERT INTO t1 VALUES (GeomFromText("POINT(0 0)"));
|
INSERT INTO t1 VALUES (GeomFromText("LINESTRING(0 0)"));
|
||||||
checksum table t1;
|
checksum table t1;
|
||||||
Table Checksum
|
Table Checksum
|
||||||
test.t1 326284887
|
test.t1 310616673
|
||||||
CREATE TABLE t2 (line LINESTRING NOT NULL) engine=myisam;
|
CREATE TABLE t2 (line LINESTRING NOT NULL) engine=myisam;
|
||||||
INSERT INTO t2 VALUES (GeomFromText("POINT(0 0)"));
|
INSERT INTO t2 VALUES (GeomFromText("LINESTRING(0 0)"));
|
||||||
checksum table t2;
|
checksum table t2;
|
||||||
Table Checksum
|
Table Checksum
|
||||||
test.t2 326284887
|
test.t2 310616673
|
||||||
CREATE TABLE t3 select * from t1;
|
CREATE TABLE t3 select * from t1;
|
||||||
checksum table t3;
|
checksum table t3;
|
||||||
Table Checksum
|
Table Checksum
|
||||||
test.t3 326284887
|
test.t3 310616673
|
||||||
drop table t1,t2,t3;
|
drop table t1,t2,t3;
|
||||||
create table t1 (a1 int,a2 int,a3 int,a4 int,a5 int,a6 int,a7 int,a8 int,a9 int,a10 int,a11 int,a12 int,a13 int,a14 int,a15 int,a16 int,a17 int,a18 int,a19 int,a20 int,a21 int,a22 int,a23 int,a24 int,a25 int,a26 int,a27 int,a28 int,a29 int,a30 int,a31 int,a32 int,
|
create table t1 (a1 int,a2 int,a3 int,a4 int,a5 int,a6 int,a7 int,a8 int,a9 int,a10 int,a11 int,a12 int,a13 int,a14 int,a15 int,a16 int,a17 int,a18 int,a19 int,a20 int,a21 int,a22 int,a23 int,a24 int,a25 int,a26 int,a27 int,a28 int,a29 int,a30 int,a31 int,a32 int,
|
||||||
key(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32)) engine=myisam;
|
key(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32)) engine=myisam;
|
||||||
@ -2337,25 +2337,6 @@ h+0 d + 0 e g + 0
|
|||||||
1 1 3 0
|
1 1 3 0
|
||||||
1 1 4 0
|
1 1 4 0
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
#
|
|
||||||
# Test of BUG#35570 CHECKSUM TABLE unreliable if LINESTRING field
|
|
||||||
# (same content / differen checksum)
|
|
||||||
#
|
|
||||||
CREATE TABLE t1 (line LINESTRING NOT NULL) engine=myisam;
|
|
||||||
INSERT INTO t1 VALUES (GeomFromText("POINT(0 0)"));
|
|
||||||
checksum table t1;
|
|
||||||
Table Checksum
|
|
||||||
test.t1 326284887
|
|
||||||
CREATE TABLE t2 (line LINESTRING NOT NULL) engine=myisam;
|
|
||||||
INSERT INTO t2 VALUES (GeomFromText("POINT(0 0)"));
|
|
||||||
checksum table t2;
|
|
||||||
Table Checksum
|
|
||||||
test.t2 326284887
|
|
||||||
CREATE TABLE t3 select * from t1;
|
|
||||||
checksum table t3;
|
|
||||||
Table Checksum
|
|
||||||
test.t3 326284887
|
|
||||||
drop table t1,t2,t3;
|
|
||||||
CREATE TABLE t1(a INT, b CHAR(10), KEY(a), KEY(b));
|
CREATE TABLE t1(a INT, b CHAR(10), KEY(a), KEY(b));
|
||||||
INSERT INTO t1 VALUES(1,'0'),(2,'0'),(3,'0'),(4,'0'),(5,'0'),
|
INSERT INTO t1 VALUES(1,'0'),(2,'0'),(3,'0'),(4,'0'),(5,'0'),
|
||||||
(6,'0'),(7,'0');
|
(6,'0'),(7,'0');
|
||||||
|
@ -513,5 +513,7 @@ create database `aa``bb````cc`;
|
|||||||
DATABASE()
|
DATABASE()
|
||||||
aa`bb``cc
|
aa`bb``cc
|
||||||
drop database `aa``bb````cc`;
|
drop database `aa``bb````cc`;
|
||||||
|
a
|
||||||
|
>>\ndelimiter\n<<
|
||||||
|
|
||||||
End of tests
|
End of tests
|
||||||
|
@ -19,6 +19,7 @@ a
|
|||||||
1
|
1
|
||||||
2
|
2
|
||||||
FLUSH LOGS;
|
FLUSH LOGS;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -50,6 +51,8 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -81,5 +84,6 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
DROP DATABASE test2;
|
DROP DATABASE test2;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
@ -14,6 +14,7 @@ insert into t1 values ("Alas");
|
|||||||
flush logs;
|
flush logs;
|
||||||
|
|
||||||
--- Local --
|
--- Local --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -95,8 +96,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- Broken LOAD DATA --
|
--- Broken LOAD DATA --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -131,8 +134,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- --database --
|
--- --database --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -186,8 +191,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- --start-position --
|
--- --start-position --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -213,8 +220,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- Remote --
|
--- Remote --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -296,8 +305,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- Broken LOAD DATA --
|
--- Broken LOAD DATA --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -332,8 +343,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- --database --
|
--- --database --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -387,8 +400,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- --start-position --
|
--- --start-position --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -414,8 +429,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- reading stdin --
|
--- reading stdin --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -435,6 +452,8 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -453,6 +472,7 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
flush logs;
|
flush logs;
|
||||||
flush logs;
|
flush logs;
|
||||||
@ -495,6 +515,7 @@ call p1();
|
|||||||
drop procedure p1;
|
drop procedure p1;
|
||||||
call p1();
|
call p1();
|
||||||
ERROR 42000: PROCEDURE test.p1 does not exist
|
ERROR 42000: PROCEDURE test.p1 does not exist
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -517,6 +538,7 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
call p1();
|
call p1();
|
||||||
1
|
1
|
||||||
1
|
1
|
||||||
@ -545,6 +567,7 @@ C3BF
|
|||||||
D0AA
|
D0AA
|
||||||
drop table t1;
|
drop table t1;
|
||||||
flush logs;
|
flush logs;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -634,6 +657,7 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
CREATE TABLE t1 (c1 CHAR(10));
|
CREATE TABLE t1 (c1 CHAR(10));
|
||||||
FLUSH LOGS;
|
FLUSH LOGS;
|
||||||
INSERT INTO t1 VALUES ('0123456789');
|
INSERT INTO t1 VALUES ('0123456789');
|
||||||
@ -721,6 +745,7 @@ RESET MASTER;
|
|||||||
FLUSH LOGS;
|
FLUSH LOGS;
|
||||||
#
|
#
|
||||||
# Test if the 'BEGIN', 'ROLLBACK' and 'COMMIT' are output if the database specified exists
|
# Test if the 'BEGIN', 'ROLLBACK' and 'COMMIT' are output if the database specified exists
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -772,8 +797,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
#
|
#
|
||||||
# Test if the 'BEGIN', 'ROLLBACK' and 'COMMIT' are output if the database specified does not exist
|
# Test if the 'BEGIN', 'ROLLBACK' and 'COMMIT' are output if the database specified does not exist
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -806,8 +833,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
#
|
#
|
||||||
# Test if the 'SAVEPOINT', 'ROLLBACK TO' are output if the database specified exists
|
# Test if the 'SAVEPOINT', 'ROLLBACK TO' are output if the database specified exists
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -846,8 +875,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
#
|
#
|
||||||
# Test if the 'SAVEPOINT', 'ROLLBACK TO' are output if the database specified does not exist
|
# Test if the 'SAVEPOINT', 'ROLLBACK TO' are output if the database specified does not exist
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -873,6 +904,7 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
End of 5.1 tests
|
End of 5.1 tests
|
||||||
# Expect deprecation warning.
|
# Expect deprecation warning.
|
||||||
|
@ -2791,8 +2791,8 @@ UNLOCK TABLES;
|
|||||||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||||||
/*!50003 SET sql_mode = '' */ ;
|
/*!50003 SET sql_mode = '' */ ;
|
||||||
DELIMITER ;;
|
DELIMITER ;;
|
||||||
/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 FUNCTION `bug9056_func1`(a INT, b INT) RETURNS int(11)
|
CREATE DEFINER=`root`@`localhost` FUNCTION `bug9056_func1`(a INT, b INT) RETURNS int(11)
|
||||||
RETURN a+b */;;
|
RETURN a+b ;;
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||||||
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
||||||
@ -2808,11 +2808,11 @@ DELIMITER ;
|
|||||||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||||||
/*!50003 SET sql_mode = '' */ ;
|
/*!50003 SET sql_mode = '' */ ;
|
||||||
DELIMITER ;;
|
DELIMITER ;;
|
||||||
/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 FUNCTION `bug9056_func2`(f1 char binary) RETURNS char(1) CHARSET latin1
|
CREATE DEFINER=`root`@`localhost` FUNCTION `bug9056_func2`(f1 char binary) RETURNS char(1) CHARSET latin1
|
||||||
begin
|
begin
|
||||||
set f1= concat( 'hello', f1 );
|
set f1= concat( 'hello', f1 );
|
||||||
return f1;
|
return f1;
|
||||||
end */;;
|
end ;;
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||||||
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
||||||
@ -2828,8 +2828,8 @@ DELIMITER ;
|
|||||||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||||||
/*!50003 SET sql_mode = 'REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI' */ ;
|
/*!50003 SET sql_mode = 'REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI' */ ;
|
||||||
DELIMITER ;;
|
DELIMITER ;;
|
||||||
/*!50003 CREATE*/ /*!50020 DEFINER="root"@"localhost"*/ /*!50003 PROCEDURE "a'b"()
|
CREATE DEFINER="root"@"localhost" PROCEDURE "a'b"()
|
||||||
select 1 */;;
|
select 1 ;;
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||||||
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
||||||
@ -2845,8 +2845,8 @@ DELIMITER ;
|
|||||||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||||||
/*!50003 SET sql_mode = '' */ ;
|
/*!50003 SET sql_mode = '' */ ;
|
||||||
DELIMITER ;;
|
DELIMITER ;;
|
||||||
/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `bug9056_proc1`(IN a INT, IN b INT, OUT c INT)
|
CREATE DEFINER=`root`@`localhost` PROCEDURE `bug9056_proc1`(IN a INT, IN b INT, OUT c INT)
|
||||||
BEGIN SELECT a+b INTO c; end */;;
|
BEGIN SELECT a+b INTO c; end ;;
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||||||
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
||||||
@ -2862,10 +2862,10 @@ DELIMITER ;
|
|||||||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||||||
/*!50003 SET sql_mode = '' */ ;
|
/*!50003 SET sql_mode = '' */ ;
|
||||||
DELIMITER ;;
|
DELIMITER ;;
|
||||||
/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `bug9056_proc2`(OUT a INT)
|
CREATE DEFINER=`root`@`localhost` PROCEDURE `bug9056_proc2`(OUT a INT)
|
||||||
BEGIN
|
BEGIN
|
||||||
select sum(id) from t1 into a;
|
select sum(id) from t1 into a;
|
||||||
END */;;
|
END ;;
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||||||
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
||||||
@ -3851,8 +3851,8 @@ create procedure mysqldump_test_db.sp1() select 'hello';
|
|||||||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||||||
/*!50003 SET sql_mode = '' */ ;
|
/*!50003 SET sql_mode = '' */ ;
|
||||||
DELIMITER ;;
|
DELIMITER ;;
|
||||||
/*!50003 CREATE*/ /*!50020 DEFINER=`user1`@`%`*/ /*!50003 PROCEDURE `sp1`()
|
CREATE DEFINER=`user1`@`%` PROCEDURE `sp1`()
|
||||||
select 'hello' */;;
|
select 'hello' ;;
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||||||
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
||||||
|
@ -405,7 +405,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t1 index PRIMARY PRIMARY 8 NULL 6 100.00 Using index
|
1 SIMPLE t1 index PRIMARY PRIMARY 8 NULL 6 100.00 Using index
|
||||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 12 test.t1.a,const,const 1 100.00 Using index
|
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 12 test.t1.a,const,const 1 100.00 Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t1` join `test`.`t2` where ((`test`.`t2`.`c` = 1) and (`test`.`t2`.`b` = 2) and (`test`.`t2`.`a` = `test`.`t1`.`a`))
|
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t1` join `test`.`t2` where ((`test`.`t2`.`a` = `test`.`t1`.`a`) and (`test`.`t2`.`b` = 2) and (`test`.`t2`.`c` = 1))
|
||||||
SELECT * FROM t1,t2 WHERE (t2.a,(t2.b,t2.c))=(t1.a,(2,1));
|
SELECT * FROM t1,t2 WHERE (t2.a,(t2.b,t2.c))=(t1.a,(2,1));
|
||||||
a b a b c
|
a b a b c
|
||||||
1 1 1 2 1
|
1 1 1 2 1
|
||||||
@ -415,7 +415,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t1 index PRIMARY PRIMARY 8 NULL 6 100.00 Using index
|
1 SIMPLE t1 index PRIMARY PRIMARY 8 NULL 6 100.00 Using index
|
||||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 12 test.t1.a,const,const 1 100.00 Using index
|
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 12 test.t1.a,const,const 1 100.00 Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t1` join `test`.`t2` where ((`test`.`t2`.`c` = 1) and (`test`.`t2`.`b` = 2) and (`test`.`t2`.`a` = `test`.`t1`.`a`))
|
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t1` join `test`.`t2` where ((`test`.`t2`.`a` = `test`.`t1`.`a`) and (`test`.`t2`.`b` = 2) and (`test`.`t2`.`c` = 1))
|
||||||
SELECT * FROM t1,t2 WHERE t2.a=t1.a AND (t2.b,t2.c)=(2,1);
|
SELECT * FROM t1,t2 WHERE t2.a=t1.a AND (t2.b,t2.c)=(2,1);
|
||||||
a b a b c
|
a b a b c
|
||||||
1 1 1 2 1
|
1 1 1 2 1
|
||||||
|
@ -5302,4 +5302,24 @@ INSERT INTO t2 VALUES (3),(4);
|
|||||||
SELECT * FROM t1, t2 WHERE a=3 AND a=b;
|
SELECT * FROM t1, t2 WHERE a=3 AND a=b;
|
||||||
a b
|
a b
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
#
|
||||||
|
# Bug mdev-4250: wrong transformation of WHERE condition with OR
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (pk int PRIMARY KEY, a int);
|
||||||
|
INSERT INTO t1 VALUES (3,0), (2,0), (4,1), (5,0), (1,0);
|
||||||
|
SELECT * FROM t1 WHERE (1=2 OR t1.pk=2) AND t1.a <> 0;
|
||||||
|
pk a
|
||||||
|
EXPLAIN EXTENDED
|
||||||
|
SELECT * FROM t1 WHERE (1=2 OR t1.pk=2) AND t1.a <> 0;
|
||||||
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
|
Warnings:
|
||||||
|
Note 1003 select 2 AS `pk`,0 AS `a` from `test`.`t1` where ((0 <> 0))
|
||||||
|
DROP TABLE t1;
|
||||||
|
SELECT * FROM mysql.time_zone
|
||||||
|
WHERE ( NOT (Use_leap_seconds <= Use_leap_seconds AND Time_zone_id != 1)
|
||||||
|
AND Time_zone_id = Time_zone_id
|
||||||
|
OR Time_zone_id <> Time_zone_id )
|
||||||
|
AND Use_leap_seconds <> 'N';
|
||||||
|
Time_zone_id Use_leap_seconds
|
||||||
End of 5.3 tests
|
End of 5.3 tests
|
||||||
|
@ -5313,6 +5313,26 @@ INSERT INTO t2 VALUES (3),(4);
|
|||||||
SELECT * FROM t1, t2 WHERE a=3 AND a=b;
|
SELECT * FROM t1, t2 WHERE a=3 AND a=b;
|
||||||
a b
|
a b
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
#
|
||||||
|
# Bug mdev-4250: wrong transformation of WHERE condition with OR
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (pk int PRIMARY KEY, a int);
|
||||||
|
INSERT INTO t1 VALUES (3,0), (2,0), (4,1), (5,0), (1,0);
|
||||||
|
SELECT * FROM t1 WHERE (1=2 OR t1.pk=2) AND t1.a <> 0;
|
||||||
|
pk a
|
||||||
|
EXPLAIN EXTENDED
|
||||||
|
SELECT * FROM t1 WHERE (1=2 OR t1.pk=2) AND t1.a <> 0;
|
||||||
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
|
Warnings:
|
||||||
|
Note 1003 select 2 AS `pk`,0 AS `a` from `test`.`t1` where ((0 <> 0))
|
||||||
|
DROP TABLE t1;
|
||||||
|
SELECT * FROM mysql.time_zone
|
||||||
|
WHERE ( NOT (Use_leap_seconds <= Use_leap_seconds AND Time_zone_id != 1)
|
||||||
|
AND Time_zone_id = Time_zone_id
|
||||||
|
OR Time_zone_id <> Time_zone_id )
|
||||||
|
AND Use_leap_seconds <> 'N';
|
||||||
|
Time_zone_id Use_leap_seconds
|
||||||
End of 5.3 tests
|
End of 5.3 tests
|
||||||
set join_cache_level=default;
|
set join_cache_level=default;
|
||||||
show variables like 'join_cache_level';
|
show variables like 'join_cache_level';
|
||||||
|
@ -5302,4 +5302,24 @@ INSERT INTO t2 VALUES (3),(4);
|
|||||||
SELECT * FROM t1, t2 WHERE a=3 AND a=b;
|
SELECT * FROM t1, t2 WHERE a=3 AND a=b;
|
||||||
a b
|
a b
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
#
|
||||||
|
# Bug mdev-4250: wrong transformation of WHERE condition with OR
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (pk int PRIMARY KEY, a int);
|
||||||
|
INSERT INTO t1 VALUES (3,0), (2,0), (4,1), (5,0), (1,0);
|
||||||
|
SELECT * FROM t1 WHERE (1=2 OR t1.pk=2) AND t1.a <> 0;
|
||||||
|
pk a
|
||||||
|
EXPLAIN EXTENDED
|
||||||
|
SELECT * FROM t1 WHERE (1=2 OR t1.pk=2) AND t1.a <> 0;
|
||||||
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
|
Warnings:
|
||||||
|
Note 1003 select 2 AS `pk`,0 AS `a` from `test`.`t1` where ((0 <> 0))
|
||||||
|
DROP TABLE t1;
|
||||||
|
SELECT * FROM mysql.time_zone
|
||||||
|
WHERE ( NOT (Use_leap_seconds <= Use_leap_seconds AND Time_zone_id != 1)
|
||||||
|
AND Time_zone_id = Time_zone_id
|
||||||
|
OR Time_zone_id <> Time_zone_id )
|
||||||
|
AND Use_leap_seconds <> 'N';
|
||||||
|
Time_zone_id Use_leap_seconds
|
||||||
End of 5.3 tests
|
End of 5.3 tests
|
||||||
|
@ -1457,7 +1457,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ALL PRIMARY NULL NULL NULL 4 75.00 Using where; Using join buffer (flat, BNL join)
|
1 PRIMARY t1 ALL PRIMARY NULL NULL NULL 4 75.00 Using where; Using join buffer (flat, BNL join)
|
||||||
1 PRIMARY t3 eq_ref PRIMARY PRIMARY 4 test.t1.b 1 100.00 Using index
|
1 PRIMARY t3 eq_ref PRIMARY PRIMARY 4 test.t1.b 1 100.00 Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t1` join `test`.`t3` join `test`.`t2` where ((`test`.`t1`.`a` = `test`.`t2`.`a`) and (`test`.`t3`.`a` = `test`.`t1`.`b`))
|
Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t1` join `test`.`t3` join `test`.`t2` where ((`test`.`t3`.`a` = `test`.`t1`.`b`) and (`test`.`t1`.`a` = `test`.`t2`.`a`))
|
||||||
drop table t1, t2, t3;
|
drop table t1, t2, t3;
|
||||||
create table t1 (a int, b int, index a (a,b));
|
create table t1 (a int, b int, index a (a,b));
|
||||||
create table t2 (a int, index a (a));
|
create table t2 (a int, index a (a));
|
||||||
@ -1500,7 +1500,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t3 index a a 5 NULL 3 100.00 Using where; Using index
|
1 PRIMARY t3 index a a 5 NULL 3 100.00 Using where; Using index
|
||||||
1 PRIMARY t1 ref a a 10 test.t2.a,test.t3.a 116 100.00 Using index; FirstMatch(t2)
|
1 PRIMARY t1 ref a a 10 test.t2.a,test.t3.a 116 100.00 Using index; FirstMatch(t2)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1` join `test`.`t3`) where ((`test`.`t1`.`a` = `test`.`t2`.`a`) and (`test`.`t1`.`b` = `test`.`t3`.`a`))
|
Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1` join `test`.`t3`) where ((`test`.`t1`.`b` = `test`.`t3`.`a`) and (`test`.`t1`.`a` = `test`.`t2`.`a`))
|
||||||
insert into t1 values (3,31);
|
insert into t1 values (3,31);
|
||||||
select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
|
select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
|
||||||
a
|
a
|
||||||
@ -2973,7 +2973,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 8 func,func 1 100.00
|
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 8 func,func 1 100.00
|
||||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 9 100.00 Using where
|
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 9 100.00 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`one` AS `one`,`test`.`t1`.`two` AS `two` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`flag` = 'N'))
|
Note 1003 select `test`.`t1`.`one` AS `one`,`test`.`t1`.`two` AS `two` from `test`.`t1` semi join (`test`.`t2`) where (`test`.`t2`.`flag` = 'N')
|
||||||
explain extended SELECT one,two,ROW(one,two) IN (SELECT one,two FROM t2 WHERE flag = '0' group by one,two) as 'test' from t1;
|
explain extended SELECT one,two,ROW(one,two) IN (SELECT one,two FROM t2 WHERE flag = '0' group by one,two) as 'test' from t1;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 8 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 8 100.00
|
||||||
|
@ -314,7 +314,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
2 DEPENDENT SUBQUERY t1 index_subquery idx idx 5 func 4 100.00 Using where; Full scan on NULL key
|
2 DEPENDENT SUBQUERY t1 index_subquery idx idx 5 func 4 100.00 Using where; Full scan on NULL key
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1276 Field or reference 'test.t2.oref' of SELECT #2 was resolved in SELECT #1
|
Note 1276 Field or reference 'test.t2.oref' of SELECT #2 was resolved in SELECT #1
|
||||||
Note 1003 select `test`.`t2`.`oref` AS `oref`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,<expr_cache><`test`.`t2`.`a`,`test`.`t2`.`b`,`test`.`t2`.`oref`>(<in_optimizer>((`test`.`t2`.`a`,`test`.`t2`.`b`),<exists>(<index_lookup>(<cache>(`test`.`t2`.`a`) in t1 on idx checking NULL where ((`test`.`t1`.`oref` = `test`.`t2`.`oref`) and trigcond(((<cache>(`test`.`t2`.`a`) = `test`.`t1`.`ie1`) or isnull(`test`.`t1`.`ie1`))) and trigcond(((<cache>(`test`.`t2`.`b`) = `test`.`t1`.`ie2`) or isnull(`test`.`t1`.`ie2`)))) having (trigcond(<is_not_null_test>(`test`.`t1`.`ie1`)) and trigcond(<is_not_null_test>(`test`.`t1`.`ie2`))))))) AS `Z` from `test`.`t2` where ((`test`.`t2`.`b` = 10) and (`test`.`t2`.`a` = 10))
|
Note 1003 select `test`.`t2`.`oref` AS `oref`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,<expr_cache><`test`.`t2`.`a`,`test`.`t2`.`b`,`test`.`t2`.`oref`>(<in_optimizer>((`test`.`t2`.`a`,`test`.`t2`.`b`),<exists>(<index_lookup>(<cache>(`test`.`t2`.`a`) in t1 on idx checking NULL where ((`test`.`t1`.`oref` = `test`.`t2`.`oref`) and trigcond(((<cache>(`test`.`t2`.`a`) = `test`.`t1`.`ie1`) or isnull(`test`.`t1`.`ie1`))) and trigcond(((<cache>(`test`.`t2`.`b`) = `test`.`t1`.`ie2`) or isnull(`test`.`t1`.`ie2`)))) having (trigcond(<is_not_null_test>(`test`.`t1`.`ie1`)) and trigcond(<is_not_null_test>(`test`.`t1`.`ie2`))))))) AS `Z` from `test`.`t2` where ((`test`.`t2`.`a` = 10) and (`test`.`t2`.`b` = 10))
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
create table t1 (oref char(4), grp int, ie int);
|
create table t1 (oref char(4), grp int, ie int);
|
||||||
insert into t1 (oref, grp, ie) values
|
insert into t1 (oref, grp, ie) values
|
||||||
@ -1416,7 +1416,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY c eq_ref PRIMARY PRIMARY 4 test.cona.idContact 1 100.00 Using where
|
1 PRIMARY c eq_ref PRIMARY PRIMARY 4 test.cona.idContact 1 100.00 Using where
|
||||||
1 PRIMARY a eq_ref PRIMARY PRIMARY 4 test.c.idObj 1 100.00 Using index; End temporary
|
1 PRIMARY a eq_ref PRIMARY PRIMARY 4 test.c.idObj 1 100.00 Using index; End temporary
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`a`.`idIndividual` AS `idIndividual` from `test`.`t1` `a` semi join (`test`.`t3` `cona` join `test`.`t2` `c`) where ((`test`.`c`.`idContact` = `test`.`cona`.`idContact`) and (`test`.`a`.`idIndividual` = `test`.`c`.`idObj`) and (`test`.`cona`.`postalStripped` = 'T2H3B2'))
|
Note 1003 select `test`.`a`.`idIndividual` AS `idIndividual` from `test`.`t1` `a` semi join (`test`.`t3` `cona` join `test`.`t2` `c`) where ((`test`.`cona`.`postalStripped` = 'T2H3B2') and (`test`.`a`.`idIndividual` = `test`.`c`.`idObj`) and (`test`.`c`.`idContact` = `test`.`cona`.`idContact`))
|
||||||
set @@optimizer_switch=@save_optimizer_switch;
|
set @@optimizer_switch=@save_optimizer_switch;
|
||||||
drop table t1,t2,t3;
|
drop table t1,t2,t3;
|
||||||
#
|
#
|
||||||
|
@ -324,7 +324,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
2 DEPENDENT SUBQUERY t1 index_subquery idx idx 5 func 4 100.00 Using where; Full scan on NULL key
|
2 DEPENDENT SUBQUERY t1 index_subquery idx idx 5 func 4 100.00 Using where; Full scan on NULL key
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1276 Field or reference 'test.t2.oref' of SELECT #2 was resolved in SELECT #1
|
Note 1276 Field or reference 'test.t2.oref' of SELECT #2 was resolved in SELECT #1
|
||||||
Note 1003 select `test`.`t2`.`oref` AS `oref`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,<expr_cache><`test`.`t2`.`a`,`test`.`t2`.`b`,`test`.`t2`.`oref`>(<in_optimizer>((`test`.`t2`.`a`,`test`.`t2`.`b`),<exists>(<index_lookup>(<cache>(`test`.`t2`.`a`) in t1 on idx checking NULL where ((`test`.`t1`.`oref` = `test`.`t2`.`oref`) and trigcond(((<cache>(`test`.`t2`.`a`) = `test`.`t1`.`ie1`) or isnull(`test`.`t1`.`ie1`))) and trigcond(((<cache>(`test`.`t2`.`b`) = `test`.`t1`.`ie2`) or isnull(`test`.`t1`.`ie2`)))) having (trigcond(<is_not_null_test>(`test`.`t1`.`ie1`)) and trigcond(<is_not_null_test>(`test`.`t1`.`ie2`))))))) AS `Z` from `test`.`t2` where ((`test`.`t2`.`b` = 10) and (`test`.`t2`.`a` = 10))
|
Note 1003 select `test`.`t2`.`oref` AS `oref`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,<expr_cache><`test`.`t2`.`a`,`test`.`t2`.`b`,`test`.`t2`.`oref`>(<in_optimizer>((`test`.`t2`.`a`,`test`.`t2`.`b`),<exists>(<index_lookup>(<cache>(`test`.`t2`.`a`) in t1 on idx checking NULL where ((`test`.`t1`.`oref` = `test`.`t2`.`oref`) and trigcond(((<cache>(`test`.`t2`.`a`) = `test`.`t1`.`ie1`) or isnull(`test`.`t1`.`ie1`))) and trigcond(((<cache>(`test`.`t2`.`b`) = `test`.`t1`.`ie2`) or isnull(`test`.`t1`.`ie2`)))) having (trigcond(<is_not_null_test>(`test`.`t1`.`ie1`)) and trigcond(<is_not_null_test>(`test`.`t1`.`ie2`))))))) AS `Z` from `test`.`t2` where ((`test`.`t2`.`a` = 10) and (`test`.`t2`.`b` = 10))
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
create table t1 (oref char(4), grp int, ie int);
|
create table t1 (oref char(4), grp int, ie int);
|
||||||
insert into t1 (oref, grp, ie) values
|
insert into t1 (oref, grp, ie) values
|
||||||
@ -1426,7 +1426,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY c eq_ref PRIMARY PRIMARY 4 test.cona.idContact 1 100.00 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
1 PRIMARY c eq_ref PRIMARY PRIMARY 4 test.cona.idContact 1 100.00 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 PRIMARY a eq_ref PRIMARY PRIMARY 4 test.c.idObj 1 100.00 Using index; End temporary
|
1 PRIMARY a eq_ref PRIMARY PRIMARY 4 test.c.idObj 1 100.00 Using index; End temporary
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`a`.`idIndividual` AS `idIndividual` from `test`.`t1` `a` semi join (`test`.`t3` `cona` join `test`.`t2` `c`) where ((`test`.`c`.`idContact` = `test`.`cona`.`idContact`) and (`test`.`a`.`idIndividual` = `test`.`c`.`idObj`) and (`test`.`cona`.`postalStripped` = 'T2H3B2'))
|
Note 1003 select `test`.`a`.`idIndividual` AS `idIndividual` from `test`.`t1` `a` semi join (`test`.`t3` `cona` join `test`.`t2` `c`) where ((`test`.`cona`.`postalStripped` = 'T2H3B2') and (`test`.`a`.`idIndividual` = `test`.`c`.`idObj`) and (`test`.`c`.`idContact` = `test`.`cona`.`idContact`))
|
||||||
set @@optimizer_switch=@save_optimizer_switch;
|
set @@optimizer_switch=@save_optimizer_switch;
|
||||||
drop table t1,t2,t3;
|
drop table t1,t2,t3;
|
||||||
#
|
#
|
||||||
|
@ -1896,7 +1896,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
|
||||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 100.00
|
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 100.00
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from <materialize> (select max(`test`.`t2`.`c`) from `test`.`t2`) join `test`.`t1` where ((`test`.`t1`.`a` = `<subquery2>`.`MAX(c)`) and (`test`.`t1`.`b` = 7) and (<cache>(isnull(`<subquery2>`.`MAX(c)`)) or (`<subquery2>`.`MAX(c)` = 7)))
|
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from <materialize> (select max(`test`.`t2`.`c`) from `test`.`t2`) join `test`.`t1` where ((`test`.`t1`.`b` = 7) and (`test`.`t1`.`a` = `<subquery2>`.`MAX(c)`) and (<cache>(isnull(`<subquery2>`.`MAX(c)`)) or (`<subquery2>`.`MAX(c)` = 7)))
|
||||||
SELECT * FROM t1
|
SELECT * FROM t1
|
||||||
WHERE a IN (SELECT MAX(c) FROM t2) AND b=7 AND (a IS NULL OR a=b);
|
WHERE a IN (SELECT MAX(c) FROM t2) AND b=7 AND (a IS NULL OR a=b);
|
||||||
a b
|
a b
|
||||||
|
@ -100,7 +100,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
2 DEPENDENT SUBQUERY t2 index c3 c3 9 NULL 2 100.00 Using where; Using index; Using join buffer (flat, BNL join)
|
2 DEPENDENT SUBQUERY t2 index c3 c3 9 NULL 2 100.00 Using where; Using index; Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1276 Field or reference 'test.t1.pk' of SELECT #2 was resolved in SELECT #1
|
Note 1276 Field or reference 'test.t1.pk' of SELECT #2 was resolved in SELECT #1
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` where <expr_cache><`test`.`t1`.`c1`,`test`.`t1`.`pk`>(<in_optimizer>(`test`.`t1`.`c1`,<exists>(select `test`.`t1a`.`c1` from `test`.`t1b` join `test`.`t2` left join `test`.`t1a` on((2 and (`test`.`t1a`.`c2` = `test`.`t1b`.`pk`))) where ((`test`.`t1`.`pk` <> 0) and (<cache>(`test`.`t1`.`c1`) = `test`.`t1a`.`c1`) and (`test`.`t2`.`c3` = `test`.`t1b`.`c4`)))))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` where <expr_cache><`test`.`t1`.`c1`,`test`.`t1`.`pk`>(<in_optimizer>(`test`.`t1`.`c1`,<exists>(select `test`.`t1a`.`c1` from `test`.`t1b` join `test`.`t2` left join `test`.`t1a` on(((`test`.`t1a`.`c2` = `test`.`t1b`.`pk`) and 2)) where ((`test`.`t1`.`pk` <> 0) and (<cache>(`test`.`t1`.`c1`) = `test`.`t1a`.`c1`) and (`test`.`t2`.`c3` = `test`.`t1b`.`c4`)))))
|
||||||
SELECT pk
|
SELECT pk
|
||||||
FROM t1
|
FROM t1
|
||||||
WHERE c1 IN
|
WHERE c1 IN
|
||||||
|
@ -1464,7 +1464,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ALL PRIMARY NULL NULL NULL 4 75.00 Using where; Using join buffer (flat, BNL join)
|
1 PRIMARY t1 ALL PRIMARY NULL NULL NULL 4 75.00 Using where; Using join buffer (flat, BNL join)
|
||||||
1 PRIMARY t3 eq_ref PRIMARY PRIMARY 4 test.t1.b 1 100.00 Using index
|
1 PRIMARY t3 eq_ref PRIMARY PRIMARY 4 test.t1.b 1 100.00 Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t1` join `test`.`t3` join `test`.`t2` where ((`test`.`t1`.`a` = `test`.`t2`.`a`) and (`test`.`t3`.`a` = `test`.`t1`.`b`))
|
Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t1` join `test`.`t3` join `test`.`t2` where ((`test`.`t3`.`a` = `test`.`t1`.`b`) and (`test`.`t1`.`a` = `test`.`t2`.`a`))
|
||||||
drop table t1, t2, t3;
|
drop table t1, t2, t3;
|
||||||
create table t1 (a int, b int, index a (a,b));
|
create table t1 (a int, b int, index a (a,b));
|
||||||
create table t2 (a int, index a (a));
|
create table t2 (a int, index a (a));
|
||||||
@ -1507,7 +1507,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t3 index a a 5 NULL 3 100.00 Using where; Using index
|
1 PRIMARY t3 index a a 5 NULL 3 100.00 Using where; Using index
|
||||||
1 PRIMARY t1 ref a a 10 test.t2.a,test.t3.a 116 100.00 Using index; FirstMatch(t2)
|
1 PRIMARY t1 ref a a 10 test.t2.a,test.t3.a 116 100.00 Using index; FirstMatch(t2)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1` join `test`.`t3`) where ((`test`.`t1`.`a` = `test`.`t2`.`a`) and (`test`.`t1`.`b` = `test`.`t3`.`a`))
|
Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1` join `test`.`t3`) where ((`test`.`t1`.`b` = `test`.`t3`.`a`) and (`test`.`t1`.`a` = `test`.`t2`.`a`))
|
||||||
insert into t1 values (3,31);
|
insert into t1 values (3,31);
|
||||||
select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
|
select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
|
||||||
a
|
a
|
||||||
@ -2979,7 +2979,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 8 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 8 100.00
|
||||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 9 100.00 Using where; FirstMatch(t1)
|
1 PRIMARY t2 ALL NULL NULL NULL NULL 9 100.00 Using where; FirstMatch(t1)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`one` AS `one`,`test`.`t1`.`two` AS `two` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`two` = `test`.`t1`.`two`) and (`test`.`t2`.`one` = `test`.`t1`.`one`) and (`test`.`t2`.`flag` = 'N'))
|
Note 1003 select `test`.`t1`.`one` AS `one`,`test`.`t1`.`two` AS `two` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`flag` = 'N') and (`test`.`t2`.`one` = `test`.`t1`.`one`) and (`test`.`t2`.`two` = `test`.`t1`.`two`))
|
||||||
explain extended SELECT one,two,ROW(one,two) IN (SELECT one,two FROM t2 WHERE flag = '0' group by one,two) as 'test' from t1;
|
explain extended SELECT one,two,ROW(one,two) IN (SELECT one,two FROM t2 WHERE flag = '0' group by one,two) as 'test' from t1;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 8 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 8 100.00
|
||||||
|
@ -1463,7 +1463,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ALL PRIMARY NULL NULL NULL 4 75.00 Using where; Using join buffer (flat, BNL join)
|
1 PRIMARY t1 ALL PRIMARY NULL NULL NULL 4 75.00 Using where; Using join buffer (flat, BNL join)
|
||||||
1 PRIMARY t3 eq_ref PRIMARY PRIMARY 4 test.t1.b 1 100.00 Using index
|
1 PRIMARY t3 eq_ref PRIMARY PRIMARY 4 test.t1.b 1 100.00 Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t1` join `test`.`t3` join `test`.`t2` where ((`test`.`t1`.`a` = `test`.`t2`.`a`) and (`test`.`t3`.`a` = `test`.`t1`.`b`))
|
Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t1` join `test`.`t3` join `test`.`t2` where ((`test`.`t3`.`a` = `test`.`t1`.`b`) and (`test`.`t1`.`a` = `test`.`t2`.`a`))
|
||||||
drop table t1, t2, t3;
|
drop table t1, t2, t3;
|
||||||
create table t1 (a int, b int, index a (a,b));
|
create table t1 (a int, b int, index a (a,b));
|
||||||
create table t2 (a int, index a (a));
|
create table t2 (a int, index a (a));
|
||||||
@ -1506,7 +1506,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t3 index a a 5 NULL 3 100.00 Using where; Using index
|
1 PRIMARY t3 index a a 5 NULL 3 100.00 Using where; Using index
|
||||||
1 PRIMARY t1 ref a a 10 test.t2.a,test.t3.a 116 100.00 Using index; FirstMatch(t2)
|
1 PRIMARY t1 ref a a 10 test.t2.a,test.t3.a 116 100.00 Using index; FirstMatch(t2)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1` join `test`.`t3`) where ((`test`.`t1`.`a` = `test`.`t2`.`a`) and (`test`.`t1`.`b` = `test`.`t3`.`a`))
|
Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1` join `test`.`t3`) where ((`test`.`t1`.`b` = `test`.`t3`.`a`) and (`test`.`t1`.`a` = `test`.`t2`.`a`))
|
||||||
insert into t1 values (3,31);
|
insert into t1 values (3,31);
|
||||||
select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
|
select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
|
||||||
a
|
a
|
||||||
@ -2979,7 +2979,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 8 func,func 1 100.00
|
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 8 func,func 1 100.00
|
||||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 9 100.00 Using where
|
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 9 100.00 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`one` AS `one`,`test`.`t1`.`two` AS `two` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`flag` = 'N'))
|
Note 1003 select `test`.`t1`.`one` AS `one`,`test`.`t1`.`two` AS `two` from `test`.`t1` semi join (`test`.`t2`) where (`test`.`t2`.`flag` = 'N')
|
||||||
explain extended SELECT one,two,ROW(one,two) IN (SELECT one,two FROM t2 WHERE flag = '0' group by one,two) as 'test' from t1;
|
explain extended SELECT one,two,ROW(one,two) IN (SELECT one,two FROM t2 WHERE flag = '0' group by one,two) as 'test' from t1;
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 8 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 8 100.00
|
||||||
|
@ -74,7 +74,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t10 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 100.00 Using where
|
1 PRIMARY t10 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 100.00 Using where
|
||||||
1 PRIMARY t12 eq_ref PRIMARY PRIMARY 4 test.t10.a 1 100.00 Using index
|
1 PRIMARY t12 eq_ref PRIMARY PRIMARY 4 test.t10.a 1 100.00 Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t10` join `test`.`t12` join `test`.`t1` where ((`test`.`t10`.`pk` = `test`.`t1`.`a`) and (`test`.`t12`.`pk` = `test`.`t10`.`a`))
|
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t10` join `test`.`t12` join `test`.`t1` where ((`test`.`t12`.`pk` = `test`.`t10`.`a`) and (`test`.`t10`.`pk` = `test`.`t1`.`a`))
|
||||||
subqueries within outer joins go into ON expr.
|
subqueries within outer joins go into ON expr.
|
||||||
explAin extended
|
explAin extended
|
||||||
select * from t1 left join (t2 A, t2 B) on ( A.A= t1.A And B.A in (select pk from t10));
|
select * from t1 left join (t2 A, t2 B) on ( A.A= t1.A And B.A in (select pk from t10));
|
||||||
@ -84,7 +84,7 @@ id select_type tABle type possiBle_keys key key_len ref rows filtered ExtrA
|
|||||||
1 PRIMARY B ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 PRIMARY B ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
2 MATERIALIZED t10 index PRIMARY PRIMARY 4 NULL 10 100.00 Using index
|
2 MATERIALIZED t10 index PRIMARY PRIMARY 4 NULL 10 100.00 Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`A` AS `A`,`test`.`t1`.`B` AS `B`,`test`.`A`.`A` AS `A`,`test`.`A`.`B` AS `B`,`test`.`B`.`A` AS `A`,`test`.`B`.`B` AS `B` from `test`.`t1` left join (`test`.`t2` `A` join `test`.`t2` `B`) on((<in_optimizer>(`test`.`B`.`A`,`test`.`B`.`A` in ( <mAteriAlize> (select `test`.`t10`.`pk` from `test`.`t10` ), <primAry_index_lookup>(`test`.`B`.`A` in <temporAry tABle> on distinct_key where ((`test`.`B`.`A` = `<suBquery2>`.`pk`))))) And (`test`.`A`.`A` = `test`.`t1`.`A`))) where 1
|
Note 1003 select `test`.`t1`.`A` AS `A`,`test`.`t1`.`B` AS `B`,`test`.`A`.`A` AS `A`,`test`.`A`.`B` AS `B`,`test`.`B`.`A` AS `A`,`test`.`B`.`B` AS `B` from `test`.`t1` left join (`test`.`t2` `A` join `test`.`t2` `B`) on(((`test`.`A`.`A` = `test`.`t1`.`A`) And <in_optimizer>(`test`.`B`.`A`,`test`.`B`.`A` in ( <mAteriAlize> (select `test`.`t10`.`pk` from `test`.`t10` ), <primAry_index_lookup>(`test`.`B`.`A` in <temporAry tABle> on distinct_key where ((`test`.`B`.`A` = `<suBquery2>`.`pk`))))))) where 1
|
||||||
t2 should be wrapped into OJ-nest, so we have "t1 LJ (t2 J t10)"
|
t2 should be wrapped into OJ-nest, so we have "t1 LJ (t2 J t10)"
|
||||||
explAin extended
|
explAin extended
|
||||||
select * from t1 left join t2 on (t2.A= t1.A And t2.A in (select pk from t10));
|
select * from t1 left join t2 on (t2.A= t1.A And t2.A in (select pk from t10));
|
||||||
@ -93,7 +93,7 @@ id select_type tABle type possiBle_keys key key_len ref rows filtered ExtrA
|
|||||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 PRIMARY t2 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
2 MATERIALIZED t10 index PRIMARY PRIMARY 4 NULL 10 100.00 Using index
|
2 MATERIALIZED t10 index PRIMARY PRIMARY 4 NULL 10 100.00 Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`A` AS `A`,`test`.`t1`.`B` AS `B`,`test`.`t2`.`A` AS `A`,`test`.`t2`.`B` AS `B` from `test`.`t1` left join `test`.`t2` on((<in_optimizer>(`test`.`t2`.`A`,`test`.`t2`.`A` in ( <mAteriAlize> (select `test`.`t10`.`pk` from `test`.`t10` ), <primAry_index_lookup>(`test`.`t2`.`A` in <temporAry tABle> on distinct_key where ((`test`.`t2`.`A` = `<suBquery2>`.`pk`))))) And (`test`.`t2`.`A` = `test`.`t1`.`A`))) where 1
|
Note 1003 select `test`.`t1`.`A` AS `A`,`test`.`t1`.`B` AS `B`,`test`.`t2`.`A` AS `A`,`test`.`t2`.`B` AS `B` from `test`.`t1` left join `test`.`t2` on(((`test`.`t2`.`A` = `test`.`t1`.`A`) And <in_optimizer>(`test`.`t1`.`A`,`test`.`t1`.`A` in ( <mAteriAlize> (select `test`.`t10`.`pk` from `test`.`t10` ), <primAry_index_lookup>(`test`.`t1`.`A` in <temporAry tABle> on distinct_key where ((`test`.`t1`.`A` = `<suBquery2>`.`pk`))))))) where 1
|
||||||
we shouldn't flatten if we're going to get a join of > MAX_TABLES.
|
we shouldn't flatten if we're going to get a join of > MAX_TABLES.
|
||||||
explain select * from
|
explain select * from
|
||||||
t1 s00, t1 s01, t1 s02, t1 s03, t1 s04,t1 s05,t1 s06,t1 s07,t1 s08,t1 s09,
|
t1 s00, t1 s01, t1 s02, t1 s03, t1 s04,t1 s05,t1 s06,t1 s07,t1 s08,t1 s09,
|
||||||
@ -501,7 +501,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t0.pk 1 100.00 Using where
|
1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t0.pk 1 100.00 Using where
|
||||||
1 PRIMARY t2 ref vkey vkey 4 test.t1.vnokey 2 100.00 Using index; FirstMatch(t1)
|
1 PRIMARY t2 ref vkey vkey 4 test.t1.vnokey 2 100.00 Using index; FirstMatch(t1)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t0`.`vkey` AS `vkey` from `test`.`t0` `t1` semi join (`test`.`t0` `t2`) join `test`.`t0` where ((`test`.`t2`.`vkey` = `test`.`t1`.`vnokey`) and (`test`.`t1`.`pk` = `test`.`t0`.`pk`))
|
Note 1003 select `test`.`t0`.`vkey` AS `vkey` from `test`.`t0` `t1` semi join (`test`.`t0` `t2`) join `test`.`t0` where ((`test`.`t1`.`pk` = `test`.`t0`.`pk`) and (`test`.`t2`.`vkey` = `test`.`t1`.`vnokey`))
|
||||||
SELECT vkey FROM t0 WHERE pk IN
|
SELECT vkey FROM t0 WHERE pk IN
|
||||||
(SELECT t1.pk FROM t0 t1 JOIN t0 t2 ON t2.vkey = t1.vnokey);
|
(SELECT t1.pk FROM t0 t1 JOIN t0 t2 ON t2.vkey = t1.vnokey);
|
||||||
vkey
|
vkey
|
||||||
@ -814,7 +814,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`c` = `test`.`t1`.`c`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`c` = `test`.`t1`.`c`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, c) IN (SELECT b, c FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, c) IN (SELECT b, c FROM t2 WHERE pk > 0);
|
||||||
pk
|
pk
|
||||||
1
|
1
|
||||||
@ -824,7 +824,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`d` = `test`.`t1`.`d`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`d` = `test`.`t1`.`d`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, d) IN (SELECT b, d FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, d) IN (SELECT b, d FROM t2 WHERE pk > 0);
|
||||||
pk
|
pk
|
||||||
2
|
2
|
||||||
@ -833,7 +833,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`e` = `test`.`t1`.`e`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`e` = `test`.`t1`.`e`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, e) IN (SELECT b, e FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, e) IN (SELECT b, e FROM t2 WHERE pk > 0);
|
||||||
pk
|
pk
|
||||||
1
|
1
|
||||||
@ -843,7 +843,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`f` = `test`.`t1`.`f`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`f` = `test`.`t1`.`f`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, f) IN (SELECT b, f FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, f) IN (SELECT b, f FROM t2 WHERE pk > 0);
|
||||||
pk
|
pk
|
||||||
1
|
1
|
||||||
@ -853,7 +853,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`g` = `test`.`t1`.`g`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`g` = `test`.`t1`.`g`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, g) IN (SELECT b, g FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, g) IN (SELECT b, g FROM t2 WHERE pk > 0);
|
||||||
pk
|
pk
|
||||||
1
|
1
|
||||||
@ -863,7 +863,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`h` = `test`.`t1`.`h`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`h` = `test`.`t1`.`h`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, h) IN (SELECT b, h FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, h) IN (SELECT b, h FROM t2 WHERE pk > 0);
|
||||||
pk
|
pk
|
||||||
1
|
1
|
||||||
@ -873,7 +873,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`i` = `test`.`t1`.`i`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`i` = `test`.`t1`.`i`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, i) IN (SELECT b, i FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, i) IN (SELECT b, i FROM t2 WHERE pk > 0);
|
||||||
pk
|
pk
|
||||||
1
|
1
|
||||||
@ -883,7 +883,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`j` = `test`.`t1`.`j`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`j` = `test`.`t1`.`j`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, j) IN (SELECT b, j FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, j) IN (SELECT b, j FROM t2 WHERE pk > 0);
|
||||||
pk
|
pk
|
||||||
1
|
1
|
||||||
@ -893,7 +893,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`k` = `test`.`t1`.`k`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`k` = `test`.`t1`.`k`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, k) IN (SELECT b, k FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, k) IN (SELECT b, k FROM t2 WHERE pk > 0);
|
||||||
pk
|
pk
|
||||||
1
|
1
|
||||||
@ -1994,7 +1994,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
|
||||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 5 100.00 Using where; Using join buffer (flat, BNL join)
|
1 PRIMARY t3 ALL NULL NULL NULL NULL 5 100.00 Using where; Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`f1` AS `f1`,`test`.`t1`.`f2` AS `f2`,`test`.`t2`.`f3` AS `f3`,`test`.`t3`.`f3` AS `f3` from `test`.`t1` semi join (`test`.`t4`) join `test`.`t2` join `test`.`t3` where ((`test`.`t1`.`f2` = `test`.`t2`.`f2`) and (`test`.`t3`.`f1` = `test`.`t1`.`f1`) and (`test`.`t4`.`f2` = `test`.`t2`.`f3`))
|
Note 1003 select `test`.`t1`.`f1` AS `f1`,`test`.`t1`.`f2` AS `f2`,`test`.`t2`.`f3` AS `f3`,`test`.`t3`.`f3` AS `f3` from `test`.`t1` semi join (`test`.`t4`) join `test`.`t2` join `test`.`t3` where ((`test`.`t4`.`f2` = `test`.`t2`.`f3`) and (`test`.`t3`.`f1` = `test`.`t1`.`f1`) and (`test`.`t1`.`f2` = `test`.`t2`.`f2`))
|
||||||
SELECT * FROM t1 NATURAL LEFT JOIN (t2, t3) WHERE t2.f3 IN (SELECT * FROM t4);
|
SELECT * FROM t1 NATURAL LEFT JOIN (t2, t3) WHERE t2.f3 IN (SELECT * FROM t4);
|
||||||
f1 f2 f3 f3
|
f1 f2 f3 f3
|
||||||
2 0 0 0
|
2 0 0 0
|
||||||
|
@ -456,7 +456,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ref a a 5 test.t0.a 1 100.00 Using where; FirstMatch(t2)
|
1 PRIMARY t1 ref a a 5 test.t0.a 1 100.00 Using where; FirstMatch(t2)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1276 Field or reference 'test.t0.a' of SELECT #2 was resolved in SELECT #1
|
Note 1276 Field or reference 'test.t0.a' of SELECT #2 was resolved in SELECT #1
|
||||||
Note 1003 select `test`.`t0`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) join `test`.`t0` where ((`test`.`t1`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`a` = `test`.`t0`.`a`) and (`test`.`t1`.`a` = `test`.`t0`.`a`))
|
Note 1003 select `test`.`t0`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) join `test`.`t0` where ((`test`.`t2`.`a` = `test`.`t0`.`a`) and (`test`.`t1`.`a` = `test`.`t0`.`a`) and (`test`.`t1`.`b` = `test`.`t2`.`b`))
|
||||||
update t1 set a=3, b=11 where a=4;
|
update t1 set a=3, b=11 where a=4;
|
||||||
update t2 set b=11 where a=3;
|
update t2 set b=11 where a=3;
|
||||||
select * from t0 where t0.a in
|
select * from t0 where t0.a in
|
||||||
|
@ -468,7 +468,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ref a a 5 test.t0.a 1 100.00 Using where; FirstMatch(t2); Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
1 PRIMARY t1 ref a a 5 test.t0.a 1 100.00 Using where; FirstMatch(t2); Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1276 Field or reference 'test.t0.a' of SELECT #2 was resolved in SELECT #1
|
Note 1276 Field or reference 'test.t0.a' of SELECT #2 was resolved in SELECT #1
|
||||||
Note 1003 select `test`.`t0`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) join `test`.`t0` where ((`test`.`t1`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`a` = `test`.`t0`.`a`) and (`test`.`t1`.`a` = `test`.`t0`.`a`))
|
Note 1003 select `test`.`t0`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) join `test`.`t0` where ((`test`.`t2`.`a` = `test`.`t0`.`a`) and (`test`.`t1`.`a` = `test`.`t0`.`a`) and (`test`.`t1`.`b` = `test`.`t2`.`b`))
|
||||||
update t1 set a=3, b=11 where a=4;
|
update t1 set a=3, b=11 where a=4;
|
||||||
update t2 set b=11 where a=3;
|
update t2 set b=11 where a=3;
|
||||||
# Not anymore:
|
# Not anymore:
|
||||||
|
@ -458,7 +458,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ref a a 5 test.t0.a 1 100.00 Using where; FirstMatch(t2)
|
1 PRIMARY t1 ref a a 5 test.t0.a 1 100.00 Using where; FirstMatch(t2)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1276 Field or reference 'test.t0.a' of SELECT #2 was resolved in SELECT #1
|
Note 1276 Field or reference 'test.t0.a' of SELECT #2 was resolved in SELECT #1
|
||||||
Note 1003 select `test`.`t0`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) join `test`.`t0` where ((`test`.`t1`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`a` = `test`.`t0`.`a`) and (`test`.`t1`.`a` = `test`.`t0`.`a`))
|
Note 1003 select `test`.`t0`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) join `test`.`t0` where ((`test`.`t2`.`a` = `test`.`t0`.`a`) and (`test`.`t1`.`a` = `test`.`t0`.`a`) and (`test`.`t1`.`b` = `test`.`t2`.`b`))
|
||||||
update t1 set a=3, b=11 where a=4;
|
update t1 set a=3, b=11 where a=4;
|
||||||
update t2 set b=11 where a=3;
|
update t2 set b=11 where a=3;
|
||||||
select * from t0 where t0.a in
|
select * from t0 where t0.a in
|
||||||
@ -1124,3 +1124,267 @@ AND ( 6 ) IN
|
|||||||
ERROR 42000: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay
|
ERROR 42000: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
set max_join_size= @tmp_906385;
|
set max_join_size= @tmp_906385;
|
||||||
|
#
|
||||||
|
# mdev-3995: Wrong result for semijoin with materialization
|
||||||
|
#
|
||||||
|
set @save_optimizer_switch=@@optimizer_switch;
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
cat_id int(10) unsigned NOT NULL,
|
||||||
|
PRIMARY KEY (cat_id)
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t1 VALUES
|
||||||
|
(709411),(709412),(709413),(709414),(709416),(709417),(709418),(709419),(709421),(709422),
|
||||||
|
(709424),(709425),(709427),(709428),(709429),(709431),(709432),(709433),(709434),(709435),
|
||||||
|
(709438),(709439),(709441),(709442),(709443),(709444),(709445),(709446),(709447),(709450),
|
||||||
|
(709451),(709454),(709455),(709456),(709457),(709459),(709460),(709461),(709462),(709463),
|
||||||
|
(709464),(709465),(709467),(709469),(709470),(709471),(709472),(709473),(709474),(709475),
|
||||||
|
(709476),(709477),(709478),(709479),(709480),(709481),(709483),(709484),(709485),(709487),
|
||||||
|
(709490),(709491),(709492),(709493),(709494),(709495),(709496),(709497),(709498),(709499),
|
||||||
|
(709500),(709501),(709502),(709503),(709504),(709505),(709506),(709507),(709509),(709510),
|
||||||
|
(709511),(709512),(709513),(709514),(709515),(709516),(709517),(709518),(709519),(709520),
|
||||||
|
(709521),(709522),(709523),(709524),(709525),(709526),(709527),(709528),(709529),(709530),
|
||||||
|
(709531),(709532),(709533),(709534),(709535),(709536),(709537),(709538),(709539),(709540),
|
||||||
|
(709541),(709542),(709543),(709544),(709545),(709546),(709548),(709549),(709551),(709552),
|
||||||
|
(709553),(709555),(709556),(709557),(709558),(709559),(709560),(709561),(709562),(709563),
|
||||||
|
(709564),(709565),(709566),(709567),(709568),(709569),(709570),(709571),(709572),(709573),
|
||||||
|
(709574),(709575),(709576),(709577),(709578),(709579),(709580),(709581),(709582),(709583),
|
||||||
|
(709584),(709585),(709586),(709587),(709588),(709590),(709591),(709592),(709593),(709594),
|
||||||
|
(709595),(709596),(709597),(709598),(709600),(709601),(709602),(709603),(709604),(709605),
|
||||||
|
(709606),(709608),(709609),(709610),(709611),(709612),(709613),(709614),(709615),(709616),
|
||||||
|
(709617),(709618),(709619),(709620),(709621),(709622),(709623),(709624),(709625),(709626),
|
||||||
|
(709627),(709628),(709629),(709630),(709631),(709632),(709633),(709634),(709635),(709637),
|
||||||
|
(709638),(709639),(709640),(709641),(709642),(709643),(709644),(709645),(709646),(709649),
|
||||||
|
(709650),(709651),(709652),(709653),(709654),(709655),(709656),(709657),(709658),(709659);
|
||||||
|
CREATE TABLE t2 (
|
||||||
|
cat_id int(10) NOT NULL,
|
||||||
|
KEY cat_id (cat_id)
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t2 VALUES
|
||||||
|
(708742),(708755),(708759),(708761),(708766),(708769),(708796),(708798),(708824),(708825),
|
||||||
|
(708838),(708844),(708861),(708882),(708887),(708889),(708890),(709586),(709626);
|
||||||
|
CREATE TABLE t3 (
|
||||||
|
sack_id int(10) unsigned NOT NULL,
|
||||||
|
kit_id tinyint(3) unsigned NOT NULL DEFAULT '0',
|
||||||
|
cat_id int(10) unsigned NOT NULL,
|
||||||
|
PRIMARY KEY (sack_id,kit_id,cat_id)
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t3 VALUES
|
||||||
|
(33479,6,708523),(33479,6,708632),(33479,6,709085),(33479,6,709586),(33479,6,709626);
|
||||||
|
CREATE TABLE t4 (
|
||||||
|
cat_id int(10) unsigned NOT NULL,
|
||||||
|
KEY cat_id (cat_id)
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t4 (cat_id) SELECT cat_id from t2;
|
||||||
|
set optimizer_switch='materialization=off';
|
||||||
|
EXPLAIN
|
||||||
|
SELECT count(*) FROM t1, t3
|
||||||
|
WHERE t1.cat_id = t3.cat_id AND
|
||||||
|
t3.cat_id IN (SELECT cat_id FROM t2) AND
|
||||||
|
t3.sack_id = 33479 AND t3.kit_id = 6;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY t3 ref PRIMARY PRIMARY 5 const,const 4 Using index
|
||||||
|
1 PRIMARY t2 ref cat_id cat_id 4 test.t3.cat_id 2 Using where; Using index; FirstMatch(t3)
|
||||||
|
1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t2.cat_id 1 Using where; Using index
|
||||||
|
SELECT count(*) FROM t1, t3
|
||||||
|
WHERE t1.cat_id = t3.cat_id AND
|
||||||
|
t3.cat_id IN (SELECT cat_id FROM t2) AND
|
||||||
|
t3.sack_id = 33479 AND t3.kit_id = 6;
|
||||||
|
count(*)
|
||||||
|
2
|
||||||
|
set optimizer_switch='materialization=on';
|
||||||
|
EXPLAIN
|
||||||
|
SELECT count(*) FROM t1, t3
|
||||||
|
WHERE t1.cat_id = t3.cat_id AND
|
||||||
|
t3.cat_id IN (SELECT cat_id FROM t4) AND
|
||||||
|
t3.sack_id = 33479 AND t3.kit_id = 6;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY t3 ref PRIMARY PRIMARY 5 const,const 4 Using index
|
||||||
|
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1
|
||||||
|
1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t3.cat_id 1 Using index
|
||||||
|
2 MATERIALIZED t4 index cat_id cat_id 4 NULL 19 Using index
|
||||||
|
SELECT count(*) FROM t1, t3
|
||||||
|
WHERE t1.cat_id = t3.cat_id AND
|
||||||
|
t3.cat_id IN (SELECT cat_id FROM t4) AND
|
||||||
|
t3.sack_id = 33479 AND t3.kit_id = 6;
|
||||||
|
count(*)
|
||||||
|
2
|
||||||
|
EXPLAIN
|
||||||
|
SELECT count(*) FROM t1, t3
|
||||||
|
WHERE t1.cat_id = t3.cat_id AND
|
||||||
|
t3.cat_id IN (SELECT cat_id FROM t2) AND
|
||||||
|
t3.sack_id = 33479 AND t3.kit_id = 6;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY t3 ref PRIMARY PRIMARY 5 const,const 4 Using index
|
||||||
|
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 Using where
|
||||||
|
1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t3.cat_id 1 Using index
|
||||||
|
2 MATERIALIZED t2 index cat_id cat_id 4 NULL 19 Using index
|
||||||
|
SELECT count(*) FROM t1, t3
|
||||||
|
WHERE t1.cat_id = t3.cat_id AND
|
||||||
|
t3.cat_id IN (SELECT cat_id FROM t2) AND
|
||||||
|
t3.sack_id = 33479 AND t3.kit_id = 6;
|
||||||
|
count(*)
|
||||||
|
2
|
||||||
|
DROP TABLE t1,t2,t3,t4;
|
||||||
|
set optimizer_switch=@save_optimizer_switch;
|
||||||
|
#
|
||||||
|
# mdev-3913: LEFT JOIN with materialized multi-table IN subquery in WHERE
|
||||||
|
#
|
||||||
|
set @save_optimizer_switch=@@optimizer_switch;
|
||||||
|
CREATE TABLE t1 (a1 char(1), b1 char(1), index idx(b1,a1));
|
||||||
|
INSERT INTO t1 VALUES ('f','c'),('d','m'),('g','y');
|
||||||
|
INSERT INTO t1 VALUES ('f','c'),('d','m'),('g','y');
|
||||||
|
CREATE TABLE t2 (a2 char(1), b2 char(1));
|
||||||
|
INSERT INTO t2 VALUES ('y','y'),('y','y'),('w','w');
|
||||||
|
CREATE TABLE t3 (a3 int);
|
||||||
|
INSERT INTO t3 VALUES (8),(6);
|
||||||
|
CREATE TABLE t4 (a4 char(1), b4 char(1));
|
||||||
|
INSERT INTO t4 VALUES ('y','y'),('y','y'),('w','w');
|
||||||
|
set optimizer_switch='materialization=off';
|
||||||
|
EXPLAIN EXTENDED
|
||||||
|
SELECT * FROM t1 LEFT JOIN t2 ON ( b1 = a2 )
|
||||||
|
WHERE ( b1, b1 ) IN ( SELECT a4, b4 FROM t3, t4);
|
||||||
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
|
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 Start temporary
|
||||||
|
1 PRIMARY t4 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
|
||||||
|
1 PRIMARY t1 ref idx idx 2 test.t4.a4 1 100.00 Using index; End temporary
|
||||||
|
1 PRIMARY t2 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
|
||||||
|
Warnings:
|
||||||
|
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`b1` AS `b1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b2` AS `b2` from `test`.`t1` semi join (`test`.`t3` join `test`.`t4`) left join `test`.`t2` on((`test`.`t2`.`a2` = `test`.`t4`.`a4`)) where ((`test`.`t4`.`b4` = `test`.`t4`.`a4`) and (`test`.`t1`.`b1` = `test`.`t4`.`a4`))
|
||||||
|
SELECT * FROM t1 LEFT JOIN t2 ON ( b1 = a2 )
|
||||||
|
WHERE ( b1, b1 ) IN ( SELECT a4, b4 FROM t3, t4);
|
||||||
|
a1 b1 a2 b2
|
||||||
|
g y y y
|
||||||
|
g y y y
|
||||||
|
g y y y
|
||||||
|
g y y y
|
||||||
|
set optimizer_switch='materialization=on';
|
||||||
|
EXPLAIN EXTENDED
|
||||||
|
SELECT * FROM t1 LEFT JOIN t2 ON ( b1 = a2 )
|
||||||
|
WHERE ( b1, b1 ) IN ( SELECT a4, b4 FROM t3, t4);
|
||||||
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
|
1 PRIMARY <subquery2> ALL distinct_key NULL NULL NULL 3 100.00
|
||||||
|
1 PRIMARY t1 ref idx idx 2 test.t4.a4 1 100.00 Using index
|
||||||
|
1 PRIMARY t2 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
|
||||||
|
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 100.00
|
||||||
|
2 MATERIALIZED t4 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
|
||||||
|
Warnings:
|
||||||
|
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`b1` AS `b1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b2` AS `b2` from `test`.`t1` semi join (`test`.`t3` join `test`.`t4`) left join `test`.`t2` on(((`test`.`t1`.`b1` = `test`.`t4`.`a4`) and (`test`.`t2`.`a2` = `test`.`t4`.`a4`))) where ((`test`.`t4`.`b4` = `test`.`t4`.`a4`) and (`test`.`t1`.`b1` = `test`.`t4`.`a4`))
|
||||||
|
SELECT * FROM t1 LEFT JOIN t2 ON ( b1 = a2 )
|
||||||
|
WHERE ( b1, b1 ) IN ( SELECT a4, b4 FROM t3, t4);
|
||||||
|
a1 b1 a2 b2
|
||||||
|
g y y y
|
||||||
|
g y y y
|
||||||
|
g y y y
|
||||||
|
g y y y
|
||||||
|
DROP TABLE t1,t2,t3,t4;
|
||||||
|
set optimizer_switch=@save_optimizer_switch;
|
||||||
|
#
|
||||||
|
# mdev-4172: LEFT JOIN with materialized multi-table IN subquery in WHERE
|
||||||
|
# and OR in ON condition
|
||||||
|
#
|
||||||
|
set @save_optimizer_switch=@@optimizer_switch;
|
||||||
|
CREATE TABLE t1 (a1 int, c1 varchar(1));
|
||||||
|
INSERT t1 VALUES (7,'v'), (3,'y');
|
||||||
|
CREATE TABLE t2 (c2 varchar(1));
|
||||||
|
INSERT INTO t2 VALUES ('y'), ('y');
|
||||||
|
CREATE TABLE t3 (c3 varchar(1));
|
||||||
|
INSERT INTO t3 VALUES
|
||||||
|
('j'), ('v'), ('c'), ('m'), ('d'),
|
||||||
|
('d'), ('y'), ('t'), ('d'), ('s');
|
||||||
|
CREATE TABLE t4 (a4 int, c4 varchar(1));
|
||||||
|
INSERT INTO t4 SELECT * FROM t1;
|
||||||
|
set optimizer_switch='materialization=off';
|
||||||
|
EXPLAIN EXTENDED
|
||||||
|
SELECT * FROM t1 LEFT JOIN t2 ON (c2 = c1 OR c1 > 'z')
|
||||||
|
WHERE c1 IN ( SELECT c4 FROM t3,t4 WHERE c3 = c4);
|
||||||
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
|
1 PRIMARY t4 ALL NULL NULL NULL NULL 2 100.00 Using where; Start temporary; Using join buffer (flat, BNL join)
|
||||||
|
1 PRIMARY t3 ALL NULL NULL NULL NULL 10 100.00 Using where; End temporary; Using join buffer (flat, BNL join)
|
||||||
|
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (flat, BNL join)
|
||||||
|
Warnings:
|
||||||
|
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`c1` AS `c1`,`test`.`t2`.`c2` AS `c2` from `test`.`t1` semi join (`test`.`t3` join `test`.`t4`) left join `test`.`t2` on(((`test`.`t2`.`c2` = `test`.`t1`.`c1`) or (`test`.`t1`.`c1` > 'z'))) where ((`test`.`t4`.`c4` = `test`.`t1`.`c1`) and (`test`.`t3`.`c3` = `test`.`t1`.`c1`))
|
||||||
|
SELECT * FROM t1 LEFT JOIN t2 ON (c2 = c1 OR c1 > 'z')
|
||||||
|
WHERE c1 IN ( SELECT c4 FROM t3,t4 WHERE c3 = c4);
|
||||||
|
a1 c1 c2
|
||||||
|
3 y y
|
||||||
|
3 y y
|
||||||
|
7 v NULL
|
||||||
|
set optimizer_switch='materialization=on';
|
||||||
|
EXPLAIN EXTENDED
|
||||||
|
SELECT * FROM t1 LEFT JOIN t2 ON (c2 = c1 OR c1 > 'z')
|
||||||
|
WHERE c1 IN ( SELECT c4 FROM t3,t4 WHERE c3 = c4);
|
||||||
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
|
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 100.00
|
||||||
|
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (flat, BNL join)
|
||||||
|
2 MATERIALIZED t4 ALL NULL NULL NULL NULL 2 100.00
|
||||||
|
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 10 100.00 Using where; Using join buffer (flat, BNL join)
|
||||||
|
Warnings:
|
||||||
|
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`c1` AS `c1`,`test`.`t2`.`c2` AS `c2` from `test`.`t1` semi join (`test`.`t3` join `test`.`t4`) left join `test`.`t2` on(((`test`.`t2`.`c2` = `test`.`t1`.`c1`) or (`test`.`t1`.`c1` > 'z'))) where (`test`.`t3`.`c3` = `test`.`t4`.`c4`)
|
||||||
|
SELECT * FROM t1 LEFT JOIN t2 ON (c2 = c1 OR c1 > 'z')
|
||||||
|
WHERE c1 IN ( SELECT c4 FROM t3,t4 WHERE c3 = c4);
|
||||||
|
a1 c1 c2
|
||||||
|
3 y y
|
||||||
|
3 y y
|
||||||
|
7 v NULL
|
||||||
|
DROP TABLE t1,t2,t3,t4;
|
||||||
|
set optimizer_switch=@save_optimizer_switch;
|
||||||
|
#
|
||||||
|
# mdev-4177: materialization of a subquery whose WHERE condition is OR
|
||||||
|
# formula with two disjucts such that the second one is always false
|
||||||
|
#
|
||||||
|
set @save_optimizer_switch=@@optimizer_switch;
|
||||||
|
set @save_join_cache_level=@@join_cache_level;
|
||||||
|
CREATE TABLE t1 (i1 int) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t1 VALUES (1), (7), (4), (8), (4);
|
||||||
|
CREATE TABLE t2 (i2 int) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t2 VALUES (7), (5);
|
||||||
|
CREATE TABLE t3 (i3 int) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t3 VALUES (7), (2), (9);
|
||||||
|
set join_cache_level=3;
|
||||||
|
set optimizer_switch='materialization=off,semijoin=off';
|
||||||
|
EXPLAIN EXTENDED
|
||||||
|
SELECT * FROM t1 WHERE i1 IN (SELECT i3 FROM t2, t3 WHERE i3 = i2 OR 1=2);
|
||||||
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 5 100.00 Using where
|
||||||
|
2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 2 100.00
|
||||||
|
2 DEPENDENT SUBQUERY t3 hash_ALL NULL #hash#$hj 5 func 3 100.00 Using where; Using join buffer (flat, BNLH join)
|
||||||
|
Warnings:
|
||||||
|
Note 1003 select `test`.`t1`.`i1` AS `i1` from `test`.`t1` where <expr_cache><`test`.`t1`.`i1`>(<in_optimizer>(`test`.`t1`.`i1`,<exists>(select `test`.`t3`.`i3` from `test`.`t2` join `test`.`t3` where ((`test`.`t3`.`i3` = `test`.`t2`.`i2`) and (<cache>(`test`.`t1`.`i1`) = `test`.`t3`.`i3`)))))
|
||||||
|
SELECT * FROM t1 WHERE i1 IN (SELECT i3 FROM t2, t3 WHERE i3 = i2 OR 1=2);
|
||||||
|
i1
|
||||||
|
7
|
||||||
|
set optimizer_switch='materialization=on,semijoin=on';
|
||||||
|
EXPLAIN EXTENDED
|
||||||
|
SELECT * FROM t1 WHERE i1 IN (SELECT i3 FROM t2, t3 WHERE i3 = i2 OR 1=2);
|
||||||
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
|
1 PRIMARY <subquery2> ALL distinct_key NULL NULL NULL 3 100.00
|
||||||
|
1 PRIMARY t1 hash_ALL NULL #hash#$hj 5 test.t2.i2 5 100.00 Using where; Using join buffer (flat, BNLH join)
|
||||||
|
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||||
|
2 MATERIALIZED t3 hash_ALL NULL #hash#$hj 5 test.t2.i2 3 100.00 Using where; Using join buffer (flat, BNLH join)
|
||||||
|
Warnings:
|
||||||
|
Note 1003 select `test`.`t1`.`i1` AS `i1` from `test`.`t1` semi join (`test`.`t2` join `test`.`t3`) where ((`test`.`t3`.`i3` = `test`.`t2`.`i2`) and (`test`.`t1`.`i1` = `test`.`t2`.`i2`))
|
||||||
|
SELECT * FROM t1 WHERE i1 IN (SELECT i3 FROM t2, t3 WHERE i3 = i2 OR 1=2);
|
||||||
|
i1
|
||||||
|
7
|
||||||
|
EXPLAIN EXTENDED
|
||||||
|
SELECT * FROM t1
|
||||||
|
WHERE i1 IN (SELECT i3 FROM t2, t3 WHERE i3 > 0 AND i3 = i2 OR 1=2);
|
||||||
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
|
1 PRIMARY <subquery2> ALL distinct_key NULL NULL NULL 3 100.00
|
||||||
|
1 PRIMARY t1 hash_ALL NULL #hash#$hj 5 test.t2.i2 5 100.00 Using where; Using join buffer (flat, BNLH join)
|
||||||
|
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||||
|
2 MATERIALIZED t3 hash_ALL NULL #hash#$hj 5 test.t2.i2 3 100.00 Using where; Using join buffer (flat, BNLH join)
|
||||||
|
Warnings:
|
||||||
|
Note 1003 select `test`.`t1`.`i1` AS `i1` from `test`.`t1` semi join (`test`.`t2` join `test`.`t3`) where ((`test`.`t3`.`i3` = `test`.`t2`.`i2`) and (`test`.`t1`.`i1` = `test`.`t2`.`i2`) and (`test`.`t3`.`i3` > 0))
|
||||||
|
SELECT * FROM t1
|
||||||
|
WHERE i1 IN (SELECT i3 FROM t2, t3 WHERE i3 > 0 AND i3 = i2 OR 1=2);
|
||||||
|
i1
|
||||||
|
7
|
||||||
|
SELECT * FROM t1
|
||||||
|
WHERE i1 IN (SELECT i3 FROM t2, t3 WHERE i3 > 7 AND i3 = i2 OR 1=2);
|
||||||
|
i1
|
||||||
|
DROP TABLE t1,t2,t3;
|
||||||
|
set join_cache_level= @save_join_cache_level;
|
||||||
|
set optimizer_switch=@save_optimizer_switch;
|
||||||
|
@ -87,7 +87,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t10 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 100.00 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
1 PRIMARY t10 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 100.00 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 PRIMARY t12 eq_ref PRIMARY PRIMARY 4 test.t10.a 1 100.00 Using index
|
1 PRIMARY t12 eq_ref PRIMARY PRIMARY 4 test.t10.a 1 100.00 Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t10` join `test`.`t12` join `test`.`t1` where ((`test`.`t10`.`pk` = `test`.`t1`.`a`) and (`test`.`t12`.`pk` = `test`.`t10`.`a`))
|
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t10` join `test`.`t12` join `test`.`t1` where ((`test`.`t12`.`pk` = `test`.`t10`.`a`) and (`test`.`t10`.`pk` = `test`.`t1`.`a`))
|
||||||
subqueries within outer joins go into ON expr.
|
subqueries within outer joins go into ON expr.
|
||||||
explAin extended
|
explAin extended
|
||||||
select * from t1 left join (t2 A, t2 B) on ( A.A= t1.A And B.A in (select pk from t10));
|
select * from t1 left join (t2 A, t2 B) on ( A.A= t1.A And B.A in (select pk from t10));
|
||||||
@ -97,7 +97,7 @@ id select_type tABle type possiBle_keys key key_len ref rows filtered ExtrA
|
|||||||
1 PRIMARY B ALL NULL NULL NULL NULL 3 100.00 Using where; Using join Buffer (incrementAl, BNL join)
|
1 PRIMARY B ALL NULL NULL NULL NULL 3 100.00 Using where; Using join Buffer (incrementAl, BNL join)
|
||||||
2 MATERIALIZED t10 index PRIMARY PRIMARY 4 NULL 10 100.00 Using index
|
2 MATERIALIZED t10 index PRIMARY PRIMARY 4 NULL 10 100.00 Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`A` AS `A`,`test`.`t1`.`B` AS `B`,`test`.`A`.`A` AS `A`,`test`.`A`.`B` AS `B`,`test`.`B`.`A` AS `A`,`test`.`B`.`B` AS `B` from `test`.`t1` left join (`test`.`t2` `A` join `test`.`t2` `B`) on((<in_optimizer>(`test`.`B`.`A`,`test`.`B`.`A` in ( <mAteriAlize> (select `test`.`t10`.`pk` from `test`.`t10` ), <primAry_index_lookup>(`test`.`B`.`A` in <temporAry tABle> on distinct_key where ((`test`.`B`.`A` = `<suBquery2>`.`pk`))))) And (`test`.`A`.`A` = `test`.`t1`.`A`))) where 1
|
Note 1003 select `test`.`t1`.`A` AS `A`,`test`.`t1`.`B` AS `B`,`test`.`A`.`A` AS `A`,`test`.`A`.`B` AS `B`,`test`.`B`.`A` AS `A`,`test`.`B`.`B` AS `B` from `test`.`t1` left join (`test`.`t2` `A` join `test`.`t2` `B`) on(((`test`.`A`.`A` = `test`.`t1`.`A`) And <in_optimizer>(`test`.`B`.`A`,`test`.`B`.`A` in ( <mAteriAlize> (select `test`.`t10`.`pk` from `test`.`t10` ), <primAry_index_lookup>(`test`.`B`.`A` in <temporAry tABle> on distinct_key where ((`test`.`B`.`A` = `<suBquery2>`.`pk`))))))) where 1
|
||||||
t2 should be wrapped into OJ-nest, so we have "t1 LJ (t2 J t10)"
|
t2 should be wrapped into OJ-nest, so we have "t1 LJ (t2 J t10)"
|
||||||
explAin extended
|
explAin extended
|
||||||
select * from t1 left join t2 on (t2.A= t1.A And t2.A in (select pk from t10));
|
select * from t1 left join t2 on (t2.A= t1.A And t2.A in (select pk from t10));
|
||||||
@ -106,7 +106,7 @@ id select_type tABle type possiBle_keys key key_len ref rows filtered ExtrA
|
|||||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join Buffer (flAt, BNL join)
|
1 PRIMARY t2 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join Buffer (flAt, BNL join)
|
||||||
2 MATERIALIZED t10 index PRIMARY PRIMARY 4 NULL 10 100.00 Using index
|
2 MATERIALIZED t10 index PRIMARY PRIMARY 4 NULL 10 100.00 Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`A` AS `A`,`test`.`t1`.`B` AS `B`,`test`.`t2`.`A` AS `A`,`test`.`t2`.`B` AS `B` from `test`.`t1` left join `test`.`t2` on((<in_optimizer>(`test`.`t2`.`A`,`test`.`t2`.`A` in ( <mAteriAlize> (select `test`.`t10`.`pk` from `test`.`t10` ), <primAry_index_lookup>(`test`.`t2`.`A` in <temporAry tABle> on distinct_key where ((`test`.`t2`.`A` = `<suBquery2>`.`pk`))))) And (`test`.`t2`.`A` = `test`.`t1`.`A`))) where 1
|
Note 1003 select `test`.`t1`.`A` AS `A`,`test`.`t1`.`B` AS `B`,`test`.`t2`.`A` AS `A`,`test`.`t2`.`B` AS `B` from `test`.`t1` left join `test`.`t2` on(((`test`.`t2`.`A` = `test`.`t1`.`A`) And <in_optimizer>(`test`.`t1`.`A`,`test`.`t1`.`A` in ( <mAteriAlize> (select `test`.`t10`.`pk` from `test`.`t10` ), <primAry_index_lookup>(`test`.`t1`.`A` in <temporAry tABle> on distinct_key where ((`test`.`t1`.`A` = `<suBquery2>`.`pk`))))))) where 1
|
||||||
we shouldn't flatten if we're going to get a join of > MAX_TABLES.
|
we shouldn't flatten if we're going to get a join of > MAX_TABLES.
|
||||||
explain select * from
|
explain select * from
|
||||||
t1 s00, t1 s01, t1 s02, t1 s03, t1 s04,t1 s05,t1 s06,t1 s07,t1 s08,t1 s09,
|
t1 s00, t1 s01, t1 s02, t1 s03, t1 s04,t1 s05,t1 s06,t1 s07,t1 s08,t1 s09,
|
||||||
@ -514,7 +514,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t0.pk 1 100.00 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t0.pk 1 100.00 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 PRIMARY t2 ref vkey vkey 4 test.t1.vnokey 2 100.00 Using index; FirstMatch(t1)
|
1 PRIMARY t2 ref vkey vkey 4 test.t1.vnokey 2 100.00 Using index; FirstMatch(t1)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t0`.`vkey` AS `vkey` from `test`.`t0` `t1` semi join (`test`.`t0` `t2`) join `test`.`t0` where ((`test`.`t2`.`vkey` = `test`.`t1`.`vnokey`) and (`test`.`t1`.`pk` = `test`.`t0`.`pk`))
|
Note 1003 select `test`.`t0`.`vkey` AS `vkey` from `test`.`t0` `t1` semi join (`test`.`t0` `t2`) join `test`.`t0` where ((`test`.`t1`.`pk` = `test`.`t0`.`pk`) and (`test`.`t2`.`vkey` = `test`.`t1`.`vnokey`))
|
||||||
SELECT vkey FROM t0 WHERE pk IN
|
SELECT vkey FROM t0 WHERE pk IN
|
||||||
(SELECT t1.pk FROM t0 t1 JOIN t0 t2 ON t2.vkey = t1.vnokey);
|
(SELECT t1.pk FROM t0 t1 JOIN t0 t2 ON t2.vkey = t1.vnokey);
|
||||||
vkey
|
vkey
|
||||||
@ -827,7 +827,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1); Using join buffer (flat, BNL join)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1); Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`c` = `test`.`t1`.`c`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`c` = `test`.`t1`.`c`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, c) IN (SELECT b, c FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, c) IN (SELECT b, c FROM t2 WHERE pk > 0);
|
||||||
pk
|
pk
|
||||||
1
|
1
|
||||||
@ -837,7 +837,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1); Using join buffer (flat, BNL join)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1); Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`d` = `test`.`t1`.`d`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`d` = `test`.`t1`.`d`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, d) IN (SELECT b, d FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, d) IN (SELECT b, d FROM t2 WHERE pk > 0);
|
||||||
pk
|
pk
|
||||||
2
|
2
|
||||||
@ -846,7 +846,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1); Using join buffer (flat, BNL join)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1); Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`e` = `test`.`t1`.`e`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`e` = `test`.`t1`.`e`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, e) IN (SELECT b, e FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, e) IN (SELECT b, e FROM t2 WHERE pk > 0);
|
||||||
pk
|
pk
|
||||||
1
|
1
|
||||||
@ -856,7 +856,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1); Using join buffer (flat, BNL join)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1); Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`f` = `test`.`t1`.`f`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`f` = `test`.`t1`.`f`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, f) IN (SELECT b, f FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, f) IN (SELECT b, f FROM t2 WHERE pk > 0);
|
||||||
pk
|
pk
|
||||||
1
|
1
|
||||||
@ -866,7 +866,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1); Using join buffer (flat, BNL join)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1); Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`g` = `test`.`t1`.`g`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`g` = `test`.`t1`.`g`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, g) IN (SELECT b, g FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, g) IN (SELECT b, g FROM t2 WHERE pk > 0);
|
||||||
pk
|
pk
|
||||||
1
|
1
|
||||||
@ -876,7 +876,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1); Using join buffer (flat, BNL join)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1); Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`h` = `test`.`t1`.`h`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`h` = `test`.`t1`.`h`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, h) IN (SELECT b, h FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, h) IN (SELECT b, h FROM t2 WHERE pk > 0);
|
||||||
pk
|
pk
|
||||||
1
|
1
|
||||||
@ -886,7 +886,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1); Using join buffer (flat, BNL join)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1); Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`i` = `test`.`t1`.`i`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`i` = `test`.`t1`.`i`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, i) IN (SELECT b, i FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, i) IN (SELECT b, i FROM t2 WHERE pk > 0);
|
||||||
pk
|
pk
|
||||||
1
|
1
|
||||||
@ -896,7 +896,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1); Using join buffer (flat, BNL join)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1); Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`j` = `test`.`t1`.`j`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`j` = `test`.`t1`.`j`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, j) IN (SELECT b, j FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, j) IN (SELECT b, j FROM t2 WHERE pk > 0);
|
||||||
pk
|
pk
|
||||||
1
|
1
|
||||||
@ -906,7 +906,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1); Using join buffer (flat, BNL join)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1); Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`k` = `test`.`t1`.`k`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`k` = `test`.`t1`.`k`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, k) IN (SELECT b, k FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, k) IN (SELECT b, k FROM t2 WHERE pk > 0);
|
||||||
pk
|
pk
|
||||||
1
|
1
|
||||||
@ -2008,7 +2008,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 5 100.00 Using where; Using join buffer (incremental, BNL join)
|
1 PRIMARY t3 ALL NULL NULL NULL NULL 5 100.00 Using where; Using join buffer (incremental, BNL join)
|
||||||
2 MATERIALIZED t4 index f2 f2 5 NULL 2 100.00 Using index
|
2 MATERIALIZED t4 index f2 f2 5 NULL 2 100.00 Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`f1` AS `f1`,`test`.`t1`.`f2` AS `f2`,`test`.`t2`.`f3` AS `f3`,`test`.`t3`.`f3` AS `f3` from `test`.`t1` semi join (`test`.`t4`) join `test`.`t2` join `test`.`t3` where ((`test`.`t1`.`f2` = `test`.`t2`.`f2`) and (`test`.`t3`.`f1` = `test`.`t1`.`f1`))
|
Note 1003 select `test`.`t1`.`f1` AS `f1`,`test`.`t1`.`f2` AS `f2`,`test`.`t2`.`f3` AS `f3`,`test`.`t3`.`f3` AS `f3` from `test`.`t1` semi join (`test`.`t4`) join `test`.`t2` join `test`.`t3` where ((`test`.`t3`.`f1` = `test`.`t1`.`f1`) and (`test`.`t1`.`f2` = `test`.`t2`.`f2`))
|
||||||
SELECT * FROM t1 NATURAL LEFT JOIN (t2, t3) WHERE t2.f3 IN (SELECT * FROM t4);
|
SELECT * FROM t1 NATURAL LEFT JOIN (t2, t3) WHERE t2.f3 IN (SELECT * FROM t4);
|
||||||
f1 f2 f3 f3
|
f1 f2 f3 f3
|
||||||
2 0 0 0
|
2 0 0 0
|
||||||
|
@ -86,7 +86,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 16 test.t1.a1,test.t1.a2 1 100.00
|
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 16 test.t1.a1,test.t1.a2 1 100.00
|
||||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 100.00 Using where; Using temporary
|
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 100.00 Using where; Using temporary
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from <materialize> (select `test`.`t2`.`b1`,min(`test`.`t2`.`b2`) from `test`.`t2` where (`test`.`t2`.`b1` > '0') group by `test`.`t2`.`b1`) join `test`.`t1` where ((`<subquery2>`.`min(b2)` = `test`.`t1`.`a2`) and (`<subquery2>`.`b1` = `test`.`t1`.`a1`))
|
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from <materialize> (select `test`.`t2`.`b1`,min(`test`.`t2`.`b2`) from `test`.`t2` where (`test`.`t2`.`b1` > '0') group by `test`.`t2`.`b1`) join `test`.`t1` where ((`<subquery2>`.`b1` = `test`.`t1`.`a1`) and (`<subquery2>`.`min(b2)` = `test`.`t1`.`a2`))
|
||||||
select * from t1 where (a1, a2) in (select b1, min(b2) from t2 where b1 > '0' group by b1);
|
select * from t1 where (a1, a2) in (select b1, min(b2) from t2 where b1 > '0' group by b1);
|
||||||
a1 a2
|
a1 a2
|
||||||
1 - 01 2 - 01
|
1 - 01 2 - 01
|
||||||
@ -120,7 +120,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t2i index it2i1,it2i2,it2i3 it2i3 # NULL 5 40.00 Using where; Using index; LooseScan
|
1 PRIMARY t2i index it2i1,it2i2,it2i3 it2i3 # NULL 5 40.00 Using where; Using index; LooseScan
|
||||||
1 PRIMARY t1i ref _it1_idx _it1_idx # _ref_ 1 100.00
|
1 PRIMARY t1i ref _it1_idx _it1_idx # _ref_ 1 100.00
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1i`.`a1` AS `a1`,`test`.`t1i`.`a2` AS `a2` from `test`.`t1i` semi join (`test`.`t2i`) where ((`test`.`t1i`.`a2` = `test`.`t2i`.`b2`) and (`test`.`t1i`.`a1` = `test`.`t2i`.`b1`) and (`test`.`t2i`.`b1` > '0'))
|
Note 1003 select `test`.`t1i`.`a1` AS `a1`,`test`.`t1i`.`a2` AS `a2` from `test`.`t1i` semi join (`test`.`t2i`) where ((`test`.`t1i`.`a1` = `test`.`t2i`.`b1`) and (`test`.`t1i`.`a2` = `test`.`t2i`.`b2`) and (`test`.`t2i`.`b1` > '0'))
|
||||||
select * from t1i where (a1, a2) in (select b1, b2 from t2i where b1 > '0');
|
select * from t1i where (a1, a2) in (select b1, b2 from t2i where b1 > '0');
|
||||||
a1 a2
|
a1 a2
|
||||||
1 - 01 2 - 01
|
1 - 01 2 - 01
|
||||||
@ -132,7 +132,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY <subquery2> eq_ref distinct_key # # # 1 100.00 #
|
1 PRIMARY <subquery2> eq_ref distinct_key # # # 1 100.00 #
|
||||||
2 MATERIALIZED t2i range it2i1,it2i3 # # # 3 100.00 #
|
2 MATERIALIZED t2i range it2i1,it2i3 # # # 3 100.00 #
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1i`.`a1` AS `a1`,`test`.`t1i`.`a2` AS `a2` from <materialize> (select `test`.`t2i`.`b1`,max(`test`.`t2i`.`b2`) from `test`.`t2i` where (`test`.`t2i`.`b1` > '0') group by `test`.`t2i`.`b1`) join `test`.`t1i` where ((`<subquery2>`.`max(b2)` = `test`.`t1i`.`a2`) and (`<subquery2>`.`b1` = `test`.`t1i`.`a1`))
|
Note 1003 select `test`.`t1i`.`a1` AS `a1`,`test`.`t1i`.`a2` AS `a2` from <materialize> (select `test`.`t2i`.`b1`,max(`test`.`t2i`.`b2`) from `test`.`t2i` where (`test`.`t2i`.`b1` > '0') group by `test`.`t2i`.`b1`) join `test`.`t1i` where ((`<subquery2>`.`b1` = `test`.`t1i`.`a1`) and (`<subquery2>`.`max(b2)` = `test`.`t1i`.`a2`))
|
||||||
select * from t1i where (a1, a2) in (select b1, max(b2) from t2i where b1 > '0' group by b1);
|
select * from t1i where (a1, a2) in (select b1, max(b2) from t2i where b1 > '0' group by b1);
|
||||||
a1 a2
|
a1 a2
|
||||||
1 - 01 2 - 01
|
1 - 01 2 - 01
|
||||||
@ -144,7 +144,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY <subquery2> eq_ref distinct_key # # # 1 100.00 #
|
1 PRIMARY <subquery2> eq_ref distinct_key # # # 1 100.00 #
|
||||||
2 MATERIALIZED t2i range it2i1,it2i3 # # # 3 100.00 #
|
2 MATERIALIZED t2i range it2i1,it2i3 # # # 3 100.00 #
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1i`.`a1` AS `a1`,`test`.`t1i`.`a2` AS `a2` from <materialize> (select `test`.`t2i`.`b1`,min(`test`.`t2i`.`b2`) from `test`.`t2i` where (`test`.`t2i`.`b1` > '0') group by `test`.`t2i`.`b1`) join `test`.`t1i` where ((`<subquery2>`.`min(b2)` = `test`.`t1i`.`a2`) and (`<subquery2>`.`b1` = `test`.`t1i`.`a1`))
|
Note 1003 select `test`.`t1i`.`a1` AS `a1`,`test`.`t1i`.`a2` AS `a2` from <materialize> (select `test`.`t2i`.`b1`,min(`test`.`t2i`.`b2`) from `test`.`t2i` where (`test`.`t2i`.`b1` > '0') group by `test`.`t2i`.`b1`) join `test`.`t1i` where ((`<subquery2>`.`b1` = `test`.`t1i`.`a1`) and (`<subquery2>`.`min(b2)` = `test`.`t1i`.`a2`))
|
||||||
select * from t1i where (a1, a2) in (select b1, min(b2) from t2i where b1 > '0' group by b1);
|
select * from t1i where (a1, a2) in (select b1, min(b2) from t2i where b1 > '0' group by b1);
|
||||||
a1 a2
|
a1 a2
|
||||||
1 - 01 2 - 01
|
1 - 01 2 - 01
|
||||||
@ -156,7 +156,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 16 test.t1.a1,test.t1.a2 1 100.00
|
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 16 test.t1.a1,test.t1.a2 1 100.00
|
||||||
2 MATERIALIZED t2i range NULL it2i3 9 NULL 3 100.00 Using index for group-by
|
2 MATERIALIZED t2i range NULL it2i3 9 NULL 3 100.00 Using index for group-by
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from <materialize> (select `test`.`t2i`.`b1`,max(`test`.`t2i`.`b2`) from `test`.`t2i` group by `test`.`t2i`.`b1`) join `test`.`t1` where ((`<subquery2>`.`max(b2)` = `test`.`t1`.`a2`) and (`<subquery2>`.`b1` = `test`.`t1`.`a1`))
|
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from <materialize> (select `test`.`t2i`.`b1`,max(`test`.`t2i`.`b2`) from `test`.`t2i` group by `test`.`t2i`.`b1`) join `test`.`t1` where ((`<subquery2>`.`b1` = `test`.`t1`.`a1`) and (`<subquery2>`.`max(b2)` = `test`.`t1`.`a2`))
|
||||||
select * from t1 where (a1, a2) in (select b1, max(b2) from t2i group by b1);
|
select * from t1 where (a1, a2) in (select b1, max(b2) from t2i group by b1);
|
||||||
a1 a2
|
a1 a2
|
||||||
1 - 01 2 - 01
|
1 - 01 2 - 01
|
||||||
@ -188,7 +188,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 16 test.t1.a1,test.t1.a2 1 100.00
|
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 16 test.t1.a1,test.t1.a2 1 100.00
|
||||||
2 MATERIALIZED t2i range it2i1,it2i3 it2i3 18 NULL 3 100.00 Using where; Using index for group-by
|
2 MATERIALIZED t2i range it2i1,it2i3 it2i3 18 NULL 3 100.00 Using where; Using index for group-by
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from <materialize> (select `test`.`t2i`.`b1`,min(`test`.`t2i`.`b2`) from `test`.`t2i` where (`test`.`t2i`.`b1` > '0') group by `test`.`t2i`.`b1`) join `test`.`t1` where ((`<subquery2>`.`min(b2)` = `test`.`t1`.`a2`) and (`<subquery2>`.`b1` = `test`.`t1`.`a1`))
|
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from <materialize> (select `test`.`t2i`.`b1`,min(`test`.`t2i`.`b2`) from `test`.`t2i` where (`test`.`t2i`.`b1` > '0') group by `test`.`t2i`.`b1`) join `test`.`t1` where ((`<subquery2>`.`b1` = `test`.`t1`.`a1`) and (`<subquery2>`.`min(b2)` = `test`.`t1`.`a2`))
|
||||||
select * from t1 where (a1, a2) in (select b1, min(b2) from t2i where b1 > '0' group by b1);
|
select * from t1 where (a1, a2) in (select b1, min(b2) from t2i where b1 > '0' group by b1);
|
||||||
a1 a2
|
a1 a2
|
||||||
1 - 01 2 - 01
|
1 - 01 2 - 01
|
||||||
@ -236,7 +236,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 16 test.t1.a1,test.t1.a2 1 100.00
|
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 16 test.t1.a1,test.t1.a2 1 100.00
|
||||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 100.00
|
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 100.00
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from <materialize> (select `test`.`t2`.`b1`,`test`.`t2`.`b2` from `test`.`t2` order by `test`.`t2`.`b1`,`test`.`t2`.`b2`) join `test`.`t1` where ((`<subquery2>`.`b2` = `test`.`t1`.`a2`) and (`<subquery2>`.`b1` = `test`.`t1`.`a1`))
|
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from <materialize> (select `test`.`t2`.`b1`,`test`.`t2`.`b2` from `test`.`t2` order by `test`.`t2`.`b1`,`test`.`t2`.`b2`) join `test`.`t1` where ((`<subquery2>`.`b1` = `test`.`t1`.`a1`) and (`<subquery2>`.`b2` = `test`.`t1`.`a2`))
|
||||||
select * from t1 where (a1, a2) in (select b1, b2 from t2 order by b1, b2);
|
select * from t1 where (a1, a2) in (select b1, b2 from t2 order by b1, b2);
|
||||||
a1 a2
|
a1 a2
|
||||||
1 - 01 2 - 01
|
1 - 01 2 - 01
|
||||||
@ -248,7 +248,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 16 test.t1i.a1,test.t1i.a2 1 100.00
|
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 16 test.t1i.a1,test.t1i.a2 1 100.00
|
||||||
2 MATERIALIZED t2i index NULL it2i3 18 NULL 5 100.00 Using index
|
2 MATERIALIZED t2i index NULL it2i3 18 NULL 5 100.00 Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1i`.`a1` AS `a1`,`test`.`t1i`.`a2` AS `a2` from <materialize> (select `test`.`t2i`.`b1`,`test`.`t2i`.`b2` from `test`.`t2i` order by `test`.`t2i`.`b1`,`test`.`t2i`.`b2`) join `test`.`t1i` where ((`<subquery2>`.`b2` = `test`.`t1i`.`a2`) and (`<subquery2>`.`b1` = `test`.`t1i`.`a1`))
|
Note 1003 select `test`.`t1i`.`a1` AS `a1`,`test`.`t1i`.`a2` AS `a2` from <materialize> (select `test`.`t2i`.`b1`,`test`.`t2i`.`b2` from `test`.`t2i` order by `test`.`t2i`.`b1`,`test`.`t2i`.`b2`) join `test`.`t1i` where ((`<subquery2>`.`b1` = `test`.`t1i`.`a1`) and (`<subquery2>`.`b2` = `test`.`t1i`.`a2`))
|
||||||
select * from t1i where (a1, a2) in (select b1, b2 from t2i order by b1, b2);
|
select * from t1i where (a1, a2) in (select b1, b2 from t2i order by b1, b2);
|
||||||
a1 a2
|
a1 a2
|
||||||
1 - 01 2 - 01
|
1 - 01 2 - 01
|
||||||
@ -305,7 +305,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
3 MATERIALIZED t2i index it2i1,it2i2,it2i3 it2i3 18 NULL 5 80.00 Using where; Using index; Using join buffer (flat, BNL join)
|
3 MATERIALIZED t2i index it2i1,it2i2,it2i3 it2i3 18 NULL 5 80.00 Using where; Using index; Using join buffer (flat, BNL join)
|
||||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 100.00 Using where
|
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 100.00 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) semi join (`test`.`t2i` join `test`.`t3`) where ((`test`.`t2i`.`b2` = `test`.`t3`.`c2`) and (`test`.`t2i`.`b1` = `test`.`t3`.`c1`) and (`test`.`t2`.`b1` > '0') and (`test`.`t3`.`c2` > '0'))
|
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) semi join (`test`.`t2i` join `test`.`t3`) where ((`test`.`t2i`.`b1` = `test`.`t3`.`c1`) and (`test`.`t2i`.`b2` = `test`.`t3`.`c2`) and (`test`.`t2`.`b1` > '0') and (`test`.`t3`.`c2` > '0'))
|
||||||
select * from t1
|
select * from t1
|
||||||
where (a1, a2) in (select b1, b2 from t2 where b1 > '0') and
|
where (a1, a2) in (select b1, b2 from t2 where b1 > '0') and
|
||||||
(a1, a2) in (select c1, c2 from t3
|
(a1, a2) in (select c1, c2 from t3
|
||||||
@ -324,7 +324,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t3i ref it3i1,it3i2,it3i3 # # # 1 100.00 #
|
1 PRIMARY t3i ref it3i1,it3i2,it3i3 # # # 1 100.00 #
|
||||||
1 PRIMARY t2i ref it2i1,it2i2,it2i3 # # # 2 100.00 #
|
1 PRIMARY t2i ref it2i1,it2i2,it2i3 # # # 2 100.00 #
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1i`.`a1` AS `a1`,`test`.`t1i`.`a2` AS `a2` from `test`.`t1i` semi join (`test`.`t2i`) semi join (`test`.`t2i` join `test`.`t3i`) where ((`test`.`t1i`.`a2` = `test`.`t2i`.`b2`) and (`test`.`t3i`.`c2` = `test`.`t2i`.`b2`) and (`test`.`t2i`.`b2` = `test`.`t2i`.`b2`) and (`test`.`t1i`.`a1` = `test`.`t2i`.`b1`) and (`test`.`t3i`.`c1` = `test`.`t2i`.`b1`) and (`test`.`t2i`.`b1` = `test`.`t2i`.`b1`) and (`test`.`t2i`.`b1` > '0') and (`test`.`t2i`.`b2` > '0'))
|
Note 1003 select `test`.`t1i`.`a1` AS `a1`,`test`.`t1i`.`a2` AS `a2` from `test`.`t1i` semi join (`test`.`t2i`) semi join (`test`.`t2i` join `test`.`t3i`) where ((`test`.`t1i`.`a1` = `test`.`t2i`.`b1`) and (`test`.`t3i`.`c1` = `test`.`t2i`.`b1`) and (`test`.`t2i`.`b1` = `test`.`t2i`.`b1`) and (`test`.`t1i`.`a2` = `test`.`t2i`.`b2`) and (`test`.`t3i`.`c2` = `test`.`t2i`.`b2`) and (`test`.`t2i`.`b2` = `test`.`t2i`.`b2`) and (`test`.`t2i`.`b1` > '0') and (`test`.`t2i`.`b2` > '0'))
|
||||||
select * from t1i
|
select * from t1i
|
||||||
where (a1, a2) in (select b1, b2 from t2i where b1 > '0') and
|
where (a1, a2) in (select b1, b2 from t2i where b1 > '0') and
|
||||||
(a1, a2) in (select c1, c2 from t3i
|
(a1, a2) in (select c1, c2 from t3i
|
||||||
@ -349,7 +349,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
4 MATERIALIZED t3 ALL NULL NULL NULL NULL 4 100.00 Using where
|
4 MATERIALIZED t3 ALL NULL NULL NULL NULL 4 100.00 Using where
|
||||||
3 MATERIALIZED t3 ALL NULL NULL NULL NULL 4 100.00 Using where
|
3 MATERIALIZED t3 ALL NULL NULL NULL NULL 4 100.00 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) semi join (`test`.`t2i` join `test`.`t3`) where ((`test`.`t2i`.`b2` = `test`.`t3`.`c2`) and (`test`.`t2i`.`b1` = `test`.`t3`.`c1`) and (<expr_cache><`test`.`t2`.`b2`>(<in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (select `test`.`t3`.`c2` from `test`.`t3` where (`test`.`t3`.`c2` like '%02') ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where ((`test`.`t2`.`b2` = `<subquery3>`.`c2`)))))) or <expr_cache><`test`.`t2`.`b2`>(<in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (select `test`.`t3`.`c2` from `test`.`t3` where (`test`.`t3`.`c2` like '%03') ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where ((`test`.`t2`.`b2` = `<subquery4>`.`c2`))))))) and (`test`.`t3`.`c2` > '0'))
|
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) semi join (`test`.`t2i` join `test`.`t3`) where ((`test`.`t2i`.`b1` = `test`.`t3`.`c1`) and (`test`.`t2i`.`b2` = `test`.`t3`.`c2`) and (<expr_cache><`test`.`t2`.`b2`>(<in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (select `test`.`t3`.`c2` from `test`.`t3` where (`test`.`t3`.`c2` like '%02') ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where ((`test`.`t2`.`b2` = `<subquery3>`.`c2`)))))) or <expr_cache><`test`.`t2`.`b2`>(<in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (select `test`.`t3`.`c2` from `test`.`t3` where (`test`.`t3`.`c2` like '%03') ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where ((`test`.`t2`.`b2` = `<subquery4>`.`c2`))))))) and (`test`.`t3`.`c2` > '0'))
|
||||||
select * from t1
|
select * from t1
|
||||||
where (a1, a2) in (select b1, b2 from t2
|
where (a1, a2) in (select b1, b2 from t2
|
||||||
where b2 in (select c2 from t3 where c2 LIKE '%02') or
|
where b2 in (select c2 from t3 where c2 LIKE '%02') or
|
||||||
@ -375,7 +375,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
3 DEPENDENT SUBQUERY t3a ALL NULL NULL NULL NULL 4 100.00 Using where
|
3 DEPENDENT SUBQUERY t3a ALL NULL NULL NULL NULL 4 100.00 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1276 Field or reference 'test.t1.a1' of SELECT #3 was resolved in SELECT #1
|
Note 1276 Field or reference 'test.t1.a1' of SELECT #3 was resolved in SELECT #1
|
||||||
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) semi join (`test`.`t2i` join `test`.`t3` `t3c`) where ((`test`.`t2i`.`b2` = `test`.`t3c`.`c2`) and (`test`.`t2`.`b2` = `test`.`t1`.`a2`) and (`test`.`t2i`.`b1` = `test`.`t3c`.`c1`) and (`test`.`t2`.`b1` = `test`.`t1`.`a1`) and (<expr_cache><`test`.`t2`.`b2`,`test`.`t1`.`a1`>(<in_optimizer>(`test`.`t2`.`b2`,<exists>(select `test`.`t3a`.`c2` from `test`.`t3` `t3a` where ((`test`.`t3a`.`c1` = `test`.`t1`.`a1`) and (<cache>(`test`.`t2`.`b2`) = `test`.`t3a`.`c2`))))) or <expr_cache><`test`.`t2`.`b2`>(<in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (select `test`.`t3b`.`c2` from `test`.`t3` `t3b` where (`test`.`t3b`.`c2` like '%03') ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where ((`test`.`t2`.`b2` = `<subquery4>`.`c2`))))))) and (`test`.`t3c`.`c2` > '0'))
|
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) semi join (`test`.`t2i` join `test`.`t3` `t3c`) where ((`test`.`t2i`.`b1` = `test`.`t3c`.`c1`) and (`test`.`t2`.`b1` = `test`.`t1`.`a1`) and (`test`.`t2i`.`b2` = `test`.`t3c`.`c2`) and (`test`.`t2`.`b2` = `test`.`t1`.`a2`) and (<expr_cache><`test`.`t2`.`b2`,`test`.`t1`.`a1`>(<in_optimizer>(`test`.`t2`.`b2`,<exists>(select `test`.`t3a`.`c2` from `test`.`t3` `t3a` where ((`test`.`t3a`.`c1` = `test`.`t1`.`a1`) and (<cache>(`test`.`t2`.`b2`) = `test`.`t3a`.`c2`))))) or <expr_cache><`test`.`t2`.`b2`>(<in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (select `test`.`t3b`.`c2` from `test`.`t3` `t3b` where (`test`.`t3b`.`c2` like '%03') ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where ((`test`.`t2`.`b2` = `<subquery4>`.`c2`))))))) and (`test`.`t3c`.`c2` > '0'))
|
||||||
select * from t1
|
select * from t1
|
||||||
where (a1, a2) in (select b1, b2 from t2
|
where (a1, a2) in (select b1, b2 from t2
|
||||||
where b2 in (select c2 from t3 t3a where c1 = a1) or
|
where b2 in (select c2 from t3 t3a where c1 = a1) or
|
||||||
@ -413,7 +413,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
7 UNION t2i ref it2i1,it2i2,it2i3 # # # 2 100.00 #
|
7 UNION t2i ref it2i1,it2i2,it2i3 # # # 2 100.00 #
|
||||||
NULL UNION RESULT <union1,7> ALL NULL # # # NULL NULL #
|
NULL UNION RESULT <union1,7> ALL NULL # # # NULL NULL #
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 (select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) semi join (`test`.`t2i` join `test`.`t3`) where ((`test`.`t2i`.`b2` = `test`.`t3`.`c2`) and (`test`.`t2i`.`b1` = `test`.`t3`.`c1`) and (<expr_cache><`test`.`t2`.`b2`>(<in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (select `test`.`t3`.`c2` from `test`.`t3` where (`test`.`t3`.`c2` like '%02') ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where ((`test`.`t2`.`b2` = `<subquery3>`.`c2`)))))) or <expr_cache><`test`.`t2`.`b2`>(<in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (select `test`.`t3`.`c2` from `test`.`t3` where (`test`.`t3`.`c2` like '%03') ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where ((`test`.`t2`.`b2` = `<subquery4>`.`c2`))))))) and (`test`.`t3`.`c2` > '0'))) union (select `test`.`t1i`.`a1` AS `a1`,`test`.`t1i`.`a2` AS `a2` from `test`.`t1i` semi join (`test`.`t2i`) semi join (`test`.`t2i` join `test`.`t3i`) where ((`test`.`t1i`.`a2` = `test`.`t2i`.`b2`) and (`test`.`t3i`.`c2` = `test`.`t2i`.`b2`) and (`test`.`t2i`.`b2` = `test`.`t2i`.`b2`) and (`test`.`t1i`.`a1` = `test`.`t2i`.`b1`) and (`test`.`t3i`.`c1` = `test`.`t2i`.`b1`) and (`test`.`t2i`.`b1` = `test`.`t2i`.`b1`) and (`test`.`t2i`.`b1` > '0') and (`test`.`t2i`.`b2` > '0')))
|
Note 1003 (select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) semi join (`test`.`t2i` join `test`.`t3`) where ((`test`.`t2i`.`b1` = `test`.`t3`.`c1`) and (`test`.`t2i`.`b2` = `test`.`t3`.`c2`) and (<expr_cache><`test`.`t2`.`b2`>(<in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (select `test`.`t3`.`c2` from `test`.`t3` where (`test`.`t3`.`c2` like '%02') ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where ((`test`.`t2`.`b2` = `<subquery3>`.`c2`)))))) or <expr_cache><`test`.`t2`.`b2`>(<in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (select `test`.`t3`.`c2` from `test`.`t3` where (`test`.`t3`.`c2` like '%03') ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where ((`test`.`t2`.`b2` = `<subquery4>`.`c2`))))))) and (`test`.`t3`.`c2` > '0'))) union (select `test`.`t1i`.`a1` AS `a1`,`test`.`t1i`.`a2` AS `a2` from `test`.`t1i` semi join (`test`.`t2i`) semi join (`test`.`t2i` join `test`.`t3i`) where ((`test`.`t1i`.`a1` = `test`.`t2i`.`b1`) and (`test`.`t3i`.`c1` = `test`.`t2i`.`b1`) and (`test`.`t2i`.`b1` = `test`.`t2i`.`b1`) and (`test`.`t1i`.`a2` = `test`.`t2i`.`b2`) and (`test`.`t3i`.`c2` = `test`.`t2i`.`b2`) and (`test`.`t2i`.`b2` = `test`.`t2i`.`b2`) and (`test`.`t2i`.`b1` > '0') and (`test`.`t2i`.`b2` > '0')))
|
||||||
(select * from t1
|
(select * from t1
|
||||||
where (a1, a2) in (select b1, b2 from t2
|
where (a1, a2) in (select b1, b2 from t2
|
||||||
where b2 in (select c2 from t3 where c2 LIKE '%02') or
|
where b2 in (select c2 from t3 where c2 LIKE '%02') or
|
||||||
@ -443,7 +443,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
3 DEPENDENT UNION t2 ALL NULL NULL NULL NULL 5 100.00 Using where
|
3 DEPENDENT UNION t2 ALL NULL NULL NULL NULL 5 100.00 Using where
|
||||||
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL NULL
|
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL NULL
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2i` join `test`.`t3`) where ((`test`.`t2i`.`b2` = `test`.`t3`.`c2`) and (`test`.`t2i`.`b1` = `test`.`t3`.`c1`) and <expr_cache><`test`.`t1`.`a1`,`test`.`t1`.`a2`>(<in_optimizer>((`test`.`t1`.`a1`,`test`.`t1`.`a2`),<exists>(select `test`.`t1`.`a1`,`test`.`t1`.`a2` from `test`.`t1` where ((`test`.`t1`.`a1` > '0') and (<cache>(`test`.`t1`.`a1`) = `test`.`t1`.`a1`) and (<cache>(`test`.`t1`.`a2`) = `test`.`t1`.`a2`)) union select `test`.`t2`.`b1`,`test`.`t2`.`b2` from `test`.`t2` where ((`test`.`t2`.`b1` < '9') and (<cache>(`test`.`t1`.`a1`) = `test`.`t2`.`b1`) and (<cache>(`test`.`t1`.`a2`) = `test`.`t2`.`b2`))))) and (`test`.`t3`.`c2` > '0'))
|
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2i` join `test`.`t3`) where ((`test`.`t2i`.`b1` = `test`.`t3`.`c1`) and (`test`.`t2i`.`b2` = `test`.`t3`.`c2`) and <expr_cache><`test`.`t1`.`a1`,`test`.`t1`.`a2`>(<in_optimizer>((`test`.`t1`.`a1`,`test`.`t1`.`a2`),<exists>(select `test`.`t1`.`a1`,`test`.`t1`.`a2` from `test`.`t1` where ((`test`.`t1`.`a1` > '0') and (<cache>(`test`.`t1`.`a1`) = `test`.`t1`.`a1`) and (<cache>(`test`.`t1`.`a2`) = `test`.`t1`.`a2`)) union select `test`.`t2`.`b1`,`test`.`t2`.`b2` from `test`.`t2` where ((`test`.`t2`.`b1` < '9') and (<cache>(`test`.`t1`.`a1`) = `test`.`t2`.`b1`) and (<cache>(`test`.`t1`.`a2`) = `test`.`t2`.`b2`))))) and (`test`.`t3`.`c2` > '0'))
|
||||||
select * from t1
|
select * from t1
|
||||||
where (a1, a2) in (select * from t1 where a1 > '0' UNION select * from t2 where b1 < '9') and
|
where (a1, a2) in (select * from t1 where a1 > '0' UNION select * from t2 where b1 < '9') and
|
||||||
(a1, a2) in (select c1, c2 from t3
|
(a1, a2) in (select c1, c2 from t3
|
||||||
@ -467,7 +467,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
3 DEPENDENT UNION t2 ALL NULL NULL NULL NULL 5 100.00 Using where
|
3 DEPENDENT UNION t2 ALL NULL NULL NULL NULL 5 100.00 Using where
|
||||||
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL NULL
|
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL NULL
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t3`.`c1` AS `c1`,`test`.`t3`.`c2` AS `c2` from `test`.`t1` semi join (`test`.`t2i` join `test`.`t3`) join `test`.`t3` where ((`test`.`t2i`.`b2` = `test`.`t3`.`c2`) and (`test`.`t3`.`c1` = `test`.`t1`.`a1`) and (`test`.`t2i`.`b1` = `test`.`t3`.`c1`) and <expr_cache><`test`.`t1`.`a1`,`test`.`t1`.`a2`>(<in_optimizer>((`test`.`t1`.`a1`,`test`.`t1`.`a2`),<exists>(select `test`.`t1`.`a1`,`test`.`t1`.`a2` from `test`.`t1` where ((`test`.`t1`.`a1` > '0') and (<cache>(`test`.`t1`.`a1`) = `test`.`t1`.`a1`) and (<cache>(`test`.`t1`.`a2`) = `test`.`t1`.`a2`)) union select `test`.`t2`.`b1`,`test`.`t2`.`b2` from `test`.`t2` where ((`test`.`t2`.`b1` < '9') and (<cache>(`test`.`t1`.`a1`) = `test`.`t2`.`b1`) and (<cache>(`test`.`t1`.`a2`) = `test`.`t2`.`b2`))))) and (`test`.`t3`.`c2` > '0'))
|
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t3`.`c1` AS `c1`,`test`.`t3`.`c2` AS `c2` from `test`.`t1` semi join (`test`.`t2i` join `test`.`t3`) join `test`.`t3` where ((`test`.`t3`.`c1` = `test`.`t1`.`a1`) and (`test`.`t2i`.`b1` = `test`.`t3`.`c1`) and (`test`.`t2i`.`b2` = `test`.`t3`.`c2`) and <expr_cache><`test`.`t1`.`a1`,`test`.`t1`.`a2`>(<in_optimizer>((`test`.`t1`.`a1`,`test`.`t1`.`a2`),<exists>(select `test`.`t1`.`a1`,`test`.`t1`.`a2` from `test`.`t1` where ((`test`.`t1`.`a1` > '0') and (<cache>(`test`.`t1`.`a1`) = `test`.`t1`.`a1`) and (<cache>(`test`.`t1`.`a2`) = `test`.`t1`.`a2`)) union select `test`.`t2`.`b1`,`test`.`t2`.`b2` from `test`.`t2` where ((`test`.`t2`.`b1` < '9') and (<cache>(`test`.`t1`.`a1`) = `test`.`t2`.`b1`) and (<cache>(`test`.`t1`.`a2`) = `test`.`t2`.`b2`))))) and (`test`.`t3`.`c2` > '0'))
|
||||||
select * from t1, t3
|
select * from t1, t3
|
||||||
where (a1, a2) in (select * from t1 where a1 > '0' UNION select * from t2 where b1 < '9') and
|
where (a1, a2) in (select * from t1 where a1 > '0' UNION select * from t2 where b1 < '9') and
|
||||||
(c1, c2) in (select c1, c2 from t3
|
(c1, c2) in (select c1, c2 from t3
|
||||||
@ -513,7 +513,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
Warnings:
|
Warnings:
|
||||||
Note 1276 Field or reference 'test.t1.a1' of SELECT #3 was resolved in SELECT #1
|
Note 1276 Field or reference 'test.t1.a1' of SELECT #3 was resolved in SELECT #1
|
||||||
Note 1276 Field or reference 'test.t1.a2' of SELECT #6 was resolved in SELECT #1
|
Note 1276 Field or reference 'test.t1.a2' of SELECT #6 was resolved in SELECT #1
|
||||||
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) semi join (`test`.`t2i` join `test`.`t3` `t3c`) where ((`test`.`t2i`.`b2` = `test`.`t1`.`a2`) and (`test`.`t3c`.`c2` = `test`.`t1`.`a2`) and (`test`.`t2`.`b2` = `test`.`t1`.`a2`) and (`test`.`t2i`.`b1` = `test`.`t1`.`a1`) and (`test`.`t3c`.`c1` = `test`.`t1`.`a1`) and (`test`.`t2`.`b1` = `test`.`t1`.`a1`) and (<expr_cache><`test`.`t2`.`b2`,`test`.`t1`.`a1`>(<in_optimizer>(`test`.`t2`.`b2`,<exists>(select `test`.`t3a`.`c2` from `test`.`t3` `t3a` where ((`test`.`t3a`.`c1` = `test`.`t1`.`a1`) and (<cache>(`test`.`t2`.`b2`) = `test`.`t3a`.`c2`))))) or <expr_cache><`test`.`t2`.`b2`>(<in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (select `test`.`t3b`.`c2` from `test`.`t3` `t3b` where (`test`.`t3b`.`c2` like '%03') ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where ((`test`.`t2`.`b2` = `<subquery4>`.`c2`))))))))
|
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) semi join (`test`.`t2i` join `test`.`t3` `t3c`) where ((`test`.`t2i`.`b1` = `test`.`t1`.`a1`) and (`test`.`t3c`.`c1` = `test`.`t1`.`a1`) and (`test`.`t2`.`b1` = `test`.`t1`.`a1`) and (`test`.`t2i`.`b2` = `test`.`t1`.`a2`) and (`test`.`t3c`.`c2` = `test`.`t1`.`a2`) and (`test`.`t2`.`b2` = `test`.`t1`.`a2`) and (<expr_cache><`test`.`t2`.`b2`,`test`.`t1`.`a1`>(<in_optimizer>(`test`.`t2`.`b2`,<exists>(select `test`.`t3a`.`c2` from `test`.`t3` `t3a` where ((`test`.`t3a`.`c1` = `test`.`t1`.`a1`) and (<cache>(`test`.`t2`.`b2`) = `test`.`t3a`.`c2`))))) or <expr_cache><`test`.`t2`.`b2`>(<in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (select `test`.`t3b`.`c2` from `test`.`t3` `t3b` where (`test`.`t3b`.`c2` like '%03') ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where ((`test`.`t2`.`b2` = `<subquery4>`.`c2`))))))))
|
||||||
explain extended
|
explain extended
|
||||||
select * from t1 where (a1, a2) in (select '1 - 01', '2 - 01');
|
select * from t1 where (a1, a2) in (select '1 - 01', '2 - 01');
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
@ -633,7 +633,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1_16 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 PRIMARY t1_16 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 PRIMARY t2_16 ALL NULL NULL NULL NULL 3 100.00 Using where; Start temporary; End temporary; Using join buffer (flat, BNL join)
|
1 PRIMARY t2_16 ALL NULL NULL NULL NULL 3 100.00 Using where; Start temporary; End temporary; Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select left(`test`.`t1_16`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_16`.`a2`,7) AS `left(a2,7)` from `test`.`t1_16` semi join (`test`.`t2_16`) where ((`test`.`t2_16`.`b2` = `test`.`t1_16`.`a2`) and (`test`.`t2_16`.`b1` = `test`.`t1_16`.`a1`) and (`test`.`t1_16`.`a1` > '0'))
|
Note 1003 select left(`test`.`t1_16`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_16`.`a2`,7) AS `left(a2,7)` from `test`.`t1_16` semi join (`test`.`t2_16`) where ((`test`.`t2_16`.`b1` = `test`.`t1_16`.`a1`) and (`test`.`t2_16`.`b2` = `test`.`t1_16`.`a2`) and (`test`.`t1_16`.`a1` > '0'))
|
||||||
select left(a1,7), left(a2,7)
|
select left(a1,7), left(a2,7)
|
||||||
from t1_16
|
from t1_16
|
||||||
where (a1,a2) in (select b1, b2 from t2_16 where b1 > '0');
|
where (a1,a2) in (select b1, b2 from t2_16 where b1 > '0');
|
||||||
@ -700,7 +700,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where; Using join buffer (flat, BNL join)
|
1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where; Using join buffer (flat, BNL join)
|
||||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; End temporary; Using join buffer (flat, BNL join)
|
1 PRIMARY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; End temporary; Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t3` join `test`.`t2_16` join `test`.`t2` join `test`.`t1_16`) where ((`test`.`t2_16`.`b2` = `test`.`t1_16`.`a2`) and (`test`.`t2_16`.`b1` = `test`.`t1_16`.`a1`) and (`test`.`t2`.`b1` = `test`.`t3`.`c1`) and (`test`.`t2`.`b2` = substr(`test`.`t1_16`.`a2`,1,6)) and (`test`.`t3`.`c2` > '0') and (concat(`test`.`t1`.`a1`,'x') = left(`test`.`t1_16`.`a1`,8)))
|
Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t3` join `test`.`t2_16` join `test`.`t2` join `test`.`t1_16`) where ((`test`.`t2`.`b1` = `test`.`t3`.`c1`) and (`test`.`t2_16`.`b1` = `test`.`t1_16`.`a1`) and (`test`.`t2_16`.`b2` = `test`.`t1_16`.`a2`) and (`test`.`t2`.`b2` = substr(`test`.`t1_16`.`a2`,1,6)) and (`test`.`t3`.`c2` > '0') and (concat(`test`.`t1`.`a1`,'x') = left(`test`.`t1_16`.`a1`,8)))
|
||||||
drop table t1_16, t2_16, t3_16;
|
drop table t1_16, t2_16, t3_16;
|
||||||
set @blob_len = 512;
|
set @blob_len = 512;
|
||||||
set @suffix_len = @blob_len - @prefix_len;
|
set @suffix_len = @blob_len - @prefix_len;
|
||||||
@ -748,7 +748,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1_512 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 PRIMARY t1_512 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 PRIMARY t2_512 ALL NULL NULL NULL NULL 3 100.00 Using where; Start temporary; End temporary; Using join buffer (flat, BNL join)
|
1 PRIMARY t2_512 ALL NULL NULL NULL NULL 3 100.00 Using where; Start temporary; End temporary; Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select left(`test`.`t1_512`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_512`.`a2`,7) AS `left(a2,7)` from `test`.`t1_512` semi join (`test`.`t2_512`) where ((`test`.`t2_512`.`b2` = `test`.`t1_512`.`a2`) and (`test`.`t2_512`.`b1` = `test`.`t1_512`.`a1`) and (`test`.`t1_512`.`a1` > '0'))
|
Note 1003 select left(`test`.`t1_512`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_512`.`a2`,7) AS `left(a2,7)` from `test`.`t1_512` semi join (`test`.`t2_512`) where ((`test`.`t2_512`.`b1` = `test`.`t1_512`.`a1`) and (`test`.`t2_512`.`b2` = `test`.`t1_512`.`a2`) and (`test`.`t1_512`.`a1` > '0'))
|
||||||
select left(a1,7), left(a2,7)
|
select left(a1,7), left(a2,7)
|
||||||
from t1_512
|
from t1_512
|
||||||
where (a1,a2) in (select b1, b2 from t2_512 where b1 > '0');
|
where (a1,a2) in (select b1, b2 from t2_512 where b1 > '0');
|
||||||
@ -844,7 +844,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1_1024 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 PRIMARY t1_1024 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 PRIMARY t2_1024 ALL NULL NULL NULL NULL 3 100.00 Using where; Start temporary; End temporary; Using join buffer (flat, BNL join)
|
1 PRIMARY t2_1024 ALL NULL NULL NULL NULL 3 100.00 Using where; Start temporary; End temporary; Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select left(`test`.`t1_1024`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_1024`.`a2`,7) AS `left(a2,7)` from `test`.`t1_1024` semi join (`test`.`t2_1024`) where ((`test`.`t2_1024`.`b2` = `test`.`t1_1024`.`a2`) and (`test`.`t2_1024`.`b1` = `test`.`t1_1024`.`a1`) and (`test`.`t1_1024`.`a1` > '0'))
|
Note 1003 select left(`test`.`t1_1024`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_1024`.`a2`,7) AS `left(a2,7)` from `test`.`t1_1024` semi join (`test`.`t2_1024`) where ((`test`.`t2_1024`.`b1` = `test`.`t1_1024`.`a1`) and (`test`.`t2_1024`.`b2` = `test`.`t1_1024`.`a2`) and (`test`.`t1_1024`.`a1` > '0'))
|
||||||
select left(a1,7), left(a2,7)
|
select left(a1,7), left(a2,7)
|
||||||
from t1_1024
|
from t1_1024
|
||||||
where (a1,a2) in (select b1, b2 from t2_1024 where b1 > '0');
|
where (a1,a2) in (select b1, b2 from t2_1024 where b1 > '0');
|
||||||
@ -939,7 +939,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1_1025 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 PRIMARY t1_1025 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 PRIMARY t2_1025 ALL NULL NULL NULL NULL 3 100.00 Using where; Start temporary; End temporary; Using join buffer (flat, BNL join)
|
1 PRIMARY t2_1025 ALL NULL NULL NULL NULL 3 100.00 Using where; Start temporary; End temporary; Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select left(`test`.`t1_1025`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_1025`.`a2`,7) AS `left(a2,7)` from `test`.`t1_1025` semi join (`test`.`t2_1025`) where ((`test`.`t2_1025`.`b2` = `test`.`t1_1025`.`a2`) and (`test`.`t2_1025`.`b1` = `test`.`t1_1025`.`a1`) and (`test`.`t1_1025`.`a1` > '0'))
|
Note 1003 select left(`test`.`t1_1025`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_1025`.`a2`,7) AS `left(a2,7)` from `test`.`t1_1025` semi join (`test`.`t2_1025`) where ((`test`.`t2_1025`.`b1` = `test`.`t1_1025`.`a1`) and (`test`.`t2_1025`.`b2` = `test`.`t1_1025`.`a2`) and (`test`.`t1_1025`.`a1` > '0'))
|
||||||
select left(a1,7), left(a2,7)
|
select left(a1,7), left(a2,7)
|
||||||
from t1_1025
|
from t1_1025
|
||||||
where (a1,a2) in (select b1, b2 from t2_1025 where b1 > '0');
|
where (a1,a2) in (select b1, b2 from t2_1025 where b1 > '0');
|
||||||
@ -1027,7 +1027,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1bb ALL NULL NULL NULL NULL 3 100.00
|
1 PRIMARY t1bb ALL NULL NULL NULL NULL 3 100.00
|
||||||
1 PRIMARY t2bb ALL NULL NULL NULL NULL 3 100.00 Using where; Start temporary; End temporary; Using join buffer (flat, BNL join)
|
1 PRIMARY t2bb ALL NULL NULL NULL NULL 3 100.00 Using where; Start temporary; End temporary; Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select conv(`test`.`t1bb`.`a1`,10,2) AS `bin(a1)`,`test`.`t1bb`.`a2` AS `a2` from `test`.`t1bb` semi join (`test`.`t2bb`) where ((`test`.`t2bb`.`b2` = `test`.`t1bb`.`a2`) and (`test`.`t2bb`.`b1` = `test`.`t1bb`.`a1`))
|
Note 1003 select conv(`test`.`t1bb`.`a1`,10,2) AS `bin(a1)`,`test`.`t1bb`.`a2` AS `a2` from `test`.`t1bb` semi join (`test`.`t2bb`) where ((`test`.`t2bb`.`b1` = `test`.`t1bb`.`a1`) and (`test`.`t2bb`.`b2` = `test`.`t1bb`.`a2`))
|
||||||
select bin(a1), a2
|
select bin(a1), a2
|
||||||
from t1bb
|
from t1bb
|
||||||
where (a1, a2) in (select b1, b2 from t2bb);
|
where (a1, a2) in (select b1, b2 from t2bb);
|
||||||
@ -1934,7 +1934,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
|
||||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 100.00
|
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 100.00
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from <materialize> (select max(`test`.`t2`.`c`) from `test`.`t2`) join `test`.`t1` where ((`test`.`t1`.`a` = `<subquery2>`.`MAX(c)`) and (`test`.`t1`.`b` = 7) and (<cache>(isnull(`<subquery2>`.`MAX(c)`)) or (`<subquery2>`.`MAX(c)` = 7)))
|
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from <materialize> (select max(`test`.`t2`.`c`) from `test`.`t2`) join `test`.`t1` where ((`test`.`t1`.`b` = 7) and (`test`.`t1`.`a` = `<subquery2>`.`MAX(c)`) and (<cache>(isnull(`<subquery2>`.`MAX(c)`)) or (`<subquery2>`.`MAX(c)` = 7)))
|
||||||
SELECT * FROM t1
|
SELECT * FROM t1
|
||||||
WHERE a IN (SELECT MAX(c) FROM t2) AND b=7 AND (a IS NULL OR a=b);
|
WHERE a IN (SELECT MAX(c) FROM t2) AND b=7 AND (a IS NULL OR a=b);
|
||||||
a b
|
a b
|
||||||
|
@ -1854,3 +1854,18 @@ a
|
|||||||
a
|
a
|
||||||
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
End of 5.1 tests
|
||||||
|
#
|
||||||
|
# MDEV-4241: Assertion failure: scale >= 0 && precision > 0 &&
|
||||||
|
# scale <= precision in decimal_bin_size
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
f1 enum('1','2','3','4','5')
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t1 VALUES (1),(2);
|
||||||
|
SELECT AVG(f1) FROM t1;
|
||||||
|
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
|
||||||
|
def AVG(f1) 246 7 6 Y 32896 4 63
|
||||||
|
AVG(f1)
|
||||||
|
1.5000
|
||||||
|
drop table t1;
|
||||||
|
@ -18,6 +18,7 @@ master-bin.000001 # User var # # @`var2`=_binary 0x61 COLLATE binary
|
|||||||
master-bin.000001 # Query # # use `test`; insert into t1 values (@var1),(@var2)
|
master-bin.000001 # Query # # use `test`; insert into t1 values (@var1),(@var2)
|
||||||
master-bin.000001 # Query # # COMMIT
|
master-bin.000001 # Query # # COMMIT
|
||||||
flush logs;
|
flush logs;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -56,4 +57,5 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
@ -461,43 +461,9 @@ GROUP BY @b:=(SELECT COUNT(*) > t2.a);
|
|||||||
@a:=MIN(t1.a)
|
@a:=MIN(t1.a)
|
||||||
1
|
1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
End of 5.1 tests
|
|
||||||
DROP TABLE IF EXISTS t1;
|
|
||||||
CREATE TABLE t1(f1 INT AUTO_INCREMENT, PRIMARY KEY(f1));
|
|
||||||
INSERT INTO t1 SET f1 = NULL ;
|
|
||||||
SET @aux = NULL ;
|
|
||||||
INSERT INTO t1 SET f1 = @aux ;
|
|
||||||
SET @aux1 = 0.123E-1;
|
|
||||||
SET @aux1 = NULL;
|
|
||||||
INSERT INTO t1 SET f1 = @aux1 ;
|
|
||||||
SELECT * FROM t1;
|
|
||||||
f1
|
|
||||||
1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
DROP TABLE t1;
|
|
||||||
CREATE TABLE t1(f1 VARCHAR(257) , f2 INT, PRIMARY KEY(f2));
|
|
||||||
CREATE TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW SET @aux = 1;
|
|
||||||
SET @aux = 1;
|
|
||||||
SET @aux = NULL;
|
|
||||||
INSERT INTO test.t1 (f1, f2) VALUES (1, 1), (@aux, 2);
|
|
||||||
SET @aux = 'text';
|
|
||||||
SET @aux = NULL;
|
|
||||||
INSERT INTO t1(f1, f2) VALUES (1, 3), (@aux, 4);
|
|
||||||
SELECT f1, f2 FROM t1 ORDER BY f2;
|
|
||||||
f1 f2
|
|
||||||
1 1
|
|
||||||
1 2
|
|
||||||
1 3
|
|
||||||
1 4
|
|
||||||
DROP TRIGGER trg1;
|
|
||||||
DROP TABLE t1;
|
|
||||||
#
|
|
||||||
# Bug #12408412: GROUP_CONCAT + ORDER BY + INPUT/OUTPUT
|
|
||||||
# SAME USER VARIABLE = CRASH
|
|
||||||
#
|
|
||||||
SET @bug12408412=1;
|
SET @bug12408412=1;
|
||||||
SELECT GROUP_CONCAT(@bug12408412 ORDER BY 1) INTO @bug12408412;
|
SELECT GROUP_CONCAT(@bug12408412 ORDER BY 1) INTO @bug12408412;
|
||||||
|
End of 5.1 tests
|
||||||
CREATE TABLE t1(a INT);
|
CREATE TABLE t1(a INT);
|
||||||
INSERT INTO t1 VALUES (0);
|
INSERT INTO t1 VALUES (0);
|
||||||
SELECT DISTINCT POW(COUNT(*), @a:=(SELECT 1 FROM t1 LEFT JOIN t1 AS t2 ON @a))
|
SELECT DISTINCT POW(COUNT(*), @a:=(SELECT 1 FROM t1 LEFT JOIN t1 AS t2 ON @a))
|
||||||
@ -530,4 +496,34 @@ SELECT @a;
|
|||||||
@a
|
@a
|
||||||
1
|
1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
End of 5.2 tests
|
||||||
|
CREATE TABLE t1(f1 INT AUTO_INCREMENT, PRIMARY KEY(f1));
|
||||||
|
INSERT INTO t1 SET f1 = NULL ;
|
||||||
|
SET @aux = NULL ;
|
||||||
|
INSERT INTO t1 SET f1 = @aux ;
|
||||||
|
SET @aux1 = 0.123E-1;
|
||||||
|
SET @aux1 = NULL;
|
||||||
|
INSERT INTO t1 SET f1 = @aux1 ;
|
||||||
|
SELECT * FROM t1;
|
||||||
|
f1
|
||||||
|
1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1(f1 VARCHAR(257) , f2 INT, PRIMARY KEY(f2));
|
||||||
|
CREATE TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW SET @aux = 1;
|
||||||
|
SET @aux = 1;
|
||||||
|
SET @aux = NULL;
|
||||||
|
INSERT INTO test.t1 (f1, f2) VALUES (1, 1), (@aux, 2);
|
||||||
|
SET @aux = 'text';
|
||||||
|
SET @aux = NULL;
|
||||||
|
INSERT INTO t1(f1, f2) VALUES (1, 3), (@aux, 4);
|
||||||
|
SELECT f1, f2 FROM t1 ORDER BY f2;
|
||||||
|
f1 f2
|
||||||
|
1 1
|
||||||
|
1 2
|
||||||
|
1 3
|
||||||
|
1 4
|
||||||
|
DROP TRIGGER trg1;
|
||||||
|
DROP TABLE t1;
|
||||||
End of 5.5 tests
|
End of 5.5 tests
|
||||||
|
@ -1423,7 +1423,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 100.00 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t3`.`a` AS `a`,`test`.`t1`.`a` AS `a`,`test`.`t2`.`a` AS `b` from `test`.`t3` left join (`test`.`t1` left join `test`.`t2` on(((`test`.`t1`.`a` = `test`.`t3`.`a`) and (`test`.`t2`.`a` = `test`.`t3`.`a`)))) on((`test`.`t1`.`a` = `test`.`t3`.`a`)) where 1
|
Note 1003 select `test`.`t3`.`a` AS `a`,`test`.`t1`.`a` AS `a`,`test`.`t2`.`a` AS `b` from `test`.`t3` left join (`test`.`t1` left join `test`.`t2` on((`test`.`t2`.`a` = `test`.`t3`.`a`))) on((`test`.`t1`.`a` = `test`.`t3`.`a`)) where 1
|
||||||
create view v1 (a) as select a from t1;
|
create view v1 (a) as select a from t1;
|
||||||
create view v2 (a) as select a from t2;
|
create view v2 (a) as select a from t2;
|
||||||
create view v4 (a,b) as select v1.a as a, v2.a as b from v1 left join v2 on (v1.a=v2.a);
|
create view v4 (a,b) as select v1.a as a, v2.a as b from v1 left join v2 on (v1.a=v2.a);
|
||||||
@ -1438,7 +1438,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 100.00 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t3`.`a` AS `a`,`test`.`t1`.`a` AS `a`,`test`.`t2`.`a` AS `b` from `test`.`t3` left join (`test`.`t1` left join (`test`.`t2`) on(((`test`.`t1`.`a` = `test`.`t3`.`a`) and (`test`.`t2`.`a` = `test`.`t3`.`a`)))) on((`test`.`t1`.`a` = `test`.`t3`.`a`)) where 1
|
Note 1003 select `test`.`t3`.`a` AS `a`,`test`.`t1`.`a` AS `a`,`test`.`t2`.`a` AS `b` from `test`.`t3` left join (`test`.`t1` left join (`test`.`t2`) on((`test`.`t2`.`a` = `test`.`t3`.`a`))) on((`test`.`t1`.`a` = `test`.`t3`.`a`)) where 1
|
||||||
prepare stmt1 from "select * from t3 left join v4 on (t3.a = v4.a);";
|
prepare stmt1 from "select * from t3 left join v4 on (t3.a = v4.a);";
|
||||||
execute stmt1;
|
execute stmt1;
|
||||||
a a b
|
a a b
|
||||||
|
@ -29,6 +29,7 @@ a
|
|||||||
1
|
1
|
||||||
3
|
3
|
||||||
==== Test --base64-output=never on a binlog with row events ====
|
==== Test --base64-output=never on a binlog with row events ====
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -51,6 +52,7 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
==== Test non-matching FD event and Row event ====
|
==== Test non-matching FD event and Row event ====
|
||||||
BINLOG '
|
BINLOG '
|
||||||
4CdYRw8BAAAAYgAAAGYAAAAAAAQANS4xLjE1LW5kYi02LjEuMjQtZGVidWctbG9nAAAAAAAAAAAA
|
4CdYRw8BAAAAYgAAAGYAAAAAAAQANS4xLjE1LW5kYi02LjEuMjQtZGVidWctbG9nAAAAAAAAAAAA
|
||||||
|
@ -15,6 +15,7 @@ set timestamp=@a+1;
|
|||||||
insert into t1 values(null, "f");
|
insert into t1 values(null, "f");
|
||||||
|
|
||||||
--- Local --
|
--- Local --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -85,8 +86,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- offset --
|
--- offset --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -154,8 +157,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- start-position --
|
--- start-position --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -203,8 +208,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- stop-position --
|
--- stop-position --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -245,8 +252,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- start and stop positions ---
|
--- start and stop positions ---
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -271,8 +280,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- start-datetime --
|
--- start-datetime --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -320,8 +331,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- stop-datetime --
|
--- stop-datetime --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -362,9 +375,11 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- Local with 2 binlogs on command line --
|
--- Local with 2 binlogs on command line --
|
||||||
flush logs;
|
flush logs;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -456,8 +471,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- offset --
|
--- offset --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -546,8 +563,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- start-position --
|
--- start-position --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -616,8 +635,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- stop-position --
|
--- stop-position --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -702,8 +723,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- start-datetime --
|
--- start-datetime --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -772,8 +795,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- stop-datetime --
|
--- stop-datetime --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -814,8 +839,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- Remote --
|
--- Remote --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -886,8 +913,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- offset --
|
--- offset --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -955,8 +984,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- start-position --
|
--- start-position --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -1003,8 +1034,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- stop-position --
|
--- stop-position --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -1045,8 +1078,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- start and stop positions ---
|
--- start and stop positions ---
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -1070,8 +1105,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- start-datetime --
|
--- start-datetime --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -1119,8 +1156,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- stop-datetime --
|
--- stop-datetime --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -1161,8 +1200,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- Remote with 2 binlogs on command line --
|
--- Remote with 2 binlogs on command line --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -1254,8 +1295,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- offset --
|
--- offset --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -1344,8 +1387,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- start-position --
|
--- start-position --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -1413,8 +1458,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- stop-position --
|
--- stop-position --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -1498,8 +1545,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- start-datetime --
|
--- start-datetime --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -1568,8 +1617,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- stop-datetime --
|
--- stop-datetime --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -1610,8 +1661,10 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- to-last-log --
|
--- to-last-log --
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -1692,6 +1745,7 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
|
||||||
--- end of test --
|
--- end of test --
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
@ -328,6 +328,7 @@ INSERT INTO t2 SET b=1;
|
|||||||
UPDATE t1, t2 SET t1.a=10, t2.a=20;
|
UPDATE t1, t2 SET t1.a=10, t2.a=20;
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
flush logs;
|
flush logs;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -4135,3 +4136,4 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
@ -2245,6 +2245,7 @@ FLUSH LOGS;
|
|||||||
#
|
#
|
||||||
# Call mysqlbinlog to display the log file contents.
|
# Call mysqlbinlog to display the log file contents.
|
||||||
#
|
#
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -3786,6 +3787,7 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
#
|
#
|
||||||
# Cleanup.
|
# Cleanup.
|
||||||
#
|
#
|
||||||
@ -3868,6 +3870,7 @@ FLUSH LOGS;
|
|||||||
#
|
#
|
||||||
# Call mysqlbinlog to display the log file contents.
|
# Call mysqlbinlog to display the log file contents.
|
||||||
#
|
#
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -4077,6 +4080,7 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
#
|
#
|
||||||
# Cleanup.
|
# Cleanup.
|
||||||
#
|
#
|
||||||
@ -4235,6 +4239,7 @@ FLUSH LOGS;
|
|||||||
#
|
#
|
||||||
# Call mysqlbinlog to display the log file contents.
|
# Call mysqlbinlog to display the log file contents.
|
||||||
#
|
#
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -4746,6 +4751,7 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
#
|
#
|
||||||
# Cleanup.
|
# Cleanup.
|
||||||
#
|
#
|
||||||
@ -4796,6 +4802,7 @@ FLUSH LOGS;
|
|||||||
#
|
#
|
||||||
# Call mysqlbinlog to display the log file contents.
|
# Call mysqlbinlog to display the log file contents.
|
||||||
#
|
#
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -4853,6 +4860,7 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
#
|
#
|
||||||
# Cleanup.
|
# Cleanup.
|
||||||
#
|
#
|
||||||
|
@ -2245,6 +2245,7 @@ FLUSH LOGS;
|
|||||||
#
|
#
|
||||||
# Call mysqlbinlog to display the log file contents.
|
# Call mysqlbinlog to display the log file contents.
|
||||||
#
|
#
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -3808,6 +3809,7 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
#
|
#
|
||||||
# Cleanup.
|
# Cleanup.
|
||||||
#
|
#
|
||||||
@ -3890,6 +3892,7 @@ FLUSH LOGS;
|
|||||||
#
|
#
|
||||||
# Call mysqlbinlog to display the log file contents.
|
# Call mysqlbinlog to display the log file contents.
|
||||||
#
|
#
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -4105,6 +4108,7 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
#
|
#
|
||||||
# Cleanup.
|
# Cleanup.
|
||||||
#
|
#
|
||||||
@ -4263,6 +4267,7 @@ FLUSH LOGS;
|
|||||||
#
|
#
|
||||||
# Call mysqlbinlog to display the log file contents.
|
# Call mysqlbinlog to display the log file contents.
|
||||||
#
|
#
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -4784,6 +4789,7 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
#
|
#
|
||||||
# Cleanup.
|
# Cleanup.
|
||||||
#
|
#
|
||||||
@ -4834,6 +4840,7 @@ FLUSH LOGS;
|
|||||||
#
|
#
|
||||||
# Call mysqlbinlog to display the log file contents.
|
# Call mysqlbinlog to display the log file contents.
|
||||||
#
|
#
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -4893,6 +4900,7 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
#
|
#
|
||||||
# Cleanup.
|
# Cleanup.
|
||||||
#
|
#
|
||||||
|
@ -124,6 +124,7 @@ FLUSH LOGS;
|
|||||||
#
|
#
|
||||||
# Call mysqlbinlog to display the log file contents.
|
# Call mysqlbinlog to display the log file contents.
|
||||||
#
|
#
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -463,6 +464,7 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
#
|
#
|
||||||
# Cleanup.
|
# Cleanup.
|
||||||
#
|
#
|
||||||
|
@ -60,6 +60,7 @@ master-bin.000001 # Rotate 1 # master-bin.000002;pos=4
|
|||||||
# - INSERT INTO test2.t2 VALUES (1), (2), (3)
|
# - INSERT INTO test2.t2 VALUES (1), (2), (3)
|
||||||
# - DELETE xtest1.xt1, test2.t2 FROM <...> (with one subsequent Table map)
|
# - DELETE xtest1.xt1, test2.t2 FROM <...> (with one subsequent Table map)
|
||||||
#####################################################################################
|
#####################################################################################
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -280,12 +281,14 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
#
|
#
|
||||||
#####################################################################################
|
#####################################################################################
|
||||||
# mysqlbinlog --database=test1
|
# mysqlbinlog --database=test1
|
||||||
# The following Annotate should appear in this output:
|
# The following Annotate should appear in this output:
|
||||||
# - DELETE test1.t1, test2.t2 FROM <...>
|
# - DELETE test1.t1, test2.t2 FROM <...>
|
||||||
#####################################################################################
|
#####################################################################################
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -425,11 +428,13 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
#
|
#
|
||||||
#####################################################################################
|
#####################################################################################
|
||||||
# mysqlbinlog --skip-annotate-row-events
|
# mysqlbinlog --skip-annotate-row-events
|
||||||
# No Annotates should appear in this output
|
# No Annotates should appear in this output
|
||||||
#####################################################################################
|
#####################################################################################
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -636,6 +641,7 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
#
|
#
|
||||||
#####################################################################################
|
#####################################################################################
|
||||||
# mysqlbinlog --read-from-remote-server
|
# mysqlbinlog --read-from-remote-server
|
||||||
@ -646,6 +652,7 @@ ROLLBACK /* added by mysqlbinlog */;
|
|||||||
# - INSERT INTO test2.t2 VALUES (1), (2), (3)
|
# - INSERT INTO test2.t2 VALUES (1), (2), (3)
|
||||||
# - DELETE xtest1.xt1, test2.t2 FROM <...> (with one subsequent Table map)
|
# - DELETE xtest1.xt1, test2.t2 FROM <...> (with one subsequent Table map)
|
||||||
#####################################################################################
|
#####################################################################################
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -866,12 +873,14 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
#
|
#
|
||||||
#####################################################################################
|
#####################################################################################
|
||||||
# mysqlbinlog --read-from-remote-server --database=test1
|
# mysqlbinlog --read-from-remote-server --database=test1
|
||||||
# The following Annotate should appear in this output:
|
# The following Annotate should appear in this output:
|
||||||
# - DELETE test1.t1, test2.t2 FROM <...>
|
# - DELETE test1.t1, test2.t2 FROM <...>
|
||||||
#####################################################################################
|
#####################################################################################
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -1011,11 +1020,13 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
#
|
#
|
||||||
#####################################################################################
|
#####################################################################################
|
||||||
# mysqlbinlog --read-from-remote-server --skip-annotate-row-events
|
# mysqlbinlog --read-from-remote-server --skip-annotate-row-events
|
||||||
# No Annotates should appear in this output
|
# No Annotates should appear in this output
|
||||||
#####################################################################################
|
#####################################################################################
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -1217,3 +1228,4 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
|
@ -10,6 +10,7 @@ master-bin.000001 # Table_map # # table_id: # (test.t2)
|
|||||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||||
master-bin.000001 # Query # # COMMIT
|
master-bin.000001 # Query # # COMMIT
|
||||||
flush logs;
|
flush logs;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -32,4 +33,5 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
drop table t2;
|
drop table t2;
|
||||||
|
@ -28,6 +28,7 @@ flush logs;
|
|||||||
# --rewrite-db = test1->new_test1
|
# --rewrite-db = test1->new_test1
|
||||||
# --rewrite-db = test3->new_test3
|
# --rewrite-db = test3->new_test3
|
||||||
#
|
#
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -215,6 +216,7 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
#
|
#
|
||||||
# mysqlbinlog output
|
# mysqlbinlog output
|
||||||
# --base64-output = decode-rows
|
# --base64-output = decode-rows
|
||||||
@ -222,6 +224,7 @@ ROLLBACK /* added by mysqlbinlog */;
|
|||||||
# --rewrite-db = test3->new_test3
|
# --rewrite-db = test3->new_test3
|
||||||
# --read-from-remote-server
|
# --read-from-remote-server
|
||||||
#
|
#
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -409,6 +412,7 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
DROP DATABASE test1;
|
DROP DATABASE test1;
|
||||||
DROP DATABASE test2;
|
DROP DATABASE test2;
|
||||||
DROP DATABASE test3;
|
DROP DATABASE test3;
|
||||||
|
@ -10,6 +10,7 @@ master-bin.000001 # User var # # @`v`=_ucs2 0x006100620063 COLLATE ucs2_general_
|
|||||||
master-bin.000001 # Query # # use `test`; insert into t2 values (@v)
|
master-bin.000001 # Query # # use `test`; insert into t2 values (@v)
|
||||||
master-bin.000001 # Query # # COMMIT
|
master-bin.000001 # Query # # COMMIT
|
||||||
flush logs;
|
flush logs;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||||
DELIMITER /*!*/;
|
DELIMITER /*!*/;
|
||||||
@ -37,4 +38,5 @@ DELIMITER ;
|
|||||||
# End of log file
|
# End of log file
|
||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
drop table t2;
|
drop table t2;
|
||||||
|
@ -70,7 +70,6 @@ rpl_replicate_ignore_db : Result Difference Due To Change In .inc file
|
|||||||
rpl000017 : Result Difference Due To Change In .inc file
|
rpl000017 : Result Difference Due To Change In .inc file
|
||||||
rpl_skip_error : Result Difference Due To Change In .inc file
|
rpl_skip_error : Result Difference Due To Change In .inc file
|
||||||
|
|
||||||
rpl_row_until : Test Present in rpl suite as well . Test Fails table with t2 table not found.
|
|
||||||
rpl_loaddata_s : Test Present in rpl suite as well . Test Fails due to bin log truncation.
|
rpl_loaddata_s : Test Present in rpl suite as well . Test Fails due to bin log truncation.
|
||||||
rpl_log_pos : Test Present in rpl suite as well . Test Fails due to bin log truncation.
|
rpl_log_pos : Test Present in rpl suite as well . Test Fails due to bin log truncation.
|
||||||
rpl_row_NOW : Result Difference Due To Change In .inc file
|
rpl_row_NOW : Result Difference Due To Change In .inc file
|
||||||
@ -96,4 +95,3 @@ rpl_relayspace : Result Difference Due To Change In .inc file
|
|||||||
rpl_row_inexist_tbl : Result Difference Due To Change In .inc file
|
rpl_row_inexist_tbl : Result Difference Due To Change In .inc file
|
||||||
rpl_sp : Result Difference Due To Change In .inc file
|
rpl_sp : Result Difference Due To Change In .inc file
|
||||||
rpl_rbr_to_sbr : Result Difference Due To Change In .inc file
|
rpl_rbr_to_sbr : Result Difference Due To Change In .inc file
|
||||||
rpl_row_until : Test Timesout
|
|
||||||
|
@ -1,212 +1,60 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
CREATE TABLE t1(n INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
|
||||||
reset slave;
|
INSERT INTO t1 VALUES (1),(2),(3),(4);
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
DROP TABLE t1;
|
||||||
start slave;
|
CREATE TABLE t2(n INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
|
||||||
stop slave;
|
INSERT INTO t2 VALUES (1),(2);
|
||||||
create table t1(n int not null auto_increment primary key);
|
INSERT INTO t2 VALUES (3),(4);
|
||||||
insert into t1 values (1),(2),(3),(4);
|
DROP TABLE t2;
|
||||||
drop table t1;
|
include/stop_slave.inc
|
||||||
create table t2(n int not null auto_increment primary key);
|
RESET SLAVE;
|
||||||
insert into t2 values (1),(2);
|
START SLAVE UNTIL MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=master_pos_drop_t1
|
||||||
insert into t2 values (3),(4);
|
include/wait_for_slave_sql_to_stop.inc
|
||||||
drop table t2;
|
SELECT * FROM t1;
|
||||||
start slave until master_log_file='master-bin.000001', master_log_pos=311;
|
|
||||||
select * from t1;
|
|
||||||
n
|
n
|
||||||
1
|
1
|
||||||
2
|
2
|
||||||
3
|
3
|
||||||
4
|
4
|
||||||
show slave status;
|
include/check_slave_param.inc [Exec_Master_Log_Pos]
|
||||||
Slave_IO_State #
|
START SLAVE UNTIL MASTER_LOG_FILE='master-no-such-bin.000001', MASTER_LOG_POS=MASTER_LOG_POS;
|
||||||
Master_Host 127.0.0.1
|
include/wait_for_slave_sql_to_stop.inc
|
||||||
Master_User root
|
SELECT * FROM t1;
|
||||||
Master_Port MASTER_MYPORT
|
n
|
||||||
Connect_Retry 1
|
1
|
||||||
Master_Log_File master-bin.000001
|
2
|
||||||
Read_Master_Log_Pos #
|
3
|
||||||
Relay_Log_File slave-relay-bin.000004
|
4
|
||||||
Relay_Log_Pos #
|
include/check_slave_param.inc [Exec_Master_Log_Pos]
|
||||||
Relay_Master_Log_File master-bin.000001
|
START SLAVE UNTIL RELAY_LOG_FILE='slave-relay-bin.000002', RELAY_LOG_POS=relay_pos_insert1_t2
|
||||||
Slave_IO_Running #
|
include/wait_for_slave_sql_to_stop.inc
|
||||||
Slave_SQL_Running No
|
SELECT * FROM t2;
|
||||||
Replicate_Do_DB
|
n
|
||||||
Replicate_Ignore_DB
|
1
|
||||||
Replicate_Do_Table
|
2
|
||||||
Replicate_Ignore_Table
|
include/check_slave_param.inc [Exec_Master_Log_Pos]
|
||||||
Replicate_Wild_Do_Table
|
START SLAVE;
|
||||||
Replicate_Wild_Ignore_Table
|
include/wait_for_slave_to_start.inc
|
||||||
Last_Errno 0
|
include/stop_slave.inc
|
||||||
Last_Error
|
START SLAVE SQL_THREAD UNTIL MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=master_pos_create_t2
|
||||||
Skip_Counter 0
|
include/wait_for_slave_param.inc [Until_Log_Pos]
|
||||||
Exec_Master_Log_Pos #
|
include/wait_for_slave_sql_to_stop.inc
|
||||||
Relay_Log_Space #
|
include/check_slave_param.inc [Exec_Master_Log_Pos]
|
||||||
Until_Condition Master
|
START SLAVE UNTIL MASTER_LOG_FILE='master-bin', MASTER_LOG_POS=MASTER_LOG_POS;
|
||||||
Until_Log_File master-bin.000001
|
|
||||||
Until_Log_Pos 311
|
|
||||||
Master_SSL_Allowed No
|
|
||||||
Master_SSL_CA_File
|
|
||||||
Master_SSL_CA_Path
|
|
||||||
Master_SSL_Cert
|
|
||||||
Master_SSL_Cipher
|
|
||||||
Master_SSL_Key
|
|
||||||
Seconds_Behind_Master #
|
|
||||||
Master_SSL_Verify_Server_Cert No
|
|
||||||
Last_IO_Errno 0
|
|
||||||
Last_IO_Error
|
|
||||||
Last_SQL_Errno 0
|
|
||||||
Last_SQL_Error
|
|
||||||
Replicate_Ignore_Server_Ids
|
|
||||||
Master_Server_Id 1
|
|
||||||
start slave until master_log_file='master-no-such-bin.000001', master_log_pos=291;
|
|
||||||
select * from t1;
|
|
||||||
n 1
|
|
||||||
n 2
|
|
||||||
n 3
|
|
||||||
n 4
|
|
||||||
show slave status;
|
|
||||||
Slave_IO_State #
|
|
||||||
Master_Host 127.0.0.1
|
|
||||||
Master_User root
|
|
||||||
Master_Port MASTER_MYPORT
|
|
||||||
Connect_Retry 1
|
|
||||||
Master_Log_File master-bin.000001
|
|
||||||
Read_Master_Log_Pos #
|
|
||||||
Relay_Log_File slave-relay-bin.000004
|
|
||||||
Relay_Log_Pos #
|
|
||||||
Relay_Master_Log_File master-bin.000001
|
|
||||||
Slave_IO_Running #
|
|
||||||
Slave_SQL_Running No
|
|
||||||
Replicate_Do_DB
|
|
||||||
Replicate_Ignore_DB
|
|
||||||
Replicate_Do_Table
|
|
||||||
Replicate_Ignore_Table
|
|
||||||
Replicate_Wild_Do_Table
|
|
||||||
Replicate_Wild_Ignore_Table
|
|
||||||
Last_Errno 0
|
|
||||||
Last_Error
|
|
||||||
Skip_Counter 0
|
|
||||||
Exec_Master_Log_Pos #
|
|
||||||
Relay_Log_Space #
|
|
||||||
Until_Condition Master
|
|
||||||
Until_Log_File master-no-such-bin.000001
|
|
||||||
Until_Log_Pos 291
|
|
||||||
Master_SSL_Allowed No
|
|
||||||
Master_SSL_CA_File
|
|
||||||
Master_SSL_CA_Path
|
|
||||||
Master_SSL_Cert
|
|
||||||
Master_SSL_Cipher
|
|
||||||
Master_SSL_Key
|
|
||||||
Seconds_Behind_Master #
|
|
||||||
Master_SSL_Verify_Server_Cert No
|
|
||||||
Last_IO_Errno 0
|
|
||||||
Last_IO_Error
|
|
||||||
Last_SQL_Errno 0
|
|
||||||
Last_SQL_Error
|
|
||||||
Replicate_Ignore_Server_Ids
|
|
||||||
Master_Server_Id 1
|
|
||||||
start slave until relay_log_file='slave-relay-bin.000004', relay_log_pos=728;
|
|
||||||
select * from t2;
|
|
||||||
show slave status;
|
|
||||||
Slave_IO_State #
|
|
||||||
Master_Host 127.0.0.1
|
|
||||||
Master_User root
|
|
||||||
Master_Port MASTER_MYPORT
|
|
||||||
Connect_Retry 1
|
|
||||||
Master_Log_File master-bin.000001
|
|
||||||
Read_Master_Log_Pos #
|
|
||||||
Relay_Log_File slave-relay-bin.000004
|
|
||||||
Relay_Log_Pos #
|
|
||||||
Relay_Master_Log_File master-bin.000001
|
|
||||||
Slave_IO_Running #
|
|
||||||
Slave_SQL_Running No
|
|
||||||
Replicate_Do_DB
|
|
||||||
Replicate_Ignore_DB
|
|
||||||
Replicate_Do_Table
|
|
||||||
Replicate_Ignore_Table
|
|
||||||
Replicate_Wild_Do_Table
|
|
||||||
Replicate_Wild_Ignore_Table
|
|
||||||
Last_Errno 0
|
|
||||||
Last_Error
|
|
||||||
Skip_Counter 0
|
|
||||||
Exec_Master_Log_Pos #
|
|
||||||
Relay_Log_Space #
|
|
||||||
Until_Condition Relay
|
|
||||||
Until_Log_File slave-relay-bin.000004
|
|
||||||
Until_Log_Pos 728
|
|
||||||
Master_SSL_Allowed No
|
|
||||||
Master_SSL_CA_File
|
|
||||||
Master_SSL_CA_Path
|
|
||||||
Master_SSL_Cert
|
|
||||||
Master_SSL_Cipher
|
|
||||||
Master_SSL_Key
|
|
||||||
Seconds_Behind_Master #
|
|
||||||
Master_SSL_Verify_Server_Cert No
|
|
||||||
Last_IO_Errno 0
|
|
||||||
Last_IO_Error
|
|
||||||
Last_SQL_Errno 0
|
|
||||||
Last_SQL_Error
|
|
||||||
Replicate_Ignore_Server_Ids
|
|
||||||
Master_Server_Id 1
|
|
||||||
start slave;
|
|
||||||
stop slave;
|
|
||||||
start slave until master_log_file='master-bin.000001', master_log_pos=740;
|
|
||||||
show slave status;
|
|
||||||
Slave_IO_State #
|
|
||||||
Master_Host 127.0.0.1
|
|
||||||
Master_User root
|
|
||||||
Master_Port MASTER_MYPORT
|
|
||||||
Connect_Retry 1
|
|
||||||
Master_Log_File master-bin.000001
|
|
||||||
Read_Master_Log_Pos #
|
|
||||||
Relay_Log_File slave-relay-bin.000004
|
|
||||||
Relay_Log_Pos #
|
|
||||||
Relay_Master_Log_File master-bin.000001
|
|
||||||
Slave_IO_Running Yes
|
|
||||||
Slave_SQL_Running No
|
|
||||||
Replicate_Do_DB
|
|
||||||
Replicate_Ignore_DB
|
|
||||||
Replicate_Do_Table
|
|
||||||
Replicate_Ignore_Table
|
|
||||||
Replicate_Wild_Do_Table
|
|
||||||
Replicate_Wild_Ignore_Table
|
|
||||||
Last_Errno 0
|
|
||||||
Last_Error
|
|
||||||
Skip_Counter 0
|
|
||||||
Exec_Master_Log_Pos #
|
|
||||||
Relay_Log_Space #
|
|
||||||
Until_Condition Master
|
|
||||||
Until_Log_File master-bin.000001
|
|
||||||
Until_Log_Pos 740
|
|
||||||
Master_SSL_Allowed No
|
|
||||||
Master_SSL_CA_File
|
|
||||||
Master_SSL_CA_Path
|
|
||||||
Master_SSL_Cert
|
|
||||||
Master_SSL_Cipher
|
|
||||||
Master_SSL_Key
|
|
||||||
Seconds_Behind_Master #
|
|
||||||
Master_SSL_Verify_Server_Cert No
|
|
||||||
Last_IO_Errno 0
|
|
||||||
Last_IO_Error
|
|
||||||
Last_SQL_Errno 0
|
|
||||||
Last_SQL_Error
|
|
||||||
Replicate_Ignore_Server_Ids
|
|
||||||
Master_Server_Id 1
|
|
||||||
start slave until master_log_file='master-bin', master_log_pos=561;
|
|
||||||
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
|
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
|
||||||
start slave until master_log_file='master-bin.000001', master_log_pos=561, relay_log_pos=12;
|
START SLAVE UNTIL MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=MASTER_LOG_POS, RELAY_LOG_POS=RELAY_LOG_POS;
|
||||||
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
|
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
|
||||||
start slave until master_log_file='master-bin.000001';
|
START SLAVE UNTIL MASTER_LOG_FILE='master-bin.000001';
|
||||||
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
|
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
|
||||||
start slave until relay_log_file='slave-relay-bin.000002';
|
START SLAVE UNTIL RELAY_LOG_FILE='slave-relay-bin.000009';
|
||||||
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
|
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
|
||||||
start slave until relay_log_file='slave-relay-bin.000002', master_log_pos=561;
|
START SLAVE UNTIL RELAY_LOG_FILE='slave-relay-bin.000002', MASTER_LOG_POS=MASTER_LOG_POS;
|
||||||
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
|
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
|
||||||
start slave sql_thread;
|
START SLAVE;
|
||||||
start slave until master_log_file='master-bin.000001', master_log_pos=740;
|
START SLAVE UNTIL MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=MASTER_LOG_POS;
|
||||||
Warnings:
|
Warnings:
|
||||||
Level Note
|
Note 1254 Slave is already running
|
||||||
Code 1254
|
include/stop_slave.inc
|
||||||
Message Slave is already running
|
RESET SLAVE;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -2,90 +2,126 @@
|
|||||||
-- source include/have_binlog_format_row.inc
|
-- source include/have_binlog_format_row.inc
|
||||||
-- source include/master-slave.inc
|
-- source include/master-slave.inc
|
||||||
|
|
||||||
# Test is dependent on binlog positions
|
# Note: The test is dependent on binlog positions
|
||||||
|
|
||||||
# prepare version for substitutions
|
# Create some events on master
|
||||||
let $VERSION=`select version()`;
|
connection master;
|
||||||
|
CREATE TABLE t1(n INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
|
||||||
# stop slave before he will start replication also sync with master
|
INSERT INTO t1 VALUES (1),(2),(3),(4);
|
||||||
# for avoiding undetermenistic behaviour
|
DROP TABLE t1;
|
||||||
|
# Save master log position for query DROP TABLE t1
|
||||||
save_master_pos;
|
save_master_pos;
|
||||||
connection slave;
|
let $master_pos_drop_t1= query_get_value(SHOW BINLOG EVENTS, Pos, 7);
|
||||||
sync_with_master;
|
let $master_log_file= query_get_value(SHOW BINLOG EVENTS, Log_name, 7);
|
||||||
stop slave;
|
|
||||||
|
CREATE TABLE t2(n INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
|
||||||
|
# Save master log position for query CREATE TABLE t2
|
||||||
|
save_master_pos;
|
||||||
|
let $master_pos_create_t2= query_get_value(SHOW BINLOG EVENTS, Pos, 8);
|
||||||
|
|
||||||
|
INSERT INTO t2 VALUES (1),(2);
|
||||||
|
save_master_pos;
|
||||||
|
# Save master log position for query INSERT INTO t2 VALUES (1),(2);
|
||||||
|
let $master_pos_insert1_t2= query_get_value(SHOW BINLOG EVENTS, End_log_pos, 12);
|
||||||
|
sync_slave_with_master;
|
||||||
|
|
||||||
|
# Save relay log position for query INSERT INTO t2 VALUES (1),(2);
|
||||||
|
let $relay_pos_insert1_t2= query_get_value(show slave status, Relay_Log_Pos, 1);
|
||||||
|
|
||||||
connection master;
|
connection master;
|
||||||
# create some events on master
|
INSERT INTO t2 VALUES (3),(4);
|
||||||
create table t1(n int not null auto_increment primary key);
|
DROP TABLE t2;
|
||||||
insert into t1 values (1),(2),(3),(4);
|
# Save master log position for query INSERT INTO t2 VALUES (1),(2);
|
||||||
drop table t1;
|
let $master_pos_drop_t2= query_get_value(SHOW BINLOG EVENTS, End_log_pos, 17);
|
||||||
create table t2(n int not null auto_increment primary key);
|
sync_slave_with_master;
|
||||||
insert into t2 values (1),(2);
|
|
||||||
insert into t2 values (3),(4);
|
|
||||||
drop table t2;
|
|
||||||
|
|
||||||
# try to replicate all queries until drop of t1
|
--source include/stop_slave.inc
|
||||||
|
# Reset slave.
|
||||||
|
RESET SLAVE;
|
||||||
|
--disable_query_log
|
||||||
|
eval CHANGE MASTER TO MASTER_USER='root', MASTER_CONNECT_RETRY=1, MASTER_HOST='127.0.0.1', MASTER_PORT=$MASTER_MYPORT;
|
||||||
|
--enable_query_log
|
||||||
|
|
||||||
|
# Try to replicate all queries until drop of t1
|
||||||
connection slave;
|
connection slave;
|
||||||
start slave until master_log_file='master-bin.000001', master_log_pos=311;
|
echo START SLAVE UNTIL MASTER_LOG_FILE='$master_log_file', MASTER_LOG_POS=master_pos_drop_t1;
|
||||||
sleep 2;
|
--disable_query_log
|
||||||
wait_for_slave_to_stop;
|
eval START SLAVE UNTIL MASTER_LOG_FILE='$master_log_file', MASTER_LOG_POS=$master_pos_drop_t1;
|
||||||
# here table should be still not deleted
|
--enable_query_log
|
||||||
select * from t1;
|
--source include/wait_for_slave_sql_to_stop.inc
|
||||||
--vertical_results
|
|
||||||
--replace_result $MASTER_MYPORT MASTER_MYPORT
|
|
||||||
--replace_column 1 # 7 # 9 # 11 # 22 # 23 # 33 #
|
|
||||||
show slave status;
|
|
||||||
|
|
||||||
# this should fail right after start
|
# Here table should be still not deleted
|
||||||
start slave until master_log_file='master-no-such-bin.000001', master_log_pos=291;
|
SELECT * FROM t1;
|
||||||
|
--let $slave_param= Exec_Master_Log_Pos
|
||||||
|
--let $slave_param_value= $master_pos_drop_t1
|
||||||
|
--source include/check_slave_param.inc
|
||||||
|
|
||||||
|
# This should fail right after start
|
||||||
|
--replace_result 291 MASTER_LOG_POS
|
||||||
|
START SLAVE UNTIL MASTER_LOG_FILE='master-no-such-bin.000001', MASTER_LOG_POS=291;
|
||||||
|
--source include/wait_for_slave_sql_to_stop.inc
|
||||||
# again this table should be still not deleted
|
# again this table should be still not deleted
|
||||||
select * from t1;
|
SELECT * FROM t1;
|
||||||
sleep 2;
|
|
||||||
wait_for_slave_to_stop;
|
|
||||||
--vertical_results
|
|
||||||
--replace_result $MASTER_MYPORT MASTER_MYPORT
|
|
||||||
--replace_column 1 # 7 # 9 # 11 # 22 # 23 # 33 #
|
|
||||||
show slave status;
|
|
||||||
|
|
||||||
# try replicate all up to and not including the second insert to t2;
|
--let $slave_param= Exec_Master_Log_Pos
|
||||||
start slave until relay_log_file='slave-relay-bin.000004', relay_log_pos=728;
|
--let $slave_param_value= $master_pos_drop_t1
|
||||||
sleep 2;
|
--source include/check_slave_param.inc
|
||||||
wait_for_slave_to_stop;
|
|
||||||
select * from t2;
|
# Try replicate all up to and not including the second insert to t2;
|
||||||
--vertical_results
|
echo START SLAVE UNTIL RELAY_LOG_FILE='slave-relay-bin.000002', RELAY_LOG_POS=relay_pos_insert1_t2;
|
||||||
--replace_result $MASTER_MYPORT MASTER_MYPORT
|
--disable_query_log
|
||||||
--replace_column 1 # 7 # 9 # 11 # 22 # 23 # 33 #
|
eval START SLAVE UNTIL RELAY_LOG_FILE='slave-relay-bin.000002', RELAY_LOG_POS=$relay_pos_insert1_t2;
|
||||||
show slave status;
|
--enable_query_log
|
||||||
|
--source include/wait_for_slave_sql_to_stop.inc
|
||||||
|
SELECT * FROM t2;
|
||||||
|
|
||||||
|
--let $slave_param= Exec_Master_Log_Pos
|
||||||
|
--let $slave_param_value= $master_pos_insert1_t2
|
||||||
|
--source include/check_slave_param.inc
|
||||||
|
|
||||||
# clean up
|
# clean up
|
||||||
start slave;
|
START SLAVE;
|
||||||
|
--source include/wait_for_slave_to_start.inc
|
||||||
connection master;
|
connection master;
|
||||||
save_master_pos;
|
sync_slave_with_master;
|
||||||
connection slave;
|
--source include/stop_slave.inc
|
||||||
sync_with_master;
|
|
||||||
stop slave;
|
|
||||||
|
|
||||||
# this should stop immediately as we are already there
|
# This should stop immediately as we are already there
|
||||||
start slave until master_log_file='master-bin.000001', master_log_pos=740;
|
echo START SLAVE SQL_THREAD UNTIL MASTER_LOG_FILE='$master_log_file', MASTER_LOG_POS=master_pos_create_t2;
|
||||||
sleep 2;
|
--disable_query_log
|
||||||
wait_for_slave_to_stop;
|
eval START SLAVE SQL_THREAD UNTIL MASTER_LOG_FILE='$master_log_file', MASTER_LOG_POS=$master_pos_create_t2;
|
||||||
|
--enable_query_log
|
||||||
|
let $slave_param= Until_Log_Pos;
|
||||||
|
let $slave_param_value= $master_pos_create_t2;
|
||||||
|
--source include/wait_for_slave_param.inc
|
||||||
|
--source include/wait_for_slave_sql_to_stop.inc
|
||||||
# here the sql slave thread should be stopped
|
# here the sql slave thread should be stopped
|
||||||
--vertical_results
|
--let $slave_param= Exec_Master_Log_Pos
|
||||||
--replace_result $MASTER_MYPORT MASTER_MYPORT bin.000005 bin.000004 bin.000006 bin.000004 bin.000007 bin.000004
|
--let $slave_param_value= $master_pos_drop_t2
|
||||||
--replace_column 1 # 7 # 9 # 22 # 23 # 33 #
|
--source include/check_slave_param.inc
|
||||||
show slave status;
|
|
||||||
|
|
||||||
#testing various error conditions
|
#testing various error conditions
|
||||||
|
--replace_result 561 MASTER_LOG_POS
|
||||||
--error 1277
|
--error 1277
|
||||||
start slave until master_log_file='master-bin', master_log_pos=561;
|
START SLAVE UNTIL MASTER_LOG_FILE='master-bin', MASTER_LOG_POS=561;
|
||||||
|
--replace_result 561 MASTER_LOG_POS 12 RELAY_LOG_POS
|
||||||
--error 1277
|
--error 1277
|
||||||
start slave until master_log_file='master-bin.000001', master_log_pos=561, relay_log_pos=12;
|
START SLAVE UNTIL MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=561, RELAY_LOG_POS=12;
|
||||||
--error 1277
|
--error 1277
|
||||||
start slave until master_log_file='master-bin.000001';
|
START SLAVE UNTIL MASTER_LOG_FILE='master-bin.000001';
|
||||||
--error 1277
|
--error 1277
|
||||||
start slave until relay_log_file='slave-relay-bin.000002';
|
START SLAVE UNTIL RELAY_LOG_FILE='slave-relay-bin.000009';
|
||||||
|
--replace_result 561 MASTER_LOG_POS
|
||||||
--error 1277
|
--error 1277
|
||||||
start slave until relay_log_file='slave-relay-bin.000002', master_log_pos=561;
|
START SLAVE UNTIL RELAY_LOG_FILE='slave-relay-bin.000002', MASTER_LOG_POS=561;
|
||||||
# Warning should be given for second command
|
# Warning should be given for second command
|
||||||
start slave sql_thread;
|
START SLAVE;
|
||||||
start slave until master_log_file='master-bin.000001', master_log_pos=740;
|
--replace_result 740 MASTER_LOG_POS
|
||||||
|
START SLAVE UNTIL MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=740;
|
||||||
|
|
||||||
|
--source include/stop_slave.inc
|
||||||
|
# Clear slave IO error.
|
||||||
|
RESET SLAVE;
|
||||||
|
|
||||||
|
--let $rpl_only_running_threads= 1
|
||||||
|
--source include/rpl_end.inc
|
||||||
|
@ -738,6 +738,26 @@ SELECT c2 FROM t1;
|
|||||||
c2
|
c2
|
||||||
0
|
0
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
id int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
color enum('GREEN', 'WHITE') DEFAULT NULL,
|
||||||
|
ts int,
|
||||||
|
PRIMARY KEY (id),
|
||||||
|
KEY color (color) USING HASH
|
||||||
|
) ENGINE=MEMORY DEFAULT CHARSET=utf8;
|
||||||
|
INSERT INTO t1 VALUES("1","GREEN",1);
|
||||||
|
INSERT INTO t1 VALUES("2","GREEN",1);
|
||||||
|
INSERT INTO t1 VALUES("3","GREEN",1);
|
||||||
|
INSERT INTO t1 VALUES("4","GREEN",1);
|
||||||
|
INSERT INTO t1 VALUES("5","GREEN",1);
|
||||||
|
INSERT INTO t1 VALUES("6","GREEN",1);
|
||||||
|
DELETE FROM t1 WHERE id = 1;
|
||||||
|
INSERT INTO t1 VALUES("7","GREEN", 2);
|
||||||
|
DELETE FROM t1 WHERE ts = 1 AND color = 'GREEN';
|
||||||
|
SELECT * from t1;
|
||||||
|
id color ts
|
||||||
|
7 GREEN 2
|
||||||
|
DROP TABLE t1;
|
||||||
CREATE TABLE t1 (a int, index(a)) engine=heap min_rows=10 max_rows=100;
|
CREATE TABLE t1 (a int, index(a)) engine=heap min_rows=10 max_rows=100;
|
||||||
insert into t1 values(1);
|
insert into t1 values(1);
|
||||||
select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1";
|
select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1";
|
||||||
|
@ -486,6 +486,32 @@ ALTER TABLE t1 MODIFY c1 VARCHAR(101);
|
|||||||
SELECT c2 FROM t1;
|
SELECT c2 FROM t1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# BUG#51763 Can't delete rows from MEMORY table with HASH key
|
||||||
|
#
|
||||||
|
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
id int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
color enum('GREEN', 'WHITE') DEFAULT NULL,
|
||||||
|
ts int,
|
||||||
|
PRIMARY KEY (id),
|
||||||
|
KEY color (color) USING HASH
|
||||||
|
) ENGINE=MEMORY DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
INSERT INTO t1 VALUES("1","GREEN",1);
|
||||||
|
INSERT INTO t1 VALUES("2","GREEN",1);
|
||||||
|
INSERT INTO t1 VALUES("3","GREEN",1);
|
||||||
|
INSERT INTO t1 VALUES("4","GREEN",1);
|
||||||
|
INSERT INTO t1 VALUES("5","GREEN",1);
|
||||||
|
INSERT INTO t1 VALUES("6","GREEN",1);
|
||||||
|
DELETE FROM t1 WHERE id = 1;
|
||||||
|
INSERT INTO t1 VALUES("7","GREEN", 2);
|
||||||
|
DELETE FROM t1 WHERE ts = 1 AND color = 'GREEN';
|
||||||
|
SELECT * from t1;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
# End of 5.1 tests
|
||||||
|
|
||||||
#
|
#
|
||||||
# Show that MIN_ROWS and MAX_ROWS have an effect on how data_length
|
# Show that MIN_ROWS and MAX_ROWS have an effect on how data_length
|
||||||
# and index_length are allocated.
|
# and index_length are allocated.
|
||||||
|
@ -10,4 +10,3 @@
|
|||||||
#
|
#
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
innodb_bug12400341: variable innodb_trx_rseg_n_slots_debug is removed in MariaDB
|
|
||||||
|
@ -956,7 +956,7 @@ Table Op Msg_type Msg_text
|
|||||||
test.t1 check status OK
|
test.t1 check status OK
|
||||||
explain select * from t1 where b like 'adfd%';
|
explain select * from t1 where b like 'adfd%';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL b NULL NULL NULL 15 Using where
|
1 SIMPLE t1 range b b 769 NULL 11 Using where
|
||||||
drop table t1;
|
drop table t1;
|
||||||
set global innodb_file_per_table=on;
|
set global innodb_file_per_table=on;
|
||||||
set global innodb_file_format='Barracuda';
|
set global innodb_file_format='Barracuda';
|
||||||
|
17
mysql-test/suite/innodb/r/innodb_bug14147491.result
Normal file
17
mysql-test/suite/innodb/r/innodb_bug14147491.result
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
CALL mtr.add_suppression("InnoDB: Error: Unable to read tablespace .* page no .* into the buffer pool after 100 attempts");
|
||||||
|
CALL mtr.add_suppression("InnoDB: Warning: database page corruption or a failed");
|
||||||
|
# Create and populate the table to be corrupted
|
||||||
|
CREATE TABLE t1 (a INT AUTO_INCREMENT PRIMARY KEY, b TEXT) ENGINE=InnoDB;
|
||||||
|
INSERT INTO t1 (b) VALUES ('corrupt me');
|
||||||
|
INSERT INTO t1 (b) VALUES ('corrupt me');
|
||||||
|
# Restart server to flush buffers
|
||||||
|
# Corrupt the table
|
||||||
|
Munged a string.
|
||||||
|
Munged a string.
|
||||||
|
# Write file to make mysql-test-run.pl expect crash and restart
|
||||||
|
SELECT * FROM t1;
|
||||||
|
ERROR HY000: Lost connection to MySQL server during query
|
||||||
|
# Turn on reconnect
|
||||||
|
# Wait for server to fully start
|
||||||
|
# Cleanup
|
||||||
|
DROP TABLE t1;
|
53
mysql-test/suite/innodb/r/innodb_bug14676111.result
Normal file
53
mysql-test/suite/innodb/r/innodb_bug14676111.result
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
drop table if exists t1;
|
||||||
|
CREATE TABLE t1 (a int not null primary key) engine=InnoDB;
|
||||||
|
set global innodb_limit_optimistic_insert_debug = 2;
|
||||||
|
insert into t1 values (1);
|
||||||
|
insert into t1 values (5);
|
||||||
|
insert into t1 values (4);
|
||||||
|
insert into t1 values (3);
|
||||||
|
insert into t1 values (2);
|
||||||
|
analyze table t1;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t1 analyze status OK
|
||||||
|
select DATA_LENGTH / 16384 from information_schema.TABLES where TABLE_SCHEMA = 'test' and TABLE_NAME = 't1';
|
||||||
|
DATA_LENGTH / 16384
|
||||||
|
10.0000
|
||||||
|
delete from t1 where a=4;
|
||||||
|
analyze table t1;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t1 analyze status OK
|
||||||
|
select DATA_LENGTH / 16384 from information_schema.TABLES where TABLE_SCHEMA = 'test' and TABLE_NAME = 't1';
|
||||||
|
DATA_LENGTH / 16384
|
||||||
|
8.0000
|
||||||
|
delete from t1 where a=5;
|
||||||
|
analyze table t1;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t1 analyze status OK
|
||||||
|
select DATA_LENGTH / 16384 from information_schema.TABLES where TABLE_SCHEMA = 'test' and TABLE_NAME = 't1';
|
||||||
|
DATA_LENGTH / 16384
|
||||||
|
5.0000
|
||||||
|
set global innodb_limit_optimistic_insert_debug = 10000;
|
||||||
|
delete from t1 where a=2;
|
||||||
|
analyze table t1;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t1 analyze status OK
|
||||||
|
select DATA_LENGTH / 16384 from information_schema.TABLES where TABLE_SCHEMA = 'test' and TABLE_NAME = 't1';
|
||||||
|
DATA_LENGTH / 16384
|
||||||
|
3.0000
|
||||||
|
insert into t1 values (2);
|
||||||
|
delete from t1 where a=2;
|
||||||
|
analyze table t1;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t1 analyze status OK
|
||||||
|
select DATA_LENGTH / 16384 from information_schema.TABLES where TABLE_SCHEMA = 'test' and TABLE_NAME = 't1';
|
||||||
|
DATA_LENGTH / 16384
|
||||||
|
2.0000
|
||||||
|
insert into t1 values (2);
|
||||||
|
delete from t1 where a=2;
|
||||||
|
analyze table t1;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t1 analyze status OK
|
||||||
|
select DATA_LENGTH / 16384 from information_schema.TABLES where TABLE_SCHEMA = 'test' and TABLE_NAME = 't1';
|
||||||
|
DATA_LENGTH / 16384
|
||||||
|
1.0000
|
||||||
|
drop table t1;
|
@ -3,11 +3,11 @@ insert into bug47777 values (geomfromtext('linestring(1 2,3 4,5 6,7 8,9 10)'));
|
|||||||
select count(*) from bug47777 where c2 =geomfromtext('linestring(1 2,3 4,5 6,7 8,9 10)');
|
select count(*) from bug47777 where c2 =geomfromtext('linestring(1 2,3 4,5 6,7 8,9 10)');
|
||||||
count(*)
|
count(*)
|
||||||
1
|
1
|
||||||
update bug47777 set c2=GeomFromText('POINT(1 1)');
|
update bug47777 set c2=GeomFromText('linestring(1 1)');
|
||||||
select count(*) from bug47777 where c2 =geomfromtext('linestring(1 2,3 4,5 6,7 8,9 10)');
|
select count(*) from bug47777 where c2 =geomfromtext('linestring(1 2,3 4,5 6,7 8,9 10)');
|
||||||
count(*)
|
count(*)
|
||||||
0
|
0
|
||||||
select count(*) from bug47777 where c2 = GeomFromText('POINT(1 1)');
|
select count(*) from bug47777 where c2 = GeomFromText('linestring(1 1)');
|
||||||
count(*)
|
count(*)
|
||||||
1
|
1
|
||||||
drop table bug47777;
|
drop table bug47777;
|
||||||
|
@ -343,7 +343,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t1 index NULL PRIMARY 5 NULL 4 Using index; Using temporary
|
1 SIMPLE t1 index NULL PRIMARY 5 NULL 4 Using index; Using temporary
|
||||||
explain select distinct f1, f2 from t1;
|
explain select distinct f1, f2 from t1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 range NULL PRIMARY 5 NULL 3 Using index for group-by; Using temporary
|
1 SIMPLE t1 index NULL PRIMARY 5 NULL 4 Using index
|
||||||
drop table t1;
|
drop table t1;
|
||||||
CREATE TABLE t1 (id int(11) NOT NULL PRIMARY KEY, name varchar(20),
|
CREATE TABLE t1 (id int(11) NOT NULL PRIMARY KEY, name varchar(20),
|
||||||
INDEX (name));
|
INDEX (name));
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user