mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge 10.1 into 10.2
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@ -259,6 +259,7 @@ storage/mroonga/vendor/groonga/src/groonga-benchmark
|
|||||||
storage/mroonga/vendor/groonga/src/suggest/groonga-suggest-create-dataset
|
storage/mroonga/vendor/groonga/src/suggest/groonga-suggest-create-dataset
|
||||||
storage/mroonga/mysql-test/mroonga/storage/r/information_schema_plugins.result
|
storage/mroonga/mysql-test/mroonga/storage/r/information_schema_plugins.result
|
||||||
storage/mroonga/mysql-test/mroonga/storage/r/variable_version.result
|
storage/mroonga/mysql-test/mroonga/storage/r/variable_version.result
|
||||||
|
zlib/zconf.h
|
||||||
xxx/*
|
xxx/*
|
||||||
yyy/*
|
yyy/*
|
||||||
zzz/*
|
zzz/*
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Copyright (c) 2006, 2017, Oracle and/or its affiliates.
|
# Copyright (c) 2006, 2017, Oracle and/or its affiliates.
|
||||||
# Copyright (c) 2008, 2017, MariaDB
|
# Copyright (c) 2008, 2018, MariaDB Corporation
|
||||||
#
|
#
|
||||||
# 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
|
||||||
|
10
README.md
10
README.md
@ -59,10 +59,14 @@ and COPYING.thirdparty files.
|
|||||||
Bug Reports:
|
Bug Reports:
|
||||||
------------
|
------------
|
||||||
|
|
||||||
Bug and/or error reports regarding MariaDB should be submitted at
|
Bug and/or error reports regarding MariaDB should be submitted at:
|
||||||
https://mariadb.org/jira
|
https://jira.mariadb.org
|
||||||
|
|
||||||
Bugs in the MySQL code can also be submitted at https://bugs.mysql.com
|
For reporting security vulnerabilities see:
|
||||||
|
https://mariadb.org/about/security-policy/
|
||||||
|
|
||||||
|
Bugs in the MySQL code can also be submitted at:
|
||||||
|
https://bugs.mysql.com
|
||||||
|
|
||||||
The code for MariaDB, including all revision history, can be found at:
|
The code for MariaDB, including all revision history, can be found at:
|
||||||
https://github.com/MariaDB/server
|
https://github.com/MariaDB/server
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
# Copyright (c) 2006, 2015, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2006, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
# Copyright (c) 2008, 2018, MariaDB Corporation
|
||||||
#
|
#
|
||||||
# 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
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2000, 2014, Oracle and/or its affiliates.
|
Copyright (c) 2000, 2018, Oracle and/or its affiliates.
|
||||||
Copyright (c) 2009, 2017, MariaDB
|
Copyright (c) 2009, 2018, MariaDB Corporation
|
||||||
|
|
||||||
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
|
||||||
@ -1495,7 +1495,7 @@ static struct my_option my_long_options[] =
|
|||||||
{"batch", 'B',
|
{"batch", 'B',
|
||||||
"Don't use history file. Disable interactive behavior. (Enables --silent.)",
|
"Don't use history file. Disable interactive behavior. (Enables --silent.)",
|
||||||
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},
|
||||||
{"binary-as-hex", 'b', "Print binary data as hex", &opt_binhex, &opt_binhex,
|
{"binary-as-hex", 0, "Print binary data as hex", &opt_binhex, &opt_binhex,
|
||||||
0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
{"character-sets-dir", OPT_CHARSETS_DIR,
|
{"character-sets-dir", OPT_CHARSETS_DIR,
|
||||||
"Directory for character set files.", &charsets_dir,
|
"Directory for character set files.", &charsets_dir,
|
||||||
|
@ -99,12 +99,15 @@ SET(ignored
|
|||||||
"%ignore /etc"
|
"%ignore /etc"
|
||||||
"%ignore /etc/init.d"
|
"%ignore /etc/init.d"
|
||||||
"%ignore /etc/logrotate.d"
|
"%ignore /etc/logrotate.d"
|
||||||
|
"%ignore /etc/systemd"
|
||||||
|
"%ignore /etc/systemd/system"
|
||||||
"%ignore ${CMAKE_INSTALL_PREFIX}"
|
"%ignore ${CMAKE_INSTALL_PREFIX}"
|
||||||
"%ignore ${CMAKE_INSTALL_PREFIX}/bin"
|
"%ignore ${CMAKE_INSTALL_PREFIX}/bin"
|
||||||
"%ignore ${CMAKE_INSTALL_PREFIX}/include"
|
"%ignore ${CMAKE_INSTALL_PREFIX}/include"
|
||||||
"%ignore ${CMAKE_INSTALL_PREFIX}/lib"
|
"%ignore ${CMAKE_INSTALL_PREFIX}/lib"
|
||||||
"%ignore ${CMAKE_INSTALL_PREFIX}/lib/systemd"
|
"%ignore ${CMAKE_INSTALL_PREFIX}/lib/systemd"
|
||||||
"%ignore ${CMAKE_INSTALL_PREFIX}/lib/systemd/system"
|
"%ignore ${CMAKE_INSTALL_PREFIX}/lib/systemd/system"
|
||||||
|
"%ignore ${CMAKE_INSTALL_PREFIX}/lib/tmpfiles.d"
|
||||||
"%ignore ${CMAKE_INSTALL_PREFIX}/lib64"
|
"%ignore ${CMAKE_INSTALL_PREFIX}/lib64"
|
||||||
"%ignore ${CMAKE_INSTALL_PREFIX}/sbin"
|
"%ignore ${CMAKE_INSTALL_PREFIX}/sbin"
|
||||||
"%ignore ${CMAKE_INSTALL_PREFIX}/share"
|
"%ignore ${CMAKE_INSTALL_PREFIX}/share"
|
||||||
|
@ -136,6 +136,10 @@ MACRO(MERGE_STATIC_LIBS TARGET OUTPUT_NAME LIBS_TO_MERGE)
|
|||||||
SET(SOURCE_FILE ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_depends.c)
|
SET(SOURCE_FILE ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_depends.c)
|
||||||
ADD_LIBRARY(${TARGET} STATIC ${SOURCE_FILE})
|
ADD_LIBRARY(${TARGET} STATIC ${SOURCE_FILE})
|
||||||
SET_TARGET_PROPERTIES(${TARGET} PROPERTIES OUTPUT_NAME ${OUTPUT_NAME})
|
SET_TARGET_PROPERTIES(${TARGET} PROPERTIES OUTPUT_NAME ${OUTPUT_NAME})
|
||||||
|
IF(NOT _SKIP_PIC)
|
||||||
|
SET_TARGET_PROPERTIES(${TARGET} PROPERTIES COMPILE_FLAGS
|
||||||
|
"${CMAKE_SHARED_LIBRARY_C_FLAGS}")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
SET(OSLIBS)
|
SET(OSLIBS)
|
||||||
FOREACH(LIB ${LIBS_TO_MERGE})
|
FOREACH(LIB ${LIBS_TO_MERGE})
|
||||||
@ -241,11 +245,11 @@ MACRO(MERGE_LIBRARIES)
|
|||||||
# check for non-PIC libraries
|
# check for non-PIC libraries
|
||||||
IF(NOT _SKIP_PIC)
|
IF(NOT _SKIP_PIC)
|
||||||
FOREACH(LIB ${LIBS})
|
FOREACH(LIB ${LIBS})
|
||||||
GET_TARGET_PROPERTY(${LIB} TYPE LIBTYPE)
|
GET_TARGET_PROPERTY(LTYPE ${LIB} TYPE)
|
||||||
IF(LIBTYPE STREQUAL "STATIC_LIBRARY")
|
IF(LTYPE STREQUAL "STATIC_LIBRARY")
|
||||||
GET_TARGET_PROPERTY(LIB COMPILE_FLAGS LIB_COMPILE_FLAGS)
|
GET_TARGET_PROPERTY(LIB_COMPILE_FLAGS ${LIB} COMPILE_FLAGS)
|
||||||
STRING(REPLACE "${CMAKE_SHARED_LIBRARY_C_FLAGS}"
|
STRING(REPLACE "${CMAKE_SHARED_LIBRARY_C_FLAGS}"
|
||||||
"<PIC_FLAG>" LIB_COMPILE_FLAGS ${LIB_COMPILE_FLAG})
|
"<PIC_FLAG>" LIB_COMPILE_FLAGS "${LIB_COMPILE_FLAGS}")
|
||||||
IF(NOT LIB_COMPILE_FLAGS MATCHES "<PIC_FLAG>")
|
IF(NOT LIB_COMPILE_FLAGS MATCHES "<PIC_FLAG>")
|
||||||
MESSAGE(FATAL_ERROR
|
MESSAGE(FATAL_ERROR
|
||||||
"Attempted to link non-PIC static library ${LIB} to shared library ${TARGET}\n"
|
"Attempted to link non-PIC static library ${LIB} to shared library ${TARGET}\n"
|
||||||
|
@ -163,9 +163,8 @@ IF(MSVC)
|
|||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
# Always link with socket library
|
# Always link with socket library
|
||||||
LINK_LIBRARIES(ws2_32)
|
STRING(APPEND CMAKE_C_STANDARD_LIBRARIES " ws2_32.lib")
|
||||||
# ..also for tests
|
STRING(APPEND CMAKE_CXX_STANDARD_LIBRARIES " ws2_32.lib")
|
||||||
SET(CMAKE_REQUIRED_LIBRARIES ws2_32)
|
|
||||||
|
|
||||||
# System checks
|
# System checks
|
||||||
SET(SIGNAL_WITH_VIO_CLOSE 1) # Something that runtime team needs
|
SET(SIGNAL_WITH_VIO_CLOSE 1) # Something that runtime team needs
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
# Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2009, 2018, Oracle and/or its affiliates.
|
||||||
|
# Copyright (c) 2011, 2018, MariaDB Corporation
|
||||||
#
|
#
|
||||||
# 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
|
||||||
|
@ -160,12 +160,12 @@ MACRO (MYSQL_CHECK_SSL)
|
|||||||
HAVE_EncryptAes128Gcm)
|
HAVE_EncryptAes128Gcm)
|
||||||
ELSE()
|
ELSE()
|
||||||
IF(WITH_SSL STREQUAL "system")
|
IF(WITH_SSL STREQUAL "system")
|
||||||
MESSAGE(SEND_ERROR "Cannot find appropriate system libraries for SSL. Use WITH_SSL=bundled to enable SSL support")
|
MESSAGE(FATAL_ERROR "Cannot find appropriate system libraries for SSL. Use WITH_SSL=bundled to enable SSL support")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
MYSQL_USE_BUNDLED_SSL()
|
MYSQL_USE_BUNDLED_SSL()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ELSE()
|
ELSE()
|
||||||
MESSAGE(SEND_ERROR
|
MESSAGE(FATAL_ERROR
|
||||||
"Wrong option for WITH_SSL. Valid values are: ${WITH_SSL_DOC}")
|
"Wrong option for WITH_SSL. Valid values are: ${WITH_SSL_DOC}")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ENDMACRO()
|
ENDMACRO()
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2009, 2018, 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
|
||||||
@ -14,15 +14,12 @@
|
|||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
MACRO (MYSQL_USE_BUNDLED_ZLIB)
|
MACRO (MYSQL_USE_BUNDLED_ZLIB)
|
||||||
SET(ZLIB_LIBRARY zlib)
|
SET(ZLIB_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/zlib ${CMAKE_BINARY_DIR}/zlib)
|
||||||
SET(ZLIB_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/zlib)
|
SET(BUILD_BUNDLED_ZLIB 1)
|
||||||
|
SET(ZLIB_LIBRARY zlib CACHE INTERNAL "Bundled zlib library")
|
||||||
SET(ZLIB_FOUND TRUE)
|
SET(ZLIB_FOUND TRUE)
|
||||||
SET(WITH_ZLIB "bundled" CACHE STRING "Use bundled zlib")
|
SET(WITH_ZLIB "bundled" CACHE STRING "Use bundled zlib")
|
||||||
ADD_SUBDIRECTORY(zlib)
|
ADD_SUBDIRECTORY(zlib)
|
||||||
GET_TARGET_PROPERTY(src zlib SOURCES)
|
|
||||||
FOREACH(file ${src})
|
|
||||||
SET(ZLIB_SOURCES ${ZLIB_SOURCES} ${CMAKE_SOURCE_DIR}/zlib/${file})
|
|
||||||
ENDFOREACH()
|
|
||||||
ENDMACRO()
|
ENDMACRO()
|
||||||
|
|
||||||
# MYSQL_CHECK_ZLIB_WITH_COMPRESS
|
# MYSQL_CHECK_ZLIB_WITH_COMPRESS
|
||||||
@ -37,15 +34,10 @@ ENDMACRO()
|
|||||||
|
|
||||||
MACRO (MYSQL_CHECK_ZLIB_WITH_COMPRESS)
|
MACRO (MYSQL_CHECK_ZLIB_WITH_COMPRESS)
|
||||||
|
|
||||||
IF(CMAKE_SYSTEM_NAME STREQUAL "OS400" OR
|
# For NDBCLUSTER: Use bundled zlib by default
|
||||||
CMAKE_SYSTEM_NAME STREQUAL "AIX" OR
|
|
||||||
CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
|
||||||
# Use bundled zlib on some platforms by default (system one is too
|
|
||||||
# old or not existent)
|
|
||||||
IF (NOT WITH_ZLIB)
|
IF (NOT WITH_ZLIB)
|
||||||
SET(WITH_ZLIB "bundled" CACHE STRING "By default use bundled zlib on this platform")
|
SET(WITH_ZLIB "bundled" CACHE STRING "By default use bundled zlib on this platform")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ENDIF()
|
|
||||||
|
|
||||||
IF(WITH_ZLIB STREQUAL "bundled")
|
IF(WITH_ZLIB STREQUAL "bundled")
|
||||||
MYSQL_USE_BUNDLED_ZLIB()
|
MYSQL_USE_BUNDLED_ZLIB()
|
||||||
|
@ -1018,11 +1018,14 @@ CHECK_STRUCT_HAS_MEMBER("struct sockaddr_in6" sin6_len
|
|||||||
|
|
||||||
SET(CMAKE_EXTRA_INCLUDE_FILES)
|
SET(CMAKE_EXTRA_INCLUDE_FILES)
|
||||||
|
|
||||||
CHECK_INCLUDE_FILE(ucontext.h HAVE_UCONTEXT_H)
|
CHECK_STRUCT_HAS_MEMBER("struct dirent" d_ino "dirent.h" STRUCT_DIRENT_HAS_D_INO)
|
||||||
IF(NOT HAVE_UCONTEXT_H)
|
CHECK_STRUCT_HAS_MEMBER("struct dirent" d_namlen "dirent.h" STRUCT_DIRENT_HAS_D_NAMLEN)
|
||||||
CHECK_INCLUDE_FILE(sys/ucontext.h HAVE_UCONTEXT_H)
|
SET(SPRINTF_RETURNS_INT 1)
|
||||||
|
CHECK_INCLUDE_FILE(ucontext.h HAVE_FILE_UCONTEXT_H)
|
||||||
|
IF(NOT HAVE_FILE_UCONTEXT_H)
|
||||||
|
CHECK_INCLUDE_FILE(sys/ucontext.h HAVE_FILE_UCONTEXT_H)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
IF(HAVE_UCONTEXT_H)
|
IF(HAVE_FILE_UCONTEXT_H)
|
||||||
CHECK_FUNCTION_EXISTS(makecontext HAVE_UCONTEXT_H)
|
CHECK_FUNCTION_EXISTS(makecontext HAVE_UCONTEXT_H)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
|
1
debian/rules
vendored
1
debian/rules
vendored
@ -1,6 +1,7 @@
|
|||||||
#!/usr/bin/make -f
|
#!/usr/bin/make -f
|
||||||
|
|
||||||
export DH_VERBOSE=1
|
export DH_VERBOSE=1
|
||||||
|
export DEB_BUILD_HARDENING=1
|
||||||
|
|
||||||
# enable Debian Hardening
|
# enable Debian Hardening
|
||||||
# see: https://wiki.debian.org/Hardening
|
# see: https://wiki.debian.org/Hardening
|
||||||
|
@ -108,11 +108,11 @@ static inline uint32 my_clear_highest_bit(uint32 v)
|
|||||||
|
|
||||||
static inline uint32 my_reverse_bits(uint32 key)
|
static inline uint32 my_reverse_bits(uint32 key)
|
||||||
{
|
{
|
||||||
return (uint32)
|
return
|
||||||
(_my_bits_reverse_table[ key & 255] << 24) |
|
((uint32)_my_bits_reverse_table[ key & 255] << 24) |
|
||||||
(_my_bits_reverse_table[(key>> 8) & 255] << 16) |
|
((uint32)_my_bits_reverse_table[(key>> 8) & 255] << 16) |
|
||||||
(_my_bits_reverse_table[(key>>16) & 255] << 8) |
|
((uint32)_my_bits_reverse_table[(key>>16) & 255] << 8) |
|
||||||
_my_bits_reverse_table[(key>>24) ];
|
(uint32)_my_bits_reverse_table[(key>>24) ];
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (c) 2013, Monty Program Ab.
|
/* Copyright (c) 2013, 2018, MariaDB
|
||||||
|
|
||||||
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
|
||||||
@ -27,7 +27,7 @@
|
|||||||
time-consuming loops, and gracefully abort the operation if it is
|
time-consuming loops, and gracefully abort the operation if it is
|
||||||
non-zero.
|
non-zero.
|
||||||
|
|
||||||
thd_is_killed(thd)
|
thd_killed(thd)
|
||||||
@return 0 - no KILL statement was issued, continue normally
|
@return 0 - no KILL statement was issued, continue normally
|
||||||
@return 1 - there was a KILL statement, abort the execution.
|
@return 1 - there was a KILL statement, abort the execution.
|
||||||
|
|
||||||
|
@ -25,12 +25,12 @@
|
|||||||
#define WSREP_MYSQL_DB (char *)"mysql"
|
#define WSREP_MYSQL_DB (char *)"mysql"
|
||||||
#define WSREP_TO_ISOLATION_BEGIN(db_, table_, table_list_) \
|
#define WSREP_TO_ISOLATION_BEGIN(db_, table_, table_list_) \
|
||||||
if (WSREP_ON && WSREP(thd) && wsrep_to_isolation_begin(thd, db_, table_, table_list_)) \
|
if (WSREP_ON && WSREP(thd) && wsrep_to_isolation_begin(thd, db_, table_, table_list_)) \
|
||||||
goto error;
|
goto wsrep_error_label;
|
||||||
|
|
||||||
#define WSREP_TO_ISOLATION_BEGIN_ALTER(db_, table_, table_list_, alter_info_) \
|
#define WSREP_TO_ISOLATION_BEGIN_ALTER(db_, table_, table_list_, alter_info_) \
|
||||||
if (WSREP_ON && WSREP(thd) && wsrep_to_isolation_begin(thd, db_, table_, \
|
if (WSREP_ON && WSREP(thd) && wsrep_to_isolation_begin(thd, db_, table_, \
|
||||||
table_list_, alter_info_)) \
|
table_list_, alter_info_)) \
|
||||||
goto error;
|
goto wsrep_error_label;
|
||||||
|
|
||||||
#define WSREP_TO_ISOLATION_END \
|
#define WSREP_TO_ISOLATION_END \
|
||||||
if (WSREP_ON && (WSREP(thd) || (thd && thd->wsrep_exec_mode==TOTAL_ORDER))) \
|
if (WSREP_ON && (WSREP(thd) || (thd && thd->wsrep_exec_mode==TOTAL_ORDER))) \
|
||||||
@ -42,7 +42,7 @@
|
|||||||
*/
|
*/
|
||||||
#define WSREP_TO_ISOLATION_BEGIN_WRTCHK(db_, table_, table_list_) \
|
#define WSREP_TO_ISOLATION_BEGIN_WRTCHK(db_, table_, table_list_) \
|
||||||
if (WSREP(thd) && !thd->lex->no_write_to_binlog \
|
if (WSREP(thd) && !thd->lex->no_write_to_binlog \
|
||||||
&& wsrep_to_isolation_begin(thd, db_, table_, table_list_)) goto error;
|
&& wsrep_to_isolation_begin(thd, db_, table_, table_list_)) goto wsrep_error_label;
|
||||||
|
|
||||||
#define WSREP_DEBUG(...) \
|
#define WSREP_DEBUG(...) \
|
||||||
if (wsrep_debug) WSREP_LOG(sql_print_information, ##__VA_ARGS__)
|
if (wsrep_debug) WSREP_LOG(sql_print_information, ##__VA_ARGS__)
|
||||||
@ -52,8 +52,8 @@
|
|||||||
|
|
||||||
#define WSREP_SYNC_WAIT(thd_, before_) \
|
#define WSREP_SYNC_WAIT(thd_, before_) \
|
||||||
{ if (WSREP_CLIENT(thd_) && \
|
{ if (WSREP_CLIENT(thd_) && \
|
||||||
wsrep_sync_wait(thd_, before_)) goto error; }
|
wsrep_sync_wait(thd_, before_)) goto wsrep_error_label; }
|
||||||
|
#define WSREP_ERROR_LABEL wsrep_error_label
|
||||||
#else
|
#else
|
||||||
#define IF_WSREP(A,B) B
|
#define IF_WSREP(A,B) B
|
||||||
#define DBUG_ASSERT_IF_WSREP(A)
|
#define DBUG_ASSERT_IF_WSREP(A)
|
||||||
@ -65,6 +65,7 @@
|
|||||||
#define WSREP_TO_ISOLATION_END
|
#define WSREP_TO_ISOLATION_END
|
||||||
#define WSREP_TO_ISOLATION_BEGIN_WRTCHK(db_, table_, table_list_)
|
#define WSREP_TO_ISOLATION_BEGIN_WRTCHK(db_, table_, table_list_)
|
||||||
#define WSREP_SYNC_WAIT(thd_, before_)
|
#define WSREP_SYNC_WAIT(thd_, before_)
|
||||||
|
#define WSREP_ERROR_LABEL goto wsrep_error_label; wsrep_error_label
|
||||||
|
|
||||||
#endif /* WITH_WSREP */
|
#endif /* WITH_WSREP */
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
# Copyright (c) 2006, 2011, Oracle and/or its affiliates.
|
# Copyright (c) 2006, 2011, Oracle and/or its affiliates.
|
||||||
|
# Copyright (c) 2009, 2018, MariaDB Corporation
|
||||||
#
|
#
|
||||||
# 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
|
||||||
@ -440,4 +441,3 @@ IF(NOT DISABLE_SHARED)
|
|||||||
ENDIF()
|
ENDIF()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
|
141
mysql-test/extra/rpl_tests/rpl_lower_case_table_names.test
Normal file
141
mysql-test/extra/rpl_tests/rpl_lower_case_table_names.test
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
# BUG#37656
|
||||||
|
#
|
||||||
|
# This test aims at checking whether lower_case_table_names=1 option works
|
||||||
|
# for database names and table names.
|
||||||
|
#
|
||||||
|
# This test checks the following (when lower_case_table_names=1 is set on slave):
|
||||||
|
# (i) creating a database on upper case on master results in lower case
|
||||||
|
# database name on slave
|
||||||
|
# (ii) creating tables with upper case names on master results in lower case
|
||||||
|
# table names on slave
|
||||||
|
# (iii) loading data infile into capitalized table name on master replicates to
|
||||||
|
# lower case table name on slave
|
||||||
|
# (iv) Propagating changes from upper case table names on into correspondent
|
||||||
|
# lower case table names on slave works.
|
||||||
|
|
||||||
|
|
||||||
|
# setup: create database and tables
|
||||||
|
-- echo ******** [ MASTER ] ********
|
||||||
|
-- let $dbname_upper= BUG_37656
|
||||||
|
-- let $dbname_lower= `SELECT LOWER('$dbname_upper')`
|
||||||
|
-- eval CREATE DATABASE $dbname_upper
|
||||||
|
-- eval use $dbname_upper
|
||||||
|
|
||||||
|
# assert: database names are in upper case in master and lower
|
||||||
|
# case in slave
|
||||||
|
-- eval show databases like '$dbname_upper'
|
||||||
|
sync_slave_with_master;
|
||||||
|
-- echo ******** [ SLAVE ] ********
|
||||||
|
--eval show databases like '$dbname_lower'
|
||||||
|
|
||||||
|
-- connection master
|
||||||
|
-- echo ******** [ MASTER ] ********
|
||||||
|
CREATE TABLE T1 (a int);
|
||||||
|
-- eval CREATE TABLE T2 (b int) ENGINE=$engine
|
||||||
|
CREATE TABLE T3 (txt TEXT);
|
||||||
|
|
||||||
|
# assert: that tables exist on master with upper case names
|
||||||
|
show tables;
|
||||||
|
|
||||||
|
# assert: that tables exist on slave but with lower case names
|
||||||
|
-- sync_slave_with_master
|
||||||
|
-- echo ******** [ SLAVE ] ********
|
||||||
|
-- eval use $dbname_lower
|
||||||
|
show tables;
|
||||||
|
|
||||||
|
# action: lets create t1 for asserting below that t1 does not get changes
|
||||||
|
# from master (slave configured with --replicate-ignore-db=$dbname_lower.t1)
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
|
||||||
|
# action: fill data into tables
|
||||||
|
-- connection master
|
||||||
|
-- echo ******** [ MASTER ] ********
|
||||||
|
-- eval use $dbname_upper
|
||||||
|
INSERT INTO T1 VALUES (1);
|
||||||
|
INSERT INTO T2 VALUES (1);
|
||||||
|
if (`SELECT @@session.binlog_format != 'ROW'`)
|
||||||
|
{
|
||||||
|
-- eval LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE $dbname_upper.T3
|
||||||
|
}
|
||||||
|
|
||||||
|
if (`SELECT @@session.binlog_format = 'ROW'`)
|
||||||
|
{
|
||||||
|
use test;
|
||||||
|
-- eval INSERT INTO $dbname_upper.T1 VALUES (2)
|
||||||
|
-- eval INSERT INTO $dbname_upper.T2 VALUES (2)
|
||||||
|
-- eval LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE $dbname_upper.T3
|
||||||
|
}
|
||||||
|
# assert: lower case tables on lower case database on slave
|
||||||
|
# get updates from upper case tables on upper case
|
||||||
|
# database on master
|
||||||
|
-- sync_slave_with_master
|
||||||
|
-- echo ******** [ SLAVE ] ********
|
||||||
|
|
||||||
|
# assert: changes for slave's t1 were filterd out
|
||||||
|
if (`SELECT count(*) != 0 FROM t1`)
|
||||||
|
{
|
||||||
|
-- echo UNEXPECTED DATA on $dbname_lower.t1 as table is filtered by replicate-ignore-table rules
|
||||||
|
}
|
||||||
|
|
||||||
|
-- let $diff_tables=master:$dbname_upper.T2, slave:$dbname_lower.t2
|
||||||
|
-- source include/diff_tables.inc
|
||||||
|
|
||||||
|
-- let $diff_tables=master:$dbname_upper.T3, slave:$dbname_lower.t3
|
||||||
|
-- source include/diff_tables.inc
|
||||||
|
|
||||||
|
# clean up
|
||||||
|
-- connection master
|
||||||
|
-- echo ******** [ MASTER ] ********
|
||||||
|
-- eval DROP DATABASE $dbname_upper
|
||||||
|
-- sync_slave_with_master
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# BUG#50653: drop procedure implicitely treats db name in a case sensitive way
|
||||||
|
#
|
||||||
|
|
||||||
|
-- connection master
|
||||||
|
|
||||||
|
-- let $dbname= B50653
|
||||||
|
-- let $procname= b50653_proc
|
||||||
|
|
||||||
|
-- eval CREATE DATABASE $dbname
|
||||||
|
-- eval USE $dbname
|
||||||
|
-- eval CREATE PROCEDURE $procname() BEGIN SELECT 1; END
|
||||||
|
|
||||||
|
if (`SELECT count(*) = 1 FROM mysql.proc WHERE name like '$dbname'`)
|
||||||
|
{
|
||||||
|
-- die Procedure not created on MASTER
|
||||||
|
}
|
||||||
|
|
||||||
|
-- sync_slave_with_master
|
||||||
|
if (`SELECT count(*) = 1 FROM mysql.proc WHERE name like '$dbname'`)
|
||||||
|
{
|
||||||
|
-- die Procedure not created on SLAVE
|
||||||
|
}
|
||||||
|
|
||||||
|
-- connection master
|
||||||
|
-- eval DROP PROCEDURE $procname
|
||||||
|
|
||||||
|
if (`SELECT count(*) FROM mysql.proc WHERE name like '$dbname'`)
|
||||||
|
{
|
||||||
|
-- die Procedure not dropped on MASTER
|
||||||
|
}
|
||||||
|
|
||||||
|
-- sync_slave_with_master
|
||||||
|
if (`SELECT count(*) FROM mysql.proc WHERE name like '$dbname'`)
|
||||||
|
{
|
||||||
|
-- die Procedure not dropped on SLAVE
|
||||||
|
}
|
||||||
|
|
||||||
|
-- let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1)
|
||||||
|
if ($last_error)
|
||||||
|
{
|
||||||
|
-- die UNEXPECTED SLAVE SQL error: $last_error
|
||||||
|
}
|
||||||
|
|
||||||
|
-- connection master
|
||||||
|
-- eval DROP DATABASE $dbname
|
||||||
|
-- sync_slave_with_master
|
||||||
|
|
||||||
|
-- source include/rpl_end.inc
|
9
mysql-test/include/have_32bit.inc
Normal file
9
mysql-test/include/have_32bit.inc
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
disable_query_log;
|
||||||
|
disable_warnings;
|
||||||
|
let $VERSION_COMPILE_64BIT=
|
||||||
|
`SELECT IF(@@version_compile_machine like '%64%', 1, 0)`;
|
||||||
|
enable_warnings;
|
||||||
|
enable_query_log;
|
||||||
|
if ($VERSION_COMPILE_64BIT) {
|
||||||
|
skip Need a 32 bit machine/binary;
|
||||||
|
}
|
9
mysql-test/include/have_64bit.inc
Normal file
9
mysql-test/include/have_64bit.inc
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
disable_query_log;
|
||||||
|
disable_warnings;
|
||||||
|
let $VERSION_COMPILE_64BIT=
|
||||||
|
`SELECT IF(@@version_compile_machine like '%64%', 1, 0)`;
|
||||||
|
enable_warnings;
|
||||||
|
enable_query_log;
|
||||||
|
if (!$VERSION_COMPILE_64BIT) {
|
||||||
|
skip Need a 64 bit machine/binary;
|
||||||
|
}
|
@ -195,14 +195,10 @@ sub value {
|
|||||||
my ($self, $option_name)= @_;
|
my ($self, $option_name)= @_;
|
||||||
my $option= $self->option($option_name);
|
my $option= $self->option($option_name);
|
||||||
|
|
||||||
if (! defined($option) and defined $ENV{$option_name}) {
|
if (! defined($option)) {
|
||||||
my $value= $ENV{$option_name};
|
my $value= $ENV{$option_name};
|
||||||
$option= My::Config::Option->new($option_name, $value);
|
$option= My::Config::Option->new($option_name, $value);
|
||||||
}
|
}
|
||||||
|
|
||||||
croak "No option named '$option_name' in group '$self->{name}'"
|
|
||||||
if ! defined($option);
|
|
||||||
|
|
||||||
return $option->value();
|
return $option->value();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1137,7 +1137,7 @@ sub command_line_setup {
|
|||||||
'debug' => \$opt_debug,
|
'debug' => \$opt_debug,
|
||||||
'debug-common' => \$opt_debug_common,
|
'debug-common' => \$opt_debug_common,
|
||||||
'debug-server' => \$opt_debug_server,
|
'debug-server' => \$opt_debug_server,
|
||||||
'gdb' => \$opt_gdb,
|
'gdb=s' => \$opt_gdb,
|
||||||
'client-gdb' => \$opt_client_gdb,
|
'client-gdb' => \$opt_client_gdb,
|
||||||
'manual-gdb' => \$opt_manual_gdb,
|
'manual-gdb' => \$opt_manual_gdb,
|
||||||
'manual-lldb' => \$opt_manual_lldb,
|
'manual-lldb' => \$opt_manual_lldb,
|
||||||
@ -1231,6 +1231,9 @@ sub command_line_setup {
|
|||||||
'skip-test-list=s' => \@opt_skip_test_list
|
'skip-test-list=s' => \@opt_skip_test_list
|
||||||
);
|
);
|
||||||
|
|
||||||
|
# fix options (that take an optional argument and *only* after = sign
|
||||||
|
my %fixopt = ( '--gdb' => '--gdb=#' );
|
||||||
|
@ARGV = map { $fixopt{$_} or $_ } @ARGV;
|
||||||
GetOptions(%options) or usage("Can't read options");
|
GetOptions(%options) or usage("Can't read options");
|
||||||
usage("") if $opt_usage;
|
usage("") if $opt_usage;
|
||||||
list_options(\%options) if $opt_list_options;
|
list_options(\%options) if $opt_list_options;
|
||||||
@ -5642,7 +5645,9 @@ sub gdb_arguments {
|
|||||||
# Put $args into a single string
|
# Put $args into a single string
|
||||||
$input = $input ? "< $input" : "";
|
$input = $input ? "< $input" : "";
|
||||||
|
|
||||||
if ($type ne 'client' and $opt_valgrind_mysqld) {
|
if ($type eq 'client') {
|
||||||
|
mtr_tofile($gdb_init_file, "set args @$$args $input");
|
||||||
|
} elsif ($opt_valgrind_mysqld) {
|
||||||
my $v = $$exe;
|
my $v = $$exe;
|
||||||
my $vargs = [];
|
my $vargs = [];
|
||||||
valgrind_arguments($vargs, \$v);
|
valgrind_arguments($vargs, \$v);
|
||||||
@ -5652,7 +5657,11 @@ shell sleep 1
|
|||||||
target remote | /usr/lib64/valgrind/../../bin/vgdb
|
target remote | /usr/lib64/valgrind/../../bin/vgdb
|
||||||
EOF
|
EOF
|
||||||
} else {
|
} else {
|
||||||
mtr_tofile($gdb_init_file, "set args @$$args $input\n");
|
mtr_tofile($gdb_init_file,
|
||||||
|
join("\n",
|
||||||
|
"set args @$$args $input",
|
||||||
|
split /;/, $opt_gdb || ""
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $opt_manual_gdb )
|
if ( $opt_manual_gdb )
|
||||||
|
@ -1411,6 +1411,59 @@ t1 CREATE TABLE `t1` (
|
|||||||
`consultant_id` bigint(20) DEFAULT NULL
|
`consultant_id` bigint(20) DEFAULT NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# BUG#27788685: NO WARNING WHEN TRUNCATING A STRING WITH DATA LOSS
|
||||||
|
#
|
||||||
|
SET GLOBAL max_allowed_packet=17825792;
|
||||||
|
connect con1, localhost, root,,;
|
||||||
|
CREATE TABLE t1 (t1_fld1 TEXT);
|
||||||
|
CREATE TABLE t2 (t2_fld1 MEDIUMTEXT);
|
||||||
|
CREATE TABLE t3 (t3_fld1 LONGTEXT);
|
||||||
|
INSERT INTO t1 VALUES (REPEAT('a',300));
|
||||||
|
INSERT INTO t2 VALUES (REPEAT('b',65680));
|
||||||
|
INSERT INTO t3 VALUES (REPEAT('c',16777300));
|
||||||
|
SELECT LENGTH(t1_fld1) FROM t1;
|
||||||
|
LENGTH(t1_fld1)
|
||||||
|
300
|
||||||
|
SELECT LENGTH(t2_fld1) FROM t2;
|
||||||
|
LENGTH(t2_fld1)
|
||||||
|
65680
|
||||||
|
SELECT LENGTH(t3_fld1) FROM t3;
|
||||||
|
LENGTH(t3_fld1)
|
||||||
|
16777300
|
||||||
|
# With strict mode
|
||||||
|
SET SQL_MODE='STRICT_ALL_TABLES';
|
||||||
|
ALTER TABLE t1 CHANGE `t1_fld1` `my_t1_fld1` TINYTEXT;
|
||||||
|
ERROR 22001: Data too long for column 'my_t1_fld1' at row 1
|
||||||
|
ALTER TABLE t2 CHANGE `t2_fld1` `my_t2_fld1` TEXT;
|
||||||
|
ERROR 22001: Data too long for column 'my_t2_fld1' at row 1
|
||||||
|
ALTER TABLE t3 CHANGE `t3_fld1` `my_t3_fld1` MEDIUMTEXT;
|
||||||
|
ERROR 22001: Data too long for column 'my_t3_fld1' at row 1
|
||||||
|
# With non-strict mode
|
||||||
|
SET SQL_MODE='';
|
||||||
|
ALTER TABLE t1 CHANGE `t1_fld1` `my_t1_fld1` TINYTEXT;
|
||||||
|
Warnings:
|
||||||
|
Warning 1265 Data truncated for column 'my_t1_fld1' at row 1
|
||||||
|
ALTER TABLE t2 CHANGE `t2_fld1` `my_t2_fld1` TEXT;
|
||||||
|
Warnings:
|
||||||
|
Warning 1265 Data truncated for column 'my_t2_fld1' at row 1
|
||||||
|
ALTER TABLE t3 CHANGE `t3_fld1` `my_t3_fld1` MEDIUMTEXT;
|
||||||
|
Warnings:
|
||||||
|
Warning 1265 Data truncated for column 'my_t3_fld1' at row 1
|
||||||
|
SELECT LENGTH(my_t1_fld1) FROM t1;
|
||||||
|
LENGTH(my_t1_fld1)
|
||||||
|
255
|
||||||
|
SELECT LENGTH(my_t2_fld1) FROM t2;
|
||||||
|
LENGTH(my_t2_fld1)
|
||||||
|
65535
|
||||||
|
SELECT LENGTH(my_t3_fld1) FROM t3;
|
||||||
|
LENGTH(my_t3_fld1)
|
||||||
|
16777215
|
||||||
|
disconnect con1;
|
||||||
|
connection default;
|
||||||
|
DROP TABLE t1, t2, t3;
|
||||||
|
SET SQL_MODE=default;
|
||||||
|
SET GLOBAL max_allowed_packet=default;
|
||||||
CREATE TABLE t1 (
|
CREATE TABLE t1 (
|
||||||
id INT(11) NOT NULL,
|
id INT(11) NOT NULL,
|
||||||
x_param INT(11) DEFAULT NULL,
|
x_param INT(11) DEFAULT NULL,
|
||||||
|
@ -503,12 +503,12 @@ CREATE TABLE t3(a INT);
|
|||||||
LOCK TABLE t2 WRITE;
|
LOCK TABLE t2 WRITE;
|
||||||
SELECT * FROM t2;
|
SELECT * FROM t2;
|
||||||
a
|
a
|
||||||
CREATE OR REPLACE TEMPORARY TABLE t1(a INT) ENGINE=InnoDB ROW_FORMAT=COMPRESSED;
|
CREATE OR REPLACE TEMPORARY TABLE t1(c INT DEFAULT '');
|
||||||
ERROR HY000: CREATE TEMPORARY TABLE is not allowed with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE.
|
ERROR 42000: Invalid default value for 'c'
|
||||||
SELECT * FROM t3;
|
SELECT * FROM t3;
|
||||||
ERROR HY000: Table 't3' was not locked with LOCK TABLES
|
ERROR HY000: Table 't3' was not locked with LOCK TABLES
|
||||||
CREATE OR REPLACE TEMPORARY TABLE t2(a INT) ENGINE=InnoDB ROW_FORMAT=COMPRESSED;
|
CREATE OR REPLACE TEMPORARY TABLE t2(c INT DEFAULT '');
|
||||||
ERROR HY000: CREATE TEMPORARY TABLE is not allowed with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE.
|
ERROR 42000: Invalid default value for 'c'
|
||||||
SELECT * FROM t3;
|
SELECT * FROM t3;
|
||||||
ERROR HY000: Table 't3' was not locked with LOCK TABLES
|
ERROR HY000: Table 't3' was not locked with LOCK TABLES
|
||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
|
@ -8046,6 +8046,15 @@ ABCDEFGHI-ABCDEFGHI
|
|||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
SET optimizer_switch=@save_optimizer_switch;
|
SET optimizer_switch=@save_optimizer_switch;
|
||||||
#
|
#
|
||||||
|
# MDEV-17298 ASAN unknown-crash / READ of size 1 in my_strntoul_8bit upon INSERT .. SELECT
|
||||||
|
#
|
||||||
|
SET NAMES latin1;
|
||||||
|
CREATE TABLE t1 (a CHAR);
|
||||||
|
CREATE TABLE t2 (b ENUM('foo','bar'));
|
||||||
|
INSERT INTO t1 VALUES ('1');
|
||||||
|
INSERT INTO t2 SELECT * FROM t1;
|
||||||
|
DROP TABLE t1, t2;
|
||||||
|
#
|
||||||
# End of 10.0 tests
|
# End of 10.0 tests
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
@ -13940,6 +13940,27 @@ Warnings:
|
|||||||
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` = 'oe' and `test`.`t1`.`a` = 'oe'
|
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` = 'oe' and `test`.`t1`.`a` = 'oe'
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
#
|
#
|
||||||
|
# MDEV-17064 LIKE function has error behavior on the fields in which the collation is xxx_unicode_xx
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (name VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci);
|
||||||
|
INSERT INTO t1 VALUES ('radio! test');
|
||||||
|
SELECT * FROM t1 WHERE name LIKE '%!!%' ESCAPE '!';
|
||||||
|
name
|
||||||
|
radio! test
|
||||||
|
ALTER TABLE t1 CHANGE COLUMN name name VARCHAR(20) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
|
||||||
|
SELECT * FROM t1 WHERE name LIKE '%!!%' ESCAPE '!';
|
||||||
|
name
|
||||||
|
radio! test
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (name VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci);
|
||||||
|
INSERT INTO t1 VALUES ('radio! test');
|
||||||
|
SELECT name LIKE '%!!%' ESCAPE '!' AS c1,
|
||||||
|
name LIKE '%!!%' COLLATE utf8_general_ci ESCAPE '!' AS c2
|
||||||
|
FROM t1;
|
||||||
|
c1 c2
|
||||||
|
1 1
|
||||||
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
# End of MariaDB-10.0 tests
|
# End of MariaDB-10.0 tests
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
@ -554,7 +554,6 @@ ERROR HY000: Table 't1' was locked with a READ lock and can't be updated
|
|||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
LOCK TABLES v1 WRITE;
|
LOCK TABLES v1 WRITE;
|
||||||
FLUSH TABLES v1;
|
FLUSH TABLES v1;
|
||||||
ERROR HY000: Table 't1' was locked with a READ lock and can't be updated
|
|
||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
LOCK TABLES v1 READ;
|
LOCK TABLES v1 READ;
|
||||||
FLUSH TABLES t1;
|
FLUSH TABLES t1;
|
||||||
|
@ -268,3 +268,23 @@ SET optimizer_switch=@save_optimizer_switch;
|
|||||||
SELECT UNHEX(CONCAT('414C2', HEX(8 + ROUND(RAND()*7)), SUBSTR(SHA(UUID()),6,33),HEX(2+ROUND(RAND()*8)))) IS NULL AS c1;
|
SELECT UNHEX(CONCAT('414C2', HEX(8 + ROUND(RAND()*7)), SUBSTR(SHA(UUID()),6,33),HEX(2+ROUND(RAND()*8)))) IS NULL AS c1;
|
||||||
c1
|
c1
|
||||||
0
|
0
|
||||||
|
#
|
||||||
|
# MDEV-13119 Wrong results with CAST(AS CHAR) and subquery
|
||||||
|
#
|
||||||
|
SET optimizer_switch=_utf8'derived_merge=on';
|
||||||
|
CREATE TABLE t1 (t VARCHAR(10) CHARSET latin1);
|
||||||
|
INSERT INTO t1 VALUES('abcdefghi');
|
||||||
|
SELECT CONCAT(t2,'-',t2) c2 FROM (SELECT CAST(t AS CHAR CHARACTER SET utf8) t2 FROM t1) sub;
|
||||||
|
c2
|
||||||
|
abcdefghi-abcdefghi
|
||||||
|
DROP TABLE t1;
|
||||||
|
SET optimizer_switch=@save_optimizer_switch;
|
||||||
|
#
|
||||||
|
# MDEV-13120 Wrong results with MAKE_SET() and subquery
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (t VARCHAR(10) CHARSET latin1);
|
||||||
|
INSERT INTO t1 VALUES('abcdefghi');
|
||||||
|
SELECT CONCAT(t2,'-',t2) c2 FROM (SELECT MAKE_SET(3,t,t) t2 FROM t1) sub;
|
||||||
|
c2
|
||||||
|
abcdefghi,abcdefghi-abcdefghi,abcdefghi
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -1715,3 +1715,53 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t1 ALL PRIMARY,c1,i,c2 NULL NULL NULL 69 Using where
|
1 SIMPLE t1 ALL PRIMARY,c1,i,c2 NULL NULL NULL 69 Using where
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
set optimizer_switch= @optimizer_switch_save;
|
set optimizer_switch= @optimizer_switch_save;
|
||||||
|
#
|
||||||
|
# MDEV-16695: Estimate for rows of derived tables is very high when we are using index_merge union
|
||||||
|
#
|
||||||
|
create table t0
|
||||||
|
(
|
||||||
|
key1 int not null,
|
||||||
|
INDEX i1(key1)
|
||||||
|
);
|
||||||
|
insert into t0 values (1),(2),(3),(4),(5),(6),(7),(8);
|
||||||
|
set @d=8;
|
||||||
|
insert into t0 select key1+ @d from t0;
|
||||||
|
set @d=@d*2;
|
||||||
|
insert into t0 select key1+ @d from t0;
|
||||||
|
set @d=@d*2;
|
||||||
|
insert into t0 select key1+ @d from t0;
|
||||||
|
set @d=@d*2;
|
||||||
|
insert into t0 select key1+ @d from t0;
|
||||||
|
set @d=@d*2;
|
||||||
|
insert into t0 select key1+ @d from t0;
|
||||||
|
set @d=@d*2;
|
||||||
|
insert into t0 select key1+ @d from t0;
|
||||||
|
set @d=@d*2;
|
||||||
|
insert into t0 select key1+ @d from t0;
|
||||||
|
set @d=@d*2;
|
||||||
|
alter table t0 add key2 int not null, add index i2(key2);
|
||||||
|
alter table t0 add key3 int not null, add index i3(key3);
|
||||||
|
alter table t0 add key8 int not null, add index i8(key8);
|
||||||
|
update t0 set key2=key1,key3=key1,key8=1024-key1;
|
||||||
|
analyze table t0;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t0 analyze status OK
|
||||||
|
set @optimizer_switch_save=@@optimizer_switch;
|
||||||
|
set optimizer_switch='derived_merge=off,derived_with_keys=off';
|
||||||
|
explain select * from (select * from t0 where key1 = 3 or key2 =3) as Z where Z.key8 > 5;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 Using where
|
||||||
|
2 DERIVED t0 index_merge i1,i2,i8 i1,i2 4,4 NULL 2 Using union(i1,i2); Using where
|
||||||
|
select * from (select * from t0 where key1 = 3 or key2 =3) as Z where Z.key8 > 5;
|
||||||
|
key1 key2 key3 key8
|
||||||
|
3 3 3 1021
|
||||||
|
set optimizer_use_condition_selectivity=2;
|
||||||
|
explain select * from (select * from t0 where key1 = 3 or key2 =3) as Z where Z.key8 > 5;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 Using where
|
||||||
|
2 DERIVED t0 index_merge i1,i2,i8 i1,i2 4,4 NULL 2 Using union(i1,i2); Using where
|
||||||
|
select * from (select * from t0 where key1 = 3 or key2 =3) as Z where Z.key8 > 5;
|
||||||
|
key1 key2 key3 key8
|
||||||
|
3 3 3 1021
|
||||||
|
set @@optimizer_switch= @optimizer_switch_save;
|
||||||
|
drop table t0;
|
||||||
|
@ -136,7 +136,7 @@ select * from t1;
|
|||||||
ERROR HY000: Table 't1' was not locked with LOCK TABLES
|
ERROR HY000: Table 't1' was not locked with LOCK TABLES
|
||||||
unlock tables;
|
unlock tables;
|
||||||
create or replace view v_bug5719 as select * from t1;
|
create or replace view v_bug5719 as select * from t1;
|
||||||
lock tables v_bug5719 write;
|
lock tables v_bug5719 read;
|
||||||
select * from v_bug5719;
|
select * from v_bug5719;
|
||||||
a
|
a
|
||||||
|
|
||||||
@ -303,7 +303,7 @@ create table t2 (j int);
|
|||||||
#
|
#
|
||||||
# Try to perform DDL on table which is locked through view.
|
# Try to perform DDL on table which is locked through view.
|
||||||
create view v1 as select * from t2;
|
create view v1 as select * from t2;
|
||||||
lock tables t1 write, v1 write;
|
lock tables t1 write, v1 read;
|
||||||
flush table t2;
|
flush table t2;
|
||||||
ERROR HY000: Table 't2' was locked with a READ lock and can't be updated
|
ERROR HY000: Table 't2' was locked with a READ lock and can't be updated
|
||||||
drop table t2;
|
drop table t2;
|
||||||
|
@ -395,15 +395,17 @@ DROP VIEW IF EXISTS v1;
|
|||||||
#
|
#
|
||||||
# Test 1: LOCK TABLES v1 WRITE, t1 READ;
|
# Test 1: LOCK TABLES v1 WRITE, t1 READ;
|
||||||
#
|
#
|
||||||
# Thanks to the fact that we no longer allow DDL on tables
|
|
||||||
# which are locked for write implicitly, the exact scenario
|
|
||||||
# in which assert was failing is no longer repeatable.
|
|
||||||
CREATE TABLE t1 ( f1 integer );
|
CREATE TABLE t1 ( f1 integer );
|
||||||
CREATE VIEW v1 AS SELECT f1 FROM t1 ;
|
CREATE VIEW v1 AS SELECT f1 FROM t1 ;
|
||||||
|
# Connection 2
|
||||||
|
connect con2,localhost,root;
|
||||||
LOCK TABLES v1 WRITE, t1 READ;
|
LOCK TABLES v1 WRITE, t1 READ;
|
||||||
FLUSH TABLE t1;
|
FLUSH TABLE t1;
|
||||||
ERROR HY000: Table 't1' was locked with a READ lock and can't be updated
|
disconnect con2;
|
||||||
UNLOCK TABLES;
|
# Connection 1
|
||||||
|
connection default;
|
||||||
|
LOCK TABLES t1 WRITE;
|
||||||
|
FLUSH TABLE t1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
#
|
#
|
||||||
|
@ -83,6 +83,69 @@ CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET new.a= 1;
|
|||||||
RENAME TABLE t1 TO T1;
|
RENAME TABLE t1 TO T1;
|
||||||
ALTER TABLE T1 RENAME t1;
|
ALTER TABLE T1 RENAME t1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
create database TEST;
|
||||||
|
create procedure TEST.pr() begin end;
|
||||||
|
create procedure test.pr() begin end;
|
||||||
|
Phase 1/7: Checking and upgrading mysql database
|
||||||
|
Processing databases
|
||||||
|
mysql
|
||||||
|
mysql.column_stats OK
|
||||||
|
mysql.columns_priv OK
|
||||||
|
mysql.db OK
|
||||||
|
mysql.event OK
|
||||||
|
mysql.func OK
|
||||||
|
mysql.gtid_slave_pos OK
|
||||||
|
mysql.help_category OK
|
||||||
|
mysql.help_keyword OK
|
||||||
|
mysql.help_relation OK
|
||||||
|
mysql.help_topic OK
|
||||||
|
mysql.host OK
|
||||||
|
mysql.index_stats OK
|
||||||
|
mysql.innodb_index_stats
|
||||||
|
Error : Unknown storage engine 'InnoDB'
|
||||||
|
error : Corrupt
|
||||||
|
mysql.innodb_table_stats
|
||||||
|
Error : Unknown storage engine 'InnoDB'
|
||||||
|
error : Corrupt
|
||||||
|
mysql.plugin OK
|
||||||
|
mysql.proc OK
|
||||||
|
mysql.procs_priv OK
|
||||||
|
mysql.proxies_priv OK
|
||||||
|
mysql.roles_mapping OK
|
||||||
|
mysql.servers OK
|
||||||
|
mysql.table_stats OK
|
||||||
|
mysql.tables_priv OK
|
||||||
|
mysql.time_zone OK
|
||||||
|
mysql.time_zone_leap_second OK
|
||||||
|
mysql.time_zone_name OK
|
||||||
|
mysql.time_zone_transition OK
|
||||||
|
mysql.time_zone_transition_type OK
|
||||||
|
mysql.user OK
|
||||||
|
|
||||||
|
Repairing tables
|
||||||
|
mysql.innodb_index_stats
|
||||||
|
Error : Unknown storage engine 'InnoDB'
|
||||||
|
error : Corrupt
|
||||||
|
mysql.innodb_table_stats
|
||||||
|
Error : Unknown storage engine 'InnoDB'
|
||||||
|
error : Corrupt
|
||||||
|
Phase 2/7: Installing used storage engines... Skipped
|
||||||
|
Phase 3/7: Fixing views
|
||||||
|
Phase 4/7: Running 'mysql_fix_privilege_tables'
|
||||||
|
Phase 5/7: Fixing table and database names
|
||||||
|
Phase 6/7: Checking and upgrading tables
|
||||||
|
Processing databases
|
||||||
|
TEST
|
||||||
|
information_schema
|
||||||
|
mtr
|
||||||
|
mtr.global_suppressions OK
|
||||||
|
mtr.test_suppressions OK
|
||||||
|
performance_schema
|
||||||
|
test
|
||||||
|
Phase 7/7: Running 'FLUSH PRIVILEGES'
|
||||||
|
OK
|
||||||
|
drop procedure test.pr;
|
||||||
|
drop database TEST;
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
create trigger t1_bi before insert on t1 for each row set new.a= 1;
|
create trigger t1_bi before insert on t1 for each row set new.a= 1;
|
||||||
show triggers like '%T1%';
|
show triggers like '%T1%';
|
||||||
|
@ -25,3 +25,23 @@ Warning 1292 Truncated incorrect CHAR(0) value: '8'
|
|||||||
Warning 1292 Truncated incorrect CHAR(0) value: '9'
|
Warning 1292 Truncated incorrect CHAR(0) value: '9'
|
||||||
Warning 1292 Truncated incorrect CHAR(0) value: '10'
|
Warning 1292 Truncated incorrect CHAR(0) value: '10'
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
#
|
||||||
|
# MDEV-17020: Assertion `length > 0' failed in ptr_compare upon ORDER BY with bad conversion
|
||||||
|
#
|
||||||
|
set @save_sql_mode= @@sql_mode;
|
||||||
|
SET @@sql_mode= '';
|
||||||
|
CREATE TABLE t1 (pk INT PRIMARY KEY);
|
||||||
|
INSERT INTO t1 VALUES (1),(2);
|
||||||
|
explain
|
||||||
|
SELECT * FROM t1 ORDER BY 'foo', CONVERT(pk, CHAR(0)) LIMIT 2;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 index NULL PRIMARY 4 NULL 2 Using index; Using filesort
|
||||||
|
SELECT * FROM t1 ORDER BY 'foo', Cast(pk as CHAR(0)) LIMIT 2;
|
||||||
|
pk
|
||||||
|
1
|
||||||
|
2
|
||||||
|
Warnings:
|
||||||
|
Warning 1292 Truncated incorrect CHAR(0) value: '1'
|
||||||
|
Warning 1292 Truncated incorrect CHAR(0) value: '2'
|
||||||
|
set @@sql_mode= @save_sql_mode;
|
||||||
|
drop table t1;
|
||||||
|
@ -1870,3 +1870,22 @@ CREATE TABLE t2 LIKE t1 PARTITION (p0, p2);
|
|||||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PARTITION (p0, p2)' at line 1
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PARTITION (p0, p2)' at line 1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
SET @@default_storage_engine = @old_default_storage_engine;
|
SET @@default_storage_engine = @old_default_storage_engine;
|
||||||
|
#
|
||||||
|
# MDEV-14815 - Server crash or AddressSanitizer errors or valgrind warnings in thr_lock / has_old_lock upon FLUSH TABLES
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (i INT) ENGINE=MEMORY PARTITION BY RANGE (i) (PARTITION p0 VALUES LESS THAN (4), PARTITION pm VALUES LESS THAN MAXVALUE);
|
||||||
|
CREATE TABLE t2 (i INT) ENGINE=MEMORY;
|
||||||
|
LOCK TABLE t1 WRITE, t2 WRITE;
|
||||||
|
SELECT * FROM t1 PARTITION (p0);
|
||||||
|
i
|
||||||
|
FLUSH TABLES;
|
||||||
|
SELECT * FROM t1 PARTITION (p0);
|
||||||
|
i
|
||||||
|
ALTER TABLE t1 TRUNCATE PARTITION p0;
|
||||||
|
SELECT * FROM t1 PARTITION (p0);
|
||||||
|
i
|
||||||
|
ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2;
|
||||||
|
SELECT * FROM t1 PARTITION (p0);
|
||||||
|
i
|
||||||
|
UNLOCK TABLES;
|
||||||
|
DROP TABLE t1, t2;
|
||||||
|
@ -1995,8 +1995,50 @@ select 0.0000000001 mod 1;
|
|||||||
select 0.01 mod 1;
|
select 0.01 mod 1;
|
||||||
0.01 mod 1
|
0.01 mod 1
|
||||||
0.01
|
0.01
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
`FLD1` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD2` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD3` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD4` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD5` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD6` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD7` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD8` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD9` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD10` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD11` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD12` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD13` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD14` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD15` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD16` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD17` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD18` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD19` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD20` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD21` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD22` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD23` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000
|
||||||
|
);
|
||||||
|
INSERT INTO t1 VALUES (001.0760,000.9500,001.0000,001.0000,001.0000,
|
||||||
|
001.0000,001.0000,001.0000,001.0000,001.0000,001.0000,000.5949,001.0194,
|
||||||
|
001.0000,001.0000,001.0000,001.0000,001.0000,001.0000,000.9220,001.1890,001.2130,327.2690);
|
||||||
|
select FLD1*FLD2*FLD3*FLD4*FLD5*FLD6*FLD7*FLD8*FLD9*FLD10*FLD11*FLD12*FLD13*FLD14*FLD15*FLD16*FLD17*FLD18*FLD19*FLD20*FLD21*FLD22*FLD23 as calc1 from t1;
|
||||||
|
calc1
|
||||||
|
269.77575757644053032218703200000000000000
|
||||||
|
select FLD23*FLD2*FLD1*FLD4*FLD5*FLD11*FLD12*FLD13*FLD3*FLD15*FLD16*FLD17*FLD18*FLD19*FLD20*FLD21*FLD22*FLD14*FLD6*FLD7*FLD8*FLD9*FLD10 as calc2 from t1;
|
||||||
|
calc2
|
||||||
|
269.77575757644053032218703200000000000000
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 AS SELECT 1.0 * 2.000;
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`1.0 * 2.000` decimal(6,4) NOT NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
DROP TABLE t1;
|
||||||
#
|
#
|
||||||
# Start of 10.0 tests
|
# End of 5.5 tests
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# MDEV-6950 Bad results with joins comparing DATE and INT/ENUM/VARCHAR columns
|
# MDEV-6950 Bad results with joins comparing DATE and INT/ENUM/VARCHAR columns
|
||||||
|
@ -396,7 +396,14 @@ a
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
drop function y2k;
|
drop function y2k;
|
||||||
#
|
#
|
||||||
# Start of 10.1 tests
|
# MDEV-17257 Server crashes in Item::field_type_for_temporal_comparison or in get_datetime_value on SELECT with YEAR field and IN
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (y YEAR);
|
||||||
|
SELECT * FROM t1 WHERE y IN ( CAST( '1993-03-26 10:14:20' AS DATE ), NULL );
|
||||||
|
y
|
||||||
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# End of 10.0 tests
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# MDEV-8741 Equal field propagation leaves some remainders after simplifying WHERE zerofill_column=2010 AND zerofill_column>=2010
|
# MDEV-8741 Equal field propagation leaves some remainders after simplifying WHERE zerofill_column=2010 AND zerofill_column>=2010
|
||||||
|
@ -27,6 +27,9 @@ sub skip_combinations {
|
|||||||
# don't run tests for the wrong platform
|
# don't run tests for the wrong platform
|
||||||
$skip{'include/platform.combinations'} = [ (IS_WINDOWS) ? 'unix' : 'win' ];
|
$skip{'include/platform.combinations'} = [ (IS_WINDOWS) ? 'unix' : 'win' ];
|
||||||
|
|
||||||
|
$skip{'include/maybe_debug.combinations'} =
|
||||||
|
[ defined $::mysqld_variables{'debug-dbug'} ? 'release' : 'debug' ];
|
||||||
|
|
||||||
# and for the wrong word size
|
# and for the wrong word size
|
||||||
# check for exact values, in case the default changes to be small everywhere
|
# check for exact values, in case the default changes to be small everywhere
|
||||||
my $longsysvar= $::mysqld_variables{'max-binlog-stmt-cache-size'};
|
my $longsysvar= $::mysqld_variables{'max-binlog-stmt-cache-size'};
|
||||||
@ -37,9 +40,6 @@ sub skip_combinations {
|
|||||||
die "unknown value max-binlog-stmt-cache-size=$longsysvar" unless $val_map{$longsysvar};
|
die "unknown value max-binlog-stmt-cache-size=$longsysvar" unless $val_map{$longsysvar};
|
||||||
$skip{'include/word_size.combinations'} = [ $val_map{$longsysvar} ];
|
$skip{'include/word_size.combinations'} = [ $val_map{$longsysvar} ];
|
||||||
|
|
||||||
$skip{'include/maybe_debug.combinations'} =
|
|
||||||
[ defined $::mysqld_variables{'debug-dbug'} ? 'release' : 'debug' ];
|
|
||||||
|
|
||||||
# as a special case, disable certain include files as a whole
|
# as a special case, disable certain include files as a whole
|
||||||
$skip{'include/not_embedded.inc'} = 'Not run for embedded server'
|
$skip{'include/not_embedded.inc'} = 'Not run for embedded server'
|
||||||
if $::opt_embedded_server;
|
if $::opt_embedded_server;
|
||||||
|
@ -17,6 +17,12 @@ master-bin.000002 #
|
|||||||
SET @@SESSION.gtid_domain_id=1;
|
SET @@SESSION.gtid_domain_id=1;
|
||||||
SET @@SESSION.server_id=1;
|
SET @@SESSION.server_id=1;
|
||||||
CREATE TABLE t (a int);
|
CREATE TABLE t (a int);
|
||||||
|
SELECT @@GLOBAL.gtid_binlog_state, @@GLOBAL.gtid_binlog_pos;
|
||||||
|
@@GLOBAL.gtid_binlog_state @@GLOBAL.gtid_binlog_pos
|
||||||
|
1-1-1 1-1-1
|
||||||
|
include/show_binlog_events.inc
|
||||||
|
Log_name Pos Event_type Server_id End_log_pos Info
|
||||||
|
master-bin.000001 # Rotate # # master-bin.000002;pos=POS
|
||||||
FLUSH BINARY LOGS DELETE_DOMAIN_ID = (1);
|
FLUSH BINARY LOGS DELETE_DOMAIN_ID = (1);
|
||||||
ERROR HY000: Could not delete gtid domain. Reason: binlog files may contain gtids from the domain ('1') being deleted. Make sure to first purge those files.
|
ERROR HY000: Could not delete gtid domain. Reason: binlog files may contain gtids from the domain ('1') being deleted. Make sure to first purge those files.
|
||||||
FLUSH BINARY LOGS;
|
FLUSH BINARY LOGS;
|
||||||
@ -74,5 +80,11 @@ the following command succeeds with warnings
|
|||||||
FLUSH BINARY LOGS DELETE_DOMAIN_ID = (1);
|
FLUSH BINARY LOGS DELETE_DOMAIN_ID = (1);
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1076 The current gtid binlog state is incompatible with a former one having a gtid '11-11-1' which is less than the '11-11-11' of the gtid list describing an earlier state. The state may have been affected by manually injecting a lower sequence number gtid or via replication.
|
Warning 1076 The current gtid binlog state is incompatible with a former one having a gtid '11-11-1' which is less than the '11-11-11' of the gtid list describing an earlier state. The state may have been affected by manually injecting a lower sequence number gtid or via replication.
|
||||||
|
RESET MASTER;
|
||||||
|
FLUSH BINARY LOGS DELETE_DOMAIN_ID = (4294967296);
|
||||||
|
ERROR HY000: The value of gtid domain being deleted ('4294967296') exceeds its maximum size of 32 bit unsigned integer
|
||||||
|
FLUSH BINARY LOGS DELETE_DOMAIN_ID = (4294967295);
|
||||||
|
Warnings:
|
||||||
|
Warning 1076 The gtid domain being deleted ('4294967295') is not in the current binlog state
|
||||||
DROP TABLE t;
|
DROP TABLE t;
|
||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
|
@ -28,6 +28,9 @@ FLUSH BINARY LOGS DELETE_DOMAIN_ID = (99);
|
|||||||
SET @@SESSION.gtid_domain_id=1;
|
SET @@SESSION.gtid_domain_id=1;
|
||||||
SET @@SESSION.server_id=1;
|
SET @@SESSION.server_id=1;
|
||||||
CREATE TABLE t (a int);
|
CREATE TABLE t (a int);
|
||||||
|
SELECT @@GLOBAL.gtid_binlog_state, @@GLOBAL.gtid_binlog_pos;
|
||||||
|
--let $binlog_start=
|
||||||
|
--source include/show_binlog_events.inc
|
||||||
|
|
||||||
--error ER_BINLOG_CANT_DELETE_GTID_DOMAIN
|
--error ER_BINLOG_CANT_DELETE_GTID_DOMAIN
|
||||||
FLUSH BINARY LOGS DELETE_DOMAIN_ID = (1);
|
FLUSH BINARY LOGS DELETE_DOMAIN_ID = (1);
|
||||||
@ -129,6 +132,22 @@ SELECT @gtid_binlog_state_saved "as original state", @@GLOBAL.gtid_binlog_state
|
|||||||
--echo the following command succeeds with warnings
|
--echo the following command succeeds with warnings
|
||||||
--eval FLUSH BINARY LOGS DELETE_DOMAIN_ID = ($del_d_id)
|
--eval FLUSH BINARY LOGS DELETE_DOMAIN_ID = ($del_d_id)
|
||||||
|
|
||||||
|
# cleanup: forget the out-of-order
|
||||||
|
RESET MASTER;
|
||||||
|
|
||||||
|
#
|
||||||
|
# MDEV-14431
|
||||||
|
# Check rejection to delete a domain with value exceeding its range's maximum
|
||||||
|
#
|
||||||
|
--let $d_max_plus_1=`SELECT 1 << 32`
|
||||||
|
--error ER_BINLOG_CANT_DELETE_GTID_DOMAIN
|
||||||
|
--eval FLUSH BINARY LOGS DELETE_DOMAIN_ID = ($d_max_plus_1)
|
||||||
|
|
||||||
|
# accepted maximum:
|
||||||
|
--let $d_max=`SELECT (1 << 32) - 1`
|
||||||
|
--error 0
|
||||||
|
--eval FLUSH BINARY LOGS DELETE_DOMAIN_ID = ($d_max)
|
||||||
|
|
||||||
#
|
#
|
||||||
# Cleanup
|
# Cleanup
|
||||||
#
|
#
|
||||||
|
@ -379,3 +379,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t1 range uniq_id uniq_id 8 NULL 4 Using where
|
1 SIMPLE t1 range uniq_id uniq_id 8 NULL 4 Using where
|
||||||
drop table t1;
|
drop table t1;
|
||||||
End of 5.3 tests
|
End of 5.3 tests
|
||||||
|
create table t1 (id int, a varchar(300) not null, key using btree(a)) engine=heap;
|
||||||
|
insert t1 values (1, repeat('a', 300));
|
||||||
|
drop table t1;
|
||||||
|
End of 5.5 tests
|
||||||
|
@ -279,3 +279,12 @@ explain select 0+a from t1 where a in (869751,736494,226312,802616);
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
--echo End of 5.3 tests
|
--echo End of 5.3 tests
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#27799513: POTENTIAL DOUBLE FREE OR CORRUPTION OF HEAP INFO (HP_INFO)
|
||||||
|
#
|
||||||
|
create table t1 (id int, a varchar(300) not null, key using btree(a)) engine=heap;
|
||||||
|
insert t1 values (1, repeat('a', 300));
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
--echo End of 5.5 tests
|
||||||
|
20
mysql-test/suite/innodb/r/alter_inplace_perfschema.result
Normal file
20
mysql-test/suite/innodb/r/alter_inplace_perfschema.result
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
connect ddl, localhost, root,,;
|
||||||
|
update performance_schema.setup_instruments set enabled='yes';
|
||||||
|
update performance_schema.setup_consumers set enabled='yes';
|
||||||
|
CREATE TABLE t1 (a serial, b varchar(255)) ENGINE=InnoDB;
|
||||||
|
BEGIN;
|
||||||
|
COMMIT;
|
||||||
|
SET DEBUG_SYNC = 'row_log_apply_before SIGNAL go WAIT_FOR gone';
|
||||||
|
ALTER TABLE t1 ADD INDEX(b), ALGORITHM=INPLACE;
|
||||||
|
connection default;
|
||||||
|
SET DEBUG_SYNC = 'now WAIT_FOR go';
|
||||||
|
SELECT DISTINCT object_name FROM performance_schema.events_waits_history_long
|
||||||
|
WHERE event_name LIKE '%wait%io%file%innodb%innodb_temp_file%';
|
||||||
|
object_name
|
||||||
|
tmp/Innodb Merge Temp File
|
||||||
|
SET DEBUG_SYNC = 'now SIGNAL gone';
|
||||||
|
connection ddl;
|
||||||
|
disconnect ddl;
|
||||||
|
connection default;
|
||||||
|
SET DEBUG_SYNC = 'RESET';
|
||||||
|
DROP TABLE t1;
|
@ -171,6 +171,43 @@ UNLOCK TABLES;
|
|||||||
DROP TABLES staff, store;
|
DROP TABLES staff, store;
|
||||||
SET FOREIGN_KEY_CHECKS=1;
|
SET FOREIGN_KEY_CHECKS=1;
|
||||||
#
|
#
|
||||||
|
# MDEV-17531 Crash in RENAME TABLE with FOREIGN KEY and FULLTEXT INDEX
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
||||||
|
CREATE DATABASE best;
|
||||||
|
CREATE TABLE t3 (a INT PRIMARY KEY,
|
||||||
|
CONSTRAINT t2_ibfk_1 FOREIGN KEY (a) REFERENCES t1(a)) ENGINE=InnoDB;
|
||||||
|
CREATE TABLE best.t2 (a INT PRIMARY KEY, b TEXT, FULLTEXT INDEX(b),
|
||||||
|
FOREIGN KEY (a) REFERENCES test.t1(a)) ENGINE=InnoDB;
|
||||||
|
RENAME TABLE best.t2 TO test.t2;
|
||||||
|
ERROR 42S01: Table 't2' already exists
|
||||||
|
SHOW CREATE TABLE best.t2;
|
||||||
|
Table Create Table
|
||||||
|
t2 CREATE TABLE `t2` (
|
||||||
|
`a` int(11) NOT NULL,
|
||||||
|
`b` text DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`a`),
|
||||||
|
FULLTEXT KEY `b` (`b`),
|
||||||
|
CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`a`) REFERENCES `test`.`t1` (`a`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||||
|
DROP DATABASE best;
|
||||||
|
#
|
||||||
|
# MDEV-17541 KILL QUERY during lock wait in FOREIGN KEY check hangs
|
||||||
|
#
|
||||||
|
connect fk, localhost, root,,;
|
||||||
|
INSERT INTO t1 SET a=1;
|
||||||
|
BEGIN;
|
||||||
|
DELETE FROM t1;
|
||||||
|
connection default;
|
||||||
|
INSERT INTO t3 SET a=1;
|
||||||
|
connection fk;
|
||||||
|
kill query @id;
|
||||||
|
connection default;
|
||||||
|
ERROR 70100: Query execution was interrupted
|
||||||
|
disconnect fk;
|
||||||
|
DROP TABLE t3,t1;
|
||||||
|
# Start of 10.2 tests
|
||||||
|
#
|
||||||
# MDEV-13246 Stale rows despite ON DELETE CASCADE constraint
|
# MDEV-13246 Stale rows despite ON DELETE CASCADE constraint
|
||||||
#
|
#
|
||||||
CREATE TABLE users (
|
CREATE TABLE users (
|
||||||
@ -353,3 +390,4 @@ connection default;
|
|||||||
ERROR 70100: Query execution was interrupted
|
ERROR 70100: Query execution was interrupted
|
||||||
disconnect con1;
|
disconnect con1;
|
||||||
DROP TABLE t2,t1;
|
DROP TABLE t2,t1;
|
||||||
|
# End of 10.2 tests
|
||||||
|
@ -52,10 +52,26 @@ set DEBUG_SYNC = 'now WAIT_FOR s1';
|
|||||||
update t1 set a=1 where id=2;
|
update t1 set a=1 where id=2;
|
||||||
ERROR 23000: Duplicate entry '1' for key 'uk'
|
ERROR 23000: Duplicate entry '1' for key 'uk'
|
||||||
SET DEBUG_SYNC = 'now SIGNAL s2';
|
SET DEBUG_SYNC = 'now SIGNAL s2';
|
||||||
disconnect con1;
|
|
||||||
/* connection default */
|
/* connection default */
|
||||||
connection default;
|
connection default;
|
||||||
/* reap */ alter table t1 add b int, ALGORITHM=inplace;
|
/* reap */ alter table t1 add b int, ALGORITHM=inplace;
|
||||||
ERROR 23000: Duplicate entry '1' for key 'uk'
|
ERROR 23000: Duplicate entry '1' for key 'uk'
|
||||||
SET DEBUG_SYNC = 'RESET';
|
SET DEBUG_SYNC = 'RESET';
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
#
|
||||||
|
# Bug #27753193 ASSERTION `PREBUILT->TRX->ERROR_KEY_NUM <
|
||||||
|
# HA_ALTER_INFO->KEY_COUNT'
|
||||||
|
CREATE TABLE t1 (a INT, UNIQUE KEY(a)) ENGINE=InnoDB;
|
||||||
|
INSERT INTO t1 VALUES (1);
|
||||||
|
SET DEBUG_SYNC = 'row_log_table_apply1_before signal S1 WAIT_FOR S2';
|
||||||
|
ALTER TABLE t1 FORCE, ALGORITHM=INPLACE;
|
||||||
|
connection con1;
|
||||||
|
SET DEBUG_SYNC = 'now WAIT_FOR S1';
|
||||||
|
INSERT INTO t1 VALUES (1);
|
||||||
|
ERROR 23000: Duplicate entry '1' for key 'a'
|
||||||
|
SET DEBUG_SYNC = 'now SIGNAL S2';
|
||||||
|
disconnect con1;
|
||||||
|
connection default;
|
||||||
|
ERROR 23000: Duplicate entry '1' for key 'a'
|
||||||
|
SET DEBUG_SYNC='RESET';
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -711,6 +711,7 @@ t2 CREATE TABLE `t2` (
|
|||||||
CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`c2`) REFERENCES `t1` (`c1`)
|
CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`c2`) REFERENCES `t1` (`c1`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||||
ALTER TABLE t1 CHANGE COLUMN c1 C1 INT;
|
ALTER TABLE t1 CHANGE COLUMN c1 C1 INT;
|
||||||
|
ALTER TABLE t2 CHANGE COLUMN c2 C2 INT;
|
||||||
SHOW CREATE TABLE t1;
|
SHOW CREATE TABLE t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
@ -720,24 +721,149 @@ t1 CREATE TABLE `t1` (
|
|||||||
SHOW CREATE TABLE t2;
|
SHOW CREATE TABLE t2;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t2 CREATE TABLE `t2` (
|
t2 CREATE TABLE `t2` (
|
||||||
`c2` int(11) NOT NULL,
|
`C2` int(11) DEFAULT NULL,
|
||||||
KEY `c2` (`c2`),
|
KEY `c2` (`C2`),
|
||||||
CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`c2`) REFERENCES `t1` (`c1`)
|
CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`c2`) REFERENCES `t1` (`c1`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||||
|
ALTER TABLE t1 CHANGE COLUMN C1 c5 INT;
|
||||||
|
ALTER TABLE t2 CHANGE COLUMN C2 c6 INT;
|
||||||
SHOW CREATE TABLE t1;
|
SHOW CREATE TABLE t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
`C1` int(11) NOT NULL,
|
`c5` int(11) NOT NULL,
|
||||||
PRIMARY KEY (`C1`)
|
PRIMARY KEY (`c5`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||||
SHOW CREATE TABLE t2;
|
SHOW CREATE TABLE t2;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t2 CREATE TABLE `t2` (
|
t2 CREATE TABLE `t2` (
|
||||||
`c2` int(11) NOT NULL,
|
`c6` int(11) DEFAULT NULL,
|
||||||
KEY `c2` (`c2`),
|
KEY `c2` (`c6`),
|
||||||
CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`c2`) REFERENCES `t1` (`c1`)
|
CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`c6`) REFERENCES `t1` (`c5`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||||
|
SELECT C.NAME FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS C INNER JOIN
|
||||||
|
INFORMATION_SCHEMA.INNODB_SYS_TABLES T ON C.TABLE_ID=T.TABLE_ID
|
||||||
|
WHERE T.NAME='test/t1';
|
||||||
|
NAME
|
||||||
|
c5
|
||||||
|
SELECT F.NAME FROM INFORMATION_SCHEMA.INNODB_SYS_FIELDS F INNER JOIN
|
||||||
|
INFORMATION_SCHEMA.INNODB_SYS_INDEXES I ON F.INDEX_ID=I.INDEX_ID INNER JOIN
|
||||||
|
INFORMATION_SCHEMA.INNODB_SYS_TABLES T ON I.TABLE_ID=T.TABLE_ID
|
||||||
|
WHERE T.NAME='test/t1' AND I.NAME='PRIMARY';
|
||||||
|
NAME
|
||||||
|
c5
|
||||||
|
SELECT C.REF_COL_NAME, C.FOR_COL_NAME FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS C INNER JOIN
|
||||||
|
INFORMATION_SCHEMA.INNODB_SYS_FOREIGN F ON C.ID=F.ID
|
||||||
|
WHERE F.FOR_NAME='test/t2';
|
||||||
|
REF_COL_NAME FOR_COL_NAME
|
||||||
|
c5 c6
|
||||||
DROP TABLE t2, t1;
|
DROP TABLE t2, t1;
|
||||||
|
# virtual columns case too
|
||||||
|
CREATE TABLE t1 (a INT, b INT GENERATED ALWAYS AS (a) VIRTUAL) ENGINE = InnoDB;
|
||||||
|
ALTER TABLE t1 CHANGE COLUMN a A INT;
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`A` int(11) DEFAULT NULL,
|
||||||
|
`b` int(11) GENERATED ALWAYS AS (`A`) VIRTUAL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||||
|
SELECT C.NAME FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS C INNER JOIN
|
||||||
|
INFORMATION_SCHEMA.INNODB_SYS_TABLES T ON C.TABLE_ID=T.TABLE_ID
|
||||||
|
WHERE T.NAME='test/t1';
|
||||||
|
NAME
|
||||||
|
a
|
||||||
|
b
|
||||||
|
DROP TABLE t1;
|
||||||
|
# different FOREIGN KEY cases
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
a INT UNIQUE KEY,
|
||||||
|
b INT UNIQUE KEY,
|
||||||
|
c INT UNIQUE KEY,
|
||||||
|
d INT UNIQUE KEY
|
||||||
|
) ENGINE=INNODB;
|
||||||
|
CREATE TABLE t2 (
|
||||||
|
aa INT,
|
||||||
|
bb INT,
|
||||||
|
cc INT,
|
||||||
|
dd INT
|
||||||
|
) ENGINE=INNODB;
|
||||||
|
INSERT INTO t1 VALUES (1, 1, 1, 1);
|
||||||
|
INSERT INTO t2 VALUES (1, 1, 1, 1);
|
||||||
|
ALTER TABLE t1 CHANGE a A INT, ALGORITHM=INPLACE;
|
||||||
|
ALTER TABLE t1 CHANGE c C INT, ALGORITHM=INPLACE;
|
||||||
|
ALTER TABLE t2 CHANGE cc CC INT, ALGORITHM=INPLACE;
|
||||||
|
ALTER TABLE t2 CHANGE dd DD INT, ALGORITHM=INPLACE;
|
||||||
|
SET foreign_key_checks=0;
|
||||||
|
ALTER TABLE t2
|
||||||
|
ADD FOREIGN KEY(aa) REFERENCES t1(a),
|
||||||
|
ADD FOREIGN KEY(bb) REFERENCES t1(b),
|
||||||
|
ADD FOREIGN KEY(cc) REFERENCES t1(c),
|
||||||
|
ADD FOREIGN KEY(dd) REFERENCES t1(d),
|
||||||
|
ALGORITHM=INPLACE;
|
||||||
|
ALTER TABLE t1 CHANGE b B INT, ALGORITHM=INPLACE;
|
||||||
|
ALTER TABLE t2 CHANGE aa AA INT, ALGORITHM=INPLACE;
|
||||||
|
ALTER TABLE t1 CHANGE d D INT, ALGORITHM=INPLACE;
|
||||||
|
ALTER TABLE t2 CHANGE bb BB INT, ALGORITHM=INPLACE;
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`A` int(11) DEFAULT NULL,
|
||||||
|
`B` int(11) DEFAULT NULL,
|
||||||
|
`C` int(11) DEFAULT NULL,
|
||||||
|
`D` int(11) DEFAULT NULL,
|
||||||
|
UNIQUE KEY `a` (`A`),
|
||||||
|
UNIQUE KEY `b` (`B`),
|
||||||
|
UNIQUE KEY `c` (`C`),
|
||||||
|
UNIQUE KEY `d` (`D`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||||
|
SHOW CREATE TABLE t2;
|
||||||
|
Table Create Table
|
||||||
|
t2 CREATE TABLE `t2` (
|
||||||
|
`AA` int(11) DEFAULT NULL,
|
||||||
|
`BB` int(11) DEFAULT NULL,
|
||||||
|
`CC` int(11) DEFAULT NULL,
|
||||||
|
`DD` int(11) DEFAULT NULL,
|
||||||
|
KEY `aa` (`AA`),
|
||||||
|
KEY `bb` (`BB`),
|
||||||
|
KEY `CC` (`CC`),
|
||||||
|
KEY `DD` (`DD`),
|
||||||
|
CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`aa`) REFERENCES `t1` (`a`),
|
||||||
|
CONSTRAINT `t2_ibfk_2` FOREIGN KEY (`bb`) REFERENCES `t1` (`b`),
|
||||||
|
CONSTRAINT `t2_ibfk_3` FOREIGN KEY (`cc`) REFERENCES `t1` (`c`),
|
||||||
|
CONSTRAINT `t2_ibfk_4` FOREIGN KEY (`dd`) REFERENCES `t1` (`d`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||||
|
DELETE FROM t1 WHERE a=1;
|
||||||
|
ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`aa`) REFERENCES `t1` (`a`))
|
||||||
|
DELETE FROM t1 WHERE A=1;
|
||||||
|
ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`aa`) REFERENCES `t1` (`a`))
|
||||||
|
DELETE FROM t1 WHERE b=1;
|
||||||
|
ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`aa`) REFERENCES `t1` (`a`))
|
||||||
|
DELETE FROM t1 WHERE B=1;
|
||||||
|
ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`aa`) REFERENCES `t1` (`a`))
|
||||||
|
DELETE FROM t1 WHERE c=1;
|
||||||
|
ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`aa`) REFERENCES `t1` (`a`))
|
||||||
|
DELETE FROM t1 WHERE C=1;
|
||||||
|
ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`aa`) REFERENCES `t1` (`a`))
|
||||||
|
DELETE FROM t1 WHERE d=1;
|
||||||
|
ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`aa`) REFERENCES `t1` (`a`))
|
||||||
|
DELETE FROM t1 WHERE D=1;
|
||||||
|
ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`aa`) REFERENCES `t1` (`a`))
|
||||||
|
DROP TABLE t2, t1;
|
||||||
|
# virtual columns case too
|
||||||
|
CREATE TABLE t1 (a INT, b INT GENERATED ALWAYS AS (a) VIRTUAL) ENGINE = InnoDB;
|
||||||
|
ALTER TABLE t1 CHANGE COLUMN a A INT;
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`A` int(11) DEFAULT NULL,
|
||||||
|
`b` int(11) GENERATED ALWAYS AS (`A`) VIRTUAL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||||
|
SELECT C.NAME FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS C INNER JOIN
|
||||||
|
INFORMATION_SCHEMA.INNODB_SYS_TABLES T ON C.TABLE_ID=T.TABLE_ID
|
||||||
|
WHERE T.NAME='test/t1';
|
||||||
|
NAME
|
||||||
|
a
|
||||||
|
b
|
||||||
|
DROP TABLE t1;
|
||||||
#
|
#
|
||||||
# BUG 20029625 - HANDLE_FATAL_SIGNAL (SIG=11) IN
|
# BUG 20029625 - HANDLE_FATAL_SIGNAL (SIG=11) IN
|
||||||
# DICT_MEM_TABLE_COL_RENAME_LOW
|
# DICT_MEM_TABLE_COL_RENAME_LOW
|
||||||
|
2
mysql-test/suite/innodb/t/alter_inplace_perfschema.opt
Normal file
2
mysql-test/suite/innodb/t/alter_inplace_perfschema.opt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
--innodb-sort-buffer-size=64k
|
||||||
|
--tmpdir=$MYSQLTEST_VARDIR/tmp
|
40
mysql-test/suite/innodb/t/alter_inplace_perfschema.test
Normal file
40
mysql-test/suite/innodb/t/alter_inplace_perfschema.test
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
--source include/have_innodb.inc
|
||||||
|
--source include/have_perfschema.inc
|
||||||
|
--source include/have_debug.inc
|
||||||
|
--source include/have_debug_sync.inc
|
||||||
|
--source include/not_embedded.inc
|
||||||
|
|
||||||
|
connect (ddl, localhost, root,,);
|
||||||
|
update performance_schema.setup_instruments set enabled='yes';
|
||||||
|
update performance_schema.setup_consumers set enabled='yes';
|
||||||
|
CREATE TABLE t1 (a serial, b varchar(255)) ENGINE=InnoDB;
|
||||||
|
|
||||||
|
BEGIN;
|
||||||
|
let $n=247;
|
||||||
|
--disable_query_log
|
||||||
|
while ($n) {
|
||||||
|
dec $n;
|
||||||
|
INSERT INTO t1 SELECT NULL, REPEAT('b',255);
|
||||||
|
}
|
||||||
|
--enable_query_log
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
SET DEBUG_SYNC = 'row_log_apply_before SIGNAL go WAIT_FOR gone';
|
||||||
|
send ALTER TABLE t1 ADD INDEX(b), ALGORITHM=INPLACE;
|
||||||
|
|
||||||
|
connection default;
|
||||||
|
SET DEBUG_SYNC = 'now WAIT_FOR go';
|
||||||
|
--replace_regex /.*[\\\/]tmp/tmp/
|
||||||
|
SELECT DISTINCT object_name FROM performance_schema.events_waits_history_long
|
||||||
|
WHERE event_name LIKE '%wait%io%file%innodb%innodb_temp_file%';
|
||||||
|
|
||||||
|
#--exec lsof -p `pidof mysqld`
|
||||||
|
SET DEBUG_SYNC = 'now SIGNAL gone';
|
||||||
|
|
||||||
|
connection ddl;
|
||||||
|
reap;
|
||||||
|
disconnect ddl;
|
||||||
|
|
||||||
|
connection default;
|
||||||
|
SET DEBUG_SYNC = 'RESET';
|
||||||
|
DROP TABLE t1;
|
@ -138,8 +138,61 @@ SET FOREIGN_KEY_CHECKS=DEFAULT;
|
|||||||
LOCK TABLE staff WRITE;
|
LOCK TABLE staff WRITE;
|
||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
DROP TABLES staff, store;
|
DROP TABLES staff, store;
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS=1;
|
SET FOREIGN_KEY_CHECKS=1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-17531 Crash in RENAME TABLE with FOREIGN KEY and FULLTEXT INDEX
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
--disable_query_log
|
||||||
|
call mtr.add_suppression("InnoDB: Possible reasons:");
|
||||||
|
call mtr.add_suppression("InnoDB: \\([12]\\) Table ");
|
||||||
|
call mtr.add_suppression("InnoDB: If table `test`\\.`t2` is a temporary table");
|
||||||
|
--enable_query_log
|
||||||
|
|
||||||
|
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
||||||
|
CREATE DATABASE best;
|
||||||
|
CREATE TABLE t3 (a INT PRIMARY KEY,
|
||||||
|
CONSTRAINT t2_ibfk_1 FOREIGN KEY (a) REFERENCES t1(a)) ENGINE=InnoDB;
|
||||||
|
CREATE TABLE best.t2 (a INT PRIMARY KEY, b TEXT, FULLTEXT INDEX(b),
|
||||||
|
FOREIGN KEY (a) REFERENCES test.t1(a)) ENGINE=InnoDB;
|
||||||
|
--replace_regex /Table '.*t2'/Table 't2'/
|
||||||
|
--error ER_TABLE_EXISTS_ERROR
|
||||||
|
RENAME TABLE best.t2 TO test.t2;
|
||||||
|
SHOW CREATE TABLE best.t2;
|
||||||
|
DROP DATABASE best;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-17541 KILL QUERY during lock wait in FOREIGN KEY check hangs
|
||||||
|
--echo #
|
||||||
|
connect (fk, localhost, root,,);
|
||||||
|
INSERT INTO t1 SET a=1;
|
||||||
|
BEGIN;
|
||||||
|
DELETE FROM t1;
|
||||||
|
|
||||||
|
connection default;
|
||||||
|
let $ID= `SELECT @id := CONNECTION_ID()`;
|
||||||
|
send INSERT INTO t3 SET a=1;
|
||||||
|
|
||||||
|
connection fk;
|
||||||
|
# Check that the above SELECT is blocked
|
||||||
|
let $wait_condition=
|
||||||
|
select count(*) = 1 from information_schema.processlist
|
||||||
|
where state = 'update' and info = 'INSERT INTO t3 SET a=1';
|
||||||
|
--source include/wait_condition.inc
|
||||||
|
let $ignore= `SELECT @id := $ID`;
|
||||||
|
kill query @id;
|
||||||
|
|
||||||
|
connection default;
|
||||||
|
--error ER_QUERY_INTERRUPTED
|
||||||
|
reap;
|
||||||
|
disconnect fk;
|
||||||
|
|
||||||
|
DROP TABLE t3,t1;
|
||||||
|
|
||||||
|
--echo # Start of 10.2 tests
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # MDEV-13246 Stale rows despite ON DELETE CASCADE constraint
|
--echo # MDEV-13246 Stale rows despite ON DELETE CASCADE constraint
|
||||||
--echo #
|
--echo #
|
||||||
@ -343,4 +396,6 @@ disconnect con1;
|
|||||||
|
|
||||||
DROP TABLE t2,t1;
|
DROP TABLE t2,t1;
|
||||||
|
|
||||||
|
--echo # End of 10.2 tests
|
||||||
|
|
||||||
--source include/wait_until_count_sessions.inc
|
--source include/wait_until_count_sessions.inc
|
||||||
|
@ -64,7 +64,6 @@ set DEBUG_SYNC = 'now WAIT_FOR s1';
|
|||||||
--error ER_DUP_ENTRY
|
--error ER_DUP_ENTRY
|
||||||
update t1 set a=1 where id=2;
|
update t1 set a=1 where id=2;
|
||||||
SET DEBUG_SYNC = 'now SIGNAL s2';
|
SET DEBUG_SYNC = 'now SIGNAL s2';
|
||||||
disconnect con1;
|
|
||||||
|
|
||||||
--echo /* connection default */
|
--echo /* connection default */
|
||||||
connection default;
|
connection default;
|
||||||
@ -75,5 +74,29 @@ SET DEBUG_SYNC = 'RESET';
|
|||||||
|
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Bug #27753193 ASSERTION `PREBUILT->TRX->ERROR_KEY_NUM <
|
||||||
|
--echo # HA_ALTER_INFO->KEY_COUNT'
|
||||||
|
|
||||||
|
CREATE TABLE t1 (a INT, UNIQUE KEY(a)) ENGINE=InnoDB;
|
||||||
|
INSERT INTO t1 VALUES (1);
|
||||||
|
|
||||||
|
SET DEBUG_SYNC = 'row_log_table_apply1_before signal S1 WAIT_FOR S2';
|
||||||
|
send ALTER TABLE t1 FORCE, ALGORITHM=INPLACE;
|
||||||
|
|
||||||
|
connection con1;
|
||||||
|
SET DEBUG_SYNC = 'now WAIT_FOR S1';
|
||||||
|
--error ER_DUP_ENTRY
|
||||||
|
INSERT INTO t1 VALUES (1);
|
||||||
|
SET DEBUG_SYNC = 'now SIGNAL S2';
|
||||||
|
disconnect con1;
|
||||||
|
|
||||||
|
CONNECTION default;
|
||||||
|
--error ER_DUP_ENTRY
|
||||||
|
reap;
|
||||||
|
SET DEBUG_SYNC='RESET';
|
||||||
|
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
# Wait till all disconnects are completed
|
# Wait till all disconnects are completed
|
||||||
--source include/wait_until_count_sessions.inc
|
--source include/wait_until_count_sessions.inc
|
||||||
|
@ -415,14 +415,109 @@ CREATE TABLE t2(c2 INT NOT NULL, FOREIGN KEY(c2) REFERENCES t1(c1))ENGINE=INNODB
|
|||||||
SHOW CREATE TABLE t1;
|
SHOW CREATE TABLE t1;
|
||||||
SHOW CREATE TABLE t2;
|
SHOW CREATE TABLE t2;
|
||||||
ALTER TABLE t1 CHANGE COLUMN c1 C1 INT;
|
ALTER TABLE t1 CHANGE COLUMN c1 C1 INT;
|
||||||
|
ALTER TABLE t2 CHANGE COLUMN c2 C2 INT;
|
||||||
SHOW CREATE TABLE t1;
|
SHOW CREATE TABLE t1;
|
||||||
SHOW CREATE TABLE t2;
|
SHOW CREATE TABLE t2;
|
||||||
# FIXME: MDEV-13671 InnoDB should use case-insensitive column name comparisons
|
ALTER TABLE t1 CHANGE COLUMN C1 c5 INT;
|
||||||
# like the rest of the server
|
ALTER TABLE t2 CHANGE COLUMN C2 c6 INT;
|
||||||
#ALTER TABLE t1 CHANGE COLUMN C1 c5 INT;
|
|
||||||
SHOW CREATE TABLE t1;
|
SHOW CREATE TABLE t1;
|
||||||
SHOW CREATE TABLE t2;
|
SHOW CREATE TABLE t2;
|
||||||
|
|
||||||
|
SELECT C.NAME FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS C INNER JOIN
|
||||||
|
INFORMATION_SCHEMA.INNODB_SYS_TABLES T ON C.TABLE_ID=T.TABLE_ID
|
||||||
|
WHERE T.NAME='test/t1';
|
||||||
|
|
||||||
|
SELECT F.NAME FROM INFORMATION_SCHEMA.INNODB_SYS_FIELDS F INNER JOIN
|
||||||
|
INFORMATION_SCHEMA.INNODB_SYS_INDEXES I ON F.INDEX_ID=I.INDEX_ID INNER JOIN
|
||||||
|
INFORMATION_SCHEMA.INNODB_SYS_TABLES T ON I.TABLE_ID=T.TABLE_ID
|
||||||
|
WHERE T.NAME='test/t1' AND I.NAME='PRIMARY';
|
||||||
|
|
||||||
|
SELECT C.REF_COL_NAME, C.FOR_COL_NAME FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS C INNER JOIN
|
||||||
|
INFORMATION_SCHEMA.INNODB_SYS_FOREIGN F ON C.ID=F.ID
|
||||||
|
WHERE F.FOR_NAME='test/t2';
|
||||||
|
|
||||||
DROP TABLE t2, t1;
|
DROP TABLE t2, t1;
|
||||||
|
--echo # virtual columns case too
|
||||||
|
CREATE TABLE t1 (a INT, b INT GENERATED ALWAYS AS (a) VIRTUAL) ENGINE = InnoDB;
|
||||||
|
ALTER TABLE t1 CHANGE COLUMN a A INT;
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
SELECT C.NAME FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS C INNER JOIN
|
||||||
|
INFORMATION_SCHEMA.INNODB_SYS_TABLES T ON C.TABLE_ID=T.TABLE_ID
|
||||||
|
WHERE T.NAME='test/t1';
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
|
||||||
|
--echo # different FOREIGN KEY cases
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
a INT UNIQUE KEY,
|
||||||
|
b INT UNIQUE KEY,
|
||||||
|
c INT UNIQUE KEY,
|
||||||
|
d INT UNIQUE KEY
|
||||||
|
) ENGINE=INNODB;
|
||||||
|
CREATE TABLE t2 (
|
||||||
|
aa INT,
|
||||||
|
bb INT,
|
||||||
|
cc INT,
|
||||||
|
dd INT
|
||||||
|
) ENGINE=INNODB;
|
||||||
|
|
||||||
|
INSERT INTO t1 VALUES (1, 1, 1, 1);
|
||||||
|
INSERT INTO t2 VALUES (1, 1, 1, 1);
|
||||||
|
|
||||||
|
ALTER TABLE t1 CHANGE a A INT, ALGORITHM=INPLACE;
|
||||||
|
ALTER TABLE t1 CHANGE c C INT, ALGORITHM=INPLACE;
|
||||||
|
ALTER TABLE t2 CHANGE cc CC INT, ALGORITHM=INPLACE;
|
||||||
|
ALTER TABLE t2 CHANGE dd DD INT, ALGORITHM=INPLACE;
|
||||||
|
|
||||||
|
SET foreign_key_checks=0;
|
||||||
|
ALTER TABLE t2
|
||||||
|
ADD FOREIGN KEY(aa) REFERENCES t1(a),
|
||||||
|
ADD FOREIGN KEY(bb) REFERENCES t1(b),
|
||||||
|
ADD FOREIGN KEY(cc) REFERENCES t1(c),
|
||||||
|
ADD FOREIGN KEY(dd) REFERENCES t1(d),
|
||||||
|
ALGORITHM=INPLACE;
|
||||||
|
|
||||||
|
ALTER TABLE t1 CHANGE b B INT, ALGORITHM=INPLACE;
|
||||||
|
ALTER TABLE t2 CHANGE aa AA INT, ALGORITHM=INPLACE;
|
||||||
|
|
||||||
|
--source include/restart_mysqld.inc
|
||||||
|
|
||||||
|
ALTER TABLE t1 CHANGE d D INT, ALGORITHM=INPLACE;
|
||||||
|
ALTER TABLE t2 CHANGE bb BB INT, ALGORITHM=INPLACE;
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
SHOW CREATE TABLE t2;
|
||||||
|
|
||||||
|
--error ER_ROW_IS_REFERENCED_2
|
||||||
|
DELETE FROM t1 WHERE a=1;
|
||||||
|
--error ER_ROW_IS_REFERENCED_2
|
||||||
|
DELETE FROM t1 WHERE A=1;
|
||||||
|
|
||||||
|
--error ER_ROW_IS_REFERENCED_2
|
||||||
|
DELETE FROM t1 WHERE b=1;
|
||||||
|
--error ER_ROW_IS_REFERENCED_2
|
||||||
|
DELETE FROM t1 WHERE B=1;
|
||||||
|
|
||||||
|
--error ER_ROW_IS_REFERENCED_2
|
||||||
|
DELETE FROM t1 WHERE c=1;
|
||||||
|
--error ER_ROW_IS_REFERENCED_2
|
||||||
|
DELETE FROM t1 WHERE C=1;
|
||||||
|
|
||||||
|
--error ER_ROW_IS_REFERENCED_2
|
||||||
|
DELETE FROM t1 WHERE d=1;
|
||||||
|
--error ER_ROW_IS_REFERENCED_2
|
||||||
|
DELETE FROM t1 WHERE D=1;
|
||||||
|
|
||||||
|
DROP TABLE t2, t1;
|
||||||
|
|
||||||
|
--echo # virtual columns case too
|
||||||
|
CREATE TABLE t1 (a INT, b INT GENERATED ALWAYS AS (a) VIRTUAL) ENGINE = InnoDB;
|
||||||
|
ALTER TABLE t1 CHANGE COLUMN a A INT;
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
SELECT C.NAME FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS C INNER JOIN
|
||||||
|
INFORMATION_SCHEMA.INNODB_SYS_TABLES T ON C.TABLE_ID=T.TABLE_ID
|
||||||
|
WHERE T.NAME='test/t1';
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # BUG 20029625 - HANDLE_FATAL_SIGNAL (SIG=11) IN
|
--echo # BUG 20029625 - HANDLE_FATAL_SIGNAL (SIG=11) IN
|
||||||
|
86
mysql-test/suite/maria/fulltext2.result
Normal file
86
mysql-test/suite/maria/fulltext2.result
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
CREATE TABLE t1 (
|
||||||
|
i int(10) unsigned not null auto_increment primary key,
|
||||||
|
a varchar(255) not null,
|
||||||
|
FULLTEXT KEY (a)
|
||||||
|
) ENGINE=Aria ROW_FORMAT=DYNAMIC MAX_ROWS=2000000000000;
|
||||||
|
repair table t1 quick;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t1 repair status OK
|
||||||
|
check table t1;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t1 check status OK
|
||||||
|
repair table t1;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t1 repair status OK
|
||||||
|
check table t1;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t1 check status OK
|
||||||
|
repair table t1;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t1 repair status OK
|
||||||
|
select count(*) from t1 where match a against ('aaaxxx');
|
||||||
|
count(*)
|
||||||
|
0
|
||||||
|
select count(*) from t1 where match a against ('aaayyy');
|
||||||
|
count(*)
|
||||||
|
150
|
||||||
|
select count(*) from t1 where match a against ('aaaxxx' in boolean mode);
|
||||||
|
count(*)
|
||||||
|
1024
|
||||||
|
select count(*) from t1 where match a against ('aaayyy' in boolean mode);
|
||||||
|
count(*)
|
||||||
|
150
|
||||||
|
select count(*) from t1 where match a against ('aaax*' in boolean mode);
|
||||||
|
count(*)
|
||||||
|
1024
|
||||||
|
select count(*) from t1 where match a against ('aaay*' in boolean mode);
|
||||||
|
count(*)
|
||||||
|
150
|
||||||
|
select count(*) from t1 where match a against ('aaa*' in boolean mode);
|
||||||
|
count(*)
|
||||||
|
1174
|
||||||
|
insert t1 (a) values ('aaaxxx'),('aaayyy');
|
||||||
|
select count(*) from t1 where match a against ('aaaxxx' in boolean mode);
|
||||||
|
count(*)
|
||||||
|
1025
|
||||||
|
select count(*) from t1 where match a against ('aaayyy');
|
||||||
|
count(*)
|
||||||
|
151
|
||||||
|
insert t1 (a) values ('aaaxxx 000000');
|
||||||
|
select count(*) from t1 where match a against ('000000');
|
||||||
|
count(*)
|
||||||
|
1
|
||||||
|
delete from t1 where match a against ('000000');
|
||||||
|
select count(*) from t1 where match a against ('000000');
|
||||||
|
count(*)
|
||||||
|
0
|
||||||
|
select count(*) from t1 where match a against ('aaaxxx');
|
||||||
|
count(*)
|
||||||
|
0
|
||||||
|
select count(*) from t1 where match a against ('aaaxxx' in boolean mode);
|
||||||
|
count(*)
|
||||||
|
1025
|
||||||
|
select count(*) from t1 where match a against ('aaayyy' in boolean mode);
|
||||||
|
count(*)
|
||||||
|
151
|
||||||
|
select count(*) from t1 where a = 'aaaxxx';
|
||||||
|
count(*)
|
||||||
|
1025
|
||||||
|
select count(*) from t1 where a = 'aaayyy';
|
||||||
|
count(*)
|
||||||
|
151
|
||||||
|
insert t1 (a) values ('aaaxxx 000000');
|
||||||
|
select count(*) from t1 where match a against ('000000');
|
||||||
|
count(*)
|
||||||
|
1
|
||||||
|
select count(*) from t1 where match a against ('aaaxxx' in boolean mode);
|
||||||
|
count(*)
|
||||||
|
1026
|
||||||
|
update t1 set a='aaaxxx' where a = 'aaayyy';
|
||||||
|
select count(*) from t1 where match a against ('aaaxxx' in boolean mode);
|
||||||
|
count(*)
|
||||||
|
1177
|
||||||
|
select count(*) from t1 where match a against ('aaayyy' in boolean mode);
|
||||||
|
count(*)
|
||||||
|
0
|
||||||
|
drop table t1;
|
77
mysql-test/suite/maria/fulltext2.test
Normal file
77
mysql-test/suite/maria/fulltext2.test
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
#
|
||||||
|
# test of new fulltext search features
|
||||||
|
#
|
||||||
|
|
||||||
|
let collation=utf8_unicode_ci;
|
||||||
|
source include/have_collation.inc;
|
||||||
|
|
||||||
|
#
|
||||||
|
# two-level tree
|
||||||
|
#
|
||||||
|
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
i int(10) unsigned not null auto_increment primary key,
|
||||||
|
a varchar(255) not null,
|
||||||
|
FULLTEXT KEY (a)
|
||||||
|
) ENGINE=Aria ROW_FORMAT=DYNAMIC MAX_ROWS=2000000000000;
|
||||||
|
|
||||||
|
# two-level entry, second-level tree with depth 2
|
||||||
|
disable_query_log;
|
||||||
|
let $1=1024;
|
||||||
|
while ($1)
|
||||||
|
{
|
||||||
|
eval insert t1 (a) values ('aaaxxx');
|
||||||
|
dec $1;
|
||||||
|
}
|
||||||
|
|
||||||
|
# one-level entry (entries)
|
||||||
|
let $1=150;
|
||||||
|
while ($1)
|
||||||
|
{
|
||||||
|
eval insert t1 (a) values ('aaayyy');
|
||||||
|
dec $1;
|
||||||
|
}
|
||||||
|
enable_query_log;
|
||||||
|
|
||||||
|
repair table t1 quick;
|
||||||
|
check table t1;
|
||||||
|
repair table t1;
|
||||||
|
check table t1;
|
||||||
|
repair table t1;
|
||||||
|
|
||||||
|
select count(*) from t1 where match a against ('aaaxxx');
|
||||||
|
select count(*) from t1 where match a against ('aaayyy');
|
||||||
|
select count(*) from t1 where match a against ('aaaxxx' in boolean mode);
|
||||||
|
select count(*) from t1 where match a against ('aaayyy' in boolean mode);
|
||||||
|
|
||||||
|
select count(*) from t1 where match a against ('aaax*' in boolean mode);
|
||||||
|
select count(*) from t1 where match a against ('aaay*' in boolean mode);
|
||||||
|
select count(*) from t1 where match a against ('aaa*' in boolean mode);
|
||||||
|
|
||||||
|
# mi_write:
|
||||||
|
insert t1 (a) values ('aaaxxx'),('aaayyy');
|
||||||
|
# call to enlarge_root() below
|
||||||
|
select count(*) from t1 where match a against ('aaaxxx' in boolean mode);
|
||||||
|
select count(*) from t1 where match a against ('aaayyy');
|
||||||
|
|
||||||
|
# mi_delete
|
||||||
|
insert t1 (a) values ('aaaxxx 000000');
|
||||||
|
select count(*) from t1 where match a against ('000000');
|
||||||
|
delete from t1 where match a against ('000000');
|
||||||
|
select count(*) from t1 where match a against ('000000');
|
||||||
|
select count(*) from t1 where match a against ('aaaxxx');
|
||||||
|
select count(*) from t1 where match a against ('aaaxxx' in boolean mode);
|
||||||
|
select count(*) from t1 where match a against ('aaayyy' in boolean mode);
|
||||||
|
# double-check without index
|
||||||
|
select count(*) from t1 where a = 'aaaxxx';
|
||||||
|
select count(*) from t1 where a = 'aaayyy';
|
||||||
|
|
||||||
|
# update
|
||||||
|
insert t1 (a) values ('aaaxxx 000000');
|
||||||
|
select count(*) from t1 where match a against ('000000');
|
||||||
|
select count(*) from t1 where match a against ('aaaxxx' in boolean mode);
|
||||||
|
update t1 set a='aaaxxx' where a = 'aaayyy';
|
||||||
|
select count(*) from t1 where match a against ('aaaxxx' in boolean mode);
|
||||||
|
select count(*) from t1 where match a against ('aaayyy' in boolean mode);
|
||||||
|
|
||||||
|
drop table t1;
|
19
mysql-test/suite/rpl/r/rpl_15919.result
Normal file
19
mysql-test/suite/rpl/r/rpl_15919.result
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
include/master-slave.inc
|
||||||
|
[connection master]
|
||||||
|
connection master;
|
||||||
|
create table RPL(a int);
|
||||||
|
insert into RPL values(1);
|
||||||
|
connection slave;
|
||||||
|
select * from rpl;
|
||||||
|
a
|
||||||
|
1
|
||||||
|
insert into RPL values(3);
|
||||||
|
insert into rpl values(4);
|
||||||
|
select * from rpl;
|
||||||
|
a
|
||||||
|
1
|
||||||
|
3
|
||||||
|
4
|
||||||
|
connection master;
|
||||||
|
drop table RPL;
|
||||||
|
include/rpl_end.inc
|
38
mysql-test/suite/rpl/r/rpl_lcase_tblnames_rewrite_db.result
Normal file
38
mysql-test/suite/rpl/r/rpl_lcase_tblnames_rewrite_db.result
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
include/master-slave.inc
|
||||||
|
[connection master]
|
||||||
|
SET SQL_LOG_BIN=0;
|
||||||
|
CREATE DATABASE B37656;
|
||||||
|
SET SQL_LOG_BIN=1;
|
||||||
|
connection slave;
|
||||||
|
CREATE DATABASE BUG37656;
|
||||||
|
### action: show that database on slave is created in lowercase
|
||||||
|
SHOW DATABASES LIKE '%37656';
|
||||||
|
Database (%37656)
|
||||||
|
bug37656
|
||||||
|
connection master;
|
||||||
|
USE B37656;
|
||||||
|
CREATE TABLE T1 (a int);
|
||||||
|
INSERT INTO T1 VALUES (1);
|
||||||
|
### assertion: master contains capitalized case table
|
||||||
|
SHOW TABLES;
|
||||||
|
Tables_in_B37656
|
||||||
|
T1
|
||||||
|
connection slave;
|
||||||
|
use bug37656;
|
||||||
|
### assertion: slave contains lowered case table
|
||||||
|
SHOW TABLES;
|
||||||
|
Tables_in_bug37656
|
||||||
|
t1
|
||||||
|
### assertion: master and slave tables do not differ
|
||||||
|
include/diff_tables.inc [master:B37656.T1, slave:bug37656.t1]
|
||||||
|
connection master;
|
||||||
|
SET SQL_LOG_BIN=0;
|
||||||
|
DROP DATABASE B37656;
|
||||||
|
SET SQL_LOG_BIN=1;
|
||||||
|
SHOW DATABASES LIKE '%37656';
|
||||||
|
Database (%37656)
|
||||||
|
connection slave;
|
||||||
|
DROP DATABASE BUG37656;
|
||||||
|
SHOW DATABASES LIKE '%37656';
|
||||||
|
Database (%37656)
|
||||||
|
include/rpl_end.inc
|
@ -648,4 +648,12 @@ SET GLOBAL slave_parallel_threads=@old_parallel_threads;
|
|||||||
include/start_slave.inc
|
include/start_slave.inc
|
||||||
connection server_1;
|
connection server_1;
|
||||||
DROP TABLE t1, t2, t3;
|
DROP TABLE t1, t2, t3;
|
||||||
|
include/save_master_gtid.inc
|
||||||
|
connection server_2;
|
||||||
|
include/sync_with_master_gtid.inc
|
||||||
|
Check that no more than the expected last two GTIDs are in mysql.gtid_slave_pos
|
||||||
|
select count(*) from mysql.gtid_slave_pos order by domain_id, sub_id;
|
||||||
|
count(*)
|
||||||
|
2
|
||||||
|
connection server_1;
|
||||||
include/rpl_end.inc
|
include/rpl_end.inc
|
||||||
|
60
mysql-test/suite/rpl/r/rpl_row_lcase_tblnames.result
Normal file
60
mysql-test/suite/rpl/r/rpl_row_lcase_tblnames.result
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
include/master-slave.inc
|
||||||
|
[connection master]
|
||||||
|
******** [ MASTER ] ********
|
||||||
|
CREATE DATABASE BUG_37656;
|
||||||
|
use BUG_37656;
|
||||||
|
show databases like 'BUG_37656';
|
||||||
|
Database (BUG_37656)
|
||||||
|
BUG_37656
|
||||||
|
connection slave;
|
||||||
|
******** [ SLAVE ] ********
|
||||||
|
show databases like 'bug_37656';
|
||||||
|
Database (bug_37656)
|
||||||
|
bug_37656
|
||||||
|
connection master;
|
||||||
|
******** [ MASTER ] ********
|
||||||
|
CREATE TABLE T1 (a int);
|
||||||
|
CREATE TABLE T2 (b int) ENGINE=InnoDB;
|
||||||
|
CREATE TABLE T3 (txt TEXT);
|
||||||
|
show tables;
|
||||||
|
Tables_in_BUG_37656
|
||||||
|
T1
|
||||||
|
T2
|
||||||
|
T3
|
||||||
|
connection slave;
|
||||||
|
******** [ SLAVE ] ********
|
||||||
|
use bug_37656;
|
||||||
|
show tables;
|
||||||
|
Tables_in_bug_37656
|
||||||
|
t2
|
||||||
|
t3
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
connection master;
|
||||||
|
******** [ MASTER ] ********
|
||||||
|
use BUG_37656;
|
||||||
|
INSERT INTO T1 VALUES (1);
|
||||||
|
INSERT INTO T2 VALUES (1);
|
||||||
|
use test;
|
||||||
|
INSERT INTO BUG_37656.T1 VALUES (2);
|
||||||
|
INSERT INTO BUG_37656.T2 VALUES (2);
|
||||||
|
LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE BUG_37656.T3;
|
||||||
|
connection slave;
|
||||||
|
******** [ SLAVE ] ********
|
||||||
|
include/diff_tables.inc [master:BUG_37656.T2, slave:bug_37656.t2]
|
||||||
|
include/diff_tables.inc [master:BUG_37656.T3, slave:bug_37656.t3]
|
||||||
|
connection master;
|
||||||
|
******** [ MASTER ] ********
|
||||||
|
DROP DATABASE BUG_37656;
|
||||||
|
connection slave;
|
||||||
|
connection master;
|
||||||
|
CREATE DATABASE B50653;
|
||||||
|
USE B50653;
|
||||||
|
CREATE PROCEDURE b50653_proc() BEGIN SELECT 1; END;
|
||||||
|
connection slave;
|
||||||
|
connection master;
|
||||||
|
DROP PROCEDURE b50653_proc;
|
||||||
|
connection slave;
|
||||||
|
connection master;
|
||||||
|
DROP DATABASE B50653;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
57
mysql-test/suite/rpl/r/rpl_stm_lcase_tblnames.result
Normal file
57
mysql-test/suite/rpl/r/rpl_stm_lcase_tblnames.result
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
include/master-slave.inc
|
||||||
|
[connection master]
|
||||||
|
******** [ MASTER ] ********
|
||||||
|
CREATE DATABASE BUG_37656;
|
||||||
|
use BUG_37656;
|
||||||
|
show databases like 'BUG_37656';
|
||||||
|
Database (BUG_37656)
|
||||||
|
BUG_37656
|
||||||
|
connection slave;
|
||||||
|
******** [ SLAVE ] ********
|
||||||
|
show databases like 'bug_37656';
|
||||||
|
Database (bug_37656)
|
||||||
|
bug_37656
|
||||||
|
connection master;
|
||||||
|
******** [ MASTER ] ********
|
||||||
|
CREATE TABLE T1 (a int);
|
||||||
|
CREATE TABLE T2 (b int) ENGINE=InnoDB;
|
||||||
|
CREATE TABLE T3 (txt TEXT);
|
||||||
|
show tables;
|
||||||
|
Tables_in_BUG_37656
|
||||||
|
T1
|
||||||
|
T2
|
||||||
|
T3
|
||||||
|
connection slave;
|
||||||
|
******** [ SLAVE ] ********
|
||||||
|
use bug_37656;
|
||||||
|
show tables;
|
||||||
|
Tables_in_bug_37656
|
||||||
|
t2
|
||||||
|
t3
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
connection master;
|
||||||
|
******** [ MASTER ] ********
|
||||||
|
use BUG_37656;
|
||||||
|
INSERT INTO T1 VALUES (1);
|
||||||
|
INSERT INTO T2 VALUES (1);
|
||||||
|
LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE BUG_37656.T3;
|
||||||
|
connection slave;
|
||||||
|
******** [ SLAVE ] ********
|
||||||
|
include/diff_tables.inc [master:BUG_37656.T2, slave:bug_37656.t2]
|
||||||
|
include/diff_tables.inc [master:BUG_37656.T3, slave:bug_37656.t3]
|
||||||
|
connection master;
|
||||||
|
******** [ MASTER ] ********
|
||||||
|
DROP DATABASE BUG_37656;
|
||||||
|
connection slave;
|
||||||
|
connection master;
|
||||||
|
CREATE DATABASE B50653;
|
||||||
|
USE B50653;
|
||||||
|
CREATE PROCEDURE b50653_proc() BEGIN SELECT 1; END;
|
||||||
|
connection slave;
|
||||||
|
connection master;
|
||||||
|
DROP PROCEDURE b50653_proc;
|
||||||
|
connection slave;
|
||||||
|
connection master;
|
||||||
|
DROP DATABASE B50653;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
1
mysql-test/suite/rpl/t/rpl_15919-slave.opt
Normal file
1
mysql-test/suite/rpl/t/rpl_15919-slave.opt
Normal file
@ -0,0 +1 @@
|
|||||||
|
--lower_case_table_names=1
|
18
mysql-test/suite/rpl/t/rpl_15919.test
Normal file
18
mysql-test/suite/rpl/t/rpl_15919.test
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
--source include/have_case_sensitive_file_system.inc
|
||||||
|
--source include/have_innodb.inc
|
||||||
|
--source include/master-slave.inc
|
||||||
|
|
||||||
|
--connection master
|
||||||
|
create table RPL(a int);
|
||||||
|
insert into RPL values(1);
|
||||||
|
|
||||||
|
--sync_slave_with_master
|
||||||
|
select * from rpl;
|
||||||
|
insert into RPL values(3);
|
||||||
|
insert into rpl values(4);
|
||||||
|
select * from rpl;
|
||||||
|
|
||||||
|
--connection master
|
||||||
|
drop table RPL;
|
||||||
|
|
||||||
|
--source include/rpl_end.inc
|
@ -0,0 +1 @@
|
|||||||
|
--lower-case-table-names=1 "--replicate-rewrite-db=b37656->bug37656"
|
60
mysql-test/suite/rpl/t/rpl_lcase_tblnames_rewrite_db.test
Normal file
60
mysql-test/suite/rpl/t/rpl_lcase_tblnames_rewrite_db.test
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
# BUG#37656
|
||||||
|
#
|
||||||
|
# DESCRIPTION
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# This test case is tests whether replication works properly when
|
||||||
|
# slave is configured with --lower-case-table-names=1 and replication
|
||||||
|
# rewrite rules are in effect.
|
||||||
|
#
|
||||||
|
# It checks four issues:
|
||||||
|
#
|
||||||
|
# (i) master contains capitalized table name
|
||||||
|
#
|
||||||
|
# (ii) slave contains lowered case table name
|
||||||
|
#
|
||||||
|
# (iii) master and slave tables do not differ
|
||||||
|
#
|
||||||
|
-- source include/master-slave.inc
|
||||||
|
-- source include/not_windows.inc
|
||||||
|
|
||||||
|
SET SQL_LOG_BIN=0;
|
||||||
|
CREATE DATABASE B37656;
|
||||||
|
SET SQL_LOG_BIN=1;
|
||||||
|
|
||||||
|
-- connection slave
|
||||||
|
CREATE DATABASE BUG37656;
|
||||||
|
|
||||||
|
-- echo ### action: show that database on slave is created in lowercase
|
||||||
|
SHOW DATABASES LIKE '%37656';
|
||||||
|
|
||||||
|
-- connection master
|
||||||
|
USE B37656;
|
||||||
|
CREATE TABLE T1 (a int);
|
||||||
|
INSERT INTO T1 VALUES (1);
|
||||||
|
|
||||||
|
-- echo ### assertion: master contains capitalized case table
|
||||||
|
SHOW TABLES;
|
||||||
|
|
||||||
|
-- sync_slave_with_master
|
||||||
|
|
||||||
|
use bug37656;
|
||||||
|
|
||||||
|
-- echo ### assertion: slave contains lowered case table
|
||||||
|
SHOW TABLES;
|
||||||
|
|
||||||
|
-- echo ### assertion: master and slave tables do not differ
|
||||||
|
let $diff_tables= master:B37656.T1, slave:bug37656.t1;
|
||||||
|
|
||||||
|
-- source include/diff_tables.inc
|
||||||
|
|
||||||
|
-- connection master
|
||||||
|
SET SQL_LOG_BIN=0;
|
||||||
|
DROP DATABASE B37656;
|
||||||
|
SET SQL_LOG_BIN=1;
|
||||||
|
SHOW DATABASES LIKE '%37656';
|
||||||
|
|
||||||
|
-- connection slave
|
||||||
|
DROP DATABASE BUG37656;
|
||||||
|
SHOW DATABASES LIKE '%37656';
|
||||||
|
--source include/rpl_end.inc
|
@ -553,5 +553,22 @@ SET GLOBAL slave_parallel_threads=@old_parallel_threads;
|
|||||||
|
|
||||||
--connection server_1
|
--connection server_1
|
||||||
DROP TABLE t1, t2, t3;
|
DROP TABLE t1, t2, t3;
|
||||||
|
--source include/save_master_gtid.inc
|
||||||
|
|
||||||
|
--connection server_2
|
||||||
|
--source include/sync_with_master_gtid.inc
|
||||||
|
# Check for left-over rows in table mysql.gtid_slave_pos (MDEV-12147).
|
||||||
|
#
|
||||||
|
# There was a bug when a transaction got a conflict and was rolled back. It
|
||||||
|
# might have also handled deletion of some old rows, and these deletions would
|
||||||
|
# then also be rolled back. And since the deletes were never re-tried, old no
|
||||||
|
# longer needed rows would accumulate in the table without limit.
|
||||||
|
#
|
||||||
|
# The earlier part of this test file have plenty of transactions being rolled
|
||||||
|
# back. But the last DROP TABLE statement runs on its own and should never
|
||||||
|
# conflict, thus at this point the mysql.gtid_slave_pos table should be clean.
|
||||||
|
--echo Check that no more than the expected last two GTIDs are in mysql.gtid_slave_pos
|
||||||
|
select count(*) from mysql.gtid_slave_pos order by domain_id, sub_id;
|
||||||
|
|
||||||
|
--connection server_1
|
||||||
--source include/rpl_end.inc
|
--source include/rpl_end.inc
|
||||||
|
1
mysql-test/suite/rpl/t/rpl_row_lcase_tblnames-slave.opt
Normal file
1
mysql-test/suite/rpl/t/rpl_row_lcase_tblnames-slave.opt
Normal file
@ -0,0 +1 @@
|
|||||||
|
--replicate-do-db=bug_37656 --replicate-ignore-table=buG_37656.T1 --replicate-do-table=bUg_37656.T2 --replicate-do-table=bUg_37656.T3 --lower-case-table-names=1
|
12
mysql-test/suite/rpl/t/rpl_row_lcase_tblnames.test
Normal file
12
mysql-test/suite/rpl/t/rpl_row_lcase_tblnames.test
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# BUG#37656
|
||||||
|
#
|
||||||
|
# For details look into extra/rpl_tests/rpl_lower_case_table_names.test
|
||||||
|
#
|
||||||
|
|
||||||
|
-- source include/master-slave.inc
|
||||||
|
-- source include/have_innodb.inc
|
||||||
|
-- source include/not_windows.inc
|
||||||
|
-- source include/have_binlog_format_row.inc
|
||||||
|
|
||||||
|
-- let $engine=InnoDB
|
||||||
|
-- source extra/rpl_tests/rpl_lower_case_table_names.test
|
1
mysql-test/suite/rpl/t/rpl_stm_lcase_tblnames-slave.opt
Normal file
1
mysql-test/suite/rpl/t/rpl_stm_lcase_tblnames-slave.opt
Normal file
@ -0,0 +1 @@
|
|||||||
|
--replicate-do-db=bug_37656 --replicate-ignore-table=bug_37656.t1 --replicate-do-table=bug_37656.t2 --replicate-do-table=bug_37656.t3 --lower-case-table-names=1
|
12
mysql-test/suite/rpl/t/rpl_stm_lcase_tblnames.test
Normal file
12
mysql-test/suite/rpl/t/rpl_stm_lcase_tblnames.test
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# BUG#37656
|
||||||
|
#
|
||||||
|
# For details look into extra/rpl_tests/rpl_lower_case_table_names.test
|
||||||
|
#
|
||||||
|
|
||||||
|
-- source include/master-slave.inc
|
||||||
|
-- source include/have_innodb.inc
|
||||||
|
-- source include/not_windows.inc
|
||||||
|
-- source include/have_binlog_format_mixed_or_statement.inc
|
||||||
|
|
||||||
|
-- let $engine=InnoDB
|
||||||
|
-- source extra/rpl_tests/rpl_lower_case_table_names.test
|
@ -14,7 +14,7 @@ INSERT INTO t1 VALUES('3','1','1');
|
|||||||
INSERT INTO t1 VALUES('4','1','1');
|
INSERT INTO t1 VALUES('4','1','1');
|
||||||
INSERT INTO t1 VALUES('5','1','1');
|
INSERT INTO t1 VALUES('5','1','1');
|
||||||
INSERT INTO t1 VALUES('6','1','1');
|
INSERT INTO t1 VALUES('6','1','1');
|
||||||
LOCK TABLE v1 WRITE;
|
LOCK TABLE v1 READ;
|
||||||
connection con1;
|
connection con1;
|
||||||
INSERT DELAYED INTO t1 VALUES('7','1','1');
|
INSERT DELAYED INTO t1 VALUES('7','1','1');
|
||||||
INSERT DELAYED INTO t1 VALUES('8','1','1');
|
INSERT DELAYED INTO t1 VALUES('8','1','1');
|
||||||
@ -83,7 +83,7 @@ INSERT INTO t1 VALUES('3');
|
|||||||
INSERT INTO t1 VALUES('4');
|
INSERT INTO t1 VALUES('4');
|
||||||
INSERT INTO t1 VALUES('5');
|
INSERT INTO t1 VALUES('5');
|
||||||
INSERT INTO t1 VALUES('6');
|
INSERT INTO t1 VALUES('6');
|
||||||
LOCK TABLE v1 WRITE;
|
LOCK TABLE v1 READ;
|
||||||
connection con1;
|
connection con1;
|
||||||
Asynchronous execute
|
Asynchronous execute
|
||||||
INSERT DELAYED INTO t1 VALUES('7');
|
INSERT DELAYED INTO t1 VALUES('7');
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
set global innodb_ft_result_cache_limit=5000000000;
|
||||||
|
Warnings:
|
||||||
|
Warning 1292 Truncated incorrect innodb_ft_result_cache_limit value: '5000000000'
|
||||||
|
select @@innodb_ft_result_cache_limit;
|
||||||
|
@@innodb_ft_result_cache_limit
|
||||||
|
4294967295
|
||||||
|
set global innodb_ft_result_cache_limit=2000000000;
|
@ -0,0 +1,5 @@
|
|||||||
|
set global innodb_ft_result_cache_limit=5000000000;
|
||||||
|
select @@innodb_ft_result_cache_limit;
|
||||||
|
@@innodb_ft_result_cache_limit
|
||||||
|
5000000000
|
||||||
|
set global innodb_ft_result_cache_limit=2000000000;
|
@ -0,0 +1,13 @@
|
|||||||
|
--- innodb_ft_result_cache_limit_basic.result
|
||||||
|
+++ innodb_ft_result_cache_limit_basic,32bit.reject
|
||||||
|
@@ -31,7 +31,9 @@
|
||||||
|
@@innodb_ft_result_cache_limit
|
||||||
|
4294967295
|
||||||
|
set global innodb_ft_result_cache_limit=4*1024*1024*1024;
|
||||||
|
+Warnings:
|
||||||
|
+Warning 1292 Truncated incorrect innodb_ft_result_cache_limit value: '4294967296'
|
||||||
|
select @@innodb_ft_result_cache_limit;
|
||||||
|
@@innodb_ft_result_cache_limit
|
||||||
|
-4294967296
|
||||||
|
+4294967295
|
||||||
|
set global innodb_ft_result_cache_limit = @save_limit;
|
@ -15,6 +15,7 @@ INNODB_FT_RESULT_CACHE_LIMIT 2000000000
|
|||||||
select * from information_schema.session_variables where variable_name='innodb_ft_result_cache_limit';
|
select * from information_schema.session_variables where variable_name='innodb_ft_result_cache_limit';
|
||||||
VARIABLE_NAME VARIABLE_VALUE
|
VARIABLE_NAME VARIABLE_VALUE
|
||||||
INNODB_FT_RESULT_CACHE_LIMIT 2000000000
|
INNODB_FT_RESULT_CACHE_LIMIT 2000000000
|
||||||
|
SET @save_limit = @@innodb_ft_result_cache_limit;
|
||||||
set global innodb_ft_result_cache_limit=900000;
|
set global innodb_ft_result_cache_limit=900000;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1292 Truncated incorrect innodb_ft_result_cache_limit value: '900000'
|
Warning 1292 Truncated incorrect innodb_ft_result_cache_limit value: '900000'
|
||||||
@ -30,9 +31,7 @@ select @@innodb_ft_result_cache_limit;
|
|||||||
@@innodb_ft_result_cache_limit
|
@@innodb_ft_result_cache_limit
|
||||||
4294967295
|
4294967295
|
||||||
set global innodb_ft_result_cache_limit=4*1024*1024*1024;
|
set global innodb_ft_result_cache_limit=4*1024*1024*1024;
|
||||||
Warnings:
|
|
||||||
Warning 1292 Truncated incorrect innodb_ft_result_cache_limit value: '4294967296'
|
|
||||||
select @@innodb_ft_result_cache_limit;
|
select @@innodb_ft_result_cache_limit;
|
||||||
@@innodb_ft_result_cache_limit
|
@@innodb_ft_result_cache_limit
|
||||||
4294967295
|
4294967296
|
||||||
set global innodb_ft_result_cache_limit=2000000000;
|
set global innodb_ft_result_cache_limit = @save_limit;
|
||||||
|
@ -20,7 +20,7 @@ INSERT INTO t1 VALUES('3');
|
|||||||
INSERT INTO t1 VALUES('4');
|
INSERT INTO t1 VALUES('4');
|
||||||
INSERT INTO t1 VALUES('5');
|
INSERT INTO t1 VALUES('5');
|
||||||
INSERT INTO t1 VALUES('6');
|
INSERT INTO t1 VALUES('6');
|
||||||
LOCK TABLE v1 WRITE;
|
LOCK TABLE v1 WRITE CONCURRENT;
|
||||||
connection con1;
|
connection con1;
|
||||||
** Asynchronous Execution **
|
** Asynchronous Execution **
|
||||||
UPDATE t1 SET a = CONCAT(a,"-updated");|
|
UPDATE t1 SET a = CONCAT(a,"-updated");|
|
||||||
@ -56,7 +56,7 @@ INSERT INTO t1 VALUES('3');
|
|||||||
INSERT INTO t1 VALUES('4');
|
INSERT INTO t1 VALUES('4');
|
||||||
INSERT INTO t1 VALUES('5');
|
INSERT INTO t1 VALUES('5');
|
||||||
INSERT INTO t1 VALUES('6');
|
INSERT INTO t1 VALUES('6');
|
||||||
LOCK TABLE v1 WRITE;
|
LOCK TABLE v1 READ;
|
||||||
connection con1;
|
connection con1;
|
||||||
** Asynchronous Execution **
|
** Asynchronous Execution **
|
||||||
UPDATE t1 SET a = CONCAT(a,"-updated");|
|
UPDATE t1 SET a = CONCAT(a,"-updated");|
|
||||||
|
@ -475,7 +475,7 @@
|
|||||||
VARIABLE_COMMENT InnoDB Fulltext search number of words to optimize for each optimize table call
|
VARIABLE_COMMENT InnoDB Fulltext search number of words to optimize for each optimize table call
|
||||||
NUMERIC_MIN_VALUE 1000
|
NUMERIC_MIN_VALUE 1000
|
||||||
NUMERIC_MAX_VALUE 10000
|
NUMERIC_MAX_VALUE 10000
|
||||||
@@ -1173,7 +1355,7 @@
|
@@ -1173,10 +1355,10 @@
|
||||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||||
DEFAULT_VALUE 2000000000
|
DEFAULT_VALUE 2000000000
|
||||||
VARIABLE_SCOPE GLOBAL
|
VARIABLE_SCOPE GLOBAL
|
||||||
@ -483,7 +483,11 @@
|
|||||||
+VARIABLE_TYPE INT UNSIGNED
|
+VARIABLE_TYPE INT UNSIGNED
|
||||||
VARIABLE_COMMENT InnoDB Fulltext search query result cache limit in bytes
|
VARIABLE_COMMENT InnoDB Fulltext search query result cache limit in bytes
|
||||||
NUMERIC_MIN_VALUE 1000000
|
NUMERIC_MIN_VALUE 1000000
|
||||||
NUMERIC_MAX_VALUE 4294967295
|
-NUMERIC_MAX_VALUE 18446744073709551615
|
||||||
|
+NUMERIC_MAX_VALUE 4294967295
|
||||||
|
NUMERIC_BLOCK_SIZE 0
|
||||||
|
ENUM_VALUE_LIST NULL
|
||||||
|
READ_ONLY NO
|
||||||
@@ -1201,7 +1383,7 @@
|
@@ -1201,7 +1383,7 @@
|
||||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||||
DEFAULT_VALUE 2
|
DEFAULT_VALUE 2
|
||||||
@ -1210,8 +1214,8 @@
|
|||||||
COMMAND_LINE_ARGUMENT OPTIONAL
|
COMMAND_LINE_ARGUMENT OPTIONAL
|
||||||
VARIABLE_NAME INNODB_VERSION
|
VARIABLE_NAME INNODB_VERSION
|
||||||
SESSION_VALUE NULL
|
SESSION_VALUE NULL
|
||||||
-GLOBAL_VALUE 5.6.41
|
-GLOBAL_VALUE 5.6.42
|
||||||
+GLOBAL_VALUE 5.6.39-83.1
|
+GLOBAL_VALUE 5.6.41-84.1
|
||||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||||
DEFAULT_VALUE NULL
|
DEFAULT_VALUE NULL
|
||||||
VARIABLE_SCOPE GLOBAL
|
VARIABLE_SCOPE GLOBAL
|
||||||
|
@ -294,7 +294,7 @@
|
|||||||
VARIABLE_COMMENT InnoDB Fulltext search number of words to optimize for each optimize table call
|
VARIABLE_COMMENT InnoDB Fulltext search number of words to optimize for each optimize table call
|
||||||
NUMERIC_MIN_VALUE 1000
|
NUMERIC_MIN_VALUE 1000
|
||||||
NUMERIC_MAX_VALUE 10000
|
NUMERIC_MAX_VALUE 10000
|
||||||
@@ -1398,7 +1398,7 @@
|
@@ -1398,10 +1398,10 @@
|
||||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||||
DEFAULT_VALUE 2000000000
|
DEFAULT_VALUE 2000000000
|
||||||
VARIABLE_SCOPE GLOBAL
|
VARIABLE_SCOPE GLOBAL
|
||||||
@ -302,7 +302,11 @@
|
|||||||
+VARIABLE_TYPE INT UNSIGNED
|
+VARIABLE_TYPE INT UNSIGNED
|
||||||
VARIABLE_COMMENT InnoDB Fulltext search query result cache limit in bytes
|
VARIABLE_COMMENT InnoDB Fulltext search query result cache limit in bytes
|
||||||
NUMERIC_MIN_VALUE 1000000
|
NUMERIC_MIN_VALUE 1000000
|
||||||
NUMERIC_MAX_VALUE 4294967295
|
-NUMERIC_MAX_VALUE 18446744073709551615
|
||||||
|
+NUMERIC_MAX_VALUE 4294967295
|
||||||
|
NUMERIC_BLOCK_SIZE 0
|
||||||
|
ENUM_VALUE_LIST NULL
|
||||||
|
READ_ONLY NO
|
||||||
@@ -1426,7 +1426,7 @@
|
@@ -1426,7 +1426,7 @@
|
||||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||||
DEFAULT_VALUE 2
|
DEFAULT_VALUE 2
|
||||||
@ -421,7 +425,7 @@
|
|||||||
VARIABLE_COMMENT Number of log files in the log group. InnoDB writes to the files in a circular fashion.
|
VARIABLE_COMMENT Number of log files in the log group. InnoDB writes to the files in a circular fashion.
|
||||||
NUMERIC_MIN_VALUE 1
|
NUMERIC_MIN_VALUE 1
|
||||||
NUMERIC_MAX_VALUE 100
|
NUMERIC_MAX_VALUE 100
|
||||||
@@ -1804,7 +1804,7 @@
|
@@ -1818,7 +1818,7 @@
|
||||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||||
DEFAULT_VALUE 8192
|
DEFAULT_VALUE 8192
|
||||||
VARIABLE_SCOPE GLOBAL
|
VARIABLE_SCOPE GLOBAL
|
||||||
@ -430,7 +434,7 @@
|
|||||||
VARIABLE_COMMENT Redo log write ahead unit size to avoid read-on-write, it should match the OS cache block IO size
|
VARIABLE_COMMENT Redo log write ahead unit size to avoid read-on-write, it should match the OS cache block IO size
|
||||||
NUMERIC_MIN_VALUE 512
|
NUMERIC_MIN_VALUE 512
|
||||||
NUMERIC_MAX_VALUE 16384
|
NUMERIC_MAX_VALUE 16384
|
||||||
@@ -1818,10 +1818,10 @@
|
@@ -1832,10 +1832,10 @@
|
||||||
GLOBAL_VALUE_ORIGIN CONFIG
|
GLOBAL_VALUE_ORIGIN CONFIG
|
||||||
DEFAULT_VALUE 1024
|
DEFAULT_VALUE 1024
|
||||||
VARIABLE_SCOPE GLOBAL
|
VARIABLE_SCOPE GLOBAL
|
||||||
@ -443,7 +447,7 @@
|
|||||||
NUMERIC_BLOCK_SIZE 0
|
NUMERIC_BLOCK_SIZE 0
|
||||||
ENUM_VALUE_LIST NULL
|
ENUM_VALUE_LIST NULL
|
||||||
READ_ONLY NO
|
READ_ONLY NO
|
||||||
@@ -1902,10 +1902,10 @@
|
@@ -1916,10 +1916,10 @@
|
||||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||||
DEFAULT_VALUE 0
|
DEFAULT_VALUE 0
|
||||||
VARIABLE_SCOPE GLOBAL
|
VARIABLE_SCOPE GLOBAL
|
||||||
@ -456,7 +460,7 @@
|
|||||||
NUMERIC_BLOCK_SIZE 0
|
NUMERIC_BLOCK_SIZE 0
|
||||||
ENUM_VALUE_LIST NULL
|
ENUM_VALUE_LIST NULL
|
||||||
READ_ONLY NO
|
READ_ONLY NO
|
||||||
@@ -1916,7 +1916,7 @@
|
@@ -1930,7 +1930,7 @@
|
||||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||||
DEFAULT_VALUE 0
|
DEFAULT_VALUE 0
|
||||||
VARIABLE_SCOPE GLOBAL
|
VARIABLE_SCOPE GLOBAL
|
||||||
@ -465,7 +469,7 @@
|
|||||||
VARIABLE_COMMENT Maximum delay of user threads in micro-seconds
|
VARIABLE_COMMENT Maximum delay of user threads in micro-seconds
|
||||||
NUMERIC_MIN_VALUE 0
|
NUMERIC_MIN_VALUE 0
|
||||||
NUMERIC_MAX_VALUE 10000000
|
NUMERIC_MAX_VALUE 10000000
|
||||||
@@ -1958,7 +1958,7 @@
|
@@ -1972,7 +1972,7 @@
|
||||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||||
DEFAULT_VALUE 0
|
DEFAULT_VALUE 0
|
||||||
VARIABLE_SCOPE GLOBAL
|
VARIABLE_SCOPE GLOBAL
|
||||||
@ -474,7 +478,7 @@
|
|||||||
VARIABLE_COMMENT Deprecated and ignored; only exists to allow easier upgrade from earlier XtraDB versions.
|
VARIABLE_COMMENT Deprecated and ignored; only exists to allow easier upgrade from earlier XtraDB versions.
|
||||||
NUMERIC_MIN_VALUE 0
|
NUMERIC_MIN_VALUE 0
|
||||||
NUMERIC_MAX_VALUE 10
|
NUMERIC_MAX_VALUE 10
|
||||||
@@ -2028,7 +2028,7 @@
|
@@ -2042,7 +2042,7 @@
|
||||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||||
DEFAULT_VALUE 8
|
DEFAULT_VALUE 8
|
||||||
VARIABLE_SCOPE GLOBAL
|
VARIABLE_SCOPE GLOBAL
|
||||||
@ -483,7 +487,7 @@
|
|||||||
VARIABLE_COMMENT DEPRECATED. Number of multi-threaded flush threads
|
VARIABLE_COMMENT DEPRECATED. Number of multi-threaded flush threads
|
||||||
NUMERIC_MIN_VALUE 1
|
NUMERIC_MIN_VALUE 1
|
||||||
NUMERIC_MAX_VALUE 64
|
NUMERIC_MAX_VALUE 64
|
||||||
@@ -2084,10 +2084,10 @@
|
@@ -2098,10 +2098,10 @@
|
||||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||||
DEFAULT_VALUE 0
|
DEFAULT_VALUE 0
|
||||||
VARIABLE_SCOPE GLOBAL
|
VARIABLE_SCOPE GLOBAL
|
||||||
@ -496,7 +500,7 @@
|
|||||||
NUMERIC_BLOCK_SIZE 0
|
NUMERIC_BLOCK_SIZE 0
|
||||||
ENUM_VALUE_LIST NULL
|
ENUM_VALUE_LIST NULL
|
||||||
READ_ONLY YES
|
READ_ONLY YES
|
||||||
@@ -2112,7 +2112,7 @@
|
@@ -2126,7 +2126,7 @@
|
||||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||||
DEFAULT_VALUE 4
|
DEFAULT_VALUE 4
|
||||||
VARIABLE_SCOPE GLOBAL
|
VARIABLE_SCOPE GLOBAL
|
||||||
@ -505,7 +509,7 @@
|
|||||||
VARIABLE_COMMENT Page cleaner threads can be from 1 to 64. Default is 4.
|
VARIABLE_COMMENT Page cleaner threads can be from 1 to 64. Default is 4.
|
||||||
NUMERIC_MIN_VALUE 1
|
NUMERIC_MIN_VALUE 1
|
||||||
NUMERIC_MAX_VALUE 64
|
NUMERIC_MAX_VALUE 64
|
||||||
@@ -2140,7 +2140,7 @@
|
@@ -2154,7 +2154,7 @@
|
||||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||||
DEFAULT_VALUE 16
|
DEFAULT_VALUE 16
|
||||||
VARIABLE_SCOPE GLOBAL
|
VARIABLE_SCOPE GLOBAL
|
||||||
@ -514,7 +518,7 @@
|
|||||||
VARIABLE_COMMENT Number of rw_locks protecting buffer pool page_hash. Rounded up to the next power of 2
|
VARIABLE_COMMENT Number of rw_locks protecting buffer pool page_hash. Rounded up to the next power of 2
|
||||||
NUMERIC_MIN_VALUE 1
|
NUMERIC_MIN_VALUE 1
|
||||||
NUMERIC_MAX_VALUE 1024
|
NUMERIC_MAX_VALUE 1024
|
||||||
@@ -2154,7 +2154,7 @@
|
@@ -2168,7 +2168,7 @@
|
||||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||||
DEFAULT_VALUE 16384
|
DEFAULT_VALUE 16384
|
||||||
VARIABLE_SCOPE GLOBAL
|
VARIABLE_SCOPE GLOBAL
|
||||||
@ -523,7 +527,7 @@
|
|||||||
VARIABLE_COMMENT Page size to use for all InnoDB tablespaces.
|
VARIABLE_COMMENT Page size to use for all InnoDB tablespaces.
|
||||||
NUMERIC_MIN_VALUE 4096
|
NUMERIC_MIN_VALUE 4096
|
||||||
NUMERIC_MAX_VALUE 65536
|
NUMERIC_MAX_VALUE 65536
|
||||||
@@ -2252,7 +2252,7 @@
|
@@ -2266,7 +2266,7 @@
|
||||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||||
DEFAULT_VALUE 300
|
DEFAULT_VALUE 300
|
||||||
VARIABLE_SCOPE GLOBAL
|
VARIABLE_SCOPE GLOBAL
|
||||||
@ -532,7 +536,7 @@
|
|||||||
VARIABLE_COMMENT Number of UNDO log pages to purge in one batch from the history list.
|
VARIABLE_COMMENT Number of UNDO log pages to purge in one batch from the history list.
|
||||||
NUMERIC_MIN_VALUE 1
|
NUMERIC_MIN_VALUE 1
|
||||||
NUMERIC_MAX_VALUE 5000
|
NUMERIC_MAX_VALUE 5000
|
||||||
@@ -2266,7 +2266,7 @@
|
@@ -2280,7 +2280,7 @@
|
||||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||||
DEFAULT_VALUE 128
|
DEFAULT_VALUE 128
|
||||||
VARIABLE_SCOPE GLOBAL
|
VARIABLE_SCOPE GLOBAL
|
||||||
@ -541,7 +545,7 @@
|
|||||||
VARIABLE_COMMENT Dictates rate at which UNDO records are purged. Value N means purge rollback segment(s) on every Nth iteration of purge invocation
|
VARIABLE_COMMENT Dictates rate at which UNDO records are purged. Value N means purge rollback segment(s) on every Nth iteration of purge invocation
|
||||||
NUMERIC_MIN_VALUE 1
|
NUMERIC_MIN_VALUE 1
|
||||||
NUMERIC_MAX_VALUE 128
|
NUMERIC_MAX_VALUE 128
|
||||||
@@ -2308,7 +2308,7 @@
|
@@ -2294,7 +2294,7 @@
|
||||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||||
DEFAULT_VALUE 4
|
DEFAULT_VALUE 4
|
||||||
VARIABLE_SCOPE GLOBAL
|
VARIABLE_SCOPE GLOBAL
|
||||||
@ -550,7 +554,7 @@
|
|||||||
VARIABLE_COMMENT Purge threads can be from 1 to 32. Default is 4.
|
VARIABLE_COMMENT Purge threads can be from 1 to 32. Default is 4.
|
||||||
NUMERIC_MIN_VALUE 1
|
NUMERIC_MIN_VALUE 1
|
||||||
NUMERIC_MAX_VALUE 32
|
NUMERIC_MAX_VALUE 32
|
||||||
@@ -2336,7 +2336,7 @@
|
@@ -2322,7 +2322,7 @@
|
||||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||||
DEFAULT_VALUE 56
|
DEFAULT_VALUE 56
|
||||||
VARIABLE_SCOPE GLOBAL
|
VARIABLE_SCOPE GLOBAL
|
||||||
@ -559,7 +563,7 @@
|
|||||||
VARIABLE_COMMENT Number of pages that must be accessed sequentially for InnoDB to trigger a readahead.
|
VARIABLE_COMMENT Number of pages that must be accessed sequentially for InnoDB to trigger a readahead.
|
||||||
NUMERIC_MIN_VALUE 0
|
NUMERIC_MIN_VALUE 0
|
||||||
NUMERIC_MAX_VALUE 64
|
NUMERIC_MAX_VALUE 64
|
||||||
@@ -2350,7 +2350,7 @@
|
@@ -2336,7 +2336,7 @@
|
||||||
GLOBAL_VALUE_ORIGIN CONFIG
|
GLOBAL_VALUE_ORIGIN CONFIG
|
||||||
DEFAULT_VALUE 4
|
DEFAULT_VALUE 4
|
||||||
VARIABLE_SCOPE GLOBAL
|
VARIABLE_SCOPE GLOBAL
|
||||||
@ -568,7 +572,7 @@
|
|||||||
VARIABLE_COMMENT Number of background read I/O threads in InnoDB.
|
VARIABLE_COMMENT Number of background read I/O threads in InnoDB.
|
||||||
NUMERIC_MIN_VALUE 1
|
NUMERIC_MIN_VALUE 1
|
||||||
NUMERIC_MAX_VALUE 64
|
NUMERIC_MAX_VALUE 64
|
||||||
@@ -2378,10 +2378,10 @@
|
@@ -2364,10 +2364,10 @@
|
||||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||||
DEFAULT_VALUE 0
|
DEFAULT_VALUE 0
|
||||||
VARIABLE_SCOPE GLOBAL
|
VARIABLE_SCOPE GLOBAL
|
||||||
@ -581,7 +585,7 @@
|
|||||||
NUMERIC_BLOCK_SIZE 0
|
NUMERIC_BLOCK_SIZE 0
|
||||||
ENUM_VALUE_LIST NULL
|
ENUM_VALUE_LIST NULL
|
||||||
READ_ONLY NO
|
READ_ONLY NO
|
||||||
@@ -2406,7 +2406,7 @@
|
@@ -2392,7 +2392,7 @@
|
||||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||||
DEFAULT_VALUE 128
|
DEFAULT_VALUE 128
|
||||||
VARIABLE_SCOPE GLOBAL
|
VARIABLE_SCOPE GLOBAL
|
||||||
|
@ -684,8 +684,8 @@
|
|||||||
COMMAND_LINE_ARGUMENT OPTIONAL
|
COMMAND_LINE_ARGUMENT OPTIONAL
|
||||||
VARIABLE_NAME INNODB_VERSION
|
VARIABLE_NAME INNODB_VERSION
|
||||||
SESSION_VALUE NULL
|
SESSION_VALUE NULL
|
||||||
-GLOBAL_VALUE 5.6.41
|
-GLOBAL_VALUE 5.6.42
|
||||||
+GLOBAL_VALUE 5.6.39-83.1
|
+GLOBAL_VALUE 5.6.41-84.1
|
||||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||||
DEFAULT_VALUE NULL
|
DEFAULT_VALUE NULL
|
||||||
VARIABLE_SCOPE GLOBAL
|
VARIABLE_SCOPE GLOBAL
|
||||||
|
@ -1401,7 +1401,7 @@ VARIABLE_SCOPE GLOBAL
|
|||||||
VARIABLE_TYPE BIGINT UNSIGNED
|
VARIABLE_TYPE BIGINT UNSIGNED
|
||||||
VARIABLE_COMMENT InnoDB Fulltext search query result cache limit in bytes
|
VARIABLE_COMMENT InnoDB Fulltext search query result cache limit in bytes
|
||||||
NUMERIC_MIN_VALUE 1000000
|
NUMERIC_MIN_VALUE 1000000
|
||||||
NUMERIC_MAX_VALUE 4294967295
|
NUMERIC_MAX_VALUE 18446744073709551615
|
||||||
NUMERIC_BLOCK_SIZE 0
|
NUMERIC_BLOCK_SIZE 0
|
||||||
ENUM_VALUE_LIST NULL
|
ENUM_VALUE_LIST NULL
|
||||||
READ_ONLY NO
|
READ_ONLY NO
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
call mtr.add_suppression("Could not increase number of max_open_files to more than");
|
||||||
SELECT @@global.thread_pool_size;
|
SELECT @@global.thread_pool_size;
|
||||||
@@global.thread_pool_size
|
@@global.thread_pool_size
|
||||||
200
|
200
|
||||||
|
@ -59,7 +59,7 @@ INSERT INTO t1 VALUES('4','1','1');
|
|||||||
INSERT INTO t1 VALUES('5','1','1');
|
INSERT INTO t1 VALUES('5','1','1');
|
||||||
INSERT INTO t1 VALUES('6','1','1');
|
INSERT INTO t1 VALUES('6','1','1');
|
||||||
|
|
||||||
LOCK TABLE v1 WRITE;
|
LOCK TABLE v1 READ;
|
||||||
|
|
||||||
connection con1;
|
connection con1;
|
||||||
|
|
||||||
@ -106,9 +106,8 @@ delimiter ;|
|
|||||||
|
|
||||||
connection con0;
|
connection con0;
|
||||||
let $wait_condition=
|
let $wait_condition=
|
||||||
SELECT variable_value > @@global.delayed_insert_limit
|
SELECT COUNT(*) = 1 FROM information_schema.processlist
|
||||||
FROM information_schema.global_status
|
WHERE state = 'Waiting for table level lock' AND user='delayed';
|
||||||
WHERE variable_name like 'Not_flushed_delayed_rows';
|
|
||||||
--source include/wait_condition.inc
|
--source include/wait_condition.inc
|
||||||
let $my_select= SELECT COUNT(*) FROM t1;
|
let $my_select= SELECT COUNT(*) FROM t1;
|
||||||
send;
|
send;
|
||||||
@ -130,13 +129,6 @@ connection con0;
|
|||||||
--echo Asynchronous "reap" result
|
--echo Asynchronous "reap" result
|
||||||
--echo The next result suffers from
|
--echo The next result suffers from
|
||||||
--echo '# Bug#35386 insert delayed inserts 1 + limit rows instead of just limit rows'
|
--echo '# Bug#35386 insert delayed inserts 1 + limit rows instead of just limit rows'
|
||||||
#
|
|
||||||
# on UNLOCK TABLES both SELECT in the con0 and delayed insert thread in the
|
|
||||||
# con1 were awaken. There's no FIFO for TL_WRITE_DELAYED and TL_READ,
|
|
||||||
# so either the first delayed_insert_limit rows will be inserted
|
|
||||||
# before select (which will see 21 row) or select will go first (and see 6 rows)
|
|
||||||
#
|
|
||||||
--replace_result 6 21
|
|
||||||
reap;
|
reap;
|
||||||
|
|
||||||
connection default;
|
connection default;
|
||||||
@ -165,7 +157,7 @@ INSERT INTO t1 VALUES('4');
|
|||||||
INSERT INTO t1 VALUES('5');
|
INSERT INTO t1 VALUES('5');
|
||||||
INSERT INTO t1 VALUES('6');
|
INSERT INTO t1 VALUES('6');
|
||||||
|
|
||||||
LOCK TABLE v1 WRITE;
|
LOCK TABLE v1 READ;
|
||||||
|
|
||||||
connection con1;
|
connection con1;
|
||||||
|
|
||||||
@ -194,8 +186,8 @@ delimiter ;|
|
|||||||
|
|
||||||
connection con0;
|
connection con0;
|
||||||
let $wait_condition=
|
let $wait_condition=
|
||||||
SELECT variable_value > 0 FROM information_schema.global_status
|
SELECT COUNT(*) = 1 FROM information_schema.processlist
|
||||||
WHERE variable_name like 'Not_flushed_delayed_rows';
|
WHERE state = 'Waiting for table level lock' AND user='delayed';
|
||||||
--source include/wait_condition.inc
|
--source include/wait_condition.inc
|
||||||
--echo Asynchronous execute
|
--echo Asynchronous execute
|
||||||
# Due to performance and server behaveiour the test observes values between 6 and 22.
|
# Due to performance and server behaveiour the test observes values between 6 and 22.
|
||||||
|
@ -0,0 +1,9 @@
|
|||||||
|
--source include/have_32bit.inc
|
||||||
|
--source include/have_innodb.inc
|
||||||
|
|
||||||
|
let $innodb_ft_result_cache_limit_orig=`select @@innodb_ft_result_cache_limit`;
|
||||||
|
|
||||||
|
set global innodb_ft_result_cache_limit=5000000000;
|
||||||
|
select @@innodb_ft_result_cache_limit;
|
||||||
|
|
||||||
|
eval set global innodb_ft_result_cache_limit=$innodb_ft_result_cache_limit_orig;
|
@ -0,0 +1,9 @@
|
|||||||
|
--source include/have_64bit.inc
|
||||||
|
--source include/have_innodb.inc
|
||||||
|
|
||||||
|
let $innodb_ft_result_cache_limit_orig=`select @@innodb_ft_result_cache_limit`;
|
||||||
|
|
||||||
|
set global innodb_ft_result_cache_limit=5000000000;
|
||||||
|
select @@innodb_ft_result_cache_limit;
|
||||||
|
|
||||||
|
eval set global innodb_ft_result_cache_limit=$innodb_ft_result_cache_limit_orig;
|
@ -4,6 +4,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
--source include/have_innodb.inc
|
--source include/have_innodb.inc
|
||||||
|
--source include/word_size.inc
|
||||||
|
|
||||||
#
|
#
|
||||||
# show the global and session values;
|
# show the global and session values;
|
||||||
@ -21,7 +22,7 @@ select * from information_schema.session_variables where variable_name='innodb_f
|
|||||||
#
|
#
|
||||||
# test default, min, max value
|
# test default, min, max value
|
||||||
#
|
#
|
||||||
let $innodb_ft_result_cache_limit_orig=`select @@innodb_ft_result_cache_limit`;
|
SET @save_limit = @@innodb_ft_result_cache_limit;
|
||||||
|
|
||||||
set global innodb_ft_result_cache_limit=900000;
|
set global innodb_ft_result_cache_limit=900000;
|
||||||
select @@innodb_ft_result_cache_limit;
|
select @@innodb_ft_result_cache_limit;
|
||||||
@ -35,4 +36,4 @@ select @@innodb_ft_result_cache_limit;
|
|||||||
set global innodb_ft_result_cache_limit=4*1024*1024*1024;
|
set global innodb_ft_result_cache_limit=4*1024*1024*1024;
|
||||||
select @@innodb_ft_result_cache_limit;
|
select @@innodb_ft_result_cache_limit;
|
||||||
|
|
||||||
eval set global innodb_ft_result_cache_limit=$innodb_ft_result_cache_limit_orig;
|
set global innodb_ft_result_cache_limit = @save_limit;
|
||||||
|
@ -64,7 +64,7 @@ INSERT INTO t1 VALUES('4');
|
|||||||
INSERT INTO t1 VALUES('5');
|
INSERT INTO t1 VALUES('5');
|
||||||
INSERT INTO t1 VALUES('6');
|
INSERT INTO t1 VALUES('6');
|
||||||
|
|
||||||
LOCK TABLE v1 WRITE;
|
LOCK TABLE v1 WRITE CONCURRENT;
|
||||||
|
|
||||||
connection con1;
|
connection con1;
|
||||||
|
|
||||||
@ -130,7 +130,7 @@ INSERT INTO t1 VALUES('4');
|
|||||||
INSERT INTO t1 VALUES('5');
|
INSERT INTO t1 VALUES('5');
|
||||||
INSERT INTO t1 VALUES('6');
|
INSERT INTO t1 VALUES('6');
|
||||||
|
|
||||||
LOCK TABLE v1 WRITE;
|
LOCK TABLE v1 READ;
|
||||||
|
|
||||||
connection con1;
|
connection con1;
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
--source include/not_windows.inc
|
--source include/not_windows.inc
|
||||||
--source include/not_embedded.inc
|
--source include/not_embedded.inc
|
||||||
--source include/have_pool_of_threads.inc
|
--source include/have_pool_of_threads.inc
|
||||||
|
call mtr.add_suppression("Could not increase number of max_open_files to more than");
|
||||||
|
|
||||||
SELECT @@global.thread_pool_size;
|
SELECT @@global.thread_pool_size;
|
||||||
|
|
||||||
|
@ -1296,6 +1296,56 @@ MODIFY COLUMN `consultant_id` BIGINT;
|
|||||||
SHOW CREATE TABLE t1;
|
SHOW CREATE TABLE t1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # BUG#27788685: NO WARNING WHEN TRUNCATING A STRING WITH DATA LOSS
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
SET GLOBAL max_allowed_packet=17825792;
|
||||||
|
|
||||||
|
--connect(con1, localhost, root,,)
|
||||||
|
CREATE TABLE t1 (t1_fld1 TEXT);
|
||||||
|
CREATE TABLE t2 (t2_fld1 MEDIUMTEXT);
|
||||||
|
CREATE TABLE t3 (t3_fld1 LONGTEXT);
|
||||||
|
|
||||||
|
INSERT INTO t1 VALUES (REPEAT('a',300));
|
||||||
|
INSERT INTO t2 VALUES (REPEAT('b',65680));
|
||||||
|
INSERT INTO t3 VALUES (REPEAT('c',16777300));
|
||||||
|
|
||||||
|
SELECT LENGTH(t1_fld1) FROM t1;
|
||||||
|
SELECT LENGTH(t2_fld1) FROM t2;
|
||||||
|
SELECT LENGTH(t3_fld1) FROM t3;
|
||||||
|
|
||||||
|
--echo # With strict mode
|
||||||
|
SET SQL_MODE='STRICT_ALL_TABLES';
|
||||||
|
|
||||||
|
--error ER_DATA_TOO_LONG
|
||||||
|
ALTER TABLE t1 CHANGE `t1_fld1` `my_t1_fld1` TINYTEXT;
|
||||||
|
--error ER_DATA_TOO_LONG
|
||||||
|
ALTER TABLE t2 CHANGE `t2_fld1` `my_t2_fld1` TEXT;
|
||||||
|
--error ER_DATA_TOO_LONG
|
||||||
|
ALTER TABLE t3 CHANGE `t3_fld1` `my_t3_fld1` MEDIUMTEXT;
|
||||||
|
|
||||||
|
--echo # With non-strict mode
|
||||||
|
SET SQL_MODE='';
|
||||||
|
|
||||||
|
ALTER TABLE t1 CHANGE `t1_fld1` `my_t1_fld1` TINYTEXT;
|
||||||
|
ALTER TABLE t2 CHANGE `t2_fld1` `my_t2_fld1` TEXT;
|
||||||
|
ALTER TABLE t3 CHANGE `t3_fld1` `my_t3_fld1` MEDIUMTEXT;
|
||||||
|
|
||||||
|
SELECT LENGTH(my_t1_fld1) FROM t1;
|
||||||
|
SELECT LENGTH(my_t2_fld1) FROM t2;
|
||||||
|
SELECT LENGTH(my_t3_fld1) FROM t3;
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
--disconnect con1
|
||||||
|
--source include/wait_until_disconnected.inc
|
||||||
|
|
||||||
|
--connection default
|
||||||
|
DROP TABLE t1, t2, t3;
|
||||||
|
|
||||||
|
SET SQL_MODE=default;
|
||||||
|
SET GLOBAL max_allowed_packet=default;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Test of ALTER TABLE IF [NOT] EXISTS
|
# Test of ALTER TABLE IF [NOT] EXISTS
|
||||||
#
|
#
|
||||||
|
@ -453,14 +453,14 @@ CREATE TABLE t3(a INT);
|
|||||||
LOCK TABLE t2 WRITE;
|
LOCK TABLE t2 WRITE;
|
||||||
SELECT * FROM t2;
|
SELECT * FROM t2;
|
||||||
# drops t2
|
# drops t2
|
||||||
--error ER_UNSUPPORT_COMPRESSED_TEMPORARY_TABLE
|
--error ER_INVALID_DEFAULT
|
||||||
CREATE OR REPLACE TEMPORARY TABLE t1(a INT) ENGINE=InnoDB ROW_FORMAT=COMPRESSED;
|
CREATE OR REPLACE TEMPORARY TABLE t1(c INT DEFAULT '');
|
||||||
# make sure we didn't leave locked tables mode
|
# make sure we didn't leave locked tables mode
|
||||||
--error ER_TABLE_NOT_LOCKED
|
--error ER_TABLE_NOT_LOCKED
|
||||||
SELECT * FROM t3;
|
SELECT * FROM t3;
|
||||||
# drops t1
|
# drops t1
|
||||||
--error ER_UNSUPPORT_COMPRESSED_TEMPORARY_TABLE
|
--error ER_INVALID_DEFAULT
|
||||||
CREATE OR REPLACE TEMPORARY TABLE t2(a INT) ENGINE=InnoDB ROW_FORMAT=COMPRESSED;
|
CREATE OR REPLACE TEMPORARY TABLE t2(c INT DEFAULT '');
|
||||||
# make sure we didn't leave locked tables mode
|
# make sure we didn't leave locked tables mode
|
||||||
--error ER_TABLE_NOT_LOCKED
|
--error ER_TABLE_NOT_LOCKED
|
||||||
SELECT * FROM t3;
|
SELECT * FROM t3;
|
||||||
|
@ -266,6 +266,18 @@ SET NAMES latin1;
|
|||||||
--source include/ctype_mdev13118.inc
|
--source include/ctype_mdev13118.inc
|
||||||
|
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-17298 ASAN unknown-crash / READ of size 1 in my_strntoul_8bit upon INSERT .. SELECT
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
SET NAMES latin1;
|
||||||
|
CREATE TABLE t1 (a CHAR);
|
||||||
|
CREATE TABLE t2 (b ENUM('foo','bar'));
|
||||||
|
INSERT INTO t1 VALUES ('1');
|
||||||
|
INSERT INTO t2 SELECT * FROM t1;
|
||||||
|
DROP TABLE t1, t2;
|
||||||
|
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # End of 10.0 tests
|
--echo # End of 10.0 tests
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -618,6 +618,24 @@ EXPLAIN EXTENDED SELECT * FROM t1 WHERE a='oe' AND a='oe' COLLATE utf8_german2_c
|
|||||||
EXPLAIN EXTENDED SELECT * FROM t1 WHERE a='oe' COLLATE utf8_german2_ci AND a='oe';
|
EXPLAIN EXTENDED SELECT * FROM t1 WHERE a='oe' COLLATE utf8_german2_ci AND a='oe';
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-17064 LIKE function has error behavior on the fields in which the collation is xxx_unicode_xx
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t1 (name VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci);
|
||||||
|
INSERT INTO t1 VALUES ('radio! test');
|
||||||
|
SELECT * FROM t1 WHERE name LIKE '%!!%' ESCAPE '!';
|
||||||
|
ALTER TABLE t1 CHANGE COLUMN name name VARCHAR(20) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
|
||||||
|
SELECT * FROM t1 WHERE name LIKE '%!!%' ESCAPE '!';
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
CREATE TABLE t1 (name VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci);
|
||||||
|
INSERT INTO t1 VALUES ('radio! test');
|
||||||
|
SELECT name LIKE '%!!%' ESCAPE '!' AS c1,
|
||||||
|
name LIKE '%!!%' COLLATE utf8_general_ci ESCAPE '!' AS c2
|
||||||
|
FROM t1;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # End of MariaDB-10.0 tests
|
--echo # End of MariaDB-10.0 tests
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -688,7 +688,6 @@ FLUSH TABLES v1;
|
|||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
|
|
||||||
LOCK TABLES v1 WRITE;
|
LOCK TABLES v1 WRITE;
|
||||||
--error ER_TABLE_NOT_LOCKED_FOR_WRITE
|
|
||||||
FLUSH TABLES v1;
|
FLUSH TABLES v1;
|
||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
|
|
||||||
|
@ -242,3 +242,25 @@ SET optimizer_switch=@save_optimizer_switch;
|
|||||||
--echo #
|
--echo #
|
||||||
|
|
||||||
SELECT UNHEX(CONCAT('414C2', HEX(8 + ROUND(RAND()*7)), SUBSTR(SHA(UUID()),6,33),HEX(2+ROUND(RAND()*8)))) IS NULL AS c1;
|
SELECT UNHEX(CONCAT('414C2', HEX(8 + ROUND(RAND()*7)), SUBSTR(SHA(UUID()),6,33),HEX(2+ROUND(RAND()*8)))) IS NULL AS c1;
|
||||||
|
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-13119 Wrong results with CAST(AS CHAR) and subquery
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
SET optimizer_switch=_utf8'derived_merge=on';
|
||||||
|
CREATE TABLE t1 (t VARCHAR(10) CHARSET latin1);
|
||||||
|
INSERT INTO t1 VALUES('abcdefghi');
|
||||||
|
SELECT CONCAT(t2,'-',t2) c2 FROM (SELECT CAST(t AS CHAR CHARACTER SET utf8) t2 FROM t1) sub;
|
||||||
|
DROP TABLE t1;
|
||||||
|
SET optimizer_switch=@save_optimizer_switch;
|
||||||
|
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-13120 Wrong results with MAKE_SET() and subquery
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t1 (t VARCHAR(10) CHARSET latin1);
|
||||||
|
INSERT INTO t1 VALUES('abcdefghi');
|
||||||
|
SELECT CONCAT(t2,'-',t2) c2 FROM (SELECT MAKE_SET(3,t,t) t2 FROM t1) sub;
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -243,3 +243,38 @@ DROP TABLE t1;
|
|||||||
|
|
||||||
set optimizer_switch= @optimizer_switch_save;
|
set optimizer_switch= @optimizer_switch_save;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-16695: Estimate for rows of derived tables is very high when we are using index_merge union
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
create table t0
|
||||||
|
(
|
||||||
|
key1 int not null,
|
||||||
|
INDEX i1(key1)
|
||||||
|
);
|
||||||
|
|
||||||
|
insert into t0 values (1),(2),(3),(4),(5),(6),(7),(8);
|
||||||
|
let $1=7;
|
||||||
|
set @d=8;
|
||||||
|
while ($1)
|
||||||
|
{
|
||||||
|
eval insert into t0 select key1+ @d from t0;
|
||||||
|
eval set @d=@d*2;
|
||||||
|
dec $1;
|
||||||
|
}
|
||||||
|
alter table t0 add key2 int not null, add index i2(key2);
|
||||||
|
alter table t0 add key3 int not null, add index i3(key3);
|
||||||
|
alter table t0 add key8 int not null, add index i8(key8);
|
||||||
|
|
||||||
|
update t0 set key2=key1,key3=key1,key8=1024-key1;
|
||||||
|
analyze table t0;
|
||||||
|
|
||||||
|
set @optimizer_switch_save=@@optimizer_switch;
|
||||||
|
set optimizer_switch='derived_merge=off,derived_with_keys=off';
|
||||||
|
explain select * from (select * from t0 where key1 = 3 or key2 =3) as Z where Z.key8 > 5;
|
||||||
|
select * from (select * from t0 where key1 = 3 or key2 =3) as Z where Z.key8 > 5;
|
||||||
|
set optimizer_use_condition_selectivity=2;
|
||||||
|
explain select * from (select * from t0 where key1 = 3 or key2 =3) as Z where Z.key8 > 5;
|
||||||
|
select * from (select * from t0 where key1 = 3 or key2 =3) as Z where Z.key8 > 5;
|
||||||
|
set @@optimizer_switch= @optimizer_switch_save;
|
||||||
|
drop table t0;
|
||||||
|
@ -192,7 +192,7 @@ drop view v_bug5719;
|
|||||||
select * from t1;
|
select * from t1;
|
||||||
unlock tables;
|
unlock tables;
|
||||||
create or replace view v_bug5719 as select * from t1;
|
create or replace view v_bug5719 as select * from t1;
|
||||||
lock tables v_bug5719 write;
|
lock tables v_bug5719 read;
|
||||||
select * from v_bug5719;
|
select * from v_bug5719;
|
||||||
--echo
|
--echo
|
||||||
--echo Allowed to use an underlying table under LOCK TABLES <view>
|
--echo Allowed to use an underlying table under LOCK TABLES <view>
|
||||||
@ -368,7 +368,7 @@ create table t2 (j int);
|
|||||||
--echo #
|
--echo #
|
||||||
--echo # Try to perform DDL on table which is locked through view.
|
--echo # Try to perform DDL on table which is locked through view.
|
||||||
create view v1 as select * from t2;
|
create view v1 as select * from t2;
|
||||||
lock tables t1 write, v1 write;
|
lock tables t1 write, v1 read;
|
||||||
--error ER_TABLE_NOT_LOCKED_FOR_WRITE
|
--error ER_TABLE_NOT_LOCKED_FOR_WRITE
|
||||||
flush table t2;
|
flush table t2;
|
||||||
--error ER_TABLE_NOT_LOCKED_FOR_WRITE
|
--error ER_TABLE_NOT_LOCKED_FOR_WRITE
|
||||||
|
@ -734,17 +734,21 @@ DROP VIEW IF EXISTS v1;
|
|||||||
--echo #
|
--echo #
|
||||||
--echo # Test 1: LOCK TABLES v1 WRITE, t1 READ;
|
--echo # Test 1: LOCK TABLES v1 WRITE, t1 READ;
|
||||||
--echo #
|
--echo #
|
||||||
--echo # Thanks to the fact that we no longer allow DDL on tables
|
|
||||||
--echo # which are locked for write implicitly, the exact scenario
|
|
||||||
--echo # in which assert was failing is no longer repeatable.
|
|
||||||
|
|
||||||
CREATE TABLE t1 ( f1 integer );
|
CREATE TABLE t1 ( f1 integer );
|
||||||
CREATE VIEW v1 AS SELECT f1 FROM t1 ;
|
CREATE VIEW v1 AS SELECT f1 FROM t1 ;
|
||||||
|
|
||||||
|
--echo # Connection 2
|
||||||
|
connect (con2,localhost,root);
|
||||||
LOCK TABLES v1 WRITE, t1 READ;
|
LOCK TABLES v1 WRITE, t1 READ;
|
||||||
--error ER_TABLE_NOT_LOCKED_FOR_WRITE
|
|
||||||
FLUSH TABLE t1;
|
FLUSH TABLE t1;
|
||||||
UNLOCK TABLES;
|
disconnect con2;
|
||||||
|
--source include/wait_until_disconnected.inc
|
||||||
|
|
||||||
|
--echo # Connection 1
|
||||||
|
connection default;
|
||||||
|
LOCK TABLES t1 WRITE;
|
||||||
|
FLUSH TABLE t1; # Assertion happened here
|
||||||
|
|
||||||
# Cleanup
|
# Cleanup
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
@ -105,6 +105,18 @@ RENAME TABLE t1 TO T1;
|
|||||||
ALTER TABLE T1 RENAME t1;
|
ALTER TABLE T1 RENAME t1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# MDEV-13912 mysql_upgrade: case (in)sensitivity for stored procedures
|
||||||
|
#
|
||||||
|
create database TEST;
|
||||||
|
create procedure TEST.pr() begin end;
|
||||||
|
create procedure test.pr() begin end;
|
||||||
|
--exec $MYSQL_UPGRADE --force 2>&1
|
||||||
|
drop procedure test.pr;
|
||||||
|
drop database TEST;
|
||||||
|
|
||||||
|
# End of 5.5 tests
|
||||||
|
|
||||||
#
|
#
|
||||||
# MDEV-9014 SHOW TRIGGERS not case sensitive
|
# MDEV-9014 SHOW TRIGGERS not case sensitive
|
||||||
#
|
#
|
||||||
@ -113,4 +125,7 @@ create trigger t1_bi before insert on t1 for each row set new.a= 1;
|
|||||||
show triggers like '%T1%';
|
show triggers like '%T1%';
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
let $datadir= `select @@datadir`;
|
||||||
|
remove_file $datadir/mysql_upgrade_info;
|
||||||
|
|
||||||
set GLOBAL sql_mode=default;
|
set GLOBAL sql_mode=default;
|
||||||
|
@ -13,3 +13,17 @@ select * from t1 order by now(), cast(pk as char(0));
|
|||||||
--enable_warnings
|
--enable_warnings
|
||||||
show warnings;
|
show warnings;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-17020: Assertion `length > 0' failed in ptr_compare upon ORDER BY with bad conversion
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
set @save_sql_mode= @@sql_mode;
|
||||||
|
SET @@sql_mode= '';
|
||||||
|
CREATE TABLE t1 (pk INT PRIMARY KEY);
|
||||||
|
INSERT INTO t1 VALUES (1),(2);
|
||||||
|
explain
|
||||||
|
SELECT * FROM t1 ORDER BY 'foo', CONVERT(pk, CHAR(0)) LIMIT 2;
|
||||||
|
SELECT * FROM t1 ORDER BY 'foo', Cast(pk as CHAR(0)) LIMIT 2;
|
||||||
|
set @@sql_mode= @save_sql_mode;
|
||||||
|
drop table t1;
|
||||||
|
@ -858,3 +858,22 @@ CREATE TABLE t2 LIKE t1 PARTITION (p0, p2);
|
|||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
SET @@default_storage_engine = @old_default_storage_engine;
|
SET @@default_storage_engine = @old_default_storage_engine;
|
||||||
|
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-14815 - Server crash or AddressSanitizer errors or valgrind warnings in thr_lock / has_old_lock upon FLUSH TABLES
|
||||||
|
--echo #
|
||||||
|
CREATE TABLE t1 (i INT) ENGINE=MEMORY PARTITION BY RANGE (i) (PARTITION p0 VALUES LESS THAN (4), PARTITION pm VALUES LESS THAN MAXVALUE);
|
||||||
|
CREATE TABLE t2 (i INT) ENGINE=MEMORY;
|
||||||
|
LOCK TABLE t1 WRITE, t2 WRITE;
|
||||||
|
SELECT * FROM t1 PARTITION (p0);
|
||||||
|
FLUSH TABLES;
|
||||||
|
SELECT * FROM t1 PARTITION (p0);
|
||||||
|
ALTER TABLE t1 TRUNCATE PARTITION p0;
|
||||||
|
SELECT * FROM t1 PARTITION (p0);
|
||||||
|
ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2;
|
||||||
|
SELECT * FROM t1 PARTITION (p0);
|
||||||
|
UNLOCK TABLES;
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
DROP TABLE t1, t2;
|
||||||
|
@ -175,12 +175,12 @@ set @@sql_mode= @org_mode;
|
|||||||
## ( Bug#29290 type_datetime.test failure in 5.1 )
|
## ( Bug#29290 type_datetime.test failure in 5.1 )
|
||||||
## Therefore we sleep a bit if we are too close to midnight.
|
## Therefore we sleep a bit if we are too close to midnight.
|
||||||
## The complete test itself needs around 1 second.
|
## The complete test itself needs around 1 second.
|
||||||
## Therefore a time_distance to midnight of 5 seconds should be sufficient.
|
## Therefore a time_distance to midnight of 10 seconds should be sufficient.
|
||||||
if (`SELECT CURTIME() > SEC_TO_TIME(24 * 3600 - 5)`)
|
if (`SELECT CURTIME() > SEC_TO_TIME(24 * 3600 - 10)`)
|
||||||
{
|
{
|
||||||
# We are here when CURTIME() is between '23:59:56' and '23:59:59'.
|
# We are here when CURTIME() is between '23:59:51' and '23:59:59'.
|
||||||
# So a sleep time of 5 seconds brings us between '00:00:01' and '00:00:04'.
|
# So a sleep time of 10 seconds brings us between '00:00:01' and '00:00:09'.
|
||||||
--real_sleep 5
|
--real_sleep 10
|
||||||
}
|
}
|
||||||
create table t1 (f1 date, f2 datetime, f3 timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);
|
create table t1 (f1 date, f2 datetime, f3 timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);
|
||||||
insert into t1(f1) values(curdate());
|
insert into t1(f1) values(curdate());
|
||||||
|
@ -1583,8 +1583,51 @@ select 0.000000000000000000000000000000000000000000000000001 mod 1;
|
|||||||
select 0.0000000001 mod 1;
|
select 0.0000000001 mod 1;
|
||||||
select 0.01 mod 1;
|
select 0.01 mod 1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# MDEV-17256 Decimal field multiplication bug
|
||||||
|
#
|
||||||
|
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
`FLD1` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD2` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD3` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD4` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD5` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD6` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD7` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD8` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD9` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD10` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD11` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD12` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD13` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD14` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD15` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD16` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD17` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD18` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD19` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD20` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD21` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD22` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||||
|
`FLD23` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO t1 VALUES (001.0760,000.9500,001.0000,001.0000,001.0000,
|
||||||
|
001.0000,001.0000,001.0000,001.0000,001.0000,001.0000,000.5949,001.0194,
|
||||||
|
001.0000,001.0000,001.0000,001.0000,001.0000,001.0000,000.9220,001.1890,001.2130,327.2690);
|
||||||
|
|
||||||
|
select FLD1*FLD2*FLD3*FLD4*FLD5*FLD6*FLD7*FLD8*FLD9*FLD10*FLD11*FLD12*FLD13*FLD14*FLD15*FLD16*FLD17*FLD18*FLD19*FLD20*FLD21*FLD22*FLD23 as calc1 from t1;
|
||||||
|
select FLD23*FLD2*FLD1*FLD4*FLD5*FLD11*FLD12*FLD13*FLD3*FLD15*FLD16*FLD17*FLD18*FLD19*FLD20*FLD21*FLD22*FLD14*FLD6*FLD7*FLD8*FLD9*FLD10 as calc2 from t1;
|
||||||
|
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
CREATE TABLE t1 AS SELECT 1.0 * 2.000;
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # Start of 10.0 tests
|
--echo # End of 5.5 tests
|
||||||
--echo #
|
--echo #
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -187,9 +187,16 @@ select a from t1 where a=b; # not a constant
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
drop function y2k;
|
drop function y2k;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-17257 Server crashes in Item::field_type_for_temporal_comparison or in get_datetime_value on SELECT with YEAR field and IN
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t1 (y YEAR);
|
||||||
|
SELECT * FROM t1 WHERE y IN ( CAST( '1993-03-26 10:14:20' AS DATE ), NULL );
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # Start of 10.1 tests
|
--echo # End of 10.0 tests
|
||||||
--echo #
|
--echo #
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
# Copyright (c) 2006, 2014, Oracle and/or its affiliates
|
# Copyright (c) 2006, 2014, Oracle and/or its affiliates
|
||||||
|
# Copyright (c) 2009, 2018, MariaDB Corporation
|
||||||
#
|
#
|
||||||
# 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
|
||||||
|
@ -640,7 +640,7 @@ int _my_b_write(IO_CACHE *info, const uchar *Buffer, size_t Count)
|
|||||||
|
|
||||||
int _my_b_cache_read(IO_CACHE *info, uchar *Buffer, size_t Count)
|
int _my_b_cache_read(IO_CACHE *info, uchar *Buffer, size_t Count)
|
||||||
{
|
{
|
||||||
size_t length, diff_length, left_length= 0, max_length;
|
size_t length= 0, diff_length, left_length= 0, max_length;
|
||||||
my_off_t pos_in_file;
|
my_off_t pos_in_file;
|
||||||
DBUG_ENTER("_my_b_cache_read");
|
DBUG_ENTER("_my_b_cache_read");
|
||||||
|
|
||||||
@ -756,7 +756,10 @@ int _my_b_cache_read(IO_CACHE *info, uchar *Buffer, size_t Count)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
info->error= 0;
|
info->error= 0;
|
||||||
|
if (length == 0) /* nothing was read */
|
||||||
DBUG_RETURN(0); /* EOF */
|
DBUG_RETURN(0); /* EOF */
|
||||||
|
|
||||||
|
length= 0; /* non-zero size read was done */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user