mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge 10.5 into 10.6
This commit is contained in:
@ -4474,7 +4474,7 @@ static void dump_table(const char *table, const char *db, const uchar *hash_key,
|
||||
if (!opt_xml && opt_copy_s3_tables && (ignore_flag & IGNORE_S3_TABLE))
|
||||
{
|
||||
DYNAMIC_STRING alter_string;
|
||||
init_dynamic_string_checked(&alter_string, "ATER TABLE ", 1024, 1024);
|
||||
init_dynamic_string_checked(&alter_string, "ALTER TABLE ", 1024, 1024);
|
||||
dynstr_append_checked(&alter_string, opt_quoted_table);
|
||||
dynstr_append_checked(&alter_string, " ENGINE=S3;\n");
|
||||
fputs(alter_string.str, md_result_file);
|
||||
|
@ -10432,7 +10432,7 @@ SELECT VARIABLE_VALUE into @local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATU
|
||||
CREATE PROCEDURE sp1() SELECT 1;
|
||||
SHOW CREATE PROCEDURE sp1;
|
||||
SELECT VARIABLE_VALUE-@local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
|
||||
# 10.5 FIXME: This occasionally shows 56 or 64 bytes of difference!
|
||||
# FIXME: MDEV-26754 main.sp test fails for embedded server
|
||||
#SELECT VARIABLE_VALUE-@global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
|
||||
DROP PROCEDURE sp1;
|
||||
--echo # End of 10.3 tests
|
||||
|
11
mysql-test/suite/galera/r/MDEV-22708.result
Normal file
11
mysql-test/suite/galera/r/MDEV-22708.result
Normal file
@ -0,0 +1,11 @@
|
||||
connection node_2;
|
||||
connection node_1;
|
||||
SET @wsrep_forced_binlog_format_saved = @@GLOBAL.wsrep_forced_binlog_format;
|
||||
SET @@GLOBAL.wsrep_forced_binlog_format = STATEMENT;
|
||||
CREATE TABLE t1(c INT PRIMARY KEY) ENGINE = MyISAM;
|
||||
INSERT DELAYED INTO t1 VALUES (1),(2),(3);
|
||||
SELECT SLEEP(1);
|
||||
SLEEP(1)
|
||||
0
|
||||
DROP TABLE t1;
|
||||
SET @@GLOBAL.wsrep_forced_binlog_format = @wsrep_forced_binlog_format_saved;
|
@ -36,3 +36,59 @@ COUNT(f1) = 1000
|
||||
1
|
||||
DROP TABLE t1;
|
||||
DROP TABLE ten;
|
||||
connection node_1;
|
||||
SET @value=REPEAT (1,5001);
|
||||
CREATE TABLE t (a VARCHAR(5000),FULLTEXT (a)) engine=innodb;
|
||||
INSERT IGNORE INTO t VALUES(@value);
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'a' at row 1
|
||||
SELECT COUNT(*) FROM t;
|
||||
COUNT(*)
|
||||
1
|
||||
connection node_2;
|
||||
SELECT COUNT(*) FROM t;
|
||||
COUNT(*)
|
||||
1
|
||||
connection node_1;
|
||||
DROP TABLE t;
|
||||
CREATE TABLE t (a VARCHAR(5000)) engine=innodb;
|
||||
INSERT IGNORE INTO t VALUES(@value);
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'a' at row 1
|
||||
SELECT COUNT(*) FROM t;
|
||||
COUNT(*)
|
||||
1
|
||||
connection node_2;
|
||||
SELECT COUNT(*) FROM t;
|
||||
COUNT(*)
|
||||
1
|
||||
connection node_1;
|
||||
DROP TABLE t;
|
||||
connection node_1;
|
||||
SET @value=REPEAT (1,5001);
|
||||
CREATE TABLE t (a VARCHAR(5000),FULLTEXT (a)) engine=innodb DEFAULT CHARSET=utf8;
|
||||
INSERT IGNORE INTO t VALUES(@value);
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'a' at row 1
|
||||
SELECT COUNT(*) FROM t;
|
||||
COUNT(*)
|
||||
1
|
||||
connection node_2;
|
||||
SELECT COUNT(*) FROM t;
|
||||
COUNT(*)
|
||||
1
|
||||
connection node_1;
|
||||
DROP TABLE t;
|
||||
CREATE TABLE t (a VARCHAR(5000)) engine=innodb DEFAULT CHARSET=utf8;
|
||||
INSERT IGNORE INTO t VALUES(@value);
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'a' at row 1
|
||||
SELECT COUNT(*) FROM t;
|
||||
COUNT(*)
|
||||
1
|
||||
connection node_2;
|
||||
SELECT COUNT(*) FROM t;
|
||||
COUNT(*)
|
||||
1
|
||||
connection node_1;
|
||||
DROP TABLE t;
|
||||
|
4
mysql-test/suite/galera/t/MDEV-22708.cnf
Normal file
4
mysql-test/suite/galera/t/MDEV-22708.cnf
Normal file
@ -0,0 +1,4 @@
|
||||
!include ../galera_2nodes.cnf
|
||||
|
||||
[mysqld]
|
||||
log-bin
|
14
mysql-test/suite/galera/t/MDEV-22708.test
Normal file
14
mysql-test/suite/galera/t/MDEV-22708.test
Normal file
@ -0,0 +1,14 @@
|
||||
--source include/galera_cluster.inc
|
||||
--source include/have_innodb.inc
|
||||
|
||||
SET @wsrep_forced_binlog_format_saved = @@GLOBAL.wsrep_forced_binlog_format;
|
||||
SET @@GLOBAL.wsrep_forced_binlog_format = STATEMENT;
|
||||
|
||||
CREATE TABLE t1(c INT PRIMARY KEY) ENGINE = MyISAM;
|
||||
|
||||
INSERT DELAYED INTO t1 VALUES (1),(2),(3);
|
||||
SELECT SLEEP(1);
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
SET @@GLOBAL.wsrep_forced_binlog_format = @wsrep_forced_binlog_format_saved;
|
@ -58,28 +58,50 @@ SELECT COUNT(f1) = 1000 FROM t1 WHERE MATCH(f1) AGAINST ('abcdefjhk');
|
||||
|
||||
DROP TABLE t1;
|
||||
DROP TABLE ten;
|
||||
#
|
||||
# MDEV-24978 : SIGABRT in __libc_message
|
||||
#
|
||||
--connection node_1
|
||||
SET @value=REPEAT (1,5001);
|
||||
CREATE TABLE t (a VARCHAR(5000),FULLTEXT (a)) engine=innodb;
|
||||
INSERT IGNORE INTO t VALUES(@value);
|
||||
SELECT COUNT(*) FROM t;
|
||||
|
||||
--connection node_2
|
||||
SELECT COUNT(*) FROM t;
|
||||
|
||||
--connection node_1
|
||||
DROP TABLE t;
|
||||
CREATE TABLE t (a VARCHAR(5000)) engine=innodb;
|
||||
INSERT IGNORE INTO t VALUES(@value);
|
||||
SELECT COUNT(*) FROM t;
|
||||
|
||||
--connection node_2
|
||||
SELECT COUNT(*) FROM t;
|
||||
|
||||
--connection node_1
|
||||
DROP TABLE t;
|
||||
|
||||
#
|
||||
# Case 2: UTF-8
|
||||
# TODO: MDEV-24978
|
||||
#
|
||||
#--connection node_1
|
||||
#SET @value=REPEAT (1,5001);
|
||||
#CREATE TABLE t (a VARCHAR(5000),FULLTEXT (a)) engine=innodb DEFAULT CHARSET=utf8;
|
||||
#INSERT IGNORE INTO t VALUES(@value);
|
||||
#SELECT COUNT(*) FROM t;
|
||||
#
|
||||
#--connection node_2
|
||||
#SELECT COUNT(*) FROM t;
|
||||
#
|
||||
#--connection node_1
|
||||
#DROP TABLE t;
|
||||
#CREATE TABLE t (a VARCHAR(5000)) engine=innodb DEFAULT CHARSET=utf8;
|
||||
#INSERT IGNORE INTO t VALUES(@value);
|
||||
#SELECT COUNT(*) FROM t;
|
||||
#
|
||||
#--connection node_2
|
||||
#SELECT COUNT(*) FROM t;
|
||||
#
|
||||
#--connection node_1
|
||||
#DROP TABLE t;
|
||||
--connection node_1
|
||||
SET @value=REPEAT (1,5001);
|
||||
CREATE TABLE t (a VARCHAR(5000),FULLTEXT (a)) engine=innodb DEFAULT CHARSET=utf8;
|
||||
INSERT IGNORE INTO t VALUES(@value);
|
||||
SELECT COUNT(*) FROM t;
|
||||
|
||||
--connection node_2
|
||||
SELECT COUNT(*) FROM t;
|
||||
|
||||
--connection node_1
|
||||
DROP TABLE t;
|
||||
CREATE TABLE t (a VARCHAR(5000)) engine=innodb DEFAULT CHARSET=utf8;
|
||||
INSERT IGNORE INTO t VALUES(@value);
|
||||
SELECT COUNT(*) FROM t;
|
||||
|
||||
--connection node_2
|
||||
SELECT COUNT(*) FROM t;
|
||||
|
||||
--connection node_1
|
||||
DROP TABLE t;
|
||||
|
@ -24,7 +24,7 @@ CREATE TABLE `t1` (
|
||||
) ENGINE=Aria DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
INSERT INTO `t1` VALUES (1,1),(2,2),(3,3),(4,4);
|
||||
ATER TABLE `t1` ENGINE=S3;
|
||||
ALTER TABLE `t1` ENGINE=S3;
|
||||
#####
|
||||
# mysqldump with --copy-s3-tables=1 XML
|
||||
###
|
||||
|
@ -268,8 +268,7 @@ extern "C" my_bool wsrep_thd_order_before(const THD *left, const THD *right)
|
||||
extern "C" my_bool wsrep_thd_is_aborting(const MYSQL_THD thd)
|
||||
{
|
||||
mysql_mutex_assert_owner(&thd->LOCK_thd_data);
|
||||
if (thd != 0)
|
||||
{
|
||||
|
||||
const wsrep::client_state& cs(thd->wsrep_cs());
|
||||
const enum wsrep::transaction::state tx_state(cs.transaction().state());
|
||||
switch (tx_state)
|
||||
@ -283,7 +282,7 @@ extern "C" my_bool wsrep_thd_is_aborting(const MYSQL_THD thd)
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -475,7 +475,7 @@ void upgrade_lock_type(THD *thd, thr_lock_type *lock_type,
|
||||
}
|
||||
|
||||
bool log_on= (thd->variables.option_bits & OPTION_BIN_LOG);
|
||||
if (global_system_variables.binlog_format == BINLOG_FORMAT_STMT &&
|
||||
if (thd->wsrep_binlog_format() == BINLOG_FORMAT_STMT &&
|
||||
log_on && mysql_bin_log.is_open())
|
||||
{
|
||||
/*
|
||||
|
@ -73,7 +73,8 @@
|
||||
/* this is to get the bison compilation windows warnings out */
|
||||
#ifdef _MSC_VER
|
||||
/* warning C4065: switch statement contains 'default' but no 'case' labels */
|
||||
#pragma warning (disable : 4065)
|
||||
/* warning C4102: 'yyexhaustedlab': unreferenced label */
|
||||
#pragma warning (disable : 4065 4102)
|
||||
#endif
|
||||
#ifdef __GNUC__
|
||||
#pragma GCC diagnostic ignored "-Wunused-label" /* yyexhaustedlab: */
|
||||
|
@ -6794,10 +6794,14 @@ wsrep_store_key_val_for_row(
|
||||
|
||||
/* In a column prefix index, we may need to truncate
|
||||
the stored value: */
|
||||
|
||||
if (true_len > key_len) {
|
||||
true_len = key_len;
|
||||
}
|
||||
/* cannot exceed max column lenght either, we may need to truncate
|
||||
the stored value: */
|
||||
if (true_len > sizeof(sorted)) {
|
||||
true_len = sizeof(sorted);
|
||||
}
|
||||
|
||||
memcpy(sorted, data, true_len);
|
||||
true_len = wsrep_innobase_mysql_sort(
|
||||
@ -6810,8 +6814,8 @@ wsrep_store_key_val_for_row(
|
||||
actual data. The rest of the space was reset to zero
|
||||
in the bzero() call above. */
|
||||
if (true_len > buff_space) {
|
||||
fprintf (stderr,
|
||||
"WSREP: key truncated: %s\n",
|
||||
WSREP_DEBUG (
|
||||
"write set key truncated for: %s\n",
|
||||
wsrep_thd_query(thd));
|
||||
true_len = buff_space;
|
||||
}
|
||||
|
@ -540,6 +540,12 @@ static void trx_purge_cleanse_purge_queue(const fil_space_t& space)
|
||||
mysql_mutex_unlock(&purge_sys.pq_mutex);
|
||||
}
|
||||
|
||||
#if defined __GNUC__ && __GNUC__ == 4 && !defined __clang__
|
||||
# if defined __arm__ || defined __aarch64__
|
||||
/* Work around an internal compiler error in GCC 4.8.5 */
|
||||
__attribute__((optimize(0)))
|
||||
# endif
|
||||
#endif
|
||||
/**
|
||||
Removes unnecessary history data from rollback segments. NOTE that when this
|
||||
function is called, the caller must not have any latches on undo log pages!
|
||||
|
@ -40,6 +40,8 @@
|
||||
#include <arpa/inet.h>
|
||||
#endif
|
||||
|
||||
#include "my_valgrind.h"
|
||||
|
||||
static const my_bool my_true= 1;
|
||||
|
||||
|
||||
@ -672,6 +674,11 @@ static void test_wl4435()
|
||||
|
||||
/* Init PS-parameters. */
|
||||
|
||||
memset(str_data, 0, sizeof str_data);
|
||||
memset(dbl_data, 0, sizeof dbl_data);
|
||||
memset(dec_data, 0, sizeof dec_data);
|
||||
memset(int_data, 0, sizeof int_data);
|
||||
|
||||
bzero((char *) ps_params, sizeof (ps_params));
|
||||
|
||||
/* - v0 -- INT */
|
||||
@ -1072,7 +1079,7 @@ static void test_wl4435_2()
|
||||
MYSQL_RES *rs_metadata; \
|
||||
MYSQL_FIELD *fields; \
|
||||
c_type pspv c_type_ext; \
|
||||
my_bool psp_null; \
|
||||
my_bool psp_null= FALSE; \
|
||||
\
|
||||
bzero(&pspv, sizeof (pspv)); \
|
||||
\
|
||||
@ -1133,6 +1140,7 @@ static void test_wl4435_3()
|
||||
{
|
||||
char tmp[255];
|
||||
|
||||
memset(tmp, 0, sizeof tmp);
|
||||
puts("");
|
||||
|
||||
/*
|
||||
@ -1631,6 +1639,7 @@ static void test_double_compare()
|
||||
my_bind[2].buffer= (void *)&double_data;
|
||||
|
||||
tiny_data= 1;
|
||||
memset(real_data, 0, sizeof real_data);
|
||||
strmov(real_data, "10.2");
|
||||
double_data= 34.5;
|
||||
rc= mysql_stmt_bind_param(stmt, my_bind);
|
||||
@ -7419,6 +7428,7 @@ static void test_decimal_bug()
|
||||
rc= mysql_stmt_bind_param(stmt, my_bind);
|
||||
check_execute(stmt, rc);
|
||||
|
||||
memset(data, 0, sizeof data);
|
||||
strmov(data, "8.0");
|
||||
rc= mysql_stmt_execute(stmt);
|
||||
check_execute(stmt, rc);
|
||||
@ -11571,6 +11581,7 @@ static void test_view_insert_fields()
|
||||
my_bind[i].is_null= 0;
|
||||
my_bind[i].buffer= (char *)&parm[i];
|
||||
|
||||
memset(parm[i], 0, sizeof parm[i]);
|
||||
strmov(parm[i], "1");
|
||||
my_bind[i].buffer_length= 2;
|
||||
my_bind[i].length= &l[i];
|
||||
@ -13168,6 +13179,7 @@ static void test_bug8330()
|
||||
check_execute(stmt[i], rc);
|
||||
|
||||
my_bind[i].buffer_type= MYSQL_TYPE_LONG;
|
||||
lval[i]= 0;
|
||||
my_bind[i].buffer= (void*) &lval[i];
|
||||
my_bind[i].is_null= 0;
|
||||
mysql_stmt_bind_param(stmt[i], &my_bind[i]);
|
||||
@ -15904,6 +15916,7 @@ static void test_bug20152()
|
||||
my_bind[0].buffer_type= MYSQL_TYPE_DATE;
|
||||
my_bind[0].buffer= (void*)&tm;
|
||||
|
||||
memset(&tm, 0, sizeof tm);
|
||||
tm.year = 2006;
|
||||
tm.month = 6;
|
||||
tm.day = 18;
|
||||
@ -18939,6 +18952,7 @@ static void test_bug49972()
|
||||
|
||||
in_param_bind.buffer_type= MYSQL_TYPE_LONG;
|
||||
in_param_bind.buffer= (char *) &int_data;
|
||||
int_data= 0;
|
||||
in_param_bind.length= 0;
|
||||
in_param_bind.is_null= 0;
|
||||
|
||||
@ -19460,6 +19474,7 @@ static void test_ps_sp_out_params()
|
||||
DIE_UNLESS(mysql_stmt_param_count(stmt) == 1);
|
||||
|
||||
memset(bind, 0, sizeof(MYSQL_BIND));
|
||||
memset(buffer, 0, sizeof buffer);
|
||||
bind[0].buffer= buffer;
|
||||
bind[0].buffer_length= sizeof(buffer);
|
||||
bind[0].buffer_type= MYSQL_TYPE_STRING;
|
||||
@ -20135,6 +20150,7 @@ static void test_mdev14454_internal(const char *init,
|
||||
DIE_UNLESS(rc == 0);
|
||||
DIE_UNLESS(mysql_stmt_param_count(stmt) == 1);
|
||||
|
||||
memset(&bind, 0, sizeof bind);
|
||||
bind.buffer_type= MYSQL_TYPE_NULL;
|
||||
rc= mysql_stmt_bind_param(stmt, &bind);
|
||||
DIE_UNLESS(rc == 0);
|
||||
@ -20143,7 +20159,6 @@ static void test_mdev14454_internal(const char *init,
|
||||
DIE_UNLESS(rc == 0);
|
||||
|
||||
memset(res, 0, sizeof(res));
|
||||
memset(&bind, 0, sizeof(bind));
|
||||
bind.buffer_type= MYSQL_TYPE_STRING;
|
||||
bind.buffer_length= sizeof(res);
|
||||
bind.buffer= res;
|
||||
@ -20756,6 +20771,7 @@ static void test_ps_params_in_ctes()
|
||||
|
||||
int_data[0]=2;
|
||||
|
||||
memset(ps_params, 0, sizeof ps_params);
|
||||
ps_params[0].buffer_type= MYSQL_TYPE_LONG;
|
||||
ps_params[0].buffer= (char *) &int_data[0];
|
||||
ps_params[0].length= 0;
|
||||
@ -21181,7 +21197,10 @@ static void test_explain_meta()
|
||||
}
|
||||
|
||||
|
||||
#ifndef EMBEDDED_LIBRARY
|
||||
#if __has_feature(memory_sanitizer)
|
||||
/* FIXME: MDEV-26761: main.mysql_client_test fails with MemorySanitizer */
|
||||
#elif defined EMBEDDED_LIBRARY
|
||||
#else
|
||||
#define MDEV19838_MAX_PARAM_COUNT 32
|
||||
#define MDEV19838_FIELDS_COUNT 17
|
||||
static void test_mdev19838()
|
||||
@ -21802,7 +21821,10 @@ static struct my_tests_st my_tests[]= {
|
||||
#endif
|
||||
{ "test_ps_params_in_ctes", test_ps_params_in_ctes },
|
||||
{ "test_explain_meta", test_explain_meta },
|
||||
#ifndef EMBEDDED_LIBRARY
|
||||
#if __has_feature(memory_sanitizer)
|
||||
/* FIXME: MDEV-26761: main.mysql_client_test fails with MemorySanitizer */
|
||||
#elif defined EMBEDDED_LIBRARY
|
||||
#else
|
||||
{ "test_mdev19838", test_mdev19838 },
|
||||
#endif
|
||||
{ "test_mdev18408", test_mdev18408 },
|
||||
|
Reference in New Issue
Block a user