Skip to content

Commit ead3835

Browse files
committed
Merge 10.4 into 10.5
2 parents f3bd278 + 097b7b8 commit ead3835

File tree

10 files changed

+144
-33
lines changed

10 files changed

+144
-33
lines changed

mysql-test/main/sp.test

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10433,7 +10433,7 @@ SELECT VARIABLE_VALUE into @local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATU
1043310433
CREATE PROCEDURE sp1() SELECT 1;
1043410434
SHOW CREATE PROCEDURE sp1;
1043510435
SELECT VARIABLE_VALUE-@local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
10436-
# 10.5 FIXME: This occasionally shows 56 or 64 bytes of difference!
10436+
# FIXME: MDEV-26754 main.sp test fails for embedded server
1043710437
#SELECT VARIABLE_VALUE-@global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
1043810438
DROP PROCEDURE sp1;
1043910439
--echo # End of 10.3 tests
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
connection node_2;
2+
connection node_1;
3+
SET @wsrep_forced_binlog_format_saved = @@GLOBAL.wsrep_forced_binlog_format;
4+
SET @@GLOBAL.wsrep_forced_binlog_format = STATEMENT;
5+
CREATE TABLE t1(c INT PRIMARY KEY) ENGINE = MyISAM;
6+
INSERT DELAYED INTO t1 VALUES (1),(2),(3);
7+
SELECT SLEEP(1);
8+
SLEEP(1)
9+
0
10+
DROP TABLE t1;
11+
SET @@GLOBAL.wsrep_forced_binlog_format = @wsrep_forced_binlog_format_saved;

mysql-test/suite/galera/r/galera_fulltext.result

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,59 @@ COUNT(f1) = 1000
3636
1
3737
DROP TABLE t1;
3838
DROP TABLE ten;
39+
connection node_1;
40+
SET @value=REPEAT (1,5001);
41+
CREATE TABLE t (a VARCHAR(5000),FULLTEXT (a)) engine=innodb;
42+
INSERT IGNORE INTO t VALUES(@value);
43+
Warnings:
44+
Warning 1265 Data truncated for column 'a' at row 1
45+
SELECT COUNT(*) FROM t;
46+
COUNT(*)
47+
1
48+
connection node_2;
49+
SELECT COUNT(*) FROM t;
50+
COUNT(*)
51+
1
52+
connection node_1;
53+
DROP TABLE t;
54+
CREATE TABLE t (a VARCHAR(5000)) engine=innodb;
55+
INSERT IGNORE INTO t VALUES(@value);
56+
Warnings:
57+
Warning 1265 Data truncated for column 'a' at row 1
58+
SELECT COUNT(*) FROM t;
59+
COUNT(*)
60+
1
61+
connection node_2;
62+
SELECT COUNT(*) FROM t;
63+
COUNT(*)
64+
1
65+
connection node_1;
66+
DROP TABLE t;
67+
connection node_1;
68+
SET @value=REPEAT (1,5001);
69+
CREATE TABLE t (a VARCHAR(5000),FULLTEXT (a)) engine=innodb DEFAULT CHARSET=utf8;
70+
INSERT IGNORE INTO t VALUES(@value);
71+
Warnings:
72+
Warning 1265 Data truncated for column 'a' at row 1
73+
SELECT COUNT(*) FROM t;
74+
COUNT(*)
75+
1
76+
connection node_2;
77+
SELECT COUNT(*) FROM t;
78+
COUNT(*)
79+
1
80+
connection node_1;
81+
DROP TABLE t;
82+
CREATE TABLE t (a VARCHAR(5000)) engine=innodb DEFAULT CHARSET=utf8;
83+
INSERT IGNORE INTO t VALUES(@value);
84+
Warnings:
85+
Warning 1265 Data truncated for column 'a' at row 1
86+
SELECT COUNT(*) FROM t;
87+
COUNT(*)
88+
1
89+
connection node_2;
90+
SELECT COUNT(*) FROM t;
91+
COUNT(*)
92+
1
93+
connection node_1;
94+
DROP TABLE t;
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
!include ../galera_2nodes.cnf
2+
3+
[mysqld]
4+
log-bin
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
--source include/galera_cluster.inc
2+
--source include/have_innodb.inc
3+
4+
SET @wsrep_forced_binlog_format_saved = @@GLOBAL.wsrep_forced_binlog_format;
5+
SET @@GLOBAL.wsrep_forced_binlog_format = STATEMENT;
6+
7+
CREATE TABLE t1(c INT PRIMARY KEY) ENGINE = MyISAM;
8+
9+
INSERT DELAYED INTO t1 VALUES (1),(2),(3);
10+
SELECT SLEEP(1);
11+
12+
DROP TABLE t1;
13+
14+
SET @@GLOBAL.wsrep_forced_binlog_format = @wsrep_forced_binlog_format_saved;

mysql-test/suite/galera/t/galera_fulltext.test

Lines changed: 43 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -58,28 +58,50 @@ SELECT COUNT(f1) = 1000 FROM t1 WHERE MATCH(f1) AGAINST ('abcdefjhk');
5858

5959
DROP TABLE t1;
6060
DROP TABLE ten;
61-
62-
#
63-
# Case 2: UTF-8
64-
# TODO: MDEV-24978
6561
#
66-
#--connection node_1
67-
#SET @value=REPEAT (1,5001);
68-
#CREATE TABLE t (a VARCHAR(5000),FULLTEXT (a)) engine=innodb DEFAULT CHARSET=utf8;
69-
#INSERT IGNORE INTO t VALUES(@value);
70-
#SELECT COUNT(*) FROM t;
62+
# MDEV-24978 : SIGABRT in __libc_message
7163
#
72-
#--connection node_2
73-
#SELECT COUNT(*) FROM t;
74-
#
75-
#--connection node_1
76-
#DROP TABLE t;
77-
#CREATE TABLE t (a VARCHAR(5000)) engine=innodb DEFAULT CHARSET=utf8;
78-
#INSERT IGNORE INTO t VALUES(@value);
79-
#SELECT COUNT(*) FROM t;
64+
--connection node_1
65+
SET @value=REPEAT (1,5001);
66+
CREATE TABLE t (a VARCHAR(5000),FULLTEXT (a)) engine=innodb;
67+
INSERT IGNORE INTO t VALUES(@value);
68+
SELECT COUNT(*) FROM t;
69+
70+
--connection node_2
71+
SELECT COUNT(*) FROM t;
72+
73+
--connection node_1
74+
DROP TABLE t;
75+
CREATE TABLE t (a VARCHAR(5000)) engine=innodb;
76+
INSERT IGNORE INTO t VALUES(@value);
77+
SELECT COUNT(*) FROM t;
78+
79+
--connection node_2
80+
SELECT COUNT(*) FROM t;
81+
82+
--connection node_1
83+
DROP TABLE t;
84+
8085
#
81-
#--connection node_2
82-
#SELECT COUNT(*) FROM t;
86+
# Case 2: UTF-8
8387
#
84-
#--connection node_1
85-
#DROP TABLE t;
88+
--connection node_1
89+
SET @value=REPEAT (1,5001);
90+
CREATE TABLE t (a VARCHAR(5000),FULLTEXT (a)) engine=innodb DEFAULT CHARSET=utf8;
91+
INSERT IGNORE INTO t VALUES(@value);
92+
SELECT COUNT(*) FROM t;
93+
94+
--connection node_2
95+
SELECT COUNT(*) FROM t;
96+
97+
--connection node_1
98+
DROP TABLE t;
99+
CREATE TABLE t (a VARCHAR(5000)) engine=innodb DEFAULT CHARSET=utf8;
100+
INSERT IGNORE INTO t VALUES(@value);
101+
SELECT COUNT(*) FROM t;
102+
103+
--connection node_2
104+
SELECT COUNT(*) FROM t;
105+
106+
--connection node_1
107+
DROP TABLE t;

sql/service_wsrep.cc

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -268,12 +268,11 @@ extern "C" my_bool wsrep_thd_order_before(const THD *left, const THD *right)
268268
extern "C" my_bool wsrep_thd_is_aborting(const MYSQL_THD thd)
269269
{
270270
mysql_mutex_assert_owner(&thd->LOCK_thd_data);
271-
if (thd != 0)
271+
272+
const wsrep::client_state& cs(thd->wsrep_cs());
273+
const enum wsrep::transaction::state tx_state(cs.transaction().state());
274+
switch (tx_state)
272275
{
273-
const wsrep::client_state& cs(thd->wsrep_cs());
274-
const enum wsrep::transaction::state tx_state(cs.transaction().state());
275-
switch (tx_state)
276-
{
277276
case wsrep::transaction::s_must_abort:
278277
return (cs.state() == wsrep::client_state::s_exec ||
279278
cs.state() == wsrep::client_state::s_result);
@@ -282,8 +281,8 @@ extern "C" my_bool wsrep_thd_is_aborting(const MYSQL_THD thd)
282281
return true;
283282
default:
284283
return false;
285-
}
286284
}
285+
287286
return false;
288287
}
289288

sql/sql_insert.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -475,7 +475,7 @@ void upgrade_lock_type(THD *thd, thr_lock_type *lock_type,
475475
}
476476

477477
bool log_on= (thd->variables.option_bits & OPTION_BIN_LOG);
478-
if (global_system_variables.binlog_format == BINLOG_FORMAT_STMT &&
478+
if (thd->wsrep_binlog_format() == BINLOG_FORMAT_STMT &&
479479
log_on && mysql_bin_log.is_open())
480480
{
481481
/*

sql/sql_yacc.yy

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,8 @@
7272
/* this is to get the bison compilation windows warnings out */
7373
#ifdef _MSC_VER
7474
/* warning C4065: switch statement contains 'default' but no 'case' labels */
75-
#pragma warning (disable : 4065)
75+
/* warning C4102: 'yyexhaustedlab': unreferenced label */
76+
#pragma warning (disable : 4065 4102)
7677
#endif
7778
#ifdef __GNUC__
7879
#pragma GCC diagnostic ignored "-Wunused-label" /* yyexhaustedlab: */

storage/innobase/handler/ha_innodb.cc

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6654,10 +6654,14 @@ wsrep_store_key_val_for_row(
66546654

66556655
/* In a column prefix index, we may need to truncate
66566656
the stored value: */
6657-
66586657
if (true_len > key_len) {
66596658
true_len = key_len;
66606659
}
6660+
/* cannot exceed max column lenght either, we may need to truncate
6661+
the stored value: */
6662+
if (true_len > sizeof(sorted)) {
6663+
true_len = sizeof(sorted);
6664+
}
66616665

66626666
memcpy(sorted, data, true_len);
66636667
true_len = wsrep_innobase_mysql_sort(
@@ -6670,8 +6674,8 @@ wsrep_store_key_val_for_row(
66706674
actual data. The rest of the space was reset to zero
66716675
in the bzero() call above. */
66726676
if (true_len > buff_space) {
6673-
fprintf (stderr,
6674-
"WSREP: key truncated: %s\n",
6677+
WSREP_DEBUG (
6678+
"write set key truncated for: %s\n",
66756679
wsrep_thd_query(thd));
66766680
true_len = buff_space;
66776681
}

0 commit comments

Comments
 (0)