mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge branch '10.5' into 10.6
This commit is contained in:
@ -264,8 +264,6 @@ IF(SECURITY_HARDENED AND NOT WITH_ASAN AND NOT WITH_UBSAN AND NOT WITH_TSAN AND
|
|||||||
MY_CHECK_AND_SET_COMPILER_FLAG("-D_FORTIFY_SOURCE=2" RELEASE RELWITHDEBINFO)
|
MY_CHECK_AND_SET_COMPILER_FLAG("-D_FORTIFY_SOURCE=2" RELEASE RELWITHDEBINFO)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
INCLUDE(wsrep)
|
|
||||||
|
|
||||||
OPTION(WITH_DBUG_TRACE "Enable DBUG_ENTER()/DBUG_RETURN()/DBUG_PRINT()" ON)
|
OPTION(WITH_DBUG_TRACE "Enable DBUG_ENTER()/DBUG_RETURN()/DBUG_PRINT()" ON)
|
||||||
IF(WITH_DBUG_TRACE)
|
IF(WITH_DBUG_TRACE)
|
||||||
FOREACH(LANG C CXX)
|
FOREACH(LANG C CXX)
|
||||||
@ -276,7 +274,12 @@ ENDIF()
|
|||||||
# Always enable debug sync for debug builds.
|
# Always enable debug sync for debug builds.
|
||||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DENABLED_DEBUG_SYNC")
|
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DENABLED_DEBUG_SYNC")
|
||||||
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DENABLED_DEBUG_SYNC")
|
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DENABLED_DEBUG_SYNC")
|
||||||
|
|
||||||
|
IF(CMAKE_COMPILER_IS_GNUCC AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "10")
|
||||||
|
# Enable extra checks when using a recent enough version of GNU libstdc++
|
||||||
|
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_GLIBCXX_DEBUG -D_GLIBCXX_ASSERTIONS")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
OPTION(ENABLE_GCOV "Enable gcov (debug, Linux builds only)" OFF)
|
OPTION(ENABLE_GCOV "Enable gcov (debug, Linux builds only)" OFF)
|
||||||
IF (ENABLE_GCOV)
|
IF (ENABLE_GCOV)
|
||||||
MY_CHECK_AND_SET_COMPILER_FLAG("-DHAVE_gcov -fprofile-arcs -ftest-coverage -lgcov" DEBUG)
|
MY_CHECK_AND_SET_COMPILER_FLAG("-DHAVE_gcov -fprofile-arcs -ftest-coverage -lgcov" DEBUG)
|
||||||
@ -337,6 +340,8 @@ ELSEIF(TRASH_FREED_MEMORY MATCHES "AUTO" AND NOT WIN32 AND NOT WITH_VALGRIND AND
|
|||||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DTRASH_FREED_MEMORY")
|
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DTRASH_FREED_MEMORY")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
|
INCLUDE(wsrep)
|
||||||
|
|
||||||
# Set commonly used variables
|
# Set commonly used variables
|
||||||
IF(WIN32)
|
IF(WIN32)
|
||||||
SET(DEFAULT_MYSQL_HOME "C:/Program Files/MariaDB ${MYSQL_BASE_VERSION}")
|
SET(DEFAULT_MYSQL_HOME "C:/Program Files/MariaDB ${MYSQL_BASE_VERSION}")
|
||||||
|
@ -3024,7 +3024,8 @@ int main(int argc, char** argv)
|
|||||||
{
|
{
|
||||||
if (!opt_version)
|
if (!opt_version)
|
||||||
{
|
{
|
||||||
usage();
|
error("Please provide the log file(s). Run with '--help' for usage "
|
||||||
|
"instructions.");
|
||||||
retval= ERROR_STOP;
|
retval= ERROR_STOP;
|
||||||
}
|
}
|
||||||
goto err;
|
goto err;
|
||||||
|
@ -3068,8 +3068,9 @@ static uint get_table_structure(const char *table, const char *db, char *table_t
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
dynstr_set_checked(&select_field_names, "");
|
dynstr_set_checked(&select_field_names, "");
|
||||||
insert_option= ((delayed && opt_ignore) ? " DELAYED IGNORE " :
|
|
||||||
delayed ? " DELAYED " : opt_ignore ? " IGNORE " : "");
|
insert_option= ((delayed && opt_ignore) ? "DELAYED IGNORE " :
|
||||||
|
delayed ? "DELAYED " : opt_ignore ? "IGNORE " : "");
|
||||||
|
|
||||||
verbose_msg("-- Retrieving table structure for table %s...\n", table);
|
verbose_msg("-- Retrieving table structure for table %s...\n", table);
|
||||||
|
|
||||||
|
@ -49,16 +49,16 @@ MACRO(BUNDLE_PCRE2)
|
|||||||
SET(pcre2_flags${v} "${pcre2_flags${v}} -std=c99 ")
|
SET(pcre2_flags${v} "${pcre2_flags${v}} -std=c99 ")
|
||||||
IF(MSVC)
|
IF(MSVC)
|
||||||
# Suppress a warning
|
# Suppress a warning
|
||||||
STRING(APPEND pcre2_flags${v} " /wd4244 " )
|
STRING(APPEND pcre2_flags${v} " /wd4244 /wd4267 " )
|
||||||
# Disable asan support
|
# Disable asan support
|
||||||
STRING(REPLACE "-fsanitize=address" "" pcre2_flags${v} "${CMAKE_C_FLAGS${v}}")
|
STRING(REPLACE "-fsanitize=address" "" pcre2_flags${v} "${pcre2_flags${v}}")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ENDFOREACH()
|
ENDFOREACH()
|
||||||
ExternalProject_Add(
|
ExternalProject_Add(
|
||||||
pcre2
|
pcre2
|
||||||
PREFIX "${dir}"
|
PREFIX "${dir}"
|
||||||
URL "https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.42/pcre2-10.42.zip"
|
URL "https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.43/pcre2-10.43.zip"
|
||||||
URL_MD5 fe90992fbfb03f854bd9f344074f49eb
|
URL_MD5 b58f050f2fdd6f2ca5774a2975377a85
|
||||||
INSTALL_COMMAND ""
|
INSTALL_COMMAND ""
|
||||||
CMAKE_ARGS
|
CMAKE_ARGS
|
||||||
"-DCMAKE_WARN_DEPRECATED=FALSE"
|
"-DCMAKE_WARN_DEPRECATED=FALSE"
|
||||||
|
@ -37,10 +37,14 @@ MACRO (MYSQL_CHECK_ZLIB_WITH_COMPRESS)
|
|||||||
IF(WITH_ZLIB STREQUAL "bundled")
|
IF(WITH_ZLIB STREQUAL "bundled")
|
||||||
MYSQL_USE_BUNDLED_ZLIB()
|
MYSQL_USE_BUNDLED_ZLIB()
|
||||||
ELSE()
|
ELSE()
|
||||||
INCLUDE(FindZLIB)
|
FIND_PACKAGE(PkgConfig QUIET)
|
||||||
|
IF(PKG_CONFIG_FOUND AND (COMMAND PKG_GET_VARIABLE) AND (NOT WIN32))
|
||||||
|
PKG_GET_VARIABLE(ZLIB_ROOT zlib prefix)
|
||||||
|
ENDIF()
|
||||||
|
FIND_PACKAGE(ZLIB)
|
||||||
IF(ZLIB_FOUND)
|
IF(ZLIB_FOUND)
|
||||||
INCLUDE(CheckFunctionExists)
|
INCLUDE(CheckFunctionExists)
|
||||||
SET(CMAKE_REQUIRED_LIBRARIES z)
|
SET(CMAKE_REQUIRED_LIBRARIES ${ZLIB_LIBRARIES})
|
||||||
CHECK_FUNCTION_EXISTS(crc32 HAVE_CRC32)
|
CHECK_FUNCTION_EXISTS(crc32 HAVE_CRC32)
|
||||||
CHECK_FUNCTION_EXISTS(compressBound HAVE_COMPRESSBOUND)
|
CHECK_FUNCTION_EXISTS(compressBound HAVE_COMPRESSBOUND)
|
||||||
CHECK_FUNCTION_EXISTS(deflateBound HAVE_DEFLATEBOUND)
|
CHECK_FUNCTION_EXISTS(deflateBound HAVE_DEFLATEBOUND)
|
||||||
|
@ -3,6 +3,11 @@
|
|||||||
# will be skipped unless innodb is enabled
|
# will be skipped unless innodb is enabled
|
||||||
#
|
#
|
||||||
--disable_query_log
|
--disable_query_log
|
||||||
|
if (`select version() like '%debug%'`)
|
||||||
|
{
|
||||||
|
SET STATEMENT sql_log_bin=0 FOR
|
||||||
|
call mtr.add_suppression("InnoDB: Trying to delete tablespace.*pending operations");
|
||||||
|
}
|
||||||
if (`select count(*) from information_schema.system_variables where variable_name='have_sanitizer' and global_value like 'MSAN%'`)
|
if (`select count(*) from information_schema.system_variables where variable_name='have_sanitizer' and global_value like 'MSAN%'`)
|
||||||
{
|
{
|
||||||
SET STATEMENT sql_log_bin=0 FOR
|
SET STATEMENT sql_log_bin=0 FOR
|
||||||
|
@ -4313,5 +4313,30 @@ ERROR HY000: Illegal parameter data types bigint unsigned and row for operation
|
|||||||
SELECT @@max_allowed_packet=ROW(1,1);
|
SELECT @@max_allowed_packet=ROW(1,1);
|
||||||
ERROR HY000: Illegal parameter data types bigint unsigned and row for operation '='
|
ERROR HY000: Illegal parameter data types bigint unsigned and row for operation '='
|
||||||
#
|
#
|
||||||
|
# MDEV-21034 GREATEST() and LEAST() malfunction for NULL
|
||||||
|
#
|
||||||
|
SELECT 5 AS c1 FROM dual WHERE GREATEST(1, NULL);
|
||||||
|
c1
|
||||||
|
SELECT 5 AS c1 FROM dual WHERE LEAST(1, NULL);
|
||||||
|
c1
|
||||||
|
CREATE TABLE t0 (c0 INT);
|
||||||
|
INSERT INTO t0 VALUES (1);
|
||||||
|
SELECT * FROM t0 WHERE GREATEST(c0, NULL);
|
||||||
|
c0
|
||||||
|
SELECT * FROM t0 WHERE LEAST(c0, NULL);
|
||||||
|
c0
|
||||||
|
DROP TABLE t0;
|
||||||
|
SELECT 5 AS c1 FROM dual WHERE GREATEST(1e0, NULL);
|
||||||
|
c1
|
||||||
|
SELECT 5 AS c1 FROM dual WHERE LEAST(1e0, NULL);
|
||||||
|
c1
|
||||||
|
CREATE TABLE t0 (c0 DOUBLE);
|
||||||
|
INSERT INTO t0 VALUES (1);
|
||||||
|
SELECT * FROM t0 WHERE GREATEST(c0, NULL);
|
||||||
|
c0
|
||||||
|
SELECT * FROM t0 WHERE LEAST(c0, NULL);
|
||||||
|
c0
|
||||||
|
DROP TABLE t0;
|
||||||
|
#
|
||||||
# End of 10.5 tests
|
# End of 10.5 tests
|
||||||
#
|
#
|
||||||
|
@ -1115,6 +1115,29 @@ SELECT 0x20+ROW(1,1);
|
|||||||
--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION
|
--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION
|
||||||
SELECT @@max_allowed_packet=ROW(1,1);
|
SELECT @@max_allowed_packet=ROW(1,1);
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-21034 GREATEST() and LEAST() malfunction for NULL
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
SELECT 5 AS c1 FROM dual WHERE GREATEST(1, NULL);
|
||||||
|
SELECT 5 AS c1 FROM dual WHERE LEAST(1, NULL);
|
||||||
|
|
||||||
|
CREATE TABLE t0 (c0 INT);
|
||||||
|
INSERT INTO t0 VALUES (1);
|
||||||
|
SELECT * FROM t0 WHERE GREATEST(c0, NULL);
|
||||||
|
SELECT * FROM t0 WHERE LEAST(c0, NULL);
|
||||||
|
DROP TABLE t0;
|
||||||
|
|
||||||
|
SELECT 5 AS c1 FROM dual WHERE GREATEST(1e0, NULL);
|
||||||
|
SELECT 5 AS c1 FROM dual WHERE LEAST(1e0, NULL);
|
||||||
|
|
||||||
|
CREATE TABLE t0 (c0 DOUBLE);
|
||||||
|
INSERT INTO t0 VALUES (1);
|
||||||
|
SELECT * FROM t0 WHERE GREATEST(c0, NULL);
|
||||||
|
SELECT * FROM t0 WHERE LEAST(c0, NULL);
|
||||||
|
DROP TABLE t0;
|
||||||
|
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # End of 10.5 tests
|
--echo # End of 10.5 tests
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -3617,5 +3617,20 @@ SELECT CRC32(ExtractValue('<a><b/></a>', '/a/b')) AS f;
|
|||||||
f
|
f
|
||||||
0
|
0
|
||||||
#
|
#
|
||||||
|
# MDEV-33534 UBSAN: Negation of -X cannot be represented in type 'long long int'; cast to an unsigned type to negate this value to itself in my_double_round from sql/item_func.cc|
|
||||||
|
#
|
||||||
|
SELECT TRUNCATE(EXP(-1.e-2),-1.e+30) AS c1;
|
||||||
|
c1
|
||||||
|
0
|
||||||
|
SELECT (TRUNCATE(EXP(-1.e-2),-1.e+30) % RADIANS(-1)) AS c1;
|
||||||
|
c1
|
||||||
|
0
|
||||||
|
SELECT (TRUNCATE(EXP(-1.e-2),-1.e+30) % RADIANS(-1)) * (LAST_DAY('1-03-30 1:29:12') MOD 1 + COS(-1)) AS c1;
|
||||||
|
c1
|
||||||
|
0
|
||||||
|
SELECT(ASIN(-1)+ LN(-1)) % (ATAN(-1) MOD FLOOR(1)) * (TRUNCATE(EXP(-1.e-2),-1.e+30) % RADIANS(-1)) * (LAST_DAY('1-03-30 1:29:12') MOD 1 + COS(-1)) AS c1;
|
||||||
|
c1
|
||||||
|
NULL
|
||||||
|
#
|
||||||
# End of 10.5 tests
|
# End of 10.5 tests
|
||||||
#
|
#
|
||||||
|
@ -1929,6 +1929,16 @@ DROP TABLE t2, t1;
|
|||||||
SELECT CRC32(ExtractValue('<a><b/></a>', '/a/b')) AS f;
|
SELECT CRC32(ExtractValue('<a><b/></a>', '/a/b')) AS f;
|
||||||
|
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-33534 UBSAN: Negation of -X cannot be represented in type 'long long int'; cast to an unsigned type to negate this value to itself in my_double_round from sql/item_func.cc|
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
SELECT TRUNCATE(EXP(-1.e-2),-1.e+30) AS c1;
|
||||||
|
SELECT (TRUNCATE(EXP(-1.e-2),-1.e+30) % RADIANS(-1)) AS c1;
|
||||||
|
SELECT (TRUNCATE(EXP(-1.e-2),-1.e+30) % RADIANS(-1)) * (LAST_DAY('1-03-30 1:29:12') MOD 1 + COS(-1)) AS c1;
|
||||||
|
SELECT(ASIN(-1)+ LN(-1)) % (ATAN(-1) MOD FLOOR(1)) * (TRUNCATE(EXP(-1.e-2),-1.e+30) % RADIANS(-1)) * (LAST_DAY('1-03-30 1:29:12') MOD 1 + COS(-1)) AS c1;
|
||||||
|
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # End of 10.5 tests
|
--echo # End of 10.5 tests
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -178,4 +178,18 @@ select 'foo' regexp x from t1 order by x desc;
|
|||||||
0
|
0
|
||||||
1
|
1
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
#
|
||||||
|
# MDEV-21076 NOT NULL and UNIQUE constraints cause SUM() to yield an incorrect result
|
||||||
|
#
|
||||||
|
CREATE TABLE t0(c0 INT NOT NULL, c1 CHAR UNIQUE);
|
||||||
|
INSERT INTO t0 VALUES (0, 1);
|
||||||
|
INSERT INTO t0 VALUES (0, '');
|
||||||
|
SELECT (c1 RLIKE c1), (c0 IS NULL) FROM t0;
|
||||||
|
(c1 RLIKE c1) (c0 IS NULL)
|
||||||
|
1 0
|
||||||
|
1 0
|
||||||
|
SELECT SUM(a.t) FROM (SELECT (c1 RLIKE c1) = (c0 IS NULL) as t FROM t0) as a;
|
||||||
|
SUM(a.t)
|
||||||
|
0
|
||||||
|
DROP TABLE t0;
|
||||||
# End of 10.5 tests
|
# End of 10.5 tests
|
||||||
|
@ -121,4 +121,16 @@ select 'foo' regexp x from t1 order by x asc;
|
|||||||
select 'foo' regexp x from t1 order by x desc;
|
select 'foo' regexp x from t1 order by x desc;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-21076 NOT NULL and UNIQUE constraints cause SUM() to yield an incorrect result
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t0(c0 INT NOT NULL, c1 CHAR UNIQUE);
|
||||||
|
INSERT INTO t0 VALUES (0, 1);
|
||||||
|
INSERT INTO t0 VALUES (0, '');
|
||||||
|
SELECT (c1 RLIKE c1), (c0 IS NULL) FROM t0;
|
||||||
|
SELECT SUM(a.t) FROM (SELECT (c1 RLIKE c1) = (c0 IS NULL) as t FROM t0) as a;
|
||||||
|
DROP TABLE t0;
|
||||||
|
|
||||||
|
|
||||||
--echo # End of 10.5 tests
|
--echo # End of 10.5 tests
|
||||||
|
@ -102,7 +102,7 @@ CREATE TABLE `t1` (
|
|||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
|
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
|
||||||
INSERT DELAYED IGNORE INTO `t1` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
INSERT DELAYED IGNORE INTO `t1` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
||||||
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
|
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
|
||||||
DROP TABLE IF EXISTS `t2`;
|
DROP TABLE IF EXISTS `t2`;
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
@ -114,7 +114,7 @@ CREATE TABLE `t2` (
|
|||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `t2` DISABLE KEYS */;
|
/*!40000 ALTER TABLE `t2` DISABLE KEYS */;
|
||||||
INSERT DELAYED IGNORE INTO `t2` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
INSERT DELAYED IGNORE INTO `t2` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
||||||
/*!40000 ALTER TABLE `t2` ENABLE KEYS */;
|
/*!40000 ALTER TABLE `t2` ENABLE KEYS */;
|
||||||
DROP TABLE IF EXISTS `t3`;
|
DROP TABLE IF EXISTS `t3`;
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
@ -126,7 +126,7 @@ CREATE TABLE `t3` (
|
|||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `t3` DISABLE KEYS */;
|
/*!40000 ALTER TABLE `t3` DISABLE KEYS */;
|
||||||
INSERT DELAYED IGNORE INTO `t3` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
INSERT DELAYED IGNORE INTO `t3` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
||||||
/*!40000 ALTER TABLE `t3` ENABLE KEYS */;
|
/*!40000 ALTER TABLE `t3` ENABLE KEYS */;
|
||||||
DROP TABLE IF EXISTS `t4`;
|
DROP TABLE IF EXISTS `t4`;
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
@ -138,7 +138,7 @@ CREATE TABLE `t4` (
|
|||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `t4` DISABLE KEYS */;
|
/*!40000 ALTER TABLE `t4` DISABLE KEYS */;
|
||||||
INSERT DELAYED IGNORE INTO `t4` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
INSERT DELAYED IGNORE INTO `t4` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
||||||
/*!40000 ALTER TABLE `t4` ENABLE KEYS */;
|
/*!40000 ALTER TABLE `t4` ENABLE KEYS */;
|
||||||
DROP TABLE IF EXISTS `t5`;
|
DROP TABLE IF EXISTS `t5`;
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
@ -150,7 +150,7 @@ CREATE TABLE `t5` (
|
|||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `t5` DISABLE KEYS */;
|
/*!40000 ALTER TABLE `t5` DISABLE KEYS */;
|
||||||
INSERT DELAYED IGNORE INTO `t5` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
INSERT DELAYED IGNORE INTO `t5` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
||||||
/*!40000 ALTER TABLE `t5` ENABLE KEYS */;
|
/*!40000 ALTER TABLE `t5` ENABLE KEYS */;
|
||||||
DROP TABLE IF EXISTS `t6`;
|
DROP TABLE IF EXISTS `t6`;
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
@ -162,7 +162,7 @@ CREATE TABLE `t6` (
|
|||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `t6` DISABLE KEYS */;
|
/*!40000 ALTER TABLE `t6` DISABLE KEYS */;
|
||||||
INSERT IGNORE INTO `t6` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
INSERT IGNORE INTO `t6` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
||||||
/*!40000 ALTER TABLE `t6` ENABLE KEYS */;
|
/*!40000 ALTER TABLE `t6` ENABLE KEYS */;
|
||||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||||
|
|
||||||
@ -199,7 +199,7 @@ CREATE TABLE `t1` (
|
|||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
|
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
|
||||||
INSERT DELAYED INTO `t1` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
INSERT DELAYED INTO `t1` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
||||||
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
|
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
|
||||||
DROP TABLE IF EXISTS `t2`;
|
DROP TABLE IF EXISTS `t2`;
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
@ -211,7 +211,7 @@ CREATE TABLE `t2` (
|
|||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `t2` DISABLE KEYS */;
|
/*!40000 ALTER TABLE `t2` DISABLE KEYS */;
|
||||||
INSERT DELAYED INTO `t2` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
INSERT DELAYED INTO `t2` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
||||||
/*!40000 ALTER TABLE `t2` ENABLE KEYS */;
|
/*!40000 ALTER TABLE `t2` ENABLE KEYS */;
|
||||||
DROP TABLE IF EXISTS `t3`;
|
DROP TABLE IF EXISTS `t3`;
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
@ -223,7 +223,7 @@ CREATE TABLE `t3` (
|
|||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `t3` DISABLE KEYS */;
|
/*!40000 ALTER TABLE `t3` DISABLE KEYS */;
|
||||||
INSERT DELAYED INTO `t3` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
INSERT DELAYED INTO `t3` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
||||||
/*!40000 ALTER TABLE `t3` ENABLE KEYS */;
|
/*!40000 ALTER TABLE `t3` ENABLE KEYS */;
|
||||||
DROP TABLE IF EXISTS `t4`;
|
DROP TABLE IF EXISTS `t4`;
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
@ -235,7 +235,7 @@ CREATE TABLE `t4` (
|
|||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `t4` DISABLE KEYS */;
|
/*!40000 ALTER TABLE `t4` DISABLE KEYS */;
|
||||||
INSERT DELAYED INTO `t4` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
INSERT DELAYED INTO `t4` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
||||||
/*!40000 ALTER TABLE `t4` ENABLE KEYS */;
|
/*!40000 ALTER TABLE `t4` ENABLE KEYS */;
|
||||||
DROP TABLE IF EXISTS `t5`;
|
DROP TABLE IF EXISTS `t5`;
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
@ -247,7 +247,7 @@ CREATE TABLE `t5` (
|
|||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `t5` DISABLE KEYS */;
|
/*!40000 ALTER TABLE `t5` DISABLE KEYS */;
|
||||||
INSERT DELAYED INTO `t5` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
INSERT DELAYED INTO `t5` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
||||||
/*!40000 ALTER TABLE `t5` ENABLE KEYS */;
|
/*!40000 ALTER TABLE `t5` ENABLE KEYS */;
|
||||||
DROP TABLE IF EXISTS `t6`;
|
DROP TABLE IF EXISTS `t6`;
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
|
File diff suppressed because one or more lines are too long
@ -734,7 +734,7 @@ CREATE TABLE `t1` (
|
|||||||
|
|
||||||
LOCK TABLES `t1` WRITE;
|
LOCK TABLES `t1` WRITE;
|
||||||
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
|
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
|
||||||
INSERT IGNORE INTO `t1` VALUES (1),(2),(3),(4),(5),(6);
|
INSERT IGNORE INTO `t1` VALUES (1),(2),(3),(4),(5),(6);
|
||||||
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
|
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
|
||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||||
@ -767,7 +767,7 @@ CREATE TABLE `t1` (
|
|||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
|
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
|
||||||
INSERT DELAYED IGNORE INTO `t1` VALUES (1),(2),(3),(4),(5),(6);
|
INSERT DELAYED IGNORE INTO `t1` VALUES (1),(2),(3),(4),(5),(6);
|
||||||
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
|
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
|
||||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||||
|
|
||||||
@ -5558,7 +5558,7 @@ CREATE TABLE `nonunique_table_name` (
|
|||||||
UNIQUE KEY `i1` (`i1`)
|
UNIQUE KEY `i1` (`i1`)
|
||||||
) ENGINE=MEMORY AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
) ENGINE=MEMORY AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
INSERT DELAYED INTO `nonunique_table_name` VALUES (1),(2);
|
INSERT DELAYED INTO `nonunique_table_name` VALUES (1),(2);
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
/*!40101 SET character_set_client = utf8 */;
|
/*!40101 SET character_set_client = utf8 */;
|
||||||
CREATE TABLE `nonunique_table_view_name` (
|
CREATE TABLE `nonunique_table_view_name` (
|
||||||
@ -5576,7 +5576,7 @@ CREATE TABLE `basetable` (
|
|||||||
`id` smallint(6) DEFAULT NULL
|
`id` smallint(6) DEFAULT NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
INSERT DELAYED INTO `basetable` VALUES (5),(6);
|
INSERT DELAYED INTO `basetable` VALUES (5),(6);
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
/*!40101 SET character_set_client = utf8 */;
|
/*!40101 SET character_set_client = utf8 */;
|
||||||
CREATE TABLE `nonunique_table_name` (
|
CREATE TABLE `nonunique_table_name` (
|
||||||
|
@ -18,7 +18,7 @@ SHOW WARNINGS;
|
|||||||
SET SESSION wsrep_sync_wait = 0;
|
SET SESSION wsrep_sync_wait = 0;
|
||||||
--source include/kill_galera.inc
|
--source include/kill_galera.inc
|
||||||
|
|
||||||
--let $start_mysqld_params = ""
|
--let $start_mysqld_params =
|
||||||
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
|
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
|
||||||
--source include/start_mysqld.inc
|
--source include/start_mysqld.inc
|
||||||
|
|
||||||
|
@ -50,12 +50,12 @@ SET SESSION wsrep_sync_wait = 0;
|
|||||||
--source include/kill_galera.inc
|
--source include/kill_galera.inc
|
||||||
|
|
||||||
--remove_file $MYSQLTEST_VARDIR/mysqld.1/data/grastate.dat
|
--remove_file $MYSQLTEST_VARDIR/mysqld.1/data/grastate.dat
|
||||||
--let $start_mysqld_params = "--wsrep-new-cluster"
|
--let $start_mysqld_params =--wsrep-new-cluster
|
||||||
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
||||||
--source include/start_mysqld.inc
|
--source include/start_mysqld.inc
|
||||||
|
|
||||||
--connection node_2
|
--connection node_2
|
||||||
--let $start_mysqld_params = ""
|
--let $start_mysqld_params =
|
||||||
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
|
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
|
||||||
--source include/start_mysqld.inc
|
--source include/start_mysqld.inc
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
--echo Starting server ...
|
--echo Starting server ...
|
||||||
--let $restart_noprint=2
|
--let $restart_noprint=2
|
||||||
--let $start_mysqld_params="--wsrep-new-cluster"
|
--let $start_mysqld_params=--wsrep-new-cluster
|
||||||
--source include/start_mysqld.inc
|
--source include/start_mysqld.inc
|
||||||
--source include/wait_until_ready.inc
|
--source include/wait_until_ready.inc
|
||||||
|
|
||||||
|
@ -19,5 +19,4 @@ galera_ipv6_mariabackup_section : temporarily disabled at the request of Codersh
|
|||||||
# Opensuse/suse/rocky9/rocky84/rhel9/rhel8-ppc64le .. - all same IPv6 isn't configured right or skipping or galera
|
# Opensuse/suse/rocky9/rocky84/rhel9/rhel8-ppc64le .. - all same IPv6 isn't configured right or skipping or galera
|
||||||
galera_ipv6_rsync : Can't connect to server on '::1' (115)
|
galera_ipv6_rsync : Can't connect to server on '::1' (115)
|
||||||
galera_ipv6_rsync_section : Can't connect to server on '::1' (115)
|
galera_ipv6_rsync_section : Can't connect to server on '::1' (115)
|
||||||
MDEV-29171 : MDEV-33842 galera_3nodes.MDEV-29171 fails on shutdown_server
|
|
||||||
GCF-354 : MDEV-25614 Galera test failure on GCF-354
|
GCF-354 : MDEV-25614 Galera test failure on GCF-354
|
||||||
|
@ -19,20 +19,40 @@ connection node_2;
|
|||||||
connection node_1;
|
connection node_1;
|
||||||
connection node_1;
|
connection node_1;
|
||||||
# restart: --wsrep_new_cluster --wsrep_gtid_domain_id=200
|
# restart: --wsrep_new_cluster --wsrep_gtid_domain_id=200
|
||||||
|
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
|
||||||
|
VARIABLE_VALUE
|
||||||
|
Primary
|
||||||
|
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment';
|
||||||
|
VARIABLE_VALUE
|
||||||
|
Synced
|
||||||
show variables like 'wsrep_gtid_domain_id';
|
show variables like 'wsrep_gtid_domain_id';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
wsrep_gtid_domain_id 200
|
wsrep_gtid_domain_id 200
|
||||||
connection node_2;
|
connection node_2;
|
||||||
# restart
|
# restart
|
||||||
|
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
|
||||||
|
VARIABLE_VALUE
|
||||||
|
Primary
|
||||||
|
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment';
|
||||||
|
VARIABLE_VALUE
|
||||||
|
Synced
|
||||||
show variables like 'wsrep_gtid_domain_id';
|
show variables like 'wsrep_gtid_domain_id';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
wsrep_gtid_domain_id 200
|
wsrep_gtid_domain_id 200
|
||||||
|
connection node_1;
|
||||||
connection node_3;
|
connection node_3;
|
||||||
# restart: --wsrep_sst_donor=node2
|
# restart: --wsrep_sst_donor=node2
|
||||||
|
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
|
||||||
|
VARIABLE_VALUE
|
||||||
|
Primary
|
||||||
|
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment';
|
||||||
|
VARIABLE_VALUE
|
||||||
|
Synced
|
||||||
show variables like 'wsrep_gtid_domain_id';
|
show variables like 'wsrep_gtid_domain_id';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
wsrep_gtid_domain_id 200
|
wsrep_gtid_domain_id 200
|
||||||
connection node_1;
|
connection node_1;
|
||||||
|
connection node_1;
|
||||||
set global wsrep_gtid_domain_id=100;
|
set global wsrep_gtid_domain_id=100;
|
||||||
connection node_2;
|
connection node_2;
|
||||||
set global wsrep_gtid_domain_id=100;
|
set global wsrep_gtid_domain_id=100;
|
||||||
|
@ -50,6 +50,16 @@ select @@wsrep_gtid_domain_id,@@wsrep_node_name;
|
|||||||
--connection node_1
|
--connection node_1
|
||||||
--let $restart_parameters = --wsrep_new_cluster --wsrep_gtid_domain_id=200
|
--let $restart_parameters = --wsrep_new_cluster --wsrep_gtid_domain_id=200
|
||||||
--source include/start_mysqld.inc
|
--source include/start_mysqld.inc
|
||||||
|
|
||||||
|
--let $wait_condition = SELECT VARIABLE_VALUE = 'ON' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready';
|
||||||
|
--source include/wait_condition.inc
|
||||||
|
--let $wait_condition = SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
|
||||||
|
--source include/wait_condition.inc
|
||||||
|
--let $wait_condition = SELECT VARIABLE_VALUE = 'Synced' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment'
|
||||||
|
--source include/wait_condition.inc
|
||||||
|
|
||||||
|
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
|
||||||
|
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment';
|
||||||
show variables like 'wsrep_gtid_domain_id';
|
show variables like 'wsrep_gtid_domain_id';
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -59,8 +69,21 @@ show variables like 'wsrep_gtid_domain_id';
|
|||||||
--let $restart_parameters =
|
--let $restart_parameters =
|
||||||
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
|
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
|
||||||
--source include/start_mysqld.inc
|
--source include/start_mysqld.inc
|
||||||
|
|
||||||
|
--let $wait_condition = SELECT VARIABLE_VALUE = 'ON' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready';
|
||||||
|
--source include/wait_condition.inc
|
||||||
|
--let $wait_condition = SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
|
||||||
|
--source include/wait_condition.inc
|
||||||
|
--let $wait_condition = SELECT VARIABLE_VALUE = 'Synced' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment'
|
||||||
|
--source include/wait_condition.inc
|
||||||
|
|
||||||
|
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
|
||||||
|
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment';
|
||||||
show variables like 'wsrep_gtid_domain_id';
|
show variables like 'wsrep_gtid_domain_id';
|
||||||
|
|
||||||
|
--connection node_1
|
||||||
|
--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
|
||||||
|
--source include/wait_condition.inc
|
||||||
|
|
||||||
#
|
#
|
||||||
# Restart node_3, select node_2 as donor
|
# Restart node_3, select node_2 as donor
|
||||||
@ -70,9 +93,23 @@ show variables like 'wsrep_gtid_domain_id';
|
|||||||
--let $restart_parameters = --wsrep_sst_donor="node2"
|
--let $restart_parameters = --wsrep_sst_donor="node2"
|
||||||
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.3.expect
|
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.3.expect
|
||||||
--source include/start_mysqld.inc
|
--source include/start_mysqld.inc
|
||||||
|
|
||||||
|
--let $wait_condition = SELECT VARIABLE_VALUE = 'ON' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready';
|
||||||
|
--source include/wait_condition.inc
|
||||||
|
--let $wait_condition = SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
|
||||||
|
--source include/wait_condition.inc
|
||||||
|
--let $wait_condition = SELECT VARIABLE_VALUE = 'Synced' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment'
|
||||||
|
--source include/wait_condition.inc
|
||||||
|
|
||||||
|
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
|
||||||
|
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment';
|
||||||
|
|
||||||
# Expect domain id 200
|
# Expect domain id 200
|
||||||
show variables like 'wsrep_gtid_domain_id';
|
show variables like 'wsrep_gtid_domain_id';
|
||||||
|
|
||||||
|
--connection node_1
|
||||||
|
--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
|
||||||
|
--source include/wait_condition.inc
|
||||||
|
|
||||||
#
|
#
|
||||||
# Cleanup
|
# Cleanup
|
||||||
|
@ -33,3 +33,6 @@ log_slave_updates=ON
|
|||||||
log_bin=mariadb-bin-log
|
log_bin=mariadb-bin-log
|
||||||
binlog-format=row
|
binlog-format=row
|
||||||
wsrep-gtid-mode=ON
|
wsrep-gtid-mode=ON
|
||||||
|
|
||||||
|
[sst]
|
||||||
|
transferfmt=@ENV.MTR_GALERA_TFMT
|
||||||
|
@ -38,12 +38,12 @@ SET SESSION wsrep_sync_wait = 0;
|
|||||||
--source include/kill_galera.inc
|
--source include/kill_galera.inc
|
||||||
|
|
||||||
--remove_file $MYSQLTEST_VARDIR/mysqld.1/data/grastate.dat
|
--remove_file $MYSQLTEST_VARDIR/mysqld.1/data/grastate.dat
|
||||||
--let $start_mysqld_params = "--wsrep-new-cluster"
|
--let $start_mysqld_params =--wsrep-new-cluster
|
||||||
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
||||||
--source include/start_mysqld.inc
|
--source include/start_mysqld.inc
|
||||||
|
|
||||||
--connection node_2
|
--connection node_2
|
||||||
--let $start_mysqld_params = ""
|
--let $start_mysqld_params =
|
||||||
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
|
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
|
||||||
--source include/start_mysqld.inc
|
--source include/start_mysqld.inc
|
||||||
|
|
||||||
|
@ -7,6 +7,12 @@ if (!$EXAMPLE_KEY_MANAGEMENT_SO)
|
|||||||
}
|
}
|
||||||
call mtr.add_suppression("InnoDB: New log files created");
|
call mtr.add_suppression("InnoDB: New log files created");
|
||||||
|
|
||||||
|
if (`select @@innodb_page_size=65536`)
|
||||||
|
{
|
||||||
|
# this needs too much memory for 32bit
|
||||||
|
source include/have_64bit.inc;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
let $basedir=$MYSQLTEST_VARDIR/tmp/backup;
|
let $basedir=$MYSQLTEST_VARDIR/tmp/backup;
|
||||||
let $incremental_dir=$MYSQLTEST_VARDIR/tmp/backup_inc1;
|
let $incremental_dir=$MYSQLTEST_VARDIR/tmp/backup_inc1;
|
||||||
|
@ -121,12 +121,23 @@ begin
|
|||||||
where thread_id = my_thread_id
|
where thread_id = my_thread_id
|
||||||
and nesting_event_id = my_statement_id
|
and nesting_event_id = my_statement_id
|
||||||
order by event_id asc;
|
order by event_id asc;
|
||||||
# Ignore query cache as it may not be enabled
|
# 1. Ignore query cache as it may not be enabled
|
||||||
select username, event_name, nesting_event_type
|
# 2. MDL wait consists of short 1 second waits (this is not configurable)
|
||||||
from performance_schema.events_stages_history
|
# repeated until lock_wait_timeout is reached. The stage is changed
|
||||||
where thread_id = my_thread_id
|
# to Waiting and back every second. To have predictable result here
|
||||||
and nesting_event_id = my_statement_id and
|
# the query filters all sequences of X, "Waiting for MDL", X,
|
||||||
event_name not like "%query cache%"
|
# leaving just X.
|
||||||
|
with h as (
|
||||||
|
select event_id, username, event_name, nesting_event_type,
|
||||||
|
lag(event_name) over (order by event_id) = lead(event_name) over (order by event_id)
|
||||||
|
and event_name = "stage/sql/Waiting for stored function metadata lock" as v1,
|
||||||
|
lag(event_name, 2) over (order by event_id) = event_name
|
||||||
|
and lag(event_name, 1) over (order by event_id) = "stage/sql/Waiting for stored function metadata lock" as v2
|
||||||
|
from performance_schema.events_stages_history
|
||||||
|
where thread_id = my_thread_id
|
||||||
|
and nesting_event_id = my_statement_id and
|
||||||
|
event_name not like "%query cache%"
|
||||||
|
) select username, event_name, nesting_event_type from h where v1 is not true and v2 is not true
|
||||||
order by event_id asc;
|
order by event_id asc;
|
||||||
end;
|
end;
|
||||||
else
|
else
|
||||||
|
@ -112,6 +112,10 @@ a
|
|||||||
6
|
6
|
||||||
7
|
7
|
||||||
*** MDEV-4486: Allow to start old-style replication even if mysql.gtid_slave_pos is unavailable
|
*** MDEV-4486: Allow to start old-style replication even if mysql.gtid_slave_pos is unavailable
|
||||||
|
connection server_1;
|
||||||
|
INSERT INTO t1 VALUES (8);
|
||||||
|
DELETE FROM t1 WHERE a=8;
|
||||||
|
connection server_2;
|
||||||
connection server_2;
|
connection server_2;
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
CHANGE MASTER TO master_use_gtid= no;
|
CHANGE MASTER TO master_use_gtid= no;
|
||||||
|
@ -174,6 +174,24 @@ SELECT * FROM t1 ORDER BY a;
|
|||||||
|
|
||||||
--echo *** MDEV-4486: Allow to start old-style replication even if mysql.gtid_slave_pos is unavailable
|
--echo *** MDEV-4486: Allow to start old-style replication even if mysql.gtid_slave_pos is unavailable
|
||||||
|
|
||||||
|
# In GTID mode, the old-style replication position is also updated. But during
|
||||||
|
# GTID connect, the old-style position is not known until receiving the fake
|
||||||
|
# GTID list event, which contains the required position value. If we happened
|
||||||
|
# to stop the slave above before this fake GTID list event, the test could fail
|
||||||
|
# with duplicate key errors due to switching to non-GTID mode at a wrong
|
||||||
|
# position too far back in the binlog.
|
||||||
|
#
|
||||||
|
# Work-around this by injecting an extra dummt event and syncing the slave to
|
||||||
|
# it, ensuring the old-style position will be updated.
|
||||||
|
#
|
||||||
|
# This work-around could be removed after MDEV-33996 is fixed.
|
||||||
|
--connection server_1
|
||||||
|
INSERT INTO t1 VALUES (8);
|
||||||
|
DELETE FROM t1 WHERE a=8;
|
||||||
|
--save_master_pos
|
||||||
|
--connection server_2
|
||||||
|
--sync_with_master
|
||||||
|
|
||||||
--connection server_2
|
--connection server_2
|
||||||
--source include/stop_slave.inc
|
--source include/stop_slave.inc
|
||||||
CHANGE MASTER TO master_use_gtid= no;
|
CHANGE MASTER TO master_use_gtid= no;
|
||||||
|
@ -2632,12 +2632,12 @@ void Item_func_round::fix_arg_hex_hybrid()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
double my_double_round(double value, longlong dec, bool dec_unsigned,
|
double my_double_round(double value, longlong dec_value, bool dec_unsigned,
|
||||||
bool truncate)
|
bool truncate)
|
||||||
{
|
{
|
||||||
double tmp;
|
double tmp;
|
||||||
bool dec_negative= (dec < 0) && !dec_unsigned;
|
const Longlong_hybrid dec(dec_value, dec_unsigned);
|
||||||
ulonglong abs_dec= dec_negative ? -dec : dec;
|
const ulonglong abs_dec= dec.abs();
|
||||||
/*
|
/*
|
||||||
tmp2 is here to avoid return the value with 80 bit precision
|
tmp2 is here to avoid return the value with 80 bit precision
|
||||||
This will fix that the test round(0.1,1) = round(0.1,1) is true
|
This will fix that the test round(0.1,1) = round(0.1,1) is true
|
||||||
@ -2652,22 +2652,24 @@ double my_double_round(double value, longlong dec, bool dec_unsigned,
|
|||||||
volatile double value_div_tmp= value / tmp;
|
volatile double value_div_tmp= value / tmp;
|
||||||
volatile double value_mul_tmp= value * tmp;
|
volatile double value_mul_tmp= value * tmp;
|
||||||
|
|
||||||
if (!dec_negative && std::isinf(tmp)) // "dec" is too large positive number
|
if (!dec.neg() && std::isinf(tmp)) // "dec" is a too large positive number
|
||||||
return value;
|
return value;
|
||||||
|
|
||||||
if (dec_negative && std::isinf(tmp))
|
if (dec.neg() && std::isinf(tmp)) // "dec" is a too small negative number
|
||||||
tmp2= 0.0;
|
return 0.0;
|
||||||
else if (!dec_negative && std::isinf(value_mul_tmp))
|
|
||||||
|
// Handle "dec" with a reasonably small absolute value
|
||||||
|
if (!dec.neg() && std::isinf(value_mul_tmp))
|
||||||
tmp2= value;
|
tmp2= value;
|
||||||
else if (truncate)
|
else if (truncate)
|
||||||
{
|
{
|
||||||
if (value >= 0.0)
|
if (value >= 0.0)
|
||||||
tmp2= dec < 0 ? floor(value_div_tmp) * tmp : floor(value_mul_tmp) / tmp;
|
tmp2= dec.neg() ? floor(value_div_tmp) * tmp : floor(value_mul_tmp) / tmp;
|
||||||
else
|
else
|
||||||
tmp2= dec < 0 ? ceil(value_div_tmp) * tmp : ceil(value_mul_tmp) / tmp;
|
tmp2= dec.neg() ? ceil(value_div_tmp) * tmp : ceil(value_mul_tmp) / tmp;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
tmp2=dec < 0 ? rint(value_div_tmp) * tmp : rint(value_mul_tmp) / tmp;
|
tmp2=dec.neg() ? rint(value_div_tmp) * tmp : rint(value_mul_tmp) / tmp;
|
||||||
|
|
||||||
return tmp2;
|
return tmp2;
|
||||||
}
|
}
|
||||||
@ -3016,7 +3018,7 @@ double Item_func_min_max::val_real_native()
|
|||||||
value=tmp;
|
value=tmp;
|
||||||
}
|
}
|
||||||
if ((null_value= args[i]->null_value))
|
if ((null_value= args[i]->null_value))
|
||||||
break;
|
return 0;
|
||||||
}
|
}
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
@ -3037,7 +3039,7 @@ longlong Item_func_min_max::val_int_native()
|
|||||||
value=tmp;
|
value=tmp;
|
||||||
}
|
}
|
||||||
if ((null_value= args[i]->null_value))
|
if ((null_value= args[i]->null_value))
|
||||||
break;
|
return 0;
|
||||||
}
|
}
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
@ -276,7 +276,6 @@ void mtr_t::commit_shrink(fil_space_t &space, uint32_t size)
|
|||||||
ut_ad(!is_inside_ibuf());
|
ut_ad(!is_inside_ibuf());
|
||||||
ut_ad(!high_level_read_only);
|
ut_ad(!high_level_read_only);
|
||||||
ut_ad(m_modifications);
|
ut_ad(m_modifications);
|
||||||
ut_ad(m_made_dirty);
|
|
||||||
ut_ad(!m_memo.empty());
|
ut_ad(!m_memo.empty());
|
||||||
ut_ad(!recv_recovery_is_on());
|
ut_ad(!recv_recovery_is_on());
|
||||||
ut_ad(m_log_mode == MTR_LOG_ALL);
|
ut_ad(m_log_mode == MTR_LOG_ALL);
|
||||||
|
@ -124,7 +124,7 @@ ENDIF()
|
|||||||
IF (CURL_FOUND)
|
IF (CURL_FOUND)
|
||||||
INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIRS})
|
INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIRS})
|
||||||
MYSQL_ADD_PLUGIN(s3 ha_s3.cc ${S3_SOURCES} COMPONENT s3-engine
|
MYSQL_ADD_PLUGIN(s3 ha_s3.cc ${S3_SOURCES} COMPONENT s3-engine
|
||||||
LINK_LIBRARIES ${CURL_LIBRARIES} z STORAGE_ENGINE NOT_EMBEDDED CONFIG s3.cnf)
|
LINK_LIBRARIES ${CURL_LIBRARIES} ${ZLIB_LIBRARY} STORAGE_ENGINE NOT_EMBEDDED CONFIG s3.cnf)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
SET(CPACK_RPM_s3-engine_PACKAGE_SUMMARY "Amazon S3 archival storage engine for MariaDB" PARENT_SCOPE)
|
SET(CPACK_RPM_s3-engine_PACKAGE_SUMMARY "Amazon S3 archival storage engine for MariaDB" PARENT_SCOPE)
|
||||||
|
24
storage/spider/mysql-test/spider/bugfix/r/mdev_30727.result
Normal file
24
storage/spider/mysql-test/spider/bugfix/r/mdev_30727.result
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
CREATE FUNCTION spider_direct_sql RETURNS INT SONAME 'ha_spider.so';
|
||||||
|
SELECT spider_direct_sql ('SELECT * FROM s','a','srv "b"');
|
||||||
|
ERROR HY000: Plugin 'SPIDER' is not loaded
|
||||||
|
CREATE FUNCTION spider_bg_direct_sql RETURNS INT SONAME 'ha_spider.so';
|
||||||
|
SELECT spider_bg_direct_sql ('SELECT * FROM s','a','srv "b"');
|
||||||
|
ERROR HY000: Plugin 'SPIDER' is not loaded
|
||||||
|
CREATE FUNCTION spider_copy_tables RETURNS INT SONAME 'ha_spider.so';
|
||||||
|
SELECT spider_copy_tables ('t', '0', '0');
|
||||||
|
ERROR HY000: Plugin 'SPIDER' is not loaded
|
||||||
|
CREATE FUNCTION spider_flush_table_mon_cache RETURNS INT SONAME 'ha_spider.so';
|
||||||
|
SELECT spider_flush_table_mon_cache ();
|
||||||
|
spider_flush_table_mon_cache ()
|
||||||
|
1
|
||||||
|
install soname 'ha_spider';
|
||||||
|
SELECT spider_direct_sql ('SELECT * FROM s','a','srv "b"');
|
||||||
|
ERROR HY000: The foreign server name you are trying to reference does not exist. Data source error: b
|
||||||
|
call mtr.add_suppression(".*\\[Error\\] (mysqld|mariadbd): Can't find record in 'spider_tables'");
|
||||||
|
SELECT spider_copy_tables ('t', '0', '0');
|
||||||
|
ERROR HY000: Can't find record in 'spider_tables'
|
||||||
|
SELECT spider_flush_table_mon_cache ();
|
||||||
|
spider_flush_table_mon_cache ()
|
||||||
|
1
|
||||||
|
Warnings:
|
||||||
|
Warning 1620 Plugin is busy and will be uninstalled on shutdown
|
30
storage/spider/mysql-test/spider/bugfix/t/mdev_30727.test
Normal file
30
storage/spider/mysql-test/spider/bugfix/t/mdev_30727.test
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
CREATE FUNCTION spider_direct_sql RETURNS INT SONAME 'ha_spider.so';
|
||||||
|
--error ER_PLUGIN_IS_NOT_LOADED
|
||||||
|
SELECT spider_direct_sql ('SELECT * FROM s','a','srv "b"');
|
||||||
|
|
||||||
|
CREATE FUNCTION spider_bg_direct_sql RETURNS INT SONAME 'ha_spider.so';
|
||||||
|
--error ER_PLUGIN_IS_NOT_LOADED
|
||||||
|
SELECT spider_bg_direct_sql ('SELECT * FROM s','a','srv "b"');
|
||||||
|
|
||||||
|
CREATE FUNCTION spider_copy_tables RETURNS INT SONAME 'ha_spider.so';
|
||||||
|
--error ER_PLUGIN_IS_NOT_LOADED
|
||||||
|
SELECT spider_copy_tables ('t', '0', '0');
|
||||||
|
|
||||||
|
# spider_flush_table_mon_cache does not require spider init to function
|
||||||
|
CREATE FUNCTION spider_flush_table_mon_cache RETURNS INT SONAME 'ha_spider.so';
|
||||||
|
SELECT spider_flush_table_mon_cache ();
|
||||||
|
|
||||||
|
# The function functions properly after the plugin is installed
|
||||||
|
install soname 'ha_spider';
|
||||||
|
|
||||||
|
--error ER_FOREIGN_SERVER_DOESNT_EXIST
|
||||||
|
SELECT spider_direct_sql ('SELECT * FROM s','a','srv "b"');
|
||||||
|
|
||||||
|
call mtr.add_suppression(".*\\[Error\\] (mysqld|mariadbd): Can't find record in 'spider_tables'");
|
||||||
|
--error ER_KEY_NOT_FOUND
|
||||||
|
SELECT spider_copy_tables ('t', '0', '0');
|
||||||
|
|
||||||
|
SELECT spider_flush_table_mon_cache ();
|
||||||
|
|
||||||
|
--disable_query_log
|
||||||
|
--source ../../include/clean_up_spider.inc
|
@ -1154,12 +1154,20 @@ error:
|
|||||||
DBUG_RETURN(0);
|
DBUG_RETURN(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#undef my_error
|
||||||
|
extern "C" void my_error(unsigned int nr, unsigned long MyFlags, ...);
|
||||||
|
|
||||||
my_bool spider_copy_tables_init_body(
|
my_bool spider_copy_tables_init_body(
|
||||||
UDF_INIT *initid,
|
UDF_INIT *initid,
|
||||||
UDF_ARGS *args,
|
UDF_ARGS *args,
|
||||||
char *message
|
char *message
|
||||||
) {
|
) {
|
||||||
DBUG_ENTER("spider_copy_tables_init_body");
|
DBUG_ENTER("spider_copy_tables_init_body");
|
||||||
|
if (!spider_hton_ptr)
|
||||||
|
{
|
||||||
|
my_error(ER_PLUGIN_IS_NOT_LOADED, MYF(0), "SPIDER");
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
if (args->arg_count != 3 && args->arg_count != 4)
|
if (args->arg_count != 3 && args->arg_count != 4)
|
||||||
{
|
{
|
||||||
strcpy(message, "spider_copy_tables() requires 3 or 4 arguments");
|
strcpy(message, "spider_copy_tables() requires 3 or 4 arguments");
|
||||||
|
@ -1879,6 +1879,9 @@ error:
|
|||||||
DBUG_RETURN(0);
|
DBUG_RETURN(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#undef my_error
|
||||||
|
extern "C" void my_error(unsigned int nr, unsigned long MyFlags, ...);
|
||||||
|
|
||||||
my_bool spider_direct_sql_init_body(
|
my_bool spider_direct_sql_init_body(
|
||||||
UDF_INIT *initid,
|
UDF_INIT *initid,
|
||||||
UDF_ARGS *args,
|
UDF_ARGS *args,
|
||||||
@ -1887,6 +1890,11 @@ my_bool spider_direct_sql_init_body(
|
|||||||
) {
|
) {
|
||||||
SPIDER_BG_DIRECT_SQL *bg_direct_sql;
|
SPIDER_BG_DIRECT_SQL *bg_direct_sql;
|
||||||
DBUG_ENTER("spider_direct_sql_init_body");
|
DBUG_ENTER("spider_direct_sql_init_body");
|
||||||
|
if (!spider_hton_ptr)
|
||||||
|
{
|
||||||
|
my_error(ER_PLUGIN_IS_NOT_LOADED, MYF(0), "SPIDER");
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
if (args->arg_count != 3)
|
if (args->arg_count != 3)
|
||||||
{
|
{
|
||||||
strcpy(message, "spider_(bg)_direct_sql() requires 3 arguments");
|
strcpy(message, "spider_(bg)_direct_sql() requires 3 arguments");
|
||||||
|
Reference in New Issue
Block a user