mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
Merge 11.4 into 11.8
This commit is contained in:
@@ -31,7 +31,7 @@ ENDIF()
|
||||
# in RPM's:
|
||||
|
||||
#set(CPACK_RPM_SPEC_MORE_DEFINE "%define __spec_install_post /bin/true")
|
||||
FOREACH(p CMP0022 CMP0046 CMP0040 CMP0048 CMP0054 CMP0067 CMP0074 CMP0075 CMP0069 CMP0135)
|
||||
FOREACH(p CMP0022 CMP0046 CMP0040 CMP0048 CMP0054 CMP0056 CMP0067 CMP0074 CMP0075 CMP0069 CMP0135)
|
||||
IF(POLICY ${p})
|
||||
CMAKE_POLICY(SET ${p} NEW)
|
||||
ENDIF()
|
||||
@@ -241,7 +241,7 @@ ENDIF()
|
||||
|
||||
OPTION(WITH_MSAN "Enable memory sanitizer" OFF)
|
||||
IF (WITH_MSAN)
|
||||
MY_CHECK_AND_SET_COMPILER_FLAG("-fsanitize=memory -fsanitize-memory-track-origins -U_FORTIFY_SOURCE" DEBUG RELWITHDEBINFO)
|
||||
MY_CHECK_AND_SET_COMPILER_FLAG("-fsanitize=memory -fsanitize-memory-track-origins -U_FORTIFY_SOURCE")
|
||||
IF(NOT (have_C__fsanitize_memory__fsanitize_memory_track_origins__U_FORTIFY_SOURCE
|
||||
AND have_CXX__fsanitize_memory__fsanitize_memory_track_origins__U_FORTIFY_SOURCE))
|
||||
MESSAGE(FATAL_ERROR "Compiler doesn't support -fsanitize=memory flags")
|
||||
@@ -251,7 +251,7 @@ IF (WITH_MSAN)
|
||||
MESSAGE(FATAL_ERROR "C++ Compiler requires support for -stdlib=libc++")
|
||||
ENDIF()
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
|
||||
MY_CHECK_AND_SET_LINKER_FLAG("-fsanitize=memory" DEBUG RELWITHDEBINFO)
|
||||
MY_CHECK_AND_SET_LINKER_FLAG("-fsanitize=memory")
|
||||
IF(NOT HAVE_LINK_FLAG__fsanitize_memory)
|
||||
MESSAGE(FATAL_ERROR "Linker doesn't support -fsanitize=memory flags")
|
||||
ENDIF()
|
||||
@@ -635,7 +635,7 @@ IF(NOT WITHOUT_SERVER)
|
||||
perror
|
||||
replace)
|
||||
IF(WIN32)
|
||||
ADD_DEPENDENCIES(minbuild echo mariadb-install-db my_safe_kill)
|
||||
ADD_DEPENDENCIES(minbuild echo mariadb-install-db my_safe_kill mariadb-upgrade-service)
|
||||
ENDIF()
|
||||
ADD_CUSTOM_TARGET(smoketest
|
||||
COMMAND perl ./mysql-test-run.pl main.1st
|
||||
|
||||
@@ -862,8 +862,7 @@ static int upgrade_already_done(int silent)
|
||||
s= strchr(version, '.');
|
||||
s= strchr(s + 1, '.');
|
||||
|
||||
if (strncmp(upgrade_from_version, version,
|
||||
(size_t)(s - version + 1)))
|
||||
if (strncmp(upgrade_from_version, version, (size_t)(s - version + 1)))
|
||||
{
|
||||
if (calc_server_version(upgrade_from_version) <= MYSQL_VERSION_ID)
|
||||
{
|
||||
@@ -877,9 +876,14 @@ static int upgrade_already_done(int silent)
|
||||
}
|
||||
if (!silent)
|
||||
{
|
||||
verbose("This installation of MariaDB is already upgraded to %s.\n"
|
||||
"There is no need to run mariadb-upgrade again for %s.",
|
||||
upgrade_from_version, version);
|
||||
if (strcmp(upgrade_from_version, version))
|
||||
verbose("This installation of MariaDB is already upgraded to %s.\n"
|
||||
"There is no need to run mariadb-upgrade again for %s, because "
|
||||
"they're both %.*s.",
|
||||
upgrade_from_version, version, (int)(s - version), version);
|
||||
else
|
||||
verbose("This installation of MariaDB is already upgraded to %s.\n"
|
||||
"There is no need to run mariadb-upgrade again.", version);
|
||||
if (!opt_check_upgrade)
|
||||
verbose("You can use --force if you still want to run mariadb-upgrade");
|
||||
}
|
||||
|
||||
@@ -2253,7 +2253,7 @@ static char *quote_for_equal(const char *name, char *buff)
|
||||
*to++='\\';
|
||||
}
|
||||
if (*name == '\'')
|
||||
*to++= '\\';
|
||||
*to++= '\'';
|
||||
*to++= *name++;
|
||||
}
|
||||
to[0]= '\'';
|
||||
@@ -3853,7 +3853,7 @@ static void dump_trigger_old(FILE *sql_file, MYSQL_RES *show_triggers_rs,
|
||||
|
||||
fprintf(sql_file,
|
||||
"DELIMITER ;;\n"
|
||||
"/*!50003 SET SESSION SQL_MODE=\"%s\" */;;\n"
|
||||
"/*!50003 SET SESSION SQL_MODE='%s' */;;\n"
|
||||
"/*!50003 CREATE */ ",
|
||||
(*show_trigger_row)[6]);
|
||||
|
||||
@@ -4907,17 +4907,19 @@ static int dump_all_users_roles_and_grants()
|
||||
return 1;
|
||||
while ((row= mysql_fetch_row(tableres)))
|
||||
{
|
||||
char buf[200];
|
||||
if (opt_replace_into)
|
||||
/* Protection against removing the current import user */
|
||||
/* MySQL-8.0 export capability */
|
||||
fprintf(md_result_file,
|
||||
"DELIMITER |\n"
|
||||
"/*M!100101 IF current_user()=\"%s\" THEN\n"
|
||||
"/*M!100101 IF current_user()=%s THEN\n"
|
||||
" SIGNAL SQLSTATE '45000' SET MYSQL_ERRNO=30001,"
|
||||
" MESSAGE_TEXT=\"Don't remove current user %s'\";\n"
|
||||
"END IF */|\n"
|
||||
"DELIMITER ;\n"
|
||||
"/*!50701 DROP USER IF EXISTS %s */;\n", row[0], row[0], row[0]);
|
||||
"/*!50701 DROP USER IF EXISTS %s */;\n",
|
||||
quote_for_equal(row[0],buf), row[0], row[0]);
|
||||
if (dump_create_user(row[0]))
|
||||
result= 1;
|
||||
/* if roles exist, defer dumping grants until after roles created */
|
||||
@@ -7033,6 +7035,7 @@ static my_bool get_view_structure(char *table, char* db)
|
||||
char *result_table, *opt_quoted_table;
|
||||
char table_buff[NAME_LEN*2+3];
|
||||
char table_buff2[NAME_LEN*2+3];
|
||||
char temp_buff[NAME_LEN*2 + 3], temp_buff2[NAME_LEN*2 + 3];
|
||||
char query[QUERY_LENGTH];
|
||||
FILE *sql_file= md_result_file;
|
||||
DBUG_ENTER("get_view_structure");
|
||||
@@ -7093,7 +7096,9 @@ static my_bool get_view_structure(char *table, char* db)
|
||||
"SELECT CHECK_OPTION, DEFINER, SECURITY_TYPE, "
|
||||
" CHARACTER_SET_CLIENT, COLLATION_CONNECTION "
|
||||
"FROM information_schema.views "
|
||||
"WHERE table_name=\"%s\" AND table_schema=\"%s\"", table, db);
|
||||
"WHERE table_name=%s AND table_schema=%s",
|
||||
quote_for_equal(table, temp_buff2),
|
||||
quote_for_equal(db, temp_buff));
|
||||
|
||||
if (mysql_query(mysql, query))
|
||||
{
|
||||
|
||||
@@ -2223,6 +2223,13 @@ generate_stats(conclusions *con, option_string *eng, stats *sptr)
|
||||
stats *ptr;
|
||||
unsigned int x;
|
||||
|
||||
if (eng && eng->string)
|
||||
con->engine= eng->string;
|
||||
|
||||
/* Early return when iterations is 0 to avoid accessing uninitialized sptr */
|
||||
if (iterations == 0)
|
||||
return;
|
||||
|
||||
con->min_timing= sptr->timing;
|
||||
con->max_timing= sptr->timing;
|
||||
con->min_rows= sptr->rows;
|
||||
@@ -2243,11 +2250,6 @@ generate_stats(conclusions *con, option_string *eng, stats *sptr)
|
||||
con->min_timing= ptr->timing;
|
||||
}
|
||||
con->avg_timing= con->avg_timing/iterations;
|
||||
|
||||
if (eng && eng->string)
|
||||
con->engine= eng->string;
|
||||
else
|
||||
con->engine= NULL;
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -6807,7 +6807,7 @@ int read_line()
|
||||
my_bool have_slash= FALSE;
|
||||
|
||||
enum {R_NORMAL, R_Q, R_SLASH_IN_Q,
|
||||
R_COMMENT, R_LINE_START} state= R_LINE_START;
|
||||
R_COMMENT, R_LINE_START, R_CSTYLE_COMMENT} state= R_LINE_START;
|
||||
DBUG_ENTER("read_line");
|
||||
|
||||
*p= 0;
|
||||
@@ -6894,9 +6894,23 @@ int read_line()
|
||||
state= R_Q;
|
||||
}
|
||||
}
|
||||
else if (c == '*' && last_char == '/')
|
||||
{
|
||||
state= R_CSTYLE_COMMENT;
|
||||
break;
|
||||
}
|
||||
have_slash= is_escape_char(c, last_quote);
|
||||
break;
|
||||
|
||||
case R_CSTYLE_COMMENT:
|
||||
if (c == '!')
|
||||
// Got the hint introducer '/*!'. Switch to normal processing of
|
||||
// next following characters
|
||||
state= R_NORMAL;
|
||||
else if (c == '/' && last_char == '*')
|
||||
state= R_NORMAL;
|
||||
break;
|
||||
|
||||
case R_COMMENT:
|
||||
if (c == '\n')
|
||||
{
|
||||
|
||||
@@ -28,15 +28,14 @@ MACRO (CHECK_LIBFMT)
|
||||
IF(WITH_LIBFMT STREQUAL "system" OR WITH_LIBFMT STREQUAL "auto")
|
||||
SET(CMAKE_REQUIRED_INCLUDES ${LIBFMT_INCLUDE_DIR})
|
||||
CHECK_CXX_SOURCE_RUNS(
|
||||
"#define FMT_STATIC_THOUSANDS_SEPARATOR ','
|
||||
#define FMT_HEADER_ONLY 1
|
||||
"#define FMT_HEADER_ONLY 1
|
||||
#include <fmt/args.h>
|
||||
int main() {
|
||||
using ArgStore= fmt::dynamic_format_arg_store<fmt::format_context>;
|
||||
ArgStore arg_store;
|
||||
int answer= 4321;
|
||||
arg_store.push_back(answer);
|
||||
return fmt::vformat(\"{:L}\", arg_store).compare(\"4,321\");
|
||||
return fmt::vformat(\"{}\", arg_store).compare(\"4321\");
|
||||
}" HAVE_SYSTEM_LIBFMT)
|
||||
SET(CMAKE_REQUIRED_INCLUDES)
|
||||
ENDIF()
|
||||
|
||||
@@ -121,7 +121,7 @@ IF(MSVC)
|
||||
# Disable mingw based pkg-config found in Strawberry perl
|
||||
SET(PKG_CONFIG_EXECUTABLE 0 CACHE INTERNAL "")
|
||||
|
||||
SET(MSVC_CRT_TYPE /MT CACHE STRING
|
||||
SET(MSVC_CRT_TYPE /MD CACHE STRING
|
||||
"Runtime library - specify runtime library for linking (/MT,/MTd,/MD,/MDd)"
|
||||
)
|
||||
SET(VALID_CRT_TYPES /MTd /MDd /MD /MT)
|
||||
@@ -129,6 +129,25 @@ IF(MSVC)
|
||||
MESSAGE(FATAL_ERROR "Invalid value ${MSVC_CRT_TYPE} for MSVC_CRT_TYPE, choose one of /MT,/MTd,/MD,/MDd ")
|
||||
ENDIF()
|
||||
|
||||
# CMake version 3.15 and later uses CMAKE_MSVC_RUNTIME_LIBRARY
|
||||
# variable for our MSVC_CRT_TYPE.
|
||||
# Set CMAKE_MSVC_RUNTIME_LIBRARY and pass to external projects
|
||||
# it is important to keep the same CRT type when linking
|
||||
#
|
||||
# Translation rules MSVC_CRT_TYPE -> CMAKE_MSVC_RUNTIME_LIBRARY
|
||||
# /MT -> MultiThreaded
|
||||
# /MTd -> MultiThreadedDebug
|
||||
# /MD -> MultiThreadedDLL
|
||||
# /MDd -> MultiThreadedDebugDLL
|
||||
|
||||
SET(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreaded)
|
||||
IF(MSVC_CRT_TYPE MATCHES "d$")
|
||||
STRING(APPEND CMAKE_MSVC_RUNTIME_LIBRARY Debug)
|
||||
ENDIF()
|
||||
IF(MSVC_CRT_TYPE MATCHES "D")
|
||||
STRING(APPEND CMAKE_MSVC_RUNTIME_LIBRARY DLL)
|
||||
ENDIF()
|
||||
|
||||
IF(MSVC_CRT_TYPE MATCHES "/MD")
|
||||
# Dynamic runtime (DLLs), need to install CRT libraries.
|
||||
SET(CMAKE_INSTALL_SYSTEM_RUNTIME_COMPONENT VCCRT)
|
||||
@@ -282,6 +301,7 @@ STRING(APPEND CMAKE_CXX_STANDARD_LIBRARIES " ws2_32.lib synchronization.lib")
|
||||
|
||||
# System checks
|
||||
SET(SIGNAL_WITH_VIO_CLOSE 1) # Something that runtime team needs
|
||||
SET(HAVE_UNACCESSIBLE_AFTER_MEM_DECOMMIT 1)
|
||||
|
||||
# IPv6 constants appeared in Vista SDK first. We need to define them in any case if they are
|
||||
# not in headers, to handle dual mode sockets correctly.
|
||||
|
||||
@@ -54,11 +54,18 @@ MACRO(BUNDLE_PCRE2)
|
||||
ENDIF()
|
||||
ENDFOREACH()
|
||||
|
||||
IF(CMAKE_MSVC_RUNTIME_LIBRARY)
|
||||
SET(CMAKE_MSVC_RUNTIME_LIBRARY_ARG
|
||||
"-DCMAKE_MSVC_RUNTIME_LIBRARY=${CMAKE_MSVC_RUNTIME_LIBRARY}")
|
||||
ELSE()
|
||||
SET(CMAKE_MSVC_RUNTIME_LIBRARY_ARG)
|
||||
ENDIF()
|
||||
|
||||
ExternalProject_Add(
|
||||
pcre2
|
||||
PREFIX "${dir}"
|
||||
URL "https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.44/pcre2-10.44.zip"
|
||||
URL_MD5 dfab8313154b3377a6959c3b6377841e
|
||||
URL "https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.45/pcre2-10.45.zip"
|
||||
URL_MD5 873da56c6469ec207ca5c5ae9688b83a
|
||||
INSTALL_COMMAND ""
|
||||
CMAKE_ARGS
|
||||
"-DCMAKE_WARN_DEPRECATED=FALSE"
|
||||
@@ -72,6 +79,7 @@ MACRO(BUNDLE_PCRE2)
|
||||
"-DCMAKE_C_FLAGS_RELEASE=${pcre2_flags_RELEASE}"
|
||||
"-DCMAKE_C_FLAGS_MINSIZEREL=${pcre2_flags_MINSIZEREL}"
|
||||
"-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}"
|
||||
${CMAKE_MSVC_RUNTIME_LIBRARY_ARG}
|
||||
${stdlibs}
|
||||
${byproducts}
|
||||
)
|
||||
|
||||
@@ -457,6 +457,11 @@
|
||||
/* This should mean case insensitive file system */
|
||||
#cmakedefine FN_NO_CASE_SENSE 1
|
||||
|
||||
/* Whether an anonymous private mapping is unaccessible after
|
||||
madvise(MADV_DONTNEED) or madvise(MADV_FREE) or similar has been invoked;
|
||||
this is the case with Microsoft Windows VirtualFree(MEM_DECOMMIT) */
|
||||
#cmakedefine HAVE_UNACCESSIBLE_AFTER_MEM_DECOMMIT 1
|
||||
|
||||
#cmakedefine HAVE_CHARSET_armscii8 1
|
||||
#cmakedefine HAVE_CHARSET_ascii 1
|
||||
#cmakedefine HAVE_CHARSET_big5 1
|
||||
|
||||
@@ -1895,7 +1895,7 @@ bool write_backup_config_file(ds_ctxt *datasink)
|
||||
srv_log_file_size,
|
||||
srv_page_size,
|
||||
srv_undo_dir,
|
||||
(uint) srv_undo_tablespaces,
|
||||
srv_undo_tablespaces,
|
||||
page_zip_level,
|
||||
innobase_buffer_pool_filename ?
|
||||
"innodb_buffer_pool_filename=" : "",
|
||||
|
||||
@@ -64,8 +64,10 @@ Table::copy(ds_ctxt_t *ds, MYSQL *con, bool no_lock, bool, unsigned thread_num)
|
||||
for (const auto &fname : m_fnames) {
|
||||
File file = mysql_file_open(0, fname.c_str(),O_RDONLY | O_SHARE, MYF(0));
|
||||
if (file < 0) {
|
||||
msg(thread_num, "Error on file %s open during %s table copy",
|
||||
fname.c_str(), full_tname.c_str());
|
||||
char buf[MYSYS_STRERROR_SIZE];
|
||||
msg(thread_num, "Error %i on file %s open during %s table copy: %s",
|
||||
errno, fname.c_str(), full_tname.c_str(),
|
||||
my_strerror(buf, sizeof(buf), errno));
|
||||
goto exit;
|
||||
}
|
||||
files.push_back(file);
|
||||
|
||||
@@ -44,8 +44,8 @@ Street, Fifth Floor, Boston, MA 02110-1335 USA
|
||||
#include <string.h>
|
||||
#include <mysql.h>
|
||||
#include <my_dir.h>
|
||||
#include <ut0mem.h>
|
||||
#include <os0file.h>
|
||||
#include "buf0buf.h"
|
||||
#include <srv0start.h>
|
||||
#include <algorithm>
|
||||
#include <mysqld.h>
|
||||
@@ -594,8 +594,9 @@ static struct my_option ibx_long_options[] =
|
||||
"--apply-log.",
|
||||
(uchar*) &ibx_xtrabackup_use_memory,
|
||||
(uchar*) &ibx_xtrabackup_use_memory,
|
||||
0, GET_LL, REQUIRED_ARG, 100*1024*1024L, 1024*1024L, LONGLONG_MAX, 0,
|
||||
1024*1024L, 0},
|
||||
0, GET_LL, REQUIRED_ARG, 96 << 20,
|
||||
innodb_buffer_pool_extent_size, SIZE_T_MAX, 0,
|
||||
innodb_buffer_pool_extent_size, 0},
|
||||
|
||||
{"innodb-force-recovery", OPT_INNODB_FORCE_RECOVERY,
|
||||
"This option starts up the embedded InnoDB instance in crash "
|
||||
|
||||
@@ -144,18 +144,6 @@ wf_incremental_process(xb_write_filt_ctxt_t *ctxt, ds_file_t *dstfile)
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Check whether TRX_SYS page has been changed */
|
||||
if (mach_read_from_4(page + FIL_PAGE_SPACE_ID)
|
||||
== TRX_SYS_SPACE
|
||||
&& mach_read_from_4(page + FIL_PAGE_OFFSET)
|
||||
== TRX_SYS_PAGE_NO) {
|
||||
msg(cursor->thread_n,
|
||||
"--incremental backup is impossible if "
|
||||
"the server had been restarted with "
|
||||
"different innodb_undo_tablespaces.");
|
||||
return false;
|
||||
}
|
||||
|
||||
/* updated page */
|
||||
if (cp->npages == page_size / 4) {
|
||||
/* flush buffer */
|
||||
|
||||
@@ -201,8 +201,6 @@ struct xb_filter_entry_t{
|
||||
xb_filter_entry_t *name_hash;
|
||||
};
|
||||
|
||||
lsn_t checkpoint_lsn_start;
|
||||
lsn_t checkpoint_no_start;
|
||||
/** whether log_copying_thread() is active; protected by recv_sys.mutex */
|
||||
static bool log_copying_running;
|
||||
/** for --backup, target LSN to copy the log to; protected by recv_sys.mutex */
|
||||
@@ -1386,6 +1384,7 @@ enum options_xtrabackup
|
||||
OPT_XTRA_MYSQLD_ARGS,
|
||||
OPT_XB_IGNORE_INNODB_PAGE_CORRUPTION,
|
||||
OPT_INNODB_FORCE_RECOVERY,
|
||||
OPT_INNODB_CHECKPOINT,
|
||||
OPT_ARIA_LOG_DIR_PATH
|
||||
};
|
||||
|
||||
@@ -1417,8 +1416,9 @@ struct my_option xb_client_options[]= {
|
||||
"The value is used in place of innodb_buffer_pool_size. "
|
||||
"This option is only relevant when the --prepare option is specified.",
|
||||
(G_PTR *) &xtrabackup_use_memory, (G_PTR *) &xtrabackup_use_memory, 0,
|
||||
GET_LL, REQUIRED_ARG, 100 * 1024 * 1024L, 1024 * 1024L, LONGLONG_MAX, 0,
|
||||
1024 * 1024L, 0},
|
||||
GET_ULL, REQUIRED_ARG, 96 << 20, innodb_buffer_pool_extent_size,
|
||||
size_t(-ssize_t(innodb_buffer_pool_extent_size)),
|
||||
0, innodb_buffer_pool_extent_size, 0},
|
||||
{"throttle", OPT_XTRA_THROTTLE,
|
||||
"limit count of IO operations (pairs of read&write) per second to IOS "
|
||||
"values (for '--backup')",
|
||||
@@ -1795,6 +1795,8 @@ extern const char *io_uring_may_be_unsafe;
|
||||
bool innodb_use_native_aio_default();
|
||||
#endif
|
||||
|
||||
static my_bool innodb_log_checkpoint_now;
|
||||
|
||||
struct my_option xb_server_options[] =
|
||||
{
|
||||
{"datadir", 'h', "Path to the database root.", (G_PTR*) &mysql_data_home,
|
||||
@@ -2032,6 +2034,12 @@ struct my_option xb_server_options[] =
|
||||
(G_PTR*)&srv_force_recovery,
|
||||
0, GET_ULONG, OPT_ARG, 0, 0, SRV_FORCE_IGNORE_CORRUPT, 0, 0, 0},
|
||||
|
||||
{"innodb_log_checkpoint_now", OPT_INNODB_CHECKPOINT,
|
||||
"(for --backup): Force an InnoDB checkpoint",
|
||||
(G_PTR*)&innodb_log_checkpoint_now,
|
||||
(G_PTR*)&innodb_log_checkpoint_now,
|
||||
0, GET_BOOL, OPT_ARG, 1, 0, 0, 0, 0, 0},
|
||||
|
||||
{"mysqld-args", OPT_XTRA_MYSQLD_ARGS,
|
||||
"All arguments that follow this argument are considered as server "
|
||||
"options, and if some of them are not supported by mariabackup, they "
|
||||
@@ -2118,7 +2126,7 @@ static int prepare_export()
|
||||
if (strncmp(orig_argv1,"--defaults-file=", 16) == 0)
|
||||
{
|
||||
snprintf(cmdline, sizeof cmdline,
|
||||
IF_WIN("\"","") "\"%s\" --mysqld \"%s\""
|
||||
IF_WIN("\"","") "\"%s\" --mariadbd \"%s\""
|
||||
" --defaults-extra-file=./backup-my.cnf --defaults-group-suffix=%s --datadir=."
|
||||
" --innodb --innodb-fast-shutdown=0 --loose-partition"
|
||||
" --innodb-buffer-pool-size=%llu"
|
||||
@@ -2132,7 +2140,7 @@ static int prepare_export()
|
||||
else
|
||||
{
|
||||
snprintf(cmdline, sizeof cmdline,
|
||||
IF_WIN("\"","") "\"%s\" --mysqld"
|
||||
IF_WIN("\"","") "\"%s\" --mariadbd"
|
||||
" --defaults-file=./backup-my.cnf --defaults-group-suffix=%s --datadir=."
|
||||
" --innodb --innodb-fast-shutdown=0 --loose-partition"
|
||||
" --innodb-buffer-pool-size=%llu"
|
||||
@@ -2476,7 +2484,7 @@ static bool innodb_init_param()
|
||||
}
|
||||
|
||||
srv_sys_space.normalize_size();
|
||||
srv_lock_table_size = 5 * (srv_buf_pool_size >> srv_page_size_shift);
|
||||
srv_lock_table_size = 5 * buf_pool.curr_size();
|
||||
|
||||
/* -------------- Log files ---------------------------*/
|
||||
|
||||
@@ -2498,11 +2506,8 @@ static bool innodb_init_param()
|
||||
|
||||
srv_adaptive_flushing = FALSE;
|
||||
|
||||
/* We set srv_pool_size here in units of 1 kB. InnoDB internally
|
||||
changes the value so that it becomes the number of database pages. */
|
||||
|
||||
srv_buf_pool_size = (ulint) xtrabackup_use_memory;
|
||||
srv_buf_pool_chunk_unit = srv_buf_pool_size;
|
||||
buf_pool.size_in_bytes_max = size_t(xtrabackup_use_memory);
|
||||
buf_pool.size_in_bytes_requested = buf_pool.size_in_bytes_max;
|
||||
|
||||
srv_n_read_io_threads = (uint) innobase_read_io_threads;
|
||||
srv_n_write_io_threads = (uint) innobase_write_io_threads;
|
||||
@@ -2968,6 +2973,15 @@ my_bool regex_list_check_match(
|
||||
const regex_list_t& list,
|
||||
const char* name)
|
||||
{
|
||||
if (list.empty()) return (FALSE);
|
||||
|
||||
/*
|
||||
regexec/pcre2_regexec is not threadsafe, also documented.
|
||||
Serialize access from multiple threads to compiled regexes.
|
||||
*/
|
||||
static std::mutex regex_match_mutex;
|
||||
std::lock_guard<std::mutex> lock(regex_match_mutex);
|
||||
|
||||
regmatch_t tables_regmatch[1];
|
||||
for (regex_list_t::const_iterator i = list.begin(), end = list.end();
|
||||
i != end; ++i) {
|
||||
@@ -5427,6 +5441,14 @@ static bool xtrabackup_backup_func()
|
||||
}
|
||||
msg("cd to %s", mysql_real_data_home);
|
||||
encryption_plugin_backup_init(mysql_connection);
|
||||
if (innodb_log_checkpoint_now != false && mysql_send_query(
|
||||
mysql_connection,
|
||||
C_STRING_WITH_LEN("SET GLOBAL "
|
||||
"innodb_log_checkpoint_now=ON;"))) {
|
||||
msg("initiating checkpoint failed");
|
||||
return(false);
|
||||
}
|
||||
|
||||
msg("open files limit requested %lu, set to %lu",
|
||||
xb_open_files_limit,
|
||||
xb_set_max_open_files(xb_open_files_limit));
|
||||
@@ -5539,6 +5561,11 @@ fail:
|
||||
goto fail;
|
||||
}
|
||||
|
||||
/* try to wait for a log checkpoint, but do not fail if the
|
||||
server does not support this */
|
||||
if (innodb_log_checkpoint_now != false) {
|
||||
mysql_read_query_result(mysql_connection);
|
||||
}
|
||||
/* label it */
|
||||
recv_sys.file_checkpoint = log_sys.next_checkpoint_lsn;
|
||||
log_hdr_init();
|
||||
@@ -6252,9 +6279,22 @@ xtrabackup_apply_delta(
|
||||
buf + FSP_HEADER_OFFSET + FSP_SIZE);
|
||||
if (mach_read_from_4(buf
|
||||
+ FIL_PAGE_SPACE_ID)) {
|
||||
#ifdef _WIN32
|
||||
os_offset_t last_page =
|
||||
os_file_get_size(dst_file) /
|
||||
page_size;
|
||||
|
||||
/* os_file_set_size() would
|
||||
shrink the size of the file */
|
||||
if (last_page < n_pages &&
|
||||
!os_file_set_size(
|
||||
dst_path, dst_file,
|
||||
n_pages * page_size))
|
||||
#else
|
||||
if (!os_file_set_size(
|
||||
dst_path, dst_file,
|
||||
n_pages * page_size))
|
||||
#endif /* _WIN32 */
|
||||
goto error;
|
||||
} else if (fil_space_t* space
|
||||
= fil_system.sys_space) {
|
||||
@@ -7530,9 +7570,9 @@ int main(int argc, char **argv)
|
||||
{
|
||||
/* In "prepare export", we need to start mysqld
|
||||
Since it is not always be installed on the machine,
|
||||
we start "mariabackup --mysqld", which acts as mysqld
|
||||
we start "mariabackup --mariadbd", which acts as mysqld
|
||||
*/
|
||||
if (strcmp(argv[1], "--mysqld") == 0)
|
||||
if (strcmp(argv[1], "--mariadbd") == 0)
|
||||
{
|
||||
srv_operation= SRV_OPERATION_EXPORT_RESTORED;
|
||||
extern int mysqld_main(int argc, char **argv);
|
||||
|
||||
@@ -97,7 +97,12 @@ static inline void MY_RELAX_CPU(void)
|
||||
/* Changed from __ppc_get_timebase for musl and clang compatibility */
|
||||
__builtin_ppc_get_timebase();
|
||||
#elif defined __GNUC__ && defined __riscv
|
||||
__builtin_riscv_pause();
|
||||
/* The GCC-only __builtin_riscv_pause() or the pause instruction is
|
||||
encoded like a fence instruction with special parameters. On RISC-V
|
||||
implementations that do not support arch=+zihintpause this
|
||||
instruction could be interpreted as a more expensive memory fence;
|
||||
it should not be an illegal instruction. */
|
||||
__asm__ volatile(".long 0x0100000f" ::: "memory");
|
||||
#elif defined __GNUC__
|
||||
/* Mainly, prevent the compiler from optimizing away delay loops */
|
||||
__asm__ __volatile__ ("":::"memory");
|
||||
|
||||
@@ -175,9 +175,13 @@ extern void my_free(void *ptr);
|
||||
extern void *my_memdup(PSI_memory_key key, const void *from,size_t length,myf MyFlags);
|
||||
extern char *my_strdup(PSI_memory_key key, const char *from,myf MyFlags);
|
||||
extern char *my_strndup(PSI_memory_key key, const char *from, size_t length, myf MyFlags);
|
||||
extern my_bool my_use_large_pages;
|
||||
|
||||
int my_init_large_pages(my_bool super_large_pages);
|
||||
int my_init_large_pages(void);
|
||||
uchar *my_large_malloc(size_t *size, myf my_flags);
|
||||
#if defined _WIN32 || defined HAVE_MMAP
|
||||
char *my_large_virtual_alloc(size_t *size);
|
||||
#endif
|
||||
void my_large_free(void *ptr, size_t size);
|
||||
void my_large_page_truncate(size_t *size);
|
||||
|
||||
|
||||
35
include/my_virtual_mem.h
Normal file
35
include/my_virtual_mem.h
Normal file
@@ -0,0 +1,35 @@
|
||||
/* Copyright (c) 2025, MariaDB
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; version 2 of the License.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */
|
||||
|
||||
#pragma once
|
||||
/*
|
||||
Functionality for handling virtual memory
|
||||
(reserve, commit, decommit, release)
|
||||
*/
|
||||
#include <stddef.h> /*size_t*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
char *my_virtual_mem_reserve(size_t *size);
|
||||
char *my_virtual_mem_commit(char *ptr, size_t size);
|
||||
void my_virtual_mem_decommit(char *ptr, size_t size);
|
||||
void my_virtual_mem_release(char *ptr, size_t size);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
Submodule libmariadb updated: 93e420621a...ba712ddf96
@@ -14,7 +14,7 @@
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA
|
||||
|
||||
INSTALL_MYSQL_TEST("." ".")
|
||||
INSTALL_MYSQL_TEST("." "")
|
||||
|
||||
IF(NOT ${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
|
||||
# Enable running mtr from build directory
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# We use this --source include to mark a test as taking long to run.
|
||||
# We can use this to schedule such test early (to not be left with
|
||||
# only one or two long tests running, and rests of works idle), or to
|
||||
# only one or two long tests running, and rests of workers idle), or to
|
||||
# run a quick test skipping long-running test cases.
|
||||
|
||||
--source include/no_valgrind_without_big.inc
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
# Tests BACKUP STAGE locking
|
||||
########################################################################
|
||||
|
||||
--source include/long_test.inc
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_metadata_lock_info.inc
|
||||
--source include/not_embedded.inc
|
||||
|
||||
@@ -91,7 +91,7 @@ utf8mb4_hu_0900_as_cs utf8mb4 297 Yes 8 Alias for utf8mb4_uca1400_hungarian_nop
|
||||
utf8mb4_hr_0900_as_cs utf8mb4 298 Yes 8 Alias for utf8mb4_uca1400_croatian_nopad_as_cs
|
||||
utf8mb4_vi_0900_as_cs utf8mb4 300 Yes 8 Alias for utf8mb4_uca1400_vietnamese_nopad_as_cs
|
||||
utf8mb4_0900_as_ci utf8mb4 305 Yes 8 Alias for utf8mb4_uca1400_nopad_as_ci
|
||||
utf8mb4_0900_bin utf8mb4 309 Yes 1 Alias for utf8mb4_bin
|
||||
utf8mb4_0900_bin utf8mb4 309 Yes 1 Alias for utf8mb4_nopad_bin
|
||||
#
|
||||
# MDEV-20912 Add support for utf8mb4_0900_* collations in MariaDB Server
|
||||
#
|
||||
@@ -198,3 +198,21 @@ drop table t1,t2;
|
||||
CREATE OR REPLACE TABLE t1 (p int primary key auto_increment, a VARCHAR(10), key (a)) engine=aria, COLLATE utf8mb4_sv_0900_ai_ci;
|
||||
alter table t1 modify a varchar(10) collate utf8mb4_uca1400_swedish_nopad_ai_ci, algorithm=nocopy;
|
||||
drop table t1;
|
||||
#
|
||||
# MDEV-36361 Wrong utf8mb4_0900_bin alias for utf8mb4_bin (should be utf8mb4_nopad_bin)
|
||||
#
|
||||
SELECT collation_name, id, comment
|
||||
FROM information_schema.collations
|
||||
WHERE collation_name='utf8mb4_0900_bin';
|
||||
collation_name id comment
|
||||
utf8mb4_0900_bin 309 Alias for utf8mb4_nopad_bin
|
||||
CREATE TABLE t1 (
|
||||
a VARCHAR(32),
|
||||
b VARCHAR(32)
|
||||
) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_bin;
|
||||
INSERT INTO t1 VALUES ('a\t', 'a');
|
||||
SELECT a<b FROM t1;
|
||||
a<b
|
||||
0
|
||||
DROP TABLE t1;
|
||||
# End of 11.4 tests
|
||||
|
||||
@@ -83,3 +83,21 @@ drop table t1,t2;
|
||||
CREATE OR REPLACE TABLE t1 (p int primary key auto_increment, a VARCHAR(10), key (a)) engine=aria, COLLATE utf8mb4_sv_0900_ai_ci;
|
||||
alter table t1 modify a varchar(10) collate utf8mb4_uca1400_swedish_nopad_ai_ci, algorithm=nocopy;
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-36361 Wrong utf8mb4_0900_bin alias for utf8mb4_bin (should be utf8mb4_nopad_bin)
|
||||
--echo #
|
||||
|
||||
SELECT collation_name, id, comment
|
||||
FROM information_schema.collations
|
||||
WHERE collation_name='utf8mb4_0900_bin';
|
||||
|
||||
CREATE TABLE t1 (
|
||||
a VARCHAR(32),
|
||||
b VARCHAR(32)
|
||||
) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_bin;
|
||||
INSERT INTO t1 VALUES ('a\t', 'a');
|
||||
SELECT a<b FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo # End of 11.4 tests
|
||||
|
||||
@@ -60,7 +60,7 @@ INSERT INTO t1 VALUES ('1'),('௨');
|
||||
INSERT INTO t2 VALUES ('\\p{Cyrillic}'),('\\p{Greek}'),('\\p{Latin}');
|
||||
INSERT INTO t2 VALUES ('\\p{Han}'),('\\p{Hangul}');
|
||||
INSERT INTO t2 VALUES ('\\p{Sinhala}'), ('\\p{Tamil}');
|
||||
INSERT INTO t2 VALUES ('\\p{L}'),('\\p{Ll}'),('\\p{Lu}'),('\\p{L&}');
|
||||
INSERT INTO t2 VALUES ('\\p{L}'), /* buggy before v10.45 ('\\p{Ll}'),('\\p{Lu}'),*/ ('\\p{L&}');
|
||||
INSERT INTO t2 VALUES ('[[:alpha:]]'),('[[:digit:]]');
|
||||
SELECT class, ch, ch RLIKE class FROM t1, t2 ORDER BY BINARY class, BINARY ch;
|
||||
class ch ch RLIKE class
|
||||
@@ -168,32 +168,6 @@ class ch ch RLIKE class
|
||||
\p{Latin} ප 0
|
||||
\p{Latin} 㐗 0
|
||||
\p{Latin} 갷 0
|
||||
\p{Ll} 1 0
|
||||
\p{Ll} A 0
|
||||
\p{Ll} a 1
|
||||
\p{Ll} À 0
|
||||
\p{Ll} à 1
|
||||
\p{Ll} Σ 0
|
||||
\p{Ll} σ 1
|
||||
\p{Ll} Я 0
|
||||
\p{Ll} я 1
|
||||
\p{Ll} ௨ 0
|
||||
\p{Ll} ප 0
|
||||
\p{Ll} 㐗 0
|
||||
\p{Ll} 갷 0
|
||||
\p{Lu} 1 0
|
||||
\p{Lu} A 1
|
||||
\p{Lu} a 0
|
||||
\p{Lu} À 1
|
||||
\p{Lu} à 0
|
||||
\p{Lu} Σ 1
|
||||
\p{Lu} σ 0
|
||||
\p{Lu} Я 1
|
||||
\p{Lu} я 0
|
||||
\p{Lu} ௨ 0
|
||||
\p{Lu} ප 0
|
||||
\p{Lu} 㐗 0
|
||||
\p{Lu} 갷 0
|
||||
\p{L} 1 0
|
||||
\p{L} A 1
|
||||
\p{L} a 1
|
||||
|
||||
@@ -41,7 +41,7 @@ INSERT INTO t1 VALUES ('1'),('௨');
|
||||
INSERT INTO t2 VALUES ('\\p{Cyrillic}'),('\\p{Greek}'),('\\p{Latin}');
|
||||
INSERT INTO t2 VALUES ('\\p{Han}'),('\\p{Hangul}');
|
||||
INSERT INTO t2 VALUES ('\\p{Sinhala}'), ('\\p{Tamil}');
|
||||
INSERT INTO t2 VALUES ('\\p{L}'),('\\p{Ll}'),('\\p{Lu}'),('\\p{L&}');
|
||||
INSERT INTO t2 VALUES ('\\p{L}'), /* buggy before v10.45 ('\\p{Ll}'),('\\p{Lu}'),*/ ('\\p{L&}');
|
||||
INSERT INTO t2 VALUES ('[[:alpha:]]'),('[[:digit:]]');
|
||||
# Use "ORDER BY BINARY" to avoid dependency on the default utf8 collation
|
||||
SELECT class, ch, ch RLIKE class FROM t1, t2 ORDER BY BINARY class, BINARY ch;
|
||||
|
||||
@@ -776,7 +776,7 @@ SELECT ST_DISTANCE_SPHERE(1, 1, NULL);
|
||||
ST_DISTANCE_SPHERE(1, 1, NULL)
|
||||
NULL
|
||||
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(1 0)'), ST_GEOMFROMTEXT('LINESTRING(0 0, 1 1)')) as result;
|
||||
ERROR HY000: Internal error: st_distance_sphere
|
||||
ERROR HY000: Calling geometry function st_distance_sphere with unsupported types of arguments.
|
||||
# Test Points and radius
|
||||
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)')) as result;
|
||||
result
|
||||
@@ -788,9 +788,9 @@ SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(
|
||||
result
|
||||
0.024682056391766436
|
||||
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)'), 0) as result;
|
||||
ERROR HY000: Internal error: Radius must be greater than zero.
|
||||
ERROR HY000: Calling geometry function st_distance_sphere with unsupported types of arguments.
|
||||
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)'), -1) as result;
|
||||
ERROR HY000: Internal error: Radius must be greater than zero.
|
||||
ERROR HY000: Calling geometry function st_distance_sphere with unsupported types of arguments.
|
||||
# Test longitude/lattitude
|
||||
SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 1)'), ST_GEOMFROMTEXT('POINT(1 2)')), 10) as result;
|
||||
result
|
||||
@@ -843,7 +843,7 @@ SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_G
|
||||
result
|
||||
0.04933028646581131
|
||||
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(8 9,3 4 )'),0) as result;
|
||||
ERROR HY000: Internal error: Radius must be greater than zero.
|
||||
ERROR HY000: Calling geometry function st_distance_sphere with unsupported types of arguments.
|
||||
set @pt1 = ST_GeomFromText('POINT(190 -30)');
|
||||
set @pt2 = ST_GeomFromText('POINT(-30 50)');
|
||||
SELECT ST_Distance_Sphere(@pt1, @pt2);
|
||||
|
||||
@@ -422,7 +422,7 @@ SELECT ST_DISTANCE_SPHERE(1, 1, 3);
|
||||
# Return NULL if radius is NULL
|
||||
SELECT ST_DISTANCE_SPHERE(1, 1, NULL);
|
||||
# Wrong geometry
|
||||
--error ER_INTERNAL_ERROR
|
||||
--error ER_GIS_UNSUPPORTED_ARGUMENT
|
||||
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(1 0)'), ST_GEOMFROMTEXT('LINESTRING(0 0, 1 1)')) as result;
|
||||
|
||||
--echo # Test Points and radius
|
||||
@@ -430,9 +430,9 @@ SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(
|
||||
# make bb x86 happy
|
||||
SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(-1 -1)'), ST_GEOMFROMTEXT('POINT(-2 -2)')), 10) as result;
|
||||
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)'), 1) as result;
|
||||
--error ER_INTERNAL_ERROR
|
||||
--error ER_GIS_UNSUPPORTED_ARGUMENT
|
||||
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)'), 0) as result;
|
||||
--error ER_INTERNAL_ERROR
|
||||
--error ER_GIS_UNSUPPORTED_ARGUMENT
|
||||
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('POINT(0 0)'), ST_GEOMFROMTEXT('POINT(1 1)'), -1) as result;
|
||||
--echo # Test longitude/lattitude
|
||||
# make bb x86 happy
|
||||
@@ -456,7 +456,7 @@ SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_G
|
||||
SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(8 9,3 4 )')), 10) as result;
|
||||
# make bb x86 happy
|
||||
SELECT TRUNCATE(ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(8 9,3 4 )'),1), 17) as result;
|
||||
--error ER_INTERNAL_ERROR
|
||||
--error ER_GIS_UNSUPPORTED_ARGUMENT
|
||||
SELECT ST_DISTANCE_SPHERE(ST_GEOMFROMTEXT('MULTIPOINT(1 2,1 1 )'), ST_GEOMFROMTEXT('MULTIPOINT(8 9,3 4 )'),0) as result;
|
||||
|
||||
# Longitude out of range [-180,180]
|
||||
|
||||
@@ -5492,6 +5492,11 @@ MULTIPOLYGON(POLYGON(LINESTRING(POINT(4, 3), POINT(4, 4), POINT(3, 4), POINT(4,
|
||||
) AS t;
|
||||
ST_SRID(g1) ST_SRID(ST_GeomFromWKB(g1, 4326)) ST_SRID(ST_GeomFromWKB(g1)) ST_AsText(g1) ST_SRID(ST_PointFromWKB(g2, 4326)) ST_SRID(g2) ST_SRID(ST_LineStringFromWKB(g3, 3)) ST_SRID(ST_PolygonFromWKB(g4, 4)) ST_SRID(ST_MultiPointFromWKB(g5, 5)) ST_SRID(ST_MultiLineStringFromWKB(g6, 6)) ST_SRID(ST_MultiPolygonFromWKB(g7, 7))
|
||||
0 4326 0 POINT(1 2) 4326 0 3 4 5 6 7
|
||||
#
|
||||
# MDEV-35117 Error message "ERROR 1815 (HY000): Internal error: st_distance_sphere' could be improved
|
||||
#
|
||||
SELECT ST_DISTANCE_SPHERE(st_geomfromtext('linestring( 2 2, 2 8) '), ST_GeomFromText('POINT(18.413076 43.856258)')) ;
|
||||
ERROR HY000: Calling geometry function st_distance_sphere with unsupported types of arguments.
|
||||
# End of 10.5 tests
|
||||
#
|
||||
# Start of 11.5 tests
|
||||
|
||||
@@ -3497,6 +3497,12 @@ FROM (
|
||||
MULTIPOLYGON(POLYGON(LINESTRING(POINT(4, 3), POINT(4, 4), POINT(3, 4), POINT(4, 3)))) AS g7
|
||||
) AS t;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-35117 Error message "ERROR 1815 (HY000): Internal error: st_distance_sphere' could be improved
|
||||
--echo #
|
||||
--error ER_GIS_UNSUPPORTED_ARGUMENT
|
||||
SELECT ST_DISTANCE_SPHERE(st_geomfromtext('linestring( 2 2, 2 8) '), ST_GeomFromText('POINT(18.413076 43.856258)')) ;
|
||||
|
||||
--echo # End of 10.5 tests
|
||||
|
||||
--echo #
|
||||
|
||||
@@ -4383,3 +4383,27 @@ drop table t1;
|
||||
#
|
||||
# End of 10.6 tests
|
||||
#
|
||||
#
|
||||
# MDEV-36118 Wrong result in loose index scan
|
||||
#
|
||||
CREATE TABLE t1 (a int, b int, KEY (a, b));
|
||||
insert into t1 values (1, 3), (1, 1);
|
||||
SELECT MAX(b) FROM t1 WHERE (b > 2 AND b < 4) OR (b = 5) GROUP BY a;
|
||||
MAX(b)
|
||||
3
|
||||
drop table t1;
|
||||
#
|
||||
# MDEV-36220 ASAN unknown-crash in loose index scan of MIN with IS NULL
|
||||
#
|
||||
CREATE TABLE t1 (a int, b int, KEY (a, b));
|
||||
insert into t1 values (4, NULL), (1, 14), (4, 3);
|
||||
SELECT MIN(b) FROM t1 WHERE b = 3 OR b IS NULL GROUP BY a;
|
||||
MIN(b)
|
||||
3
|
||||
SELECT MIN(b) FROM t1 WHERE b IS NULL GROUP BY a;
|
||||
MIN(b)
|
||||
NULL
|
||||
drop table t1;
|
||||
#
|
||||
# End of 10.11 tests
|
||||
#
|
||||
|
||||
@@ -2014,3 +2014,39 @@ drop table t1;
|
||||
--echo #
|
||||
--echo # End of 10.6 tests
|
||||
--echo #
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-36118 Wrong result in loose index scan
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (a int, b int, KEY (a, b));
|
||||
insert into t1 values (1, 3), (1, 1);
|
||||
--source include/maybe_debug.inc
|
||||
if ($have_debug) {
|
||||
--disable_query_log
|
||||
set @old_debug=@@debug;
|
||||
set debug="+d,force_group_by";
|
||||
--enable_query_log
|
||||
}
|
||||
SELECT MAX(b) FROM t1 WHERE (b > 2 AND b < 4) OR (b = 5) GROUP BY a;
|
||||
if ($have_debug) {
|
||||
--disable_query_log
|
||||
set debug=@old_debug;
|
||||
--enable_query_log
|
||||
}
|
||||
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-36220 ASAN unknown-crash in loose index scan of MIN with IS NULL
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (a int, b int, KEY (a, b));
|
||||
insert into t1 values (4, NULL), (1, 14), (4, 3);
|
||||
SELECT MIN(b) FROM t1 WHERE b = 3 OR b IS NULL GROUP BY a;
|
||||
SELECT MIN(b) FROM t1 WHERE b IS NULL GROUP BY a;
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.11 tests
|
||||
--echo #
|
||||
|
||||
@@ -2051,3 +2051,15 @@ a b c a a b
|
||||
DROP TABLE t1, t2, t3;
|
||||
set join_cache_level= @save_join_cache_level;
|
||||
# end of 10.3 tests
|
||||
#
|
||||
# MDEV-32084: Assertion in best_extension_by_limited_search(), or crash elsewhere in release
|
||||
#
|
||||
CREATE TABLE t1 (i int);
|
||||
INSERT INTO t1 values (1),(2);
|
||||
SELECT 1 FROM t1 WHERE i IN
|
||||
(SELECT 1 FROM t1 c
|
||||
LEFT JOIN (t1 a LEFT JOIN t1 b ON t1.i = b.i) ON c.i = t1.i);
|
||||
1
|
||||
1
|
||||
DROP TABLE t1;
|
||||
# end of 10.11 tests
|
||||
|
||||
@@ -1459,3 +1459,16 @@ DROP TABLE t1, t2, t3;
|
||||
set join_cache_level= @save_join_cache_level;
|
||||
|
||||
--echo # end of 10.3 tests
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-32084: Assertion in best_extension_by_limited_search(), or crash elsewhere in release
|
||||
--echo #
|
||||
CREATE TABLE t1 (i int);
|
||||
INSERT INTO t1 values (1),(2);
|
||||
|
||||
SELECT 1 FROM t1 WHERE i IN
|
||||
(SELECT 1 FROM t1 c
|
||||
LEFT JOIN (t1 a LEFT JOIN t1 b ON t1.i = b.i) ON c.i = t1.i);
|
||||
|
||||
DROP TABLE t1;
|
||||
--echo # end of 10.11 tests
|
||||
|
||||
@@ -2060,6 +2060,18 @@ a b c a a b
|
||||
DROP TABLE t1, t2, t3;
|
||||
set join_cache_level= @save_join_cache_level;
|
||||
# end of 10.3 tests
|
||||
#
|
||||
# MDEV-32084: Assertion in best_extension_by_limited_search(), or crash elsewhere in release
|
||||
#
|
||||
CREATE TABLE t1 (i int);
|
||||
INSERT INTO t1 values (1),(2);
|
||||
SELECT 1 FROM t1 WHERE i IN
|
||||
(SELECT 1 FROM t1 c
|
||||
LEFT JOIN (t1 a LEFT JOIN t1 b ON t1.i = b.i) ON c.i = t1.i);
|
||||
1
|
||||
1
|
||||
DROP TABLE t1;
|
||||
# end of 10.11 tests
|
||||
CREATE TABLE t5 (a int, b int, c int, PRIMARY KEY(a), KEY b_i (b));
|
||||
CREATE TABLE t6 (a int, b int, c int, PRIMARY KEY(a), KEY b_i (b));
|
||||
CREATE TABLE t7 (a int, b int, c int, PRIMARY KEY(a), KEY b_i (b));
|
||||
|
||||
@@ -1 +1 @@
|
||||
--large-pages
|
||||
--large-pages --loose-innodb-buffer-pool-size-max=16m
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
call mtr.add_suppression("\\[Warning\\] (mysqld|mariadbd): Couldn't allocate [0-9]+ bytes \\((Large/HugeTLB memory|MEMLOCK) page size [0-9]+\\).*");
|
||||
call mtr.add_suppression("\\[ERROR\\]*Lock Pages in memory access rights required.*");
|
||||
create table t1 (
|
||||
a int not null auto_increment,
|
||||
b char(16) not null,
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
# Test of large pages (or at least the fallback to conventional allocation)
|
||||
|
||||
# Windows needs SeLockMemoryPrivilege
|
||||
--source include/not_windows.inc
|
||||
--source include/have_innodb.inc
|
||||
|
||||
call mtr.add_suppression("\\[Warning\\] (mysqld|mariadbd): Couldn't allocate [0-9]+ bytes \\((Large/HugeTLB memory|MEMLOCK) page size [0-9]+\\).*");
|
||||
|
||||
call mtr.add_suppression("\\[ERROR\\]*Lock Pages in memory access rights required.*");
|
||||
create table t1 (
|
||||
a int not null auto_increment,
|
||||
b char(16) not null,
|
||||
|
||||
@@ -1452,4 +1452,26 @@ DROP TABLE t1, t2;
|
||||
#
|
||||
CREATE TABLE t1 (pk INT, a TEXT NOT NULL DEFAULT '', PRIMARY KEY (pk), b INT AUTO_INCREMENT, UNIQUE(b), UNIQUE (a,b)) ENGINE=myisam;
|
||||
ERROR HY000: AUTO_INCREMENT column `b` cannot be used in the UNIQUE index `a`
|
||||
#
|
||||
# MDEV-35620 UBSAN: runtime error: applying zero offset to null pointer in _ma_unique_hash, skip_trailing_space, my_hash_sort_mb_nopad_bin and my_strnncollsp_utf8mb4_bin
|
||||
#
|
||||
# Disable result log. The exact result is not important.
|
||||
# We just need to make sure UBSAN nullptr-with-offset is not reported.
|
||||
SELECT DISTINCT user,authentication_string FROM mysql.user;
|
||||
SELECT DISTINCT USER,PASSWORD FROM mysql.user;
|
||||
SELECT DISTINCT USER,plugin FROM mysql.user;
|
||||
# Enabling result log again.
|
||||
create or replace table t1 (t text) engine=aria;
|
||||
insert into t1 values ('');
|
||||
insert into t1 values (NULL);
|
||||
select distinct t from t1;
|
||||
t
|
||||
|
||||
NULL
|
||||
alter table t1 ENGINE=MyISAM;
|
||||
select distinct t from t1;
|
||||
t
|
||||
|
||||
NULL
|
||||
DROP TABLE t1;
|
||||
# End of 10.5 tests
|
||||
|
||||
@@ -552,4 +552,26 @@ DROP TABLE t1, t2;
|
||||
--error ER_NO_AUTOINCREMENT_WITH_UNIQUE
|
||||
CREATE TABLE t1 (pk INT, a TEXT NOT NULL DEFAULT '', PRIMARY KEY (pk), b INT AUTO_INCREMENT, UNIQUE(b), UNIQUE (a,b)) ENGINE=myisam;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-35620 UBSAN: runtime error: applying zero offset to null pointer in _ma_unique_hash, skip_trailing_space, my_hash_sort_mb_nopad_bin and my_strnncollsp_utf8mb4_bin
|
||||
--echo #
|
||||
|
||||
--echo # Disable result log. The exact result is not important.
|
||||
--echo # We just need to make sure UBSAN nullptr-with-offset is not reported.
|
||||
--disable_result_log
|
||||
SELECT DISTINCT user,authentication_string FROM mysql.user;
|
||||
SELECT DISTINCT USER,PASSWORD FROM mysql.user;
|
||||
SELECT DISTINCT USER,plugin FROM mysql.user;
|
||||
--enable_result_log
|
||||
--echo # Enabling result log again.
|
||||
|
||||
create or replace table t1 (t text) engine=aria;
|
||||
insert into t1 values ('');
|
||||
insert into t1 values (NULL);
|
||||
select distinct t from t1;
|
||||
alter table t1 ENGINE=MyISAM;
|
||||
select distinct t from t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
--echo # End of 10.5 tests
|
||||
|
||||
35
mysql-test/main/mariadb-upgrade-service.result
Normal file
35
mysql-test/main/mariadb-upgrade-service.result
Normal file
@@ -0,0 +1,35 @@
|
||||
use mysql;
|
||||
# run mysql_install_db with --service parameter
|
||||
# Start service
|
||||
# -- Upgrade service (online) --
|
||||
Phase 1/10: Stopping service
|
||||
Phase 2/10: Start and stop server in the old version, to avoid crash recovery (skipped)
|
||||
Phase 3/10: Fixing server config file
|
||||
Phase 4/10: Starting mysqld for upgrade
|
||||
Phase 5/10: Waiting for startup to complete
|
||||
Phase 6/10: Running mysql_upgrade
|
||||
Phase 7/10: Changing service configuration
|
||||
Phase 8/10: Initiating server shutdown
|
||||
Phase 9/10: Waiting for shutdown to complete
|
||||
Phase 10/10: Starting service
|
||||
Service 'SERVICE_NAME' successfully upgraded.
|
||||
Log file is written to UPGRADE_LOG
|
||||
# upgrade_success(online)=1
|
||||
# Service stopped
|
||||
# -- Upgrade service (offline) --
|
||||
Phase 1/10: Stopping service
|
||||
Phase 2/10: Start and stop server in the old version, to avoid crash recovery ,this can take some time
|
||||
Phase 3/10: Fixing server config file
|
||||
Phase 4/10: Starting mysqld for upgrade
|
||||
Phase 5/10: Waiting for startup to complete
|
||||
Phase 6/10: Running mysql_upgrade
|
||||
Phase 7/10: Changing service configuration
|
||||
Phase 8/10: Initiating server shutdown
|
||||
Phase 9/10: Waiting for shutdown to complete
|
||||
Phase 10/10: Starting service (skipped)
|
||||
Service 'SERVICE_NAME' successfully upgraded.
|
||||
Log file is written to UPGRADE_LOG
|
||||
# upgrade_success(offline)=1
|
||||
# Delete service
|
||||
connection default;
|
||||
# restart
|
||||
113
mysql-test/main/mariadb-upgrade-service.test
Normal file
113
mysql-test/main/mariadb-upgrade-service.test
Normal file
@@ -0,0 +1,113 @@
|
||||
source include/windows.inc;
|
||||
let $datadir_name=data;
|
||||
let $service_name_prefix=mariadb;
|
||||
let $password=password;
|
||||
|
||||
source include/check_windows_admin.inc;
|
||||
|
||||
# The test uses return code from sc.exe utility, which are as follows
|
||||
let $ERROR_SERVICE_DOES_NOT_EXIST= 1060;
|
||||
let $ERROR_SERVICE_CANNOT_ACCEPT_CTRL=1061;# intermediate, during start or stop
|
||||
let $ERROR_SERVICE_NOT_ACTIVE=1062;# service stopped
|
||||
let $ERROR_INVALID_SERVICE_CONTROL=1052; # The requested control is not valid for this service
|
||||
|
||||
let $sc_exe= C:\Windows\System32\sc.exe;
|
||||
let $ddir= $MYSQLTEST_VARDIR/tmp/$datadir_name;
|
||||
let $service_name=$service_name_prefix$MASTER_MYPORT;
|
||||
let TMP= $MYSQLTEST_VARDIR/tmp;
|
||||
let $upgrade_log=$TMP/mysql_upgrade_service.$service_name.log;
|
||||
|
||||
use mysql;
|
||||
error 0,1;
|
||||
rmdir $ddir;
|
||||
|
||||
--disable_result_log
|
||||
error 0,$ERROR_SERVICE_DOES_NOT_EXIST;
|
||||
exec $sc_exe delete $service_name;
|
||||
--enable_result_log
|
||||
|
||||
source include/shutdown_mysqld.inc;
|
||||
echo # run mysql_install_db with --service parameter;
|
||||
--disable_result_log
|
||||
exec $MYSQL_INSTALL_DB_EXE --datadir=$ddir --port=$MASTER_MYPORT --password=$password --service=$service_name --verbose-bootstrap -R;
|
||||
--enable_result_log
|
||||
|
||||
echo # Start service;
|
||||
--disable_result_log
|
||||
exec $sc_exe start $service_name;
|
||||
--enable_result_log
|
||||
|
||||
enable_reconnect;
|
||||
source include/wait_until_connected_again.inc;
|
||||
disable_reconnect;
|
||||
|
||||
echo # -- Upgrade service (online) --;
|
||||
--replace_result $upgrade_log UPGRADE_LOG $service_name SERVICE_NAME
|
||||
let $sys_errno=0;
|
||||
let $upgrade_success = 1;
|
||||
error 0,1;
|
||||
exec $MARIADB_UPGRADE_SERVICE_EXE --service=$service_name;
|
||||
|
||||
if($sys_errno != 0)
|
||||
{
|
||||
let $upgrade_success = 0;
|
||||
}
|
||||
|
||||
echo # upgrade_success(online)=$upgrade_success;
|
||||
file_exists $upgrade_log;
|
||||
if ($upgrade_success == 0)
|
||||
{
|
||||
echo --detailed error(online upgrade)--;
|
||||
cat_file $upgrade_log;
|
||||
}
|
||||
# stop service
|
||||
--disable_result_log
|
||||
# Wait until stopped
|
||||
let $sys_errno=0;
|
||||
while($sys_errno != $ERROR_SERVICE_NOT_ACTIVE)
|
||||
{
|
||||
--error 0,$ERROR_SERVICE_CANNOT_ACCEPT_CTRL,$ERROR_SERVICE_NOT_ACTIVE, $ERROR_INVALID_SERVICE_CONTROL
|
||||
exec $sc_exe stop $service_name;
|
||||
if($sys_errno != $ERROR_SERVICE_NOT_ACTIVE)
|
||||
{
|
||||
--real_sleep 0.1
|
||||
}
|
||||
}
|
||||
--enable_result_log
|
||||
echo # Service stopped;
|
||||
|
||||
echo # -- Upgrade service (offline) --;
|
||||
--replace_result $upgrade_log UPGRADE_LOG $service_name SERVICE_NAME
|
||||
let $sys_errno=0;
|
||||
let $upgrade_success = 1;
|
||||
error 0,1;
|
||||
exec $MARIADB_UPGRADE_SERVICE_EXE --service=$service_name;
|
||||
|
||||
if($sys_errno != 0)
|
||||
{
|
||||
let $upgrade_success = 0;
|
||||
}
|
||||
|
||||
echo # upgrade_success(offline)=$upgrade_success;
|
||||
file_exists $upgrade_log;
|
||||
if ($upgrade_success == 0)
|
||||
{
|
||||
echo --detailed error(online upgrade)--;
|
||||
cat_file $upgrade_log;
|
||||
}
|
||||
|
||||
echo # Delete service;
|
||||
let $sys_errno=0;
|
||||
--disable_result_log
|
||||
exec $sc_exe delete $service_name;
|
||||
--enable_result_log
|
||||
|
||||
# Cleanup
|
||||
source include/wait_until_disconnected.inc;
|
||||
rmdir $ddir;
|
||||
remove_file $upgrade_log;
|
||||
let TEMP=$old_temp;
|
||||
|
||||
#restart original server
|
||||
connection default;
|
||||
source include/start_mysqld.inc;
|
||||
1
mysql-test/main/my_getopt_case_insensitive.opt
Normal file
1
mysql-test/main/my_getopt_case_insensitive.opt
Normal file
@@ -0,0 +1 @@
|
||||
--slOw_QuEry_loG=OFF
|
||||
8
mysql-test/main/my_getopt_case_insensitive.result
Normal file
8
mysql-test/main/my_getopt_case_insensitive.result
Normal file
@@ -0,0 +1,8 @@
|
||||
#
|
||||
# MDEV-27126: my_getopt compares option names case sensitively
|
||||
#
|
||||
# Check if the variable is set correctly from options
|
||||
SELECT @@GLOBAL.slow_query_log;
|
||||
@@GLOBAL.slow_query_log
|
||||
0
|
||||
# End of test.
|
||||
8
mysql-test/main/my_getopt_case_insensitive.test
Normal file
8
mysql-test/main/my_getopt_case_insensitive.test
Normal file
@@ -0,0 +1,8 @@
|
||||
--echo #
|
||||
--echo # MDEV-27126: my_getopt compares option names case sensitively
|
||||
--echo #
|
||||
|
||||
--echo # Check if the variable is set correctly from options
|
||||
SELECT @@GLOBAL.slow_query_log;
|
||||
|
||||
--echo # End of test.
|
||||
@@ -1,4 +1,7 @@
|
||||
drop table if exists t1,t2;
|
||||
call mtr.add_suppression("Index.*try to repair it");
|
||||
call mtr.add_suppression("Disk got full");
|
||||
call mtr.add_suppression("Got an error from thread_id");
|
||||
create table t1 (id int, sometext varchar(100)) engine=myisam;
|
||||
insert into t1 values (1, "hello"),(2, "hello2"),(4, "hello3"),(4, "hello4");
|
||||
create table t2 like t1;
|
||||
@@ -43,4 +46,9 @@ connection default;
|
||||
connection con2;
|
||||
disconnect con2;
|
||||
connection default;
|
||||
SET @saved_dbug = @@SESSION.debug_dbug;
|
||||
SET debug_dbug='+d,simulate_file_pwrite_error';
|
||||
insert into t1 select * from t2;
|
||||
ERROR HY000: Disk got full writing 'test.t1' (Errcode: 28 "No space left on device")
|
||||
SET debug_dbug= @saved_dbug;
|
||||
drop table t1,t2;
|
||||
|
||||
@@ -1,12 +1,17 @@
|
||||
#
|
||||
# Test bugs in the MyISAM code that require more space/time
|
||||
--source include/big_test.inc
|
||||
--source include/have_debug.inc
|
||||
|
||||
# Initialise
|
||||
--disable_warnings
|
||||
drop table if exists t1,t2;
|
||||
--enable_warnings
|
||||
|
||||
call mtr.add_suppression("Index.*try to repair it");
|
||||
call mtr.add_suppression("Disk got full");
|
||||
call mtr.add_suppression("Got an error from thread_id");
|
||||
|
||||
#
|
||||
# BUG#925377:
|
||||
# Querying myisam table metadata while 'alter table..enable keys' is
|
||||
@@ -61,4 +66,12 @@ connection con2;
|
||||
reap;
|
||||
disconnect con2;
|
||||
connection default;
|
||||
|
||||
#
|
||||
# Test error message from disk full
|
||||
SET @saved_dbug = @@SESSION.debug_dbug;
|
||||
SET debug_dbug='+d,simulate_file_pwrite_error';
|
||||
--error ER_DISK_FULL
|
||||
insert into t1 select * from t2;
|
||||
SET debug_dbug= @saved_dbug;
|
||||
drop table t1,t2;
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
delimiter $
|
||||
select 1;
|
||||
$
|
||||
exit
|
||||
Welcome to the MariaDB monitor. Commands end with ; or \g.
|
||||
Your MariaDB connection id is X
|
||||
Server version: Y
|
||||
@@ -21,4 +22,5 @@ MariaDB [(none)]> select 1;
|
||||
+---+
|
||||
1 row in set
|
||||
|
||||
MariaDB [(none)]>
|
||||
MariaDB [(none)]> exit
|
||||
Bye
|
||||
|
||||
@@ -6,23 +6,16 @@ source include/not_windows.inc;
|
||||
# this would need an instrumented ncurses library
|
||||
source include/not_msan.inc;
|
||||
|
||||
error 0,1;
|
||||
exec $MYSQL -V|grep -q readline;
|
||||
if ($sys_errno == 1)
|
||||
{
|
||||
# strangely enough
|
||||
skip does not work with libedit;
|
||||
}
|
||||
|
||||
write_file $MYSQL_TMP_DIR/mysql_in;
|
||||
delimiter $
|
||||
select 1;
|
||||
$
|
||||
exit
|
||||
EOF
|
||||
let TERM=dumb;
|
||||
replace_regex /id is \d+/id is X/ /Server version: .*/Server version: Y/ / \(\d+\.\d+ sec\)//;
|
||||
error 0,127;
|
||||
exec socat EXEC:"$MYSQL",pty STDIO < $MYSQL_TMP_DIR/mysql_in;
|
||||
exec socat -t10 EXEC:"$MYSQL",pty STDIO < $MYSQL_TMP_DIR/mysql_in;
|
||||
if ($sys_errno == 127)
|
||||
{
|
||||
remove_file $MYSQL_TMP_DIR/mysql_in;
|
||||
|
||||
@@ -152,7 +152,8 @@ Phase 7/8: uninstalling plugins
|
||||
Phase 8/8: Running 'FLUSH PRIVILEGES'
|
||||
OK
|
||||
Run it again - should say already completed
|
||||
This installation of MariaDB is already upgraded to VERSION.There is no need to run mariadb-upgrade again for VERSION.
|
||||
This installation of MariaDB is already upgraded to X.Y.Z-MariaDB.
|
||||
There is no need to run mariadb-upgrade again.
|
||||
You can use --force if you still want to run mariadb-upgrade
|
||||
Force should run it regardless of whether it has been run before
|
||||
Phase 1/8: Checking and upgrading mysql database
|
||||
@@ -1922,11 +1923,11 @@ FLUSH PRIVILEGES;
|
||||
#
|
||||
# MDEV-27279: mariadb_upgrade add --check-if-upgrade-is-needed
|
||||
#
|
||||
This installation of MariaDB is already upgraded to MariaDB .
|
||||
There is no need to run mariadb-upgrade again for MariaDB .
|
||||
This installation of MariaDB is already upgraded to X.Y.Z-MariaDB.
|
||||
There is no need to run mariadb-upgrade again.
|
||||
Looking for 'mariadb' as: mariadb
|
||||
This installation of MariaDB is already upgraded to MariaDB .
|
||||
There is no need to run mariadb-upgrade again for MariaDB .
|
||||
This installation of MariaDB is already upgraded to X.Y.Z-MariaDB.
|
||||
There is no need to run mariadb-upgrade again.
|
||||
#
|
||||
# MDEV-27279: mariadb_upgrade check-if-upgrade absence is do it
|
||||
#
|
||||
@@ -1936,17 +1937,17 @@ Empty or non existent ...mariadb_upgrade_info. Assuming mysql_upgrade has to be
|
||||
# MDEV-27279: mariadb_upgrade check-if-upgrade with minor version change
|
||||
#
|
||||
Looking for 'mariadb' as: mariadb
|
||||
This installation of MariaDB is already upgraded to MariaDB .
|
||||
There is no need to run mariadb-upgrade again for MariaDB .
|
||||
This installation of MariaDB is already upgraded to MariaDB .
|
||||
There is no need to run mariadb-upgrade again for MariaDB .
|
||||
This installation of MariaDB is already upgraded to X.Y.0-MariaDB.
|
||||
There is no need to run mariadb-upgrade again for X.Y.Z-MariaDB, because they're both X.Y.
|
||||
This installation of MariaDB is already upgraded to X.Y.0-MariaDB.
|
||||
There is no need to run mariadb-upgrade again for X.Y.Z-MariaDB, because they're both X.Y.
|
||||
You can use --force if you still want to run mariadb-upgrade
|
||||
#
|
||||
# MDEV-27279: mariadb_upgrade check-if-upgrade with major version change
|
||||
#
|
||||
Major version upgrade detected from MariaDB to MariaDB . Check required!
|
||||
Major version upgrade detected from X.0.99 to X.Y.Z-MariaDB. Check required!
|
||||
Looking for 'mysql' as: mysql
|
||||
Major version upgrade detected from MariaDB to MariaDB . Check required!
|
||||
Major version upgrade detected from X.0.99 to X.Y.Z-MariaDB. Check required!
|
||||
drop table mysql.global_priv;
|
||||
rename table mysql.global_priv_bak to mysql.global_priv;
|
||||
# End of 10.2 tests
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
--source include/long_test.inc
|
||||
-- source include/mysql_upgrade_preparation.inc
|
||||
-- source include/have_working_dns.inc
|
||||
-- source include/have_innodb.inc
|
||||
-- source include/have_partition.inc
|
||||
-- source include/no_valgrind_without_big.inc
|
||||
|
||||
let majorminor=`select substring_index(version(), '.', 2)`;
|
||||
# for major upgrade test, see below
|
||||
let major=`select substring_index(version(), '.', 1) - (version() like '%.0.%')`;
|
||||
|
||||
set sql_mode="";
|
||||
|
||||
@@ -32,7 +36,7 @@ file_exists $MYSQLD_DATADIR/mysql_upgrade_info;
|
||||
file_exists $MYSQLD_DATADIR/mariadb_upgrade_info;
|
||||
|
||||
--echo Run it again - should say already completed
|
||||
--replace_regex /upgraded to [^\n].*/upgraded to VERSION./ /again for [^\n]*/again for VERSION./
|
||||
--replace_result $MYSQL_SERVER_VERSION X.Y.Z-MariaDB
|
||||
--exec $MYSQL_UPGRADE 2>&1
|
||||
|
||||
# It should have created a file in the MySQL Servers datadir
|
||||
@@ -302,10 +306,11 @@ FLUSH PRIVILEGES;
|
||||
|
||||
--error 1
|
||||
--exec $MYSQL_UPGRADE --check-if-upgrade-is-needed --silent
|
||||
--replace_regex /\d\d\.\d*\.\d*[^ .\n]*/MariaDB /
|
||||
--replace_result $MYSQL_SERVER_VERSION X.Y.Z-MariaDB
|
||||
--error 1
|
||||
--exec $MYSQL_UPGRADE --check-if-upgrade-is-needed
|
||||
--replace_regex /\d\d\.\d*\.\d*[^ .\n]*/MariaDB / /'mariadb.* as:[^\n]*/'mariadb' as: mariadb/
|
||||
--replace_result $MYSQL_SERVER_VERSION X.Y.Z-MariaDB
|
||||
--replace_regex /'mariadb.* as:[^\n]*/'mariadb' as: mariadb/
|
||||
--error 1
|
||||
--exec $MYSQL_UPGRADE --check-if-upgrade-is-needed --verbose
|
||||
|
||||
@@ -333,16 +338,18 @@ perl;
|
||||
my $file= $ENV{'DATADIR'} or die "MYSQLD_DATADIR not set";
|
||||
$ver =~ s/^(\d*)\.(\d*).(\d*)(.*)/$1.$2.0$4/;
|
||||
open(FILE, ">$file/mariadb_upgrade_info") or die "Failed to open $file";
|
||||
binmode FILE;
|
||||
print FILE "$ver\n";
|
||||
close(FILE);
|
||||
EOF
|
||||
|
||||
--error 1
|
||||
--exec $MYSQL_UPGRADE --check-if-upgrade-is-needed --silent
|
||||
--replace_regex /\d\d\.\d*\.\d*[^ .\n]*/MariaDB / /'mariadb.* as:[^\n]*/'mariadb' as: mariadb/
|
||||
--replace_result $MYSQL_SERVER_VERSION X.Y.Z-MariaDB $majorminor X.Y
|
||||
--replace_regex /'mariadb.* as:[^\n]*/'mariadb' as: mariadb/
|
||||
--error 1
|
||||
--exec $MYSQL_UPGRADE --check-if-upgrade-is-needed --verbose
|
||||
--replace_regex /\d\d\.\d*\.\d*[^ .\n]*/MariaDB /
|
||||
--replace_result $MYSQL_SERVER_VERSION X.Y.Z-MariaDB $majorminor X.Y
|
||||
--exec $MYSQL_UPGRADE
|
||||
--remove_file $MYSQLD_DATADIR/mariadb_upgrade_info
|
||||
|
||||
@@ -358,23 +365,17 @@ perl;
|
||||
my $ver= $ENV{'MYSQL_SERVER_VERSION'} or die "MYSQL_SERVER_VERSION not set";
|
||||
my $file= $ENV{'DATADIR'} or die "MYSQLD_DATADIR not set";
|
||||
open(FILE, ">$file/mariadb_upgrade_info") or die "Failed to open $file";
|
||||
if ($ver =~ m/(\d*)\.0\.(\d*)(.*)/)
|
||||
{
|
||||
my $prev= $1-1;
|
||||
$ver= $prev . '.0.' . $2 . $3;
|
||||
}
|
||||
else
|
||||
{
|
||||
$ver =~ s/^(\d*)\.(\d*)\.(\d*)(.*)/$1.0.$3$4/;
|
||||
}
|
||||
binmode FILE;
|
||||
$ver =~ s/^(\d+)\.(\d+)\.\d+.*/($1-!$2).'.0.99'/e;
|
||||
print FILE "$ver\n";
|
||||
close(FILE);
|
||||
EOF
|
||||
|
||||
--exec $MYSQL_UPGRADE --check-if-upgrade-is-needed --silent
|
||||
--replace_regex /\d\d\.\d*\.\d*[^ .\n]*/MariaDB /
|
||||
--replace_result $MYSQL_SERVER_VERSION X.Y.Z-MariaDB $major X
|
||||
--exec $MYSQL_UPGRADE --check-if-upgrade-is-needed
|
||||
--replace_regex /\d\d\.\d*\.\d*[^ .\n]*/MariaDB / /'mariadb.* as:[^\n]*/'mysql' as: mysql/
|
||||
--replace_result $MYSQL_SERVER_VERSION X.Y.Z-MariaDB $major X
|
||||
--replace_regex /'mariadb.* as:[^\n]*/'mysql' as: mysql/
|
||||
--exec $MYSQL_UPGRADE --check-if-upgrade-is-needed --verbose
|
||||
--remove_file $MYSQLD_DATADIR/mariadb_upgrade_info
|
||||
drop table mysql.global_priv;
|
||||
|
||||
@@ -655,21 +655,21 @@ INSTALL PLUGIN test_plugin_server SONAME 'AUTH_TEST_PLUGIN_LIB';
|
||||
/*M!100401 UNINSTALL PLUGIN IF EXIST cleartext_plugin_server */;
|
||||
INSTALL PLUGIN cleartext_plugin_server SONAME 'AUTH_TEST_PLUGIN_LIB';
|
||||
DELIMITER |
|
||||
/*M!100101 IF current_user()="'mariadb.sys'@'localhost'" THEN
|
||||
/*M!100101 IF current_user()='''mariadb.sys''@''localhost''' THEN
|
||||
SIGNAL SQLSTATE '45000' SET MYSQL_ERRNO=30001, MESSAGE_TEXT="Don't remove current user 'mariadb.sys'@'localhost''";
|
||||
END IF */|
|
||||
DELIMITER ;
|
||||
/*!50701 DROP USER IF EXISTS 'mariadb.sys'@'localhost' */;
|
||||
CREATE /*M!100103 OR REPLACE */ USER `mariadb.sys`@`localhost` PASSWORD EXPIRE;
|
||||
DELIMITER |
|
||||
/*M!100101 IF current_user()="'root'@'localhost'" THEN
|
||||
/*M!100101 IF current_user()='''root''@''localhost''' THEN
|
||||
SIGNAL SQLSTATE '45000' SET MYSQL_ERRNO=30001, MESSAGE_TEXT="Don't remove current user 'root'@'localhost''";
|
||||
END IF */|
|
||||
DELIMITER ;
|
||||
/*!50701 DROP USER IF EXISTS 'root'@'localhost' */;
|
||||
CREATE /*M!100103 OR REPLACE */ USER `root`@`localhost`;
|
||||
DELIMITER |
|
||||
/*M!100101 IF current_user()="'foobar'@'%'" THEN
|
||||
/*M!100101 IF current_user()='''foobar''@''%''' THEN
|
||||
SIGNAL SQLSTATE '45000' SET MYSQL_ERRNO=30001, MESSAGE_TEXT="Don't remove current user 'foobar'@'%''";
|
||||
END IF */|
|
||||
DELIMITER ;
|
||||
|
||||
@@ -6930,6 +6930,41 @@ set autocommit=0;
|
||||
commit;
|
||||
ERROR at line 11: Not allowed in the sandbox mode
|
||||
drop table t1;
|
||||
#
|
||||
# MDEV-36268 mariadb-dump used wrong quoting character
|
||||
#
|
||||
create table t1 (a int);
|
||||
create view `v'1"2` as select * from t1 with check option;
|
||||
/*M!999999\- enable the sandbox mode */
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
set autocommit=0;
|
||||
commit;
|
||||
SET @saved_cs_client = @@character_set_client;
|
||||
SET character_set_client = utf8mb4;
|
||||
/*!50001 CREATE VIEW `v'1"2` AS SELECT
|
||||
1 AS `a` */;
|
||||
SET character_set_client = @saved_cs_client;
|
||||
/*!50001 DROP VIEW IF EXISTS `v'1"2`*/;
|
||||
/*!50001 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!50001 SET @saved_cs_results = @@character_set_results */;
|
||||
/*!50001 SET @saved_col_connection = @@collation_connection */;
|
||||
/*!50001 SET character_set_client = utf8mb3 */;
|
||||
/*!50001 SET character_set_results = utf8mb3 */;
|
||||
/*!50001 SET collation_connection = utf8mb3_uca1400_ai_ci */;
|
||||
/*!50001 CREATE ALGORITHM=UNDEFINED */
|
||||
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
|
||||
/*!50001 VIEW `v'1"2` AS select `t1`.`a` AS `a` from `t1` */
|
||||
/*!50002 WITH CASCADED CHECK OPTION */;
|
||||
/*!50001 SET character_set_client = @saved_cs_client */;
|
||||
/*!50001 SET character_set_results = @saved_cs_results */;
|
||||
/*!50001 SET collation_connection = @saved_col_connection */;
|
||||
drop view `v'1"2`;
|
||||
drop table t1;
|
||||
# End of 10.5 tests
|
||||
#
|
||||
# MDEV-16733 mysqldump --tab and --xml options are conflicting
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
--source include/no_valgrind_without_big.inc
|
||||
--source include/long_test.inc
|
||||
--source include/have_utf8mb4.inc
|
||||
|
||||
call mtr.add_suppression("@003f.frm' \\(errno: 22\\)");
|
||||
@@ -3032,6 +3032,15 @@ EOF
|
||||
--remove_file $MYSQLTEST_VARDIR/tmp/mdev33727.sql
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-36268 mariadb-dump used wrong quoting character
|
||||
--echo #
|
||||
create table t1 (a int);
|
||||
create view `v'1"2` as select * from t1 with check option; # "'
|
||||
--exec $MYSQL_DUMP --compact test
|
||||
drop view `v'1"2`; # "'
|
||||
drop table t1;
|
||||
|
||||
--echo # End of 10.5 tests
|
||||
|
||||
--echo #
|
||||
|
||||
@@ -260,3 +260,6 @@ DROP TABLE t1;
|
||||
#
|
||||
# Bug MDEV-15789 (Upstream: #80329): MYSQLSLAP OPTIONS --AUTO-GENERATE-SQL-GUID-PRIMARY and --AUTO-GENERATE-SQL-SECONDARY-INDEXES DONT WORK
|
||||
#
|
||||
#
|
||||
# Bug MDEV-34621: Fix division by zero in mariadb-slap when iterations=0
|
||||
#
|
||||
|
||||
@@ -88,3 +88,9 @@ DROP TABLE t1;
|
||||
--exec $MYSQL_SLAP --concurrency=1 --silent --iterations=1 --number-int-cols=2 --number-char-cols=3 --auto-generate-sql --auto-generate-sql-guid-primary --create-schema=slap
|
||||
|
||||
--exec $MYSQL_SLAP --concurrency=1 --silent --iterations=1 --number-int-cols=2 --number-char-cols=3 --auto-generate-sql --auto-generate-sql-secondary-indexes=1 --create-schema=slap
|
||||
|
||||
--echo #
|
||||
--echo # Bug MDEV-34621: Fix division by zero in mariadb-slap when iterations=0
|
||||
--echo #
|
||||
|
||||
--exec $MYSQL_SLAP -i0 --only-print
|
||||
|
||||
@@ -989,4 +989,13 @@ select "foo\""bar";
|
||||
foo\"bar
|
||||
foo\"bar
|
||||
set sql_mode=default;
|
||||
#
|
||||
# MDEV-29344: engines/iuds.insert_time cannot run with PS protocol (syntax error)
|
||||
#
|
||||
SELECT 1 /* doesn't throw error */;
|
||||
1
|
||||
1
|
||||
SELECT 1 /* doesn't throw error */;
|
||||
1
|
||||
1
|
||||
End of tests
|
||||
|
||||
@@ -2954,6 +2954,12 @@ set sql_mode=no_backslash_escapes;
|
||||
select "foo\""bar";
|
||||
set sql_mode=default;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-29344: engines/iuds.insert_time cannot run with PS protocol (syntax error)
|
||||
--echo #
|
||||
SELECT 1 /* doesn't throw error */;
|
||||
SELECT 1 /* doesn't throw error */;
|
||||
|
||||
--echo End of tests
|
||||
|
||||
# Wait till we reached the initial number of concurrent sessions
|
||||
|
||||
@@ -259,3 +259,24 @@ CHECK TABLE `t1` EXTENDED;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-31122 Server crash in get_lock_data / mysql_lock_abort_for_thread
|
||||
#
|
||||
CREATE TABLE t1 (a INT);
|
||||
CREATE TABLE t2 (b INT, c varchar(5))
|
||||
PARTITION BY RANGE COLUMNS(c)
|
||||
SUBPARTITION by key(b) SUBPARTITIONS 2 (
|
||||
PARTITION p0 VALUES LESS THAN ('m'),
|
||||
PARTITION p1 VALUES LESS THAN ('z')
|
||||
);
|
||||
connect con1,localhost,root,,;
|
||||
HANDLER t1 OPEN;
|
||||
SELECT b FROM t2 PARTITION (p0);
|
||||
connection default;
|
||||
SET lock_wait_timeout= 1;
|
||||
ALTER TABLE t1 FORCE;
|
||||
connection con1;
|
||||
b
|
||||
disconnect con1;
|
||||
connection default;
|
||||
DROP TABLE t2, t1;
|
||||
|
||||
@@ -249,3 +249,31 @@ ALTER TABLE `t1` ADD PRIMARY KEY (`a`);
|
||||
ALTER TABLE `t1` REMOVE PARTITIONING;
|
||||
CHECK TABLE `t1` EXTENDED;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-31122 Server crash in get_lock_data / mysql_lock_abort_for_thread
|
||||
--echo #
|
||||
CREATE TABLE t1 (a INT);
|
||||
|
||||
CREATE TABLE t2 (b INT, c varchar(5))
|
||||
PARTITION BY RANGE COLUMNS(c)
|
||||
SUBPARTITION by key(b) SUBPARTITIONS 2 (
|
||||
PARTITION p0 VALUES LESS THAN ('m'),
|
||||
PARTITION p1 VALUES LESS THAN ('z')
|
||||
);
|
||||
|
||||
--connect (con1,localhost,root,,)
|
||||
HANDLER t1 OPEN;
|
||||
--send
|
||||
SELECT b FROM t2 PARTITION (p0);
|
||||
|
||||
--connection default
|
||||
SET lock_wait_timeout= 1;
|
||||
--error 0,ER_STATEMENT_TIMEOUT,ER_LOCK_WAIT_TIMEOUT
|
||||
ALTER TABLE t1 FORCE;
|
||||
|
||||
--connection con1
|
||||
--reap
|
||||
--disconnect con1
|
||||
--connection default
|
||||
DROP TABLE t2, t1;
|
||||
|
||||
@@ -138,6 +138,14 @@ drop user baz@baz;
|
||||
# End of 10.3 tests
|
||||
#
|
||||
#
|
||||
# MDEV-34501: SIGSEGV in pfs_start_mutex_wait_v1, __strlen_avx2, or __strlen_evex from safe_mutex_lock on CREATE DEFINER when using skip-grant-tables
|
||||
#
|
||||
CREATE DEFINER=a PROCEDURE p() SELECT 1;
|
||||
CREATE DEFINER=a FUNCTION f() RETURNS INT RETURN 100;
|
||||
DROP PROCEDURE p;
|
||||
DROP FUNCTION f;
|
||||
# End of 10.5 tests
|
||||
#
|
||||
# MDEV-24815 Show "--skip-grant-tables" state in SYSTEM VARIABLES
|
||||
#
|
||||
SELECT @@skip_grant_tables AS EXPECT_1;
|
||||
|
||||
@@ -168,6 +168,17 @@ drop user baz@baz;
|
||||
--echo # End of 10.3 tests
|
||||
--echo #
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-34501: SIGSEGV in pfs_start_mutex_wait_v1, __strlen_avx2, or __strlen_evex from safe_mutex_lock on CREATE DEFINER when using skip-grant-tables
|
||||
--echo #
|
||||
CREATE DEFINER=a PROCEDURE p() SELECT 1;
|
||||
CREATE DEFINER=a FUNCTION f() RETURNS INT RETURN 100;
|
||||
|
||||
DROP PROCEDURE p;
|
||||
DROP FUNCTION f;
|
||||
|
||||
--echo # End of 10.5 tests
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-24815 Show "--skip-grant-tables" state in SYSTEM VARIABLES
|
||||
--echo #
|
||||
|
||||
@@ -388,5 +388,14 @@ ERROR 23000: Column 'c2' in FROM is ambiguous
|
||||
DROP PROCEDURE p2;
|
||||
DROP TABLE t1, t2;
|
||||
#
|
||||
# MDEV-34501: SIGSEGV in pfs_start_mutex_wait_v1, __strlen_avx2, or __strlen_evex from safe_mutex_lock on CREATE DEFINER when using skip-grant-tables
|
||||
#
|
||||
# This test is a duplicate of the one located in the file skip_grants.test
|
||||
# and placed here to check the same test case against embedded-server
|
||||
CREATE DEFINER=a PROCEDURE p() SELECT 1;
|
||||
CREATE DEFINER=a FUNCTION f() RETURNS INT RETURN 100;
|
||||
DROP PROCEDURE p;
|
||||
DROP FUNCTION f;
|
||||
#
|
||||
# End of 10.5 tests
|
||||
#
|
||||
|
||||
@@ -414,6 +414,26 @@ CALL p2 (@a,@c);
|
||||
DROP PROCEDURE p2;
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-34501: SIGSEGV in pfs_start_mutex_wait_v1, __strlen_avx2, or __strlen_evex from safe_mutex_lock on CREATE DEFINER when using skip-grant-tables
|
||||
--echo #
|
||||
--echo # This test is a duplicate of the one located in the file skip_grants.test
|
||||
--echo # and placed here to check the same test case against embedded-server
|
||||
|
||||
# Disable warnings before running the following CREATE PROCEDURE/FUNCTION
|
||||
# statement since the warning message
|
||||
# "The user specified as a definer ('a'@'%') does not exist"
|
||||
# is output in case the test be run against a regular server
|
||||
# and isn't output if embedded server is used (@sa sp_process_definer()
|
||||
# in sql_parse.cc).
|
||||
--disable_warnings
|
||||
CREATE DEFINER=a PROCEDURE p() SELECT 1;
|
||||
CREATE DEFINER=a FUNCTION f() RETURNS INT RETURN 100;
|
||||
--enable_warnings
|
||||
|
||||
DROP PROCEDURE p;
|
||||
DROP FUNCTION f;
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.5 tests
|
||||
--echo #
|
||||
|
||||
@@ -2295,6 +2295,47 @@ SELECT 1 LIKE 2 ESCAPE a;
|
||||
END;
|
||||
$$
|
||||
ERROR 21000: Operand should contain 1 column(s)
|
||||
# Start of 10.6 tests
|
||||
#
|
||||
# MDEV-36179 Assertion `0' failed in virtual bool Type_handler_row::Item_save_in_value(THD*, Item*, st_value*) const
|
||||
#
|
||||
CREATE PROCEDURE p0 (IN a ROW(a INT,b INT))
|
||||
BEGIN
|
||||
SET a=ROW(0,0);
|
||||
END;
|
||||
/
|
||||
PREPARE s0 FROM 'CALL p0(?)';
|
||||
EXECUTE s0 USING @a;
|
||||
ERROR HY000: Illegal parameter data type row for operation 'EXECUTE ... USING ?'
|
||||
DROP PROCEDURE p0;
|
||||
CREATE PROCEDURE p0 (INOUT a ROW(a INT,b INT))
|
||||
BEGIN
|
||||
SET a=ROW(0,0);
|
||||
END;
|
||||
/
|
||||
PREPARE s0 FROM 'CALL p0(?)';
|
||||
EXECUTE s0 USING @a;
|
||||
ERROR HY000: Illegal parameter data type row for operation 'EXECUTE ... USING ?'
|
||||
DROP PROCEDURE p0;
|
||||
CREATE PROCEDURE p0 (OUT a ROW(a INT,b INT))
|
||||
BEGIN
|
||||
SET a=ROW(0,0);
|
||||
END;
|
||||
/
|
||||
PREPARE s0 FROM 'CALL p0(?)';
|
||||
EXECUTE s0 USING @a;
|
||||
ERROR HY000: Illegal parameter data type row for operation 'EXECUTE ... USING ?'
|
||||
DROP PROCEDURE p0;
|
||||
CREATE FUNCTION f0(a ROW(a INT,b INT)) RETURNS BOOLEAN
|
||||
BEGIN
|
||||
RETURN FALSE;
|
||||
END;
|
||||
/
|
||||
PREPARE s0 FROM 'SELECT f0(?)';
|
||||
EXECUTE s0 USING @a;
|
||||
ERROR HY000: Illegal parameter data type row for operation 'EXECUTE ... USING ?'
|
||||
DROP FUNCTION f0;
|
||||
# End of 10.6 tests
|
||||
#
|
||||
# Start of 11.7 tests
|
||||
#
|
||||
|
||||
@@ -1534,6 +1534,67 @@ $$
|
||||
DELIMITER ;$$
|
||||
|
||||
|
||||
--echo # Start of 10.6 tests
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-36179 Assertion `0' failed in virtual bool Type_handler_row::Item_save_in_value(THD*, Item*, st_value*) const
|
||||
--echo #
|
||||
|
||||
DELIMITER /;
|
||||
CREATE PROCEDURE p0 (IN a ROW(a INT,b INT))
|
||||
BEGIN
|
||||
SET a=ROW(0,0);
|
||||
END;
|
||||
/
|
||||
DELIMITER ;/
|
||||
PREPARE s0 FROM 'CALL p0(?)';
|
||||
--error ER_ILLEGAL_PARAMETER_DATA_TYPE_FOR_OPERATION
|
||||
EXECUTE s0 USING @a;
|
||||
DROP PROCEDURE p0;
|
||||
|
||||
|
||||
DELIMITER /;
|
||||
CREATE PROCEDURE p0 (INOUT a ROW(a INT,b INT))
|
||||
BEGIN
|
||||
SET a=ROW(0,0);
|
||||
END;
|
||||
/
|
||||
DELIMITER ;/
|
||||
PREPARE s0 FROM 'CALL p0(?)';
|
||||
--error ER_ILLEGAL_PARAMETER_DATA_TYPE_FOR_OPERATION
|
||||
EXECUTE s0 USING @a;
|
||||
DROP PROCEDURE p0;
|
||||
|
||||
|
||||
DELIMITER /;
|
||||
CREATE PROCEDURE p0 (OUT a ROW(a INT,b INT))
|
||||
BEGIN
|
||||
SET a=ROW(0,0);
|
||||
END;
|
||||
/
|
||||
DELIMITER ;/
|
||||
PREPARE s0 FROM 'CALL p0(?)';
|
||||
--error ER_ILLEGAL_PARAMETER_DATA_TYPE_FOR_OPERATION
|
||||
EXECUTE s0 USING @a;
|
||||
DROP PROCEDURE p0;
|
||||
|
||||
|
||||
DELIMITER /;
|
||||
CREATE FUNCTION f0(a ROW(a INT,b INT)) RETURNS BOOLEAN
|
||||
BEGIN
|
||||
RETURN FALSE;
|
||||
END;
|
||||
/
|
||||
DELIMITER ;/
|
||||
PREPARE s0 FROM 'SELECT f0(?)';
|
||||
--error ER_ILLEGAL_PARAMETER_DATA_TYPE_FOR_OPERATION
|
||||
EXECUTE s0 USING @a;
|
||||
DROP FUNCTION f0;
|
||||
|
||||
--echo # End of 10.6 tests
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # Start of 11.7 tests
|
||||
--echo #
|
||||
|
||||
@@ -25,3 +25,9 @@ OPENED_VIEWS 0
|
||||
set @@use_stat_tables= @save_use_stat_tables;
|
||||
set @@optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity;
|
||||
drop table t1;
|
||||
#
|
||||
# MDEV-36138 Server null-pointer crash at startup when tmptables left in --tmpdir
|
||||
#
|
||||
create table t1 (c int);
|
||||
drop table t1;
|
||||
# restart
|
||||
|
||||
@@ -24,4 +24,15 @@ select variable_name, session_status.variable_value - t1.variable_value
|
||||
from information_schema.session_status join t1 using (variable_name);
|
||||
set @@use_stat_tables= @save_use_stat_tables;
|
||||
set @@optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity;
|
||||
drop table t1;
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-36138 Server null-pointer crash at startup when tmptables left in --tmpdir
|
||||
--echo #
|
||||
|
||||
create table t1 (c int);
|
||||
let $MYSQLD_TMPDIR=`SELECT @@tmpdir`;
|
||||
let $MYSQLD_DATADIR=`SELECT @@datadir`;
|
||||
--copy_file $MYSQLD_DATADIR/test/t1.frm $MYSQLD_TMPDIR/#sqlt1.frm
|
||||
drop table t1;
|
||||
--source include/restart_mysqld.inc
|
||||
|
||||
@@ -8,7 +8,7 @@ select FROM_UNIXTIME(24*3600);
|
||||
enable_query_log;
|
||||
|
||||
# The following is because of daylight saving time
|
||||
--replace_result MEST CET MET CET
|
||||
--replace_result MEST CET MET CET CEST CET
|
||||
show variables like "system_time_zone";
|
||||
|
||||
--echo #
|
||||
|
||||
@@ -2233,6 +2233,9 @@ sub environment_setup {
|
||||
{
|
||||
$ENV{'MYSQL_INSTALL_DB_EXE'}= mtr_exe_exists("$bindir/sql$multiconfig/mariadb-install-db",
|
||||
"$bindir/bin/mariadb-install-db");
|
||||
$ENV{'MARIADB_UPGRADE_SERVICE_EXE'}= mtr_exe_exists("$bindir/sql$multiconfig/mariadb-upgrade-service",
|
||||
"$bindir/bin/mariadb-upgrade-service");
|
||||
$ENV{'MARIADB_UPGRADE_EXE'}= mtr_exe_exists("$path_client_bindir/mariadb-upgrade");
|
||||
}
|
||||
|
||||
my $client_config_exe=
|
||||
@@ -4495,6 +4498,7 @@ sub extract_warning_lines ($$) {
|
||||
qr/InnoDB: innodb_open_files .* should not be greater than/,
|
||||
qr/InnoDB: Trying to delete tablespace.*but there are.*pending/,
|
||||
qr/InnoDB: Tablespace 1[0-9]* was not found at .*, and innodb_force_recovery was set/,
|
||||
qr/InnoDB: Long wait \([0-9]+ seconds\) for double-write buffer flush/,
|
||||
qr/Slave: Unknown table 't1' .* 1051/,
|
||||
qr/Slave SQL:.*(Internal MariaDB error code: [[:digit:]]+|Query:.*)/,
|
||||
qr/slave SQL thread aborted/,
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
MIIFlTCCA32gAwIBAgIUKCF88W+48rZzdfgYpE2dXVMGSKgwDQYJKoZIhvcNAQEL
|
||||
BQAwWjELMAkGA1UEBhMCRkkxETAPBgNVBAgMCEhlbHNpbmtpMREwDwYDVQQHDAhI
|
||||
ZWxzaW5raTEPMA0GA1UECgwGR2FsZXJhMRQwEgYDVQQDDAtnYWxlcmEucm9vdDAe
|
||||
Fw0yMTAyMDQxMzE3MDJaFw0yMzExMjUxMzE3MDJaMFoxCzAJBgNVBAYTAkZJMREw
|
||||
Fw0yMzEyMDExMzQzNDBaFw0zMzExMjgxMzQzNDBaMFoxCzAJBgNVBAYTAkZJMREw
|
||||
DwYDVQQIDAhIZWxzaW5raTERMA8GA1UEBwwISGVsc2lua2kxDzANBgNVBAoMBkdh
|
||||
bGVyYTEUMBIGA1UEAwwLZ2FsZXJhLnJvb3QwggIiMA0GCSqGSIb3DQEBAQUAA4IC
|
||||
DwAwggIKAoICAQDKqL45jbaq8RLOj+DeilPcEnBN5gn/y9V3IfZ0BQCd4bR09zLz
|
||||
@@ -18,15 +18,15 @@ dl5QYYMbmyNedNKdwV4idhGCy+Zq7VAX4lBXazI1rD9vQb+oTcPGQiy4i/Vi/g6i
|
||||
F+XZTdTiaOWPEmvFFGLLUQxKl4w872hJaupqfteqdiZ+3ICVIUI8qnXHmwIDAQAB
|
||||
o1MwUTAdBgNVHQ4EFgQUs75v/MgjJ5RHGE6+0qdiVo4BwlowHwYDVR0jBBgwFoAU
|
||||
s75v/MgjJ5RHGE6+0qdiVo4BwlowDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0B
|
||||
AQsFAAOCAgEAOVhBs28dwwvD5q2r7oVVcxLc+tb8zu4XxpXT1p6hiZYUyPguCh00
|
||||
GVdXCgR4JMI/NcyM5fBAbF3S8oK3+9rw2kW09afVV06Qf/8o3nIyOiDl7598tGIP
|
||||
CCK4QsUW/dGajx5kvhtQ7qce+u9KfFTof6lq2xkYtFBBhmBdSv9A1jAZJMw2x3bc
|
||||
nr99PS8XZMphS0MIExHKj6Ry5DdYm722zZHyIEiiEGyMViDm2m1iug5r/LPH5Z56
|
||||
BjQiH4VP+0y5mevBOUGuH8ID+J9Hu9BeoXLhkv+W2Ljs/S6wqzjinMBqVG+wwe0Y
|
||||
a8F5pABkl5uX38nMQ7CikSbLxSbn7nRf+sux1sbzqjMldeCSqiv9mI5Ysq97+Ni1
|
||||
5qMxNxNc0u/wGRnrXH8fWfxBKPP5moA7DQfVcUWPgDGQwDpA8kn8RlJxFk3g4yaK
|
||||
+NMwk5MORKyx3tz/A3Yhs9AUXk3okvmQCT2YVSHcKUB8PAU+TaKqbr3wk07Y/tL/
|
||||
jFPHS+t3eD91Y05KGUXjdtGi+33zpV0biHmTWAZT78VQowDNvEpTnXhkSx8HGHYR
|
||||
nqSMU2m2LboHSatY113RYznx0LJ1azczRlJdGs8oyPWLPDD2JCesZaQqGZVRJoms
|
||||
lK4EzYEb5mZTCRgtgoiO+iKcf6XifuOCrWZXoLm4FlLEfOQ3b8yAFlo=
|
||||
AQsFAAOCAgEAKLV6mkWb88HEJXo1XlmAzznIYNfilrvvxwcjhceluDE8s8sPSpYM
|
||||
Bz5ebWlHCgEkC/ezhA/PDtZsZlQKwv4jb++lAlFSlebT1GW77xKkdRBTKgkFAaOA
|
||||
pF5eZao6IP8l76fA4OoI2Tttw5jeb23kOoklDp/8VS0JEAT3wm/hZiE20aUbAFC+
|
||||
kPiCucBztzaTHQud9CgtxRH/B3D9FaPuwae/H6FYrvQVNVjcaHTIUh9fTcyKRXYm
|
||||
oYbvK7fIhCjZkG2LRWRU9Kirivb+ktO4POsuK4BgYrsFaOBf9HYsojA7llyGDopN
|
||||
cfw9jtb27Qb/uMKJnClFg14u685CU5JAzY31E5OQPPUUx9PqP4Z9PgXRQ0xI6H/4
|
||||
sejlcQuqGCDKiL2lOzUjbT86EjO4ZfiKHR+lKOIuT5mXiR8cbS1JeyX3Mrv1Ds4r
|
||||
UVcdtSXTy6/XYWFIzhu+MrsFon6VX0HkmSH1HjSoLMOZcHAZIFZZ/uAahLmMNaEG
|
||||
lV15fD5+t5QRKwqmdFUW2ETiqSJxRs6Y++ptxpiiH38QVWPvBWeRgcPpf3A478Bl
|
||||
iGO0xn0N57TnhFs3g0C0xyZgTBMozfVostYpps1Tqqz0VOhtmURxTZm9JZgTb7qv
|
||||
nMURY0SIQKXpHCcJuNtxZcDSu8uxgUcMsLSSC7Zmk7/cSeUfmOgZVzU=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
--source include/long_test.inc
|
||||
--source include/have_debug.inc
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_log_bin.inc
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
--source include/long_test.inc
|
||||
--source include/have_debug.inc
|
||||
--source include/have_sequence.inc
|
||||
--source include/have_innodb.inc
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
--source include/long_test.inc
|
||||
--source include/have_debug.inc
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_csv.inc
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
--source include/long_test.inc
|
||||
--source include/have_debug.inc
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_csv.inc
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
# - with annotated events, default checksums and minimal binlog row image
|
||||
#
|
||||
|
||||
--source include/long_test.inc
|
||||
# The test can take very long time with valgrind
|
||||
--source include/not_valgrind.inc
|
||||
|
||||
|
||||
@@ -59,6 +59,9 @@ INSERT INTO table3_no_encryption SELECT NULL,NOW(),b FROM table3_no_encryption;
|
||||
connection server_2;
|
||||
start slave;
|
||||
include/wait_for_slave_io_error.inc [errno=1236]
|
||||
SELECT MASTER_GTID_WAIT("LAST_UNENCRYPTED_GTID", 60);
|
||||
MASTER_GTID_WAIT("LAST_UNENCRYPTED_GTID", 60)
|
||||
0
|
||||
# Ensuring slave was unable to replicate any encrypted transactions..
|
||||
# ..success
|
||||
SHOW TABLES;
|
||||
|
||||
@@ -122,6 +122,13 @@ start slave;
|
||||
--let $slave_io_errno= 1236
|
||||
--source include/wait_for_slave_io_error.inc
|
||||
|
||||
# Wait for the SQL thread to have replicated to the expected point. Otherwise
|
||||
# there is a race where the IO thread can stop with error and the test case
|
||||
# check the @@GLOBAL.gtid_slave_pos before the SQL thread has had time to
|
||||
# replicate the events queued by the IO thread (MDEV-36424).
|
||||
--replace_result "$last_unencrypted_gtid" "LAST_UNENCRYPTED_GTID"
|
||||
eval SELECT MASTER_GTID_WAIT("$last_unencrypted_gtid", 60);
|
||||
|
||||
--echo # Ensuring slave was unable to replicate any encrypted transactions..
|
||||
--let $gsp= `SELECT @@global.gtid_slave_pos`
|
||||
if (`SELECT strcmp("$gsp","$last_unencrypted_gtid")`)
|
||||
|
||||
@@ -3,8 +3,9 @@ call mtr.add_suppression("InnoDB: Unable to apply log to corrupted page ");
|
||||
call mtr.add_suppression("InnoDB: Plugin initialization aborted");
|
||||
call mtr.add_suppression("Plugin 'InnoDB' init function returned error");
|
||||
call mtr.add_suppression("Plugin 'InnoDB' registration as a STORAGE ENGINE failed");
|
||||
create table t1 (f1 int primary key, f2 blob)page_compressed = 1 engine=innodb stats_persistent=0;
|
||||
create table t2(f1 int primary key, f2 blob)engine=innodb stats_persistent=0;
|
||||
create table t1 (f1 int primary key, f2 blob)page_compressed=1 engine=innodb encrypted=yes stats_persistent=0;
|
||||
create table t2(f1 int primary key, f2 blob)engine=innodb encrypted=yes stats_persistent=0;
|
||||
create table t3(f1 int primary key, f2 blob)page_compressed=1 engine=innodb encrypted=no stats_persistent=0;
|
||||
start transaction;
|
||||
insert into t1 values(1, repeat('#',12));
|
||||
insert into t1 values(2, repeat('+',12));
|
||||
@@ -12,29 +13,37 @@ insert into t1 values(3, repeat('/',12));
|
||||
insert into t1 values(4, repeat('-',12));
|
||||
insert into t1 values(5, repeat('.',12));
|
||||
insert into t2 select * from t1;
|
||||
insert into t3 select * from t1;
|
||||
commit work;
|
||||
SET GLOBAL innodb_fast_shutdown = 0;
|
||||
# restart: --debug_dbug=+d,ib_log_checkpoint_avoid_hard --innodb_flush_sync=0
|
||||
select space into @t1_space_id from information_schema.innodb_sys_tablespaces where name='test/t1';
|
||||
select space into @t2_space_id from information_schema.innodb_sys_tablespaces where name='test/t2';
|
||||
select space into @t3_space_id from information_schema.innodb_sys_tablespaces where name='test/t3';
|
||||
begin;
|
||||
insert into t1 values (6, repeat('%', 400));
|
||||
insert into t2 values (6, repeat('%', 400));
|
||||
insert into t3 values (6, repeat('%', 400));
|
||||
# xtrabackup prepare
|
||||
set global innodb_saved_page_number_debug = 3;
|
||||
set global innodb_fil_make_page_dirty_debug = @t1_space_id;
|
||||
set global innodb_saved_page_number_debug = 3;
|
||||
set global innodb_fil_make_page_dirty_debug = @t2_space_id;
|
||||
set global innodb_saved_page_number_debug = 3;
|
||||
set global innodb_fil_make_page_dirty_debug = @t3_space_id;
|
||||
set global innodb_buf_flush_list_now = 1;
|
||||
# Kill the server
|
||||
# restart
|
||||
FOUND 2 /InnoDB: Recovered page \[page id: space=[1-9]*, page number=3\]/ in mysqld.1.err
|
||||
FOUND 3 /InnoDB: Recovered page \[page id: space=[1-9][0-9]*, page number=3\]/ in mysqld.1.err
|
||||
check table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
check table t2;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t2 check status OK
|
||||
check table t3;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t3 check status OK
|
||||
select f1, f2 from t1;
|
||||
f1 f2
|
||||
1 ############
|
||||
@@ -49,6 +58,13 @@ f1 f2
|
||||
3 ////////////
|
||||
4 ------------
|
||||
5 ............
|
||||
select f1, f2 from t3;
|
||||
f1 f2
|
||||
1 ############
|
||||
2 ++++++++++++
|
||||
3 ////////////
|
||||
4 ------------
|
||||
5 ............
|
||||
SET GLOBAL innodb_fast_shutdown = 0;
|
||||
# shutdown server
|
||||
# remove datadir
|
||||
@@ -78,4 +94,4 @@ f1 f2
|
||||
3 ////////////
|
||||
4 ------------
|
||||
5 ............
|
||||
drop table t2, t1;
|
||||
drop table t3, t2, t1;
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
--innodb-use-atomic-writes=0
|
||||
--innodb-encrypt-tables=FORCE
|
||||
--innodb-encrypt-tables=on
|
||||
--innodb_sys_tablespaces
|
||||
|
||||
@@ -12,8 +12,9 @@ let INNODB_PAGE_SIZE=`select @@innodb_page_size`;
|
||||
let MYSQLD_DATADIR=`select @@datadir`;
|
||||
let ALGO=`select @@innodb_checksum_algorithm`;
|
||||
|
||||
create table t1 (f1 int primary key, f2 blob)page_compressed = 1 engine=innodb stats_persistent=0;
|
||||
create table t2(f1 int primary key, f2 blob)engine=innodb stats_persistent=0;
|
||||
create table t1 (f1 int primary key, f2 blob)page_compressed=1 engine=innodb encrypted=yes stats_persistent=0;
|
||||
create table t2(f1 int primary key, f2 blob)engine=innodb encrypted=yes stats_persistent=0;
|
||||
create table t3(f1 int primary key, f2 blob)page_compressed=1 engine=innodb encrypted=no stats_persistent=0;
|
||||
|
||||
start transaction;
|
||||
insert into t1 values(1, repeat('#',12));
|
||||
@@ -22,6 +23,7 @@ insert into t1 values(3, repeat('/',12));
|
||||
insert into t1 values(4, repeat('-',12));
|
||||
insert into t1 values(5, repeat('.',12));
|
||||
insert into t2 select * from t1;
|
||||
insert into t3 select * from t1;
|
||||
commit work;
|
||||
|
||||
# Slow shutdown and restart to make sure ibuf merge is finished
|
||||
@@ -33,15 +35,17 @@ let $restart_parameters=--debug_dbug=+d,ib_log_checkpoint_avoid_hard --innodb_fl
|
||||
|
||||
select space into @t1_space_id from information_schema.innodb_sys_tablespaces where name='test/t1';
|
||||
select space into @t2_space_id from information_schema.innodb_sys_tablespaces where name='test/t2';
|
||||
select space into @t3_space_id from information_schema.innodb_sys_tablespaces where name='test/t3';
|
||||
|
||||
begin;
|
||||
insert into t1 values (6, repeat('%', 400));
|
||||
insert into t2 values (6, repeat('%', 400));
|
||||
insert into t3 values (6, repeat('%', 400));
|
||||
|
||||
# Copy the t1.ibd, t2.ibd file
|
||||
# Copy the t1.ibd, t2.ibd, t3.ibd file
|
||||
let $targetdir=$MYSQLTEST_VARDIR/tmp/backup_1;
|
||||
--disable_result_log
|
||||
exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir;
|
||||
exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --skip-innodb-log-checkpoint-now --target-dir=$targetdir;
|
||||
--enable_result_log
|
||||
|
||||
echo # xtrabackup prepare;
|
||||
@@ -54,8 +58,11 @@ set global innodb_fil_make_page_dirty_debug = @t1_space_id;
|
||||
set global innodb_saved_page_number_debug = 3;
|
||||
set global innodb_fil_make_page_dirty_debug = @t2_space_id;
|
||||
|
||||
set global innodb_saved_page_number_debug = 3;
|
||||
set global innodb_fil_make_page_dirty_debug = @t3_space_id;
|
||||
|
||||
set global innodb_buf_flush_list_now = 1;
|
||||
--let CLEANUP_IF_CHECKPOINT=drop table t1, t2, unexpected_checkpoint;
|
||||
--let CLEANUP_IF_CHECKPOINT=drop table t1, t2, t3, unexpected_checkpoint;
|
||||
--source ../../suite/innodb/include/no_checkpoint_end.inc
|
||||
# Corrupt the page 3 in t1.ibd, t2.ibd file
|
||||
perl;
|
||||
@@ -103,19 +110,30 @@ binmode FILE;
|
||||
sysseek(FILE, 3*$page_size, 0);
|
||||
print FILE chr(0) x ($ENV{'INNODB_PAGE_SIZE'});
|
||||
close FILE;
|
||||
|
||||
# Zero the complete page
|
||||
my $fname= "$ENV{'MYSQLD_DATADIR'}test/t3.ibd";
|
||||
open(FILE, "+<", $fname) or die;
|
||||
FILE->autoflush(1);
|
||||
binmode FILE;
|
||||
sysseek(FILE, 3*$page_size, 0);
|
||||
print FILE chr(0) x ($ENV{'INNODB_PAGE_SIZE'});
|
||||
close FILE;
|
||||
EOF
|
||||
|
||||
# Successful recover from doublewrite buffer
|
||||
let $restart_parameters=;
|
||||
--source include/start_mysqld.inc
|
||||
let SEARCH_FILE= $MYSQLTEST_VARDIR/log/mysqld.1.err;
|
||||
let SEARCH_PATTERN=InnoDB: Recovered page \\[page id: space=[1-9]*, page number=3\\];
|
||||
let SEARCH_PATTERN=InnoDB: Recovered page \\[page id: space=[1-9][0-9]*, page number=3\\];
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
check table t1;
|
||||
check table t2;
|
||||
check table t3;
|
||||
select f1, f2 from t1;
|
||||
select f1, f2 from t2;
|
||||
select f1, f2 from t3;
|
||||
|
||||
SET GLOBAL innodb_fast_shutdown = 0;
|
||||
let $shutdown_timeout=;
|
||||
@@ -220,4 +238,4 @@ select * from t1;
|
||||
|
||||
--source ../../mariabackup/include/restart_and_restore.inc
|
||||
select * from t1;
|
||||
drop table t2, t1;
|
||||
drop table t3, t2, t1;
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
--innodb_buffer_pool_size=5M
|
||||
--innodb_buffer_pool_size=6M
|
||||
--innodb_encrypt_temporary_tables=1
|
||||
|
||||
@@ -5073,10 +5073,14 @@ ERROR 23000: Duplicate entry '825:23:00' for key 'c2'
|
||||
INSERT INTO t3(c1,c2) VALUES('34 9:23','34 9:23') /* throws error as row exists with c1='34 9:23',c2='34 9:23' */;
|
||||
ERROR 23000: Duplicate entry '825:23:00-825:23:00' for key 'idx'
|
||||
INSERT IGNORE INTO t1(c1,c2) VALUES('10:22:33','10:22:34') /* doesn't throw error */;
|
||||
Warnings:
|
||||
Warning 1062 Duplicate entry '10:22:33' for key 'PRIMARY'
|
||||
INSERT IGNORE INTO t2(c1,c2) VALUES('12:34:56.78','12:34:56.78') /*doesn't throw error */;
|
||||
Warnings:
|
||||
Warning 1062 Duplicate entry '12:34:56-12:34:56' for key 'PRIMARY'
|
||||
INSERT IGNORE INTO t1(c1,c2) VALUES('10:22:34','34 9:23') /*doesn't throw error */;
|
||||
Warnings:
|
||||
Warning 1062 Duplicate entry '825:23:00' for key 'c2'
|
||||
INSERT IGNORE INTO t3(c1,c2) VALUES('34 9:23','34 9:23') /*doesn't throw error */;
|
||||
Warnings:
|
||||
Warning 1062 Duplicate entry '825:23:00-825:23:00' for key 'idx'
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
# Checking of other prerequisites is in charset_master.test #
|
||||
################################################################################
|
||||
|
||||
--source include/no_valgrind_without_big.inc
|
||||
--source include/long_test.inc
|
||||
--source include/have_innodb.inc
|
||||
|
||||
# Starting with MariaDB 10.6, ensure that DDL recovery will have completed
|
||||
|
||||
@@ -10,5 +10,7 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
galera_sequences : MDEV-35934/MDEV-33850 For Galera, create sequence with low cache got signal 6 error: [ERROR] WSREP: FSM: no such a transition REPLICATING -> COMMITTED
|
||||
MDEV-26266 : MDEV-26266
|
||||
galera_wan : MDEV-35940 Unallowed state transition: donor -> synced in galera_wan
|
||||
galera_vote_rejoin_ddl : MDEV-35940 Unallowed state transition: donor -> synced in galera_wan
|
||||
MW-329 : MDEV-35951 Complete freeze during MW-329 test
|
||||
galera_vote_rejoin_dml : MDEV-35964 Assertion `ist_seqno >= cc_seqno' failed in galera_vote_rejoin_dml
|
||||
|
||||
@@ -17,7 +17,7 @@ wsrep-on=1
|
||||
#ist_port=@OPT.port
|
||||
#sst_port=@OPT.port
|
||||
wsrep_cluster_address=gcomm://
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M'
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
|
||||
wsrep_node_address='127.0.0.1:@mysqld.1.#galera_port'
|
||||
wsrep_node_incoming_address=127.0.0.1:@mysqld.1.port
|
||||
wsrep_sst_receive_address='127.0.0.1:@mysqld.1.#sst_port'
|
||||
@@ -28,7 +28,7 @@ wsrep-on=1
|
||||
#ist_port=@OPT.port
|
||||
#sst_port=@OPT.port
|
||||
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port'
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M'
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
|
||||
wsrep_node_address='127.0.0.1:@mysqld.2.#galera_port'
|
||||
wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port
|
||||
wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port'
|
||||
|
||||
@@ -25,7 +25,7 @@ server-id=1
|
||||
#sst_port=@OPT.port
|
||||
wsrep_provider=@ENV.WSREP_PROVIDER
|
||||
wsrep_cluster_address=gcomm://
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M'
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
|
||||
wsrep_node_address='127.0.0.1:@mysqld.1.#galera_port'
|
||||
wsrep_node_incoming_address=127.0.0.1:@mysqld.1.port
|
||||
wsrep_sst_receive_address='127.0.0.1:@mysqld.1.#sst_port'
|
||||
@@ -38,7 +38,7 @@ server-id=2
|
||||
#sst_port=@OPT.port
|
||||
wsrep_provider=@ENV.WSREP_PROVIDER
|
||||
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port'
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M'
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
|
||||
wsrep_node_address='127.0.0.1:@mysqld.2.#galera_port'
|
||||
wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port
|
||||
wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port'
|
||||
|
||||
@@ -24,7 +24,7 @@ server-id=1
|
||||
#sst_port=@OPT.port
|
||||
wsrep_provider=@ENV.WSREP_PROVIDER
|
||||
wsrep_cluster_address=gcomm://
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M'
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
|
||||
wsrep_node_address='127.0.0.1:@mysqld.1.#galera_port'
|
||||
wsrep_node_incoming_address=127.0.0.1:@mysqld.1.port
|
||||
wsrep_sst_receive_address='127.0.0.1:@mysqld.1.#sst_port'
|
||||
@@ -37,7 +37,7 @@ server-id=2
|
||||
#sst_port=@OPT.port
|
||||
wsrep_provider=@ENV.WSREP_PROVIDER
|
||||
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port'
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M'
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
|
||||
wsrep_node_address='127.0.0.1:@mysqld.2.#galera_port'
|
||||
wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port
|
||||
wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port'
|
||||
|
||||
@@ -24,7 +24,7 @@ server-id=1
|
||||
#sst_port=@OPT.port
|
||||
wsrep_provider=@ENV.WSREP_PROVIDER
|
||||
wsrep_cluster_address=gcomm://
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M'
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
|
||||
wsrep_node_address='127.0.0.1:@mysqld.1.#galera_port'
|
||||
wsrep_node_incoming_address=127.0.0.1:@mysqld.1.port
|
||||
wsrep_sst_receive_address='127.0.0.1:@mysqld.1.#sst_port'
|
||||
@@ -37,7 +37,7 @@ server-id=2
|
||||
#sst_port=@OPT.port
|
||||
wsrep_provider=@ENV.WSREP_PROVIDER
|
||||
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port'
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M'
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
|
||||
wsrep_node_address='127.0.0.1:@mysqld.2.#galera_port'
|
||||
wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port
|
||||
wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port'
|
||||
|
||||
@@ -24,7 +24,7 @@ server-id=1
|
||||
#sst_port=@OPT.port
|
||||
wsrep_provider=@ENV.WSREP_PROVIDER
|
||||
wsrep_cluster_address=gcomm://
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M'
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
|
||||
wsrep_node_address='127.0.0.1:@mysqld.1.#galera_port'
|
||||
wsrep_node_incoming_address=127.0.0.1:@mysqld.1.port
|
||||
wsrep_sst_receive_address='127.0.0.1:@mysqld.1.#sst_port'
|
||||
@@ -37,7 +37,7 @@ server-id=2
|
||||
#sst_port=@OPT.port
|
||||
wsrep_provider=@ENV.WSREP_PROVIDER
|
||||
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port'
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M'
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
|
||||
wsrep_node_address='127.0.0.1:@mysqld.2.#galera_port'
|
||||
wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port
|
||||
wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port'
|
||||
@@ -50,7 +50,7 @@ server-id=3
|
||||
#sst_port=@OPT.port
|
||||
wsrep-provider=@ENV.WSREP_PROVIDER
|
||||
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port'
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.3.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M'
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.3.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
|
||||
wsrep_node_address='127.0.0.1:@mysqld.3.#galera_port'
|
||||
wsrep_node_incoming_address=127.0.0.1:@mysqld.3.port
|
||||
wsrep_sst_receive_address='127.0.0.1:@mysqld.3.#sst_port'
|
||||
|
||||
@@ -18,7 +18,7 @@ wsrep-on=1
|
||||
#ist_port=@OPT.port
|
||||
#sst_port=@OPT.port
|
||||
wsrep_cluster_address=gcomm://
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT25S'
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
|
||||
wsrep_node_address='127.0.0.1:@mysqld.1.#galera_port'
|
||||
wsrep_node_incoming_address=127.0.0.1:@mysqld.1.port
|
||||
wsrep_sst_receive_address='127.0.0.1:@mysqld.1.#sst_port'
|
||||
@@ -30,7 +30,7 @@ wsrep-on=1
|
||||
#ist_port=@OPT.port
|
||||
#sst_port=@OPT.port
|
||||
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port'
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT25S'
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
|
||||
wsrep_node_address='127.0.0.1:@mysqld.2.#galera_port'
|
||||
wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port
|
||||
wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port'
|
||||
@@ -42,7 +42,7 @@ wsrep-on=1
|
||||
#ist_port=@OPT.port
|
||||
#sst_port=@OPT.port
|
||||
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port'
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.3.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT25S'
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.3.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
|
||||
wsrep_node_address='127.0.0.1:@mysqld.3.#galera_port'
|
||||
wsrep_node_incoming_address=127.0.0.1:@mysqld.3.port
|
||||
wsrep_sst_receive_address='127.0.0.1:@mysqld.3.#sst_port'
|
||||
@@ -54,7 +54,7 @@ wsrep-on=1
|
||||
#ist_port=@OPT.port
|
||||
#sst_port=@OPT.port
|
||||
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port'
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.4.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT25S'
|
||||
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.4.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;pc.wait_prim_timeout=PT60S;gcache.size=10M'
|
||||
wsrep_node_address='127.0.0.1:@mysqld.4.#galera_port'
|
||||
wsrep_node_incoming_address=127.0.0.1:@mysqld.4.port
|
||||
wsrep_sst_receive_address='127.0.0.1:@mysqld.4.#sst_port'
|
||||
|
||||
@@ -42,4 +42,3 @@ if ($node_4)
|
||||
--connection $node_4
|
||||
let $auto_increment_offset_node_4 = `SELECT @@global.auto_increment_offset`;
|
||||
}
|
||||
|
||||
|
||||
@@ -25,4 +25,3 @@ while ($seqno <= $sr_max)
|
||||
|
||||
--inc $seqno
|
||||
}
|
||||
|
||||
|
||||
@@ -118,4 +118,3 @@ SELECT * from t1;
|
||||
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
|
||||
DROP TABLE t1;
|
||||
COMMIT;
|
||||
|
||||
|
||||
@@ -41,9 +41,9 @@ perl;
|
||||
|
||||
my $counter = 1000;
|
||||
#my $found = false
|
||||
|
||||
|
||||
while ($counter > 0) {
|
||||
|
||||
|
||||
open(FILE, "$logfile") or die("Unable to open $logfile : $!\n");
|
||||
my $new_sync_count = () = grep(/Synchronized with group/g,<FILE>);
|
||||
close(FILE);
|
||||
|
||||
@@ -9,14 +9,14 @@ if (!$wsrep_recover_additional)
|
||||
}
|
||||
|
||||
--perl
|
||||
use strict;
|
||||
use strict;
|
||||
my $wsrep_start_position_str = "grep -a 'WSREP: Recovered position:' $ENV{MYSQL_TMP_DIR}/galera_wsrep_recover.log | sed 's/.*WSREP\:\ Recovered\ position://' | sed 's/^[ \t]*//'";
|
||||
my $wsrep_start_position = `grep -a 'WSREP: Recovered position:' $ENV{MYSQL_TMP_DIR}/galera_wsrep_recover.log | sed 's/.*WSREP\:\ Recovered\ position://' | sed 's/^[ \t]*//'`;
|
||||
chomp($wsrep_start_position);
|
||||
|
||||
die if $wsrep_start_position eq '';
|
||||
|
||||
open(FILE, ">", "$ENV{MYSQL_TMP_DIR}/galera_wsrep_start_position.inc") or die;
|
||||
open(FILE, ">", "$ENV{MYSQL_TMP_DIR}/galera_wsrep_start_position.inc") or die;
|
||||
print FILE "--let \$galera_wsrep_start_position = $wsrep_start_position\n";
|
||||
close FILE;
|
||||
EOF
|
||||
|
||||
@@ -24,6 +24,6 @@ t1 CREATE TABLE `t1` (
|
||||
PRIMARY KEY (`f1`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci
|
||||
DROP TABLE t1;
|
||||
CALL mtr.add_suppression("WSREP: Protocol violation\\. JOIN message sender (.*) is not in state transfer \\(SYNCED\\)\\. Message ignored\\.");
|
||||
CALL mtr.add_suppression("WSREP: Protocol violation\\. JOIN message sender .+ ?is not in state transfer \\(SYNCED\\)\\. Message ignored\\.");
|
||||
connection node_1;
|
||||
SET GLOBAL wsrep_provider_options = 'pc.ignore_sb=false';
|
||||
|
||||
@@ -15,7 +15,7 @@ connection node_2a;
|
||||
SET GLOBAL debug_dbug = 'RESET';
|
||||
SET DEBUG_SYNC = 'now SIGNAL signal.mdev_20225_continue';
|
||||
SET DEBUG_SYNC = 'RESET';
|
||||
SET GLOBAL wsrep_slave_threads = 1;
|
||||
SET GLOBAL wsrep_slave_threads = DEFAULT;
|
||||
connection node_2;
|
||||
SHOW TRIGGERS;
|
||||
Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
|
||||
|
||||
@@ -41,4 +41,4 @@ connection node_1;
|
||||
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
|
||||
SET debug_sync = "RESET";
|
||||
DROP TABLE t1;
|
||||
SET GLOBAL wsrep_slave_threads = 1;
|
||||
SET GLOBAL wsrep_slave_threads = DEFAULT;
|
||||
|
||||
@@ -66,7 +66,7 @@ SHOW STATUS LIKE 'wsrep_desync_count';
|
||||
Variable_name Value
|
||||
wsrep_desync_count 0
|
||||
SET @@global.wsrep_desync = 0;
|
||||
CALL mtr.add_suppression("WSREP: Protocol violation\\. JOIN message sender (.*) is not in state transfer \\(SYNCED\\)\\. Message ignored\\.");
|
||||
CALL mtr.add_suppression("WSREP: Protocol violation\\. JOIN message sender .+ ?is not in state transfer \\(SYNCED\\)\\. Message ignored\\.");
|
||||
connection node_1;
|
||||
# Wait until both nodes are back to cluster
|
||||
SET GLOBAL wsrep_provider_options = 'pc.ignore_sb=false';
|
||||
|
||||
@@ -15,3 +15,4 @@ SET GLOBAL wsrep_slave_threads=1;
|
||||
SELECT @@wsrep_slave_threads;
|
||||
@@wsrep_slave_threads
|
||||
1
|
||||
connection node_2;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user