summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2022-06-02 16:34:17 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2022-06-02 16:34:17 +0300
commit96f4b4a55b449a29af7e4b70bebf0ff238ae7f80 (patch)
treeb43918817166e74bd6bbe7ef51635c523893a4c2
parentebbd5ef6e2902a51a46e47dbb8a8667593cb25e7 (diff)
parent91d5fffa0796b8208c3d6633c8f296da8914af4d (diff)
downloadmariadb-git-96f4b4a55b449a29af7e4b70bebf0ff238ae7f80.tar.gz
Merge 10.3 into 10.4
-rw-r--r--client/client_priv.h3
-rw-r--r--client/mysql.cc10
-rw-r--r--extra/mariabackup/ds_compress.cc100
-rw-r--r--man/mysql.115
-rw-r--r--mysql-test/main/mysql.result5
-rw-r--r--mysql-test/main/mysql.test8
-rw-r--r--mysql-test/main/partition_error.result13
-rw-r--r--mysql-test/main/partition_error.test14
-rw-r--r--mysql-test/suite/galera/r/galera_ist_MDEV-28423,debug.rdiff202
-rw-r--r--mysql-test/suite/galera/r/galera_ist_MDEV-28423.result558
-rw-r--r--mysql-test/suite/galera/r/galera_ist_MDEV-28583,debug.rdiff202
-rw-r--r--mysql-test/suite/galera/r/galera_ist_MDEV-28583.result558
-rw-r--r--mysql-test/suite/innodb_fts/r/fulltext.result14
-rw-r--r--mysql-test/suite/innodb_fts/t/fulltext.test16
-rw-r--r--scripts/wsrep_sst_mariabackup.sh5
-rw-r--r--sql/partition_info.cc2
-rw-r--r--sql/sql_partition_admin.cc8
-rw-r--r--sql/table.h3
-rw-r--r--storage/connect/tabmysql.cpp19
-rw-r--r--storage/innobase/dict/dict0load.cc1
-rw-r--r--storage/innobase/os/os0file.cc1
-rw-r--r--storage/maria/ma_loghandler.c12
22 files changed, 595 insertions, 1174 deletions
diff --git a/client/client_priv.h b/client/client_priv.h
index 9280d6ccc96..a063dbe724c 100644
--- a/client/client_priv.h
+++ b/client/client_priv.h
@@ -1,6 +1,6 @@
/*
Copyright (c) 2001, 2012, Oracle and/or its affiliates.
- Copyright (c) 2009, 2020, MariaDB
+ Copyright (c) 2009, 2022, 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
@@ -102,6 +102,7 @@ enum options_client
OPT_IGNORE_DATA,
OPT_PRINT_ROW_COUNT, OPT_PRINT_ROW_EVENT_POSITIONS,
OPT_CHECK_IF_UPGRADE_NEEDED,
+ OPT_COMPATIBILTY_CLEARTEXT_PLUGIN,
OPT_SHUTDOWN_WAIT_FOR_SLAVES,
OPT_MAX_CLIENT_OPTION /* should be always the last */
};
diff --git a/client/mysql.cc b/client/mysql.cc
index 8924055aee6..bcc8ac850c8 100644
--- a/client/mysql.cc
+++ b/client/mysql.cc
@@ -1514,6 +1514,8 @@ static struct my_option my_long_options[] =
&delimiter_str, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"execute", 'e', "Execute command and quit. (Disables --force and history file.)", 0,
0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"enable-cleartext-plugin", OPT_COMPATIBILTY_CLEARTEXT_PLUGIN, "Obsolete option. Exists only for MySQL compatibility.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
{"vertical", 'E', "Print the output of a query (rows) vertically.",
&vertical, &vertical, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0,
0},
@@ -1813,6 +1815,14 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
printf("WARNING: --server-arg option not supported in this configuration.\n");
#endif
break;
+ case OPT_COMPATIBILTY_CLEARTEXT_PLUGIN:
+ /*
+ This option exists in MySQL client but not in MariaDB. Users switching from
+ MySQL might still have this option in their commands, and it will not work
+ in MariaDB unless it is handled. Therefore output a warning and continue.
+ */
+ printf("WARNING: option '--enable-cleartext-plugin' is obsolete.\n");
+ break;
case 'A':
opt_rehash= 0;
break;
diff --git a/extra/mariabackup/ds_compress.cc b/extra/mariabackup/ds_compress.cc
index 514c86f5a17..39a72cdca34 100644
--- a/extra/mariabackup/ds_compress.cc
+++ b/extra/mariabackup/ds_compress.cc
@@ -1,5 +1,6 @@
/******************************************************
Copyright (c) 2011-2013 Percona LLC and/or its affiliates.
+Copyright (c) 2022, MariaDB Corporation.
Compressing datasink implementation for XtraBackup.
@@ -32,11 +33,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
typedef struct {
pthread_t id;
uint num;
- pthread_mutex_t ctrl_mutex;
- pthread_cond_t ctrl_cond;
pthread_mutex_t data_mutex;
pthread_cond_t data_cond;
- my_bool started;
my_bool data_avail;
my_bool cancelled;
const char *from;
@@ -208,14 +206,13 @@ compress_write(ds_file_t *file, const uchar *buf, size_t len)
thd = threads + i;
- pthread_mutex_lock(&thd->ctrl_mutex);
+ pthread_mutex_lock(&thd->data_mutex);
chunk_len = (len > COMPRESS_CHUNK_SIZE) ?
COMPRESS_CHUNK_SIZE : len;
thd->from = ptr;
thd->from_len = chunk_len;
- pthread_mutex_lock(&thd->data_mutex);
thd->data_avail = TRUE;
pthread_cond_signal(&thd->data_cond);
pthread_mutex_unlock(&thd->data_mutex);
@@ -241,26 +238,24 @@ compress_write(ds_file_t *file, const uchar *buf, size_t len)
xb_a(threads[i].to_len > 0);
- if (ds_write(dest_file, "NEWBNEWB", 8) ||
- write_uint64_le(dest_file,
- comp_file->bytes_processed)) {
- msg("compress: write to the destination stream "
- "failed.");
- return 1;
+ bool fail = ds_write(dest_file, "NEWBNEWB", 8) ||
+ write_uint64_le(dest_file,
+ comp_file->bytes_processed);
+ comp_file->bytes_processed += threads[i].from_len;
+
+ if (!fail) {
+ fail = write_uint32_le(dest_file, threads[i].adler) ||
+ ds_write(dest_file, threads[i].to,
+ threads[i].to_len);
}
- comp_file->bytes_processed += threads[i].from_len;
+ pthread_mutex_unlock(&threads[i].data_mutex);
- if (write_uint32_le(dest_file, threads[i].adler) ||
- ds_write(dest_file, threads[i].to,
- threads[i].to_len)) {
+ if (fail) {
msg("compress: write to the destination stream "
"failed.");
return 1;
}
-
- pthread_mutex_unlock(&threads[i].data_mutex);
- pthread_mutex_unlock(&threads[i].ctrl_mutex);
}
}
@@ -331,6 +326,23 @@ write_uint64_le(ds_file_t *file, ulonglong n)
}
static
+void
+destroy_worker_thread(comp_thread_ctxt_t *thd)
+{
+ pthread_mutex_lock(&thd->data_mutex);
+ thd->cancelled = TRUE;
+ pthread_cond_signal(&thd->data_cond);
+ pthread_mutex_unlock(&thd->data_mutex);
+
+ pthread_join(thd->id, NULL);
+
+ pthread_cond_destroy(&thd->data_cond);
+ pthread_mutex_destroy(&thd->data_mutex);
+
+ my_free(thd->to);
+}
+
+static
comp_thread_ctxt_t *
create_worker_threads(uint n)
{
@@ -344,7 +356,6 @@ create_worker_threads(uint n)
comp_thread_ctxt_t *thd = threads + i;
thd->num = i + 1;
- thd->started = FALSE;
thd->cancelled = FALSE;
thd->data_avail = FALSE;
@@ -352,46 +363,25 @@ create_worker_threads(uint n)
MY_QLZ_COMPRESS_OVERHEAD,
MYF(MY_FAE));
- /* Initialize the control mutex and condition var */
- if (pthread_mutex_init(&thd->ctrl_mutex, NULL) ||
- pthread_cond_init(&thd->ctrl_cond, NULL)) {
- goto err;
- }
-
/* Initialize and data mutex and condition var */
if (pthread_mutex_init(&thd->data_mutex, NULL) ||
pthread_cond_init(&thd->data_cond, NULL)) {
goto err;
}
- pthread_mutex_lock(&thd->ctrl_mutex);
-
if (pthread_create(&thd->id, NULL, compress_worker_thread_func,
thd)) {
msg("compress: pthread_create() failed: "
"errno = %d", errno);
- pthread_mutex_unlock(&thd->ctrl_mutex);
goto err;
}
}
- /* Wait for the threads to start */
- for (i = 0; i < n; i++) {
- comp_thread_ctxt_t *thd = threads + i;
-
- while (thd->started == FALSE)
- pthread_cond_wait(&thd->ctrl_cond, &thd->ctrl_mutex);
- pthread_mutex_unlock(&thd->ctrl_mutex);
- }
-
return threads;
err:
- while (i > 0) {
- comp_thread_ctxt_t *thd;
- i--;
- thd = threads + i;
- pthread_mutex_unlock(&thd->ctrl_mutex);
+ for (; i; i--) {
+ destroy_worker_thread(threads + i);
}
my_free(threads);
@@ -405,21 +395,7 @@ destroy_worker_threads(comp_thread_ctxt_t *threads, uint n)
uint i;
for (i = 0; i < n; i++) {
- comp_thread_ctxt_t *thd = threads + i;
-
- pthread_mutex_lock(&thd->data_mutex);
- threads[i].cancelled = TRUE;
- pthread_cond_signal(&thd->data_cond);
- pthread_mutex_unlock(&thd->data_mutex);
-
- pthread_join(thd->id, NULL);
-
- pthread_cond_destroy(&thd->data_cond);
- pthread_mutex_destroy(&thd->data_mutex);
- pthread_cond_destroy(&thd->ctrl_cond);
- pthread_mutex_destroy(&thd->ctrl_mutex);
-
- my_free(thd->to);
+ destroy_worker_thread(threads + i);
}
my_free(threads);
@@ -431,19 +407,9 @@ compress_worker_thread_func(void *arg)
{
comp_thread_ctxt_t *thd = (comp_thread_ctxt_t *) arg;
- pthread_mutex_lock(&thd->ctrl_mutex);
-
pthread_mutex_lock(&thd->data_mutex);
- thd->started = TRUE;
- pthread_cond_signal(&thd->ctrl_cond);
-
- pthread_mutex_unlock(&thd->ctrl_mutex);
-
while (1) {
- thd->data_avail = FALSE;
- pthread_cond_signal(&thd->data_cond);
-
while (!thd->data_avail && !thd->cancelled) {
pthread_cond_wait(&thd->data_cond, &thd->data_mutex);
}
diff --git a/man/mysql.1 b/man/mysql.1
index 2acb71656a0..cf14a4287cb 100644
--- a/man/mysql.1
+++ b/man/mysql.1
@@ -507,6 +507,21 @@ the section called \(lqMYSQL COMMANDS\(rq\&.
.sp -1
.IP \(bu 2.3
.\}
+.\" mysql: enable cleartext plugin option
+.\" enable cleartext plugin option: mysql
+\fB\-\-enable\-cleartext\-plugin\fR
+.sp
+Obsolete option\&. Exists only for MySQL compatibility\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
.\" mysql: execute option
.\" execute option: mysql
\fB\-\-execute=\fR\fB\fIstatement\fR\fR,
diff --git a/mysql-test/main/mysql.result b/mysql-test/main/mysql.result
index ec2760ce8a7..9b0936b5924 100644
--- a/mysql-test/main/mysql.result
+++ b/mysql-test/main/mysql.result
@@ -629,4 +629,7 @@ drop table t1;
#
# MDEV-15538 '-N' Produce html output wrong
#
-<TABLE BORDER=1><TR><TD>1</TD></TR></TABLE> \ No newline at end of file
+<TABLE BORDER=1><TR><TD>1</TD></TR></TABLE>
+WARNING: option '--enable-cleartext-plugin' is obsolete.
+1
+1
diff --git a/mysql-test/main/mysql.test b/mysql-test/main/mysql.test
index 1cb4977a32d..0f41add821a 100644
--- a/mysql-test/main/mysql.test
+++ b/mysql-test/main/mysql.test
@@ -708,3 +708,11 @@ drop table t1;
--echo # MDEV-15538 '-N' Produce html output wrong
--echo #
--exec $MYSQL -NHe "select 1 as a"
+
+
+#
+# Test obsolete option --enable-cleartext-plugin
+# This should proceed with a warning
+#
+--echo
+--exec $MYSQL test --enable-cleartext-plugin -e "select 1"
diff --git a/mysql-test/main/partition_error.result b/mysql-test/main/partition_error.result
index d99473d0718..fdedb5a4633 100644
--- a/mysql-test/main/partition_error.result
+++ b/mysql-test/main/partition_error.result
@@ -6,7 +6,18 @@ drop table if exists t1, t2;
CREATE TABLE t1 (a int);
CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1;
ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE v1;
-ERROR 42000: Can't open table
+ERROR HY000: 'test.v1' is not of type 'BASE TABLE'
+DROP VIEW v1;
+DROP TABLE t1;
+#
+# MDEV-28599 EXCHANGE PARTITION on view causes ER_CHECK_NO_SUCH_TABLE instead of ER_WRONG_OBJECT
+#
+CREATE TABLE t1 (a int)
+PARTITION BY HASH (a)
+PARTITIONS 2;
+CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1;
+ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE v1;
+ERROR HY000: 'test.v1' is not of type 'BASE TABLE'
DROP VIEW v1;
DROP TABLE t1;
#
diff --git a/mysql-test/main/partition_error.test b/mysql-test/main/partition_error.test
index 8739c93fe92..7d8e76dabf7 100644
--- a/mysql-test/main/partition_error.test
+++ b/mysql-test/main/partition_error.test
@@ -16,7 +16,19 @@ let $MYSQLD_DATADIR= `SELECT @@datadir`;
--echo #
CREATE TABLE t1 (a int);
CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1;
---error ER_CHECK_NO_SUCH_TABLE
+--error ER_WRONG_OBJECT
+ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE v1;
+DROP VIEW v1;
+DROP TABLE t1;
+
+--echo #
+--echo # MDEV-28599 EXCHANGE PARTITION on view causes ER_CHECK_NO_SUCH_TABLE instead of ER_WRONG_OBJECT
+--echo #
+CREATE TABLE t1 (a int)
+PARTITION BY HASH (a)
+PARTITIONS 2;
+CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1;
+--error ER_WRONG_OBJECT
ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE v1;
DROP VIEW v1;
DROP TABLE t1;
diff --git a/mysql-test/suite/galera/r/galera_ist_MDEV-28423,debug.rdiff b/mysql-test/suite/galera/r/galera_ist_MDEV-28423,debug.rdiff
index 8c84321e774..f9f81ea3b40 100644
--- a/mysql-test/suite/galera/r/galera_ist_MDEV-28423,debug.rdiff
+++ b/mysql-test/suite/galera/r/galera_ist_MDEV-28423,debug.rdiff
@@ -1,27 +1,27 @@
--- r/galera_ist_MDEV-28423.result
-+++ r/galera_ist_MDEV-28423,debug.reject
-@@ -517,3 +517,187 @@
- 1
++++ r/galera_ist_MDEV-28423.reject
+@@ -286,3 +286,111 @@
DROP TABLE t1;
COMMIT;
+ SET AUTOCOMMIT=ON;
+Performing State Transfer on a server that has been killed and restarted
+while a DDL was in progress on it
+connection node_1;
-+CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB;
++CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB;
+SET AUTOCOMMIT=OFF;
+START TRANSACTION;
-+INSERT INTO t1 VALUES (1,'node1_committed_before');
-+INSERT INTO t1 VALUES (2,'node1_committed_before');
-+INSERT INTO t1 VALUES (3,'node1_committed_before');
-+INSERT INTO t1 VALUES (4,'node1_committed_before');
-+INSERT INTO t1 VALUES (5,'node1_committed_before');
++INSERT INTO t1 VALUES ('node1_committed_before');
++INSERT INTO t1 VALUES ('node1_committed_before');
++INSERT INTO t1 VALUES ('node1_committed_before');
++INSERT INTO t1 VALUES ('node1_committed_before');
++INSERT INTO t1 VALUES ('node1_committed_before');
+connection node_2;
+START TRANSACTION;
-+INSERT INTO t1 VALUES (6,'node2_committed_before');
-+INSERT INTO t1 VALUES (7,'node2_committed_before');
-+INSERT INTO t1 VALUES (8,'node2_committed_before');
-+INSERT INTO t1 VALUES (9,'node2_committed_before');
-+INSERT INTO t1 VALUES (10,'node2_committed_before');
++INSERT INTO t1 VALUES ('node2_committed_before');
++INSERT INTO t1 VALUES ('node2_committed_before');
++INSERT INTO t1 VALUES ('node2_committed_before');
++INSERT INTO t1 VALUES ('node2_committed_before');
++INSERT INTO t1 VALUES ('node2_committed_before');
+COMMIT;
+SET GLOBAL debug_dbug = 'd,sync.alter_opened_table';
+connection node_1;
@@ -32,26 +32,26 @@
+connection node_1;
+SET AUTOCOMMIT=OFF;
+START TRANSACTION;
-+INSERT INTO t1 (id,f1) VALUES (11,'node1_committed_during');
-+INSERT INTO t1 (id,f1) VALUES (12,'node1_committed_during');
-+INSERT INTO t1 (id,f1) VALUES (13,'node1_committed_during');
-+INSERT INTO t1 (id,f1) VALUES (14,'node1_committed_during');
-+INSERT INTO t1 (id,f1) VALUES (15,'node1_committed_during');
++INSERT INTO t1 (f1) VALUES ('node1_committed_during');
++INSERT INTO t1 (f1) VALUES ('node1_committed_during');
++INSERT INTO t1 (f1) VALUES ('node1_committed_during');
++INSERT INTO t1 (f1) VALUES ('node1_committed_during');
++INSERT INTO t1 (f1) VALUES ('node1_committed_during');
+COMMIT;
+START TRANSACTION;
-+INSERT INTO t1 (id,f1) VALUES (16,'node1_to_be_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (17,'node1_to_be_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (18,'node1_to_be_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (19,'node1_to_be_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (20,'node1_to_be_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+connect node_1a_galera_st_kill_slave_ddl, 127.0.0.1, root, , test, $NODE_MYPORT_1;
+SET AUTOCOMMIT=OFF;
+START TRANSACTION;
-+INSERT INTO t1 (id,f1) VALUES (21,'node1_to_be_rollbacked_after');
-+INSERT INTO t1 (id,f1) VALUES (22,'node1_to_be_rollbacked_after');
-+INSERT INTO t1 (id,f1) VALUES (23,'node1_to_be_rollbacked_after');
-+INSERT INTO t1 (id,f1) VALUES (24,'node1_to_be_rollbacked_after');
-+INSERT INTO t1 (id,f1) VALUES (25,'node1_to_be_rollbacked_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+connection node_2;
+Performing --wsrep-recover ...
+connection node_2;
@@ -59,132 +59,56 @@
+Using --wsrep-start-position when starting mysqld ...
+SET AUTOCOMMIT=OFF;
+START TRANSACTION;
-+INSERT INTO t1 (id,f1) VALUES (26,'node2_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (27,'node2_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (28,'node2_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (29,'node2_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (30,'node2_committed_after');
++INSERT INTO t1 (f1) VALUES ('node2_committed_after');
++INSERT INTO t1 (f1) VALUES ('node2_committed_after');
++INSERT INTO t1 (f1) VALUES ('node2_committed_after');
++INSERT INTO t1 (f1) VALUES ('node2_committed_after');
++INSERT INTO t1 (f1) VALUES ('node2_committed_after');
+COMMIT;
+connection node_1;
-+INSERT INTO t1 (id,f1) VALUES (31,'node1_to_be_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (32,'node1_to_be_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (33,'node1_to_be_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (34,'node1_to_be_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (35,'node1_to_be_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+COMMIT;
+SET AUTOCOMMIT=OFF;
+START TRANSACTION;
-+INSERT INTO t1 (id,f1) VALUES (36,'node1_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (37,'node1_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (38,'node1_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (39,'node1_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (40,'node1_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_committed_after');
+COMMIT;
+connection node_1a_galera_st_kill_slave_ddl;
-+INSERT INTO t1 (id,f1) VALUES (41,'node1_to_be_rollbacked_after');
-+INSERT INTO t1 (id,f1) VALUES (42,'node1_to_be_rollbacked_after');
-+INSERT INTO t1 (id,f1) VALUES (43,'node1_to_be_rollbacked_after');
-+INSERT INTO t1 (id,f1) VALUES (44,'node1_to_be_rollbacked_after');
-+INSERT INTO t1 (id,f1) VALUES (45,'node1_to_be_rollbacked_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+ROLLBACK;
-+SET AUTOCOMMIT=ON;
-+SET SESSION wsrep_sync_wait=15;
-+SELECT COUNT(*) AS EXPECT_3 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
-+EXPECT_3
-+3
-+SELECT COUNT(*) AS EXPECT_35 FROM t1;
-+EXPECT_35
-+35
-+SELECT * FROM t1;
-+id f1 f2
-+1 node1_committed_before NULL
-+2 node1_committed_before NULL
-+3 node1_committed_before NULL
-+4 node1_committed_before NULL
-+5 node1_committed_before NULL
-+6 node2_committed_before NULL
-+7 node2_committed_before NULL
-+8 node2_committed_before NULL
-+9 node2_committed_before NULL
-+10 node2_committed_before NULL
-+11 node1_committed_during NULL
-+12 node1_committed_during NULL
-+13 node1_committed_during NULL
-+14 node1_committed_during NULL
-+15 node1_committed_during NULL
-+16 node1_to_be_committed_after NULL
-+17 node1_to_be_committed_after NULL
-+18 node1_to_be_committed_after NULL
-+19 node1_to_be_committed_after NULL
-+20 node1_to_be_committed_after NULL
-+26 node2_committed_after NULL
-+27 node2_committed_after NULL
-+28 node2_committed_after NULL
-+29 node2_committed_after NULL
-+30 node2_committed_after NULL
-+31 node1_to_be_committed_after NULL
-+32 node1_to_be_committed_after NULL
-+33 node1_to_be_committed_after NULL
-+34 node1_to_be_committed_after NULL
-+35 node1_to_be_committed_after NULL
-+36 node1_committed_after NULL
-+37 node1_committed_after NULL
-+38 node1_committed_after NULL
-+39 node1_committed_after NULL
-+40 node1_committed_after NULL
++SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
++COUNT(*) = 2
++1
++SELECT COUNT(*) = 35 FROM t1;
++COUNT(*) = 35
++1
+SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
+COUNT(*) = 0
+1
+COMMIT;
-+connection node_1;
+SET AUTOCOMMIT=ON;
-+SET SESSION wsrep_sync_wait=15;
-+SELECT COUNT(*) AS EXPECT_3 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
-+EXPECT_3
-+3
-+SELECT COUNT(*) AS EXPECT_35 FROM t1;
-+EXPECT_35
-+35
-+SELECT * FROM t1;
-+id f1 f2
-+1 node1_committed_before NULL
-+2 node1_committed_before NULL
-+3 node1_committed_before NULL
-+4 node1_committed_before NULL
-+5 node1_committed_before NULL
-+6 node2_committed_before NULL
-+7 node2_committed_before NULL
-+8 node2_committed_before NULL
-+9 node2_committed_before NULL
-+10 node2_committed_before NULL
-+11 node1_committed_during NULL
-+12 node1_committed_during NULL
-+13 node1_committed_during NULL
-+14 node1_committed_during NULL
-+15 node1_committed_during NULL
-+16 node1_to_be_committed_after NULL
-+17 node1_to_be_committed_after NULL
-+18 node1_to_be_committed_after NULL
-+19 node1_to_be_committed_after NULL
-+20 node1_to_be_committed_after NULL
-+26 node2_committed_after NULL
-+27 node2_committed_after NULL
-+28 node2_committed_after NULL
-+29 node2_committed_after NULL
-+30 node2_committed_after NULL
-+31 node1_to_be_committed_after NULL
-+32 node1_to_be_committed_after NULL
-+33 node1_to_be_committed_after NULL
-+34 node1_to_be_committed_after NULL
-+35 node1_to_be_committed_after NULL
-+36 node1_committed_after NULL
-+37 node1_committed_after NULL
-+38 node1_committed_after NULL
-+39 node1_committed_after NULL
-+40 node1_committed_after NULL
++connection node_1;
++SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
++COUNT(*) = 2
++1
++SELECT COUNT(*) = 35 FROM t1;
++COUNT(*) = 35
++1
+SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
+COUNT(*) = 0
+1
+DROP TABLE t1;
+COMMIT;
++SET AUTOCOMMIT=ON;
+SET GLOBAL debug_dbug = $debug_orig;
diff --git a/mysql-test/suite/galera/r/galera_ist_MDEV-28423.result b/mysql-test/suite/galera/r/galera_ist_MDEV-28423.result
index 5a71b490a80..80a28d349ba 100644
--- a/mysql-test/suite/galera/r/galera_ist_MDEV-28423.result
+++ b/mysql-test/suite/galera/r/galera_ist_MDEV-28423.result
@@ -1,519 +1,287 @@
-connection node_2;
-connection node_1;
connection node_1;
connection node_2;
Performing State Transfer on a server that has been temporarily disconnected
connection node_1;
-CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB;
+CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (1,'node1_committed_before');
-INSERT INTO t1 VALUES (2,'node1_committed_before');
-INSERT INTO t1 VALUES (3,'node1_committed_before');
-INSERT INTO t1 VALUES (4,'node1_committed_before');
-INSERT INTO t1 VALUES (5,'node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
COMMIT;
connection node_2;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (6,'node2_committed_before');
-INSERT INTO t1 VALUES (7,'node2_committed_before');
-INSERT INTO t1 VALUES (8,'node2_committed_before');
-INSERT INTO t1 VALUES (9,'node2_committed_before');
-INSERT INTO t1 VALUES (10,'node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
COMMIT;
Unloading wsrep provider ...
SET GLOBAL wsrep_cluster_address = '';
connection node_1;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (11,'node1_committed_during');
-INSERT INTO t1 VALUES (12,'node1_committed_during');
-INSERT INTO t1 VALUES (13,'node1_committed_during');
-INSERT INTO t1 VALUES (14,'node1_committed_during');
-INSERT INTO t1 VALUES (15,'node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
COMMIT;
START TRANSACTION;
-INSERT INTO t1 VALUES (16,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (17,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (18,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (19,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (20,'node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
connect node_1a_galera_st_disconnect_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (21,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (22,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (23,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (24,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (25,'node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
connection node_2;
Loading wsrep provider ...
-disconnect node_2;
-connect node_2, 127.0.0.1, root, , test, $NODE_MYPORT_2;
-connection node_2;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (26,'node2_committed_after');
-INSERT INTO t1 VALUES (27,'node2_committed_after');
-INSERT INTO t1 VALUES (28,'node2_committed_after');
-INSERT INTO t1 VALUES (29,'node2_committed_after');
-INSERT INTO t1 VALUES (30,'node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
COMMIT;
connection node_1;
-INSERT INTO t1 VALUES (31,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (32,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (33,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (34,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (35,'node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
COMMIT;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (36,'node1_committed_after');
-INSERT INTO t1 VALUES (37,'node1_committed_after');
-INSERT INTO t1 VALUES (38,'node1_committed_after');
-INSERT INTO t1 VALUES (39,'node1_committed_after');
-INSERT INTO t1 VALUES (40,'node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
COMMIT;
connection node_1a_galera_st_disconnect_slave;
-INSERT INTO t1 VALUES (41,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (42,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (43,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (44,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (45,'node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
ROLLBACK;
-SET AUTOCOMMIT=ON;
-SET SESSION wsrep_sync_wait=15;
-SELECT COUNT(*) AS EXPECT_35 FROM t1;
-EXPECT_35
-35
-SELECT * FROM t1;
-id f1
-1 node1_committed_before
-2 node1_committed_before
-3 node1_committed_before
-4 node1_committed_before
-5 node1_committed_before
-6 node2_committed_before
-7 node2_committed_before
-8 node2_committed_before
-9 node2_committed_before
-10 node2_committed_before
-11 node1_committed_during
-12 node1_committed_during
-13 node1_committed_during
-14 node1_committed_during
-15 node1_committed_during
-16 node1_to_be_committed_after
-17 node1_to_be_committed_after
-18 node1_to_be_committed_after
-19 node1_to_be_committed_after
-20 node1_to_be_committed_after
-26 node2_committed_after
-27 node2_committed_after
-28 node2_committed_after
-29 node2_committed_after
-30 node2_committed_after
-31 node1_to_be_committed_after
-32 node1_to_be_committed_after
-33 node1_to_be_committed_after
-34 node1_to_be_committed_after
-35 node1_to_be_committed_after
-36 node1_committed_after
-37 node1_committed_after
-38 node1_committed_after
-39 node1_committed_after
-40 node1_committed_after
+SELECT COUNT(*) = 35 FROM t1;
+COUNT(*) = 35
+1
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COUNT(*) = 0
1
-connection node_1;
+COMMIT;
SET AUTOCOMMIT=ON;
-SET SESSION wsrep_sync_wait=15;
-SELECT COUNT(*) AS EXPECT_35 FROM t1;
-EXPECT_35
-35
-SELECT * FROM t1;
-id f1
-1 node1_committed_before
-2 node1_committed_before
-3 node1_committed_before
-4 node1_committed_before
-5 node1_committed_before
-6 node2_committed_before
-7 node2_committed_before
-8 node2_committed_before
-9 node2_committed_before
-10 node2_committed_before
-11 node1_committed_during
-12 node1_committed_during
-13 node1_committed_during
-14 node1_committed_during
-15 node1_committed_during
-16 node1_to_be_committed_after
-17 node1_to_be_committed_after
-18 node1_to_be_committed_after
-19 node1_to_be_committed_after
-20 node1_to_be_committed_after
-26 node2_committed_after
-27 node2_committed_after
-28 node2_committed_after
-29 node2_committed_after
-30 node2_committed_after
-31 node1_to_be_committed_after
-32 node1_to_be_committed_after
-33 node1_to_be_committed_after
-34 node1_to_be_committed_after
-35 node1_to_be_committed_after
-36 node1_committed_after
-37 node1_committed_after
-38 node1_committed_after
-39 node1_committed_after
-40 node1_committed_after
+connection node_1;
+SELECT COUNT(*) = 35 FROM t1;
+COUNT(*) = 35
+1
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COUNT(*) = 0
1
DROP TABLE t1;
COMMIT;
+SET AUTOCOMMIT=ON;
Performing State Transfer on a server that has been shut down cleanly and restarted
connection node_1;
-CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB;
+CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (1,'node1_committed_before');
-INSERT INTO t1 VALUES (2,'node1_committed_before');
-INSERT INTO t1 VALUES (3,'node1_committed_before');
-INSERT INTO t1 VALUES (4,'node1_committed_before');
-INSERT INTO t1 VALUES (5,'node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
COMMIT;
connection node_2;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (6,'node2_committed_before');
-INSERT INTO t1 VALUES (7,'node2_committed_before');
-INSERT INTO t1 VALUES (8,'node2_committed_before');
-INSERT INTO t1 VALUES (9,'node2_committed_before');
-INSERT INTO t1 VALUES (10,'node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
COMMIT;
Shutting down server ...
connection node_1;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (11,'node1_committed_during');
-INSERT INTO t1 VALUES (12,'node1_committed_during');
-INSERT INTO t1 VALUES (13,'node1_committed_during');
-INSERT INTO t1 VALUES (14,'node1_committed_during');
-INSERT INTO t1 VALUES (15,'node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
COMMIT;
START TRANSACTION;
-INSERT INTO t1 VALUES (16,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (17,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (18,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (19,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (20,'node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
connect node_1a_galera_st_shutdown_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (21,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (22,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (23,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (24,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (25,'node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
connection node_2;
Starting server ...
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (26,'node2_committed_after');
-INSERT INTO t1 VALUES (27,'node2_committed_after');
-INSERT INTO t1 VALUES (28,'node2_committed_after');
-INSERT INTO t1 VALUES (29,'node2_committed_after');
-INSERT INTO t1 VALUES (30,'node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
COMMIT;
connection node_1;
-INSERT INTO t1 VALUES (31,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (32,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (33,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (34,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (35,'node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
COMMIT;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (36,'node1_committed_after');
-INSERT INTO t1 VALUES (37,'node1_committed_after');
-INSERT INTO t1 VALUES (38,'node1_committed_after');
-INSERT INTO t1 VALUES (39,'node1_committed_after');
-INSERT INTO t1 VALUES (40,'node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
COMMIT;
connection node_1a_galera_st_shutdown_slave;
-INSERT INTO t1 VALUES (41,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (42,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (43,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (44,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (45,'node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
ROLLBACK;
-SET AUTOCOMMIT=ON;
-SET SESSION wsrep_sync_wait=15;
-SELECT COUNT(*) AS EXPECT_15 FROM t1;
-EXPECT_15
-35
-SELECT * from t1;
-id f1
-1 node1_committed_before
-2 node1_committed_before
-3 node1_committed_before
-4 node1_committed_before
-5 node1_committed_before
-6 node2_committed_before
-7 node2_committed_before
-8 node2_committed_before
-9 node2_committed_before
-10 node2_committed_before
-11 node1_committed_during
-12 node1_committed_during
-13 node1_committed_during
-14 node1_committed_during
-15 node1_committed_during
-16 node1_to_be_committed_after
-17 node1_to_be_committed_after
-18 node1_to_be_committed_after
-19 node1_to_be_committed_after
-20 node1_to_be_committed_after
-26 node2_committed_after
-27 node2_committed_after
-28 node2_committed_after
-29 node2_committed_after
-30 node2_committed_after
-31 node1_to_be_committed_after
-32 node1_to_be_committed_after
-33 node1_to_be_committed_after
-34 node1_to_be_committed_after
-35 node1_to_be_committed_after
-36 node1_committed_after
-37 node1_committed_after
-38 node1_committed_after
-39 node1_committed_after
-40 node1_committed_after
+SELECT COUNT(*) = 35 FROM t1;
+COUNT(*) = 35
+1
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COUNT(*) = 0
1
COMMIT;
-connection node_1;
SET AUTOCOMMIT=ON;
-SET SESSION wsrep_sync_wait=15;
-SELECT COUNT(*) AS EXPECT_15 FROM t1;
-EXPECT_15
-35
-SELECT * from t1;
-id f1
-1 node1_committed_before
-2 node1_committed_before
-3 node1_committed_before
-4 node1_committed_before
-5 node1_committed_before
-6 node2_committed_before
-7 node2_committed_before
-8 node2_committed_before
-9 node2_committed_before
-10 node2_committed_before
-11 node1_committed_during
-12 node1_committed_during
-13 node1_committed_during
-14 node1_committed_during
-15 node1_committed_during
-16 node1_to_be_committed_after
-17 node1_to_be_committed_after
-18 node1_to_be_committed_after
-19 node1_to_be_committed_after
-20 node1_to_be_committed_after
-26 node2_committed_after
-27 node2_committed_after
-28 node2_committed_after
-29 node2_committed_after
-30 node2_committed_after
-31 node1_to_be_committed_after
-32 node1_to_be_committed_after
-33 node1_to_be_committed_after
-34 node1_to_be_committed_after
-35 node1_to_be_committed_after
-36 node1_committed_after
-37 node1_committed_after
-38 node1_committed_after
-39 node1_committed_after
-40 node1_committed_after
+connection node_1;
+SELECT COUNT(*) = 35 FROM t1;
+COUNT(*) = 35
+1
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COUNT(*) = 0
1
DROP TABLE t1;
COMMIT;
+SET AUTOCOMMIT=ON;
Performing State Transfer on a server that has been killed and restarted
connection node_1;
-CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB;
+CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (1,'node1_committed_before');
-INSERT INTO t1 VALUES (2,'node1_committed_before');
-INSERT INTO t1 VALUES (3,'node1_committed_before');
-INSERT INTO t1 VALUES (4,'node1_committed_before');
-INSERT INTO t1 VALUES (5,'node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
COMMIT;
connection node_2;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (6,'node2_committed_before');
-INSERT INTO t1 VALUES (7,'node2_committed_before');
-INSERT INTO t1 VALUES (8,'node2_committed_before');
-INSERT INTO t1 VALUES (9,'node2_committed_before');
-INSERT INTO t1 VALUES (10,'node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
COMMIT;
Killing server ...
connection node_1;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (11,'node1_committed_during');
-INSERT INTO t1 VALUES (12,'node1_committed_during');
-INSERT INTO t1 VALUES (13,'node1_committed_during');
-INSERT INTO t1 VALUES (14,'node1_committed_during');
-INSERT INTO t1 VALUES (15,'node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
COMMIT;
START TRANSACTION;
-INSERT INTO t1 VALUES (16,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (17,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (18,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (19,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (20,'node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
connect node_1a_galera_st_kill_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (21,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (22,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (23,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (24,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (25,'node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
connection node_2;
Performing --wsrep-recover ...
Starting server ...
Using --wsrep-start-position when starting mysqld ...
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (26,'node2_committed_after');
-INSERT INTO t1 VALUES (27,'node2_committed_after');
-INSERT INTO t1 VALUES (28,'node2_committed_after');
-INSERT INTO t1 VALUES (29,'node2_committed_after');
-INSERT INTO t1 VALUES (30,'node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
COMMIT;
connection node_1;
-INSERT INTO t1 VALUES (31,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (32,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (33,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (34,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (35,'node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
COMMIT;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (36,'node1_committed_after');
-INSERT INTO t1 VALUES (37,'node1_committed_after');
-INSERT INTO t1 VALUES (38,'node1_committed_after');
-INSERT INTO t1 VALUES (39,'node1_committed_after');
-INSERT INTO t1 VALUES (40,'node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
COMMIT;
connection node_1a_galera_st_kill_slave;
-INSERT INTO t1 VALUES (41,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (42,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (43,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (45,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (46,'node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
ROLLBACK;
-SET AUTOCOMMIT=ON;
-SET SESSION wsrep_sync_wait=15;
-SELECT COUNT(*) AS EXPECT_35 FROM t1;
-EXPECT_35
-35
-SELECT * FROM t1;
-id f1
-1 node1_committed_before
-2 node1_committed_before
-3 node1_committed_before
-4 node1_committed_before
-5 node1_committed_before
-6 node2_committed_before
-7 node2_committed_before
-8 node2_committed_before
-9 node2_committed_before
-10 node2_committed_before
-11 node1_committed_during
-12 node1_committed_during
-13 node1_committed_during
-14 node1_committed_during
-15 node1_committed_during
-16 node1_to_be_committed_after
-17 node1_to_be_committed_after
-18 node1_to_be_committed_after
-19 node1_to_be_committed_after
-20 node1_to_be_committed_after
-26 node2_committed_after
-27 node2_committed_after
-28 node2_committed_after
-29 node2_committed_after
-30 node2_committed_after
-31 node1_to_be_committed_after
-32 node1_to_be_committed_after
-33 node1_to_be_committed_after
-34 node1_to_be_committed_after
-35 node1_to_be_committed_after
-36 node1_committed_after
-37 node1_committed_after
-38 node1_committed_after
-39 node1_committed_after
-40 node1_committed_after
+SELECT COUNT(*) = 35 FROM t1;
+COUNT(*) = 35
+1
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COUNT(*) = 0
1
COMMIT;
-connection node_1;
SET AUTOCOMMIT=ON;
-SET SESSION wsrep_sync_wait=15;
-SELECT COUNT(*) AS EXPECT_35 FROM t1;
-EXPECT_35
-35
-SELECT * FROM t1;
-id f1
-1 node1_committed_before
-2 node1_committed_before
-3 node1_committed_before
-4 node1_committed_before
-5 node1_committed_before
-6 node2_committed_before
-7 node2_committed_before
-8 node2_committed_before
-9 node2_committed_before
-10 node2_committed_before
-11 node1_committed_during
-12 node1_committed_during
-13 node1_committed_during
-14 node1_committed_during
-15 node1_committed_during
-16 node1_to_be_committed_after
-17 node1_to_be_committed_after
-18 node1_to_be_committed_after
-19 node1_to_be_committed_after
-20 node1_to_be_committed_after
-26 node2_committed_after
-27 node2_committed_after
-28 node2_committed_after
-29 node2_committed_after
-30 node2_committed_after
-31 node1_to_be_committed_after
-32 node1_to_be_committed_after
-33 node1_to_be_committed_after
-34 node1_to_be_committed_after
-35 node1_to_be_committed_after
-36 node1_committed_after
-37 node1_committed_after
-38 node1_committed_after
-39 node1_committed_after
-40 node1_committed_after
+connection node_1;
+SELECT COUNT(*) = 35 FROM t1;
+COUNT(*) = 35
+1
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COUNT(*) = 0
1
DROP TABLE t1;
COMMIT;
+SET AUTOCOMMIT=ON;
diff --git a/mysql-test/suite/galera/r/galera_ist_MDEV-28583,debug.rdiff b/mysql-test/suite/galera/r/galera_ist_MDEV-28583,debug.rdiff
index 51d2a6bf157..ce78050538d 100644
--- a/mysql-test/suite/galera/r/galera_ist_MDEV-28583,debug.rdiff
+++ b/mysql-test/suite/galera/r/galera_ist_MDEV-28583,debug.rdiff
@@ -1,27 +1,27 @@
--- r/galera_ist_MDEV-28583.result
-+++ r/galera_ist_MDEV-28583,debug.reject
-@@ -517,3 +517,187 @@
- 1
++++ r/galera_ist_MDEV-28583.reject
+@@ -285,3 +285,111 @@
DROP TABLE t1;
COMMIT;
+ SET AUTOCOMMIT=ON;
+Performing State Transfer on a server that has been killed and restarted
+while a DDL was in progress on it
+connection node_1;
-+CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB;
++CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB;
+SET AUTOCOMMIT=OFF;
+START TRANSACTION;
-+INSERT INTO t1 VALUES (1,'node1_committed_before');
-+INSERT INTO t1 VALUES (2,'node1_committed_before');
-+INSERT INTO t1 VALUES (3,'node1_committed_before');
-+INSERT INTO t1 VALUES (4,'node1_committed_before');
-+INSERT INTO t1 VALUES (5,'node1_committed_before');
++INSERT INTO t1 VALUES ('node1_committed_before');
++INSERT INTO t1 VALUES ('node1_committed_before');
++INSERT INTO t1 VALUES ('node1_committed_before');
++INSERT INTO t1 VALUES ('node1_committed_before');
++INSERT INTO t1 VALUES ('node1_committed_before');
+connection node_2;
+START TRANSACTION;
-+INSERT INTO t1 VALUES (6,'node2_committed_before');
-+INSERT INTO t1 VALUES (7,'node2_committed_before');
-+INSERT INTO t1 VALUES (8,'node2_committed_before');
-+INSERT INTO t1 VALUES (9,'node2_committed_before');
-+INSERT INTO t1 VALUES (10,'node2_committed_before');
++INSERT INTO t1 VALUES ('node2_committed_before');
++INSERT INTO t1 VALUES ('node2_committed_before');
++INSERT INTO t1 VALUES ('node2_committed_before');
++INSERT INTO t1 VALUES ('node2_committed_before');
++INSERT INTO t1 VALUES ('node2_committed_before');
+COMMIT;
+SET GLOBAL debug_dbug = 'd,sync.alter_opened_table';
+connection node_1;
@@ -32,26 +32,26 @@
+connection node_1;
+SET AUTOCOMMIT=OFF;
+START TRANSACTION;
-+INSERT INTO t1 (id,f1) VALUES (11,'node1_committed_during');
-+INSERT INTO t1 (id,f1) VALUES (12,'node1_committed_during');
-+INSERT INTO t1 (id,f1) VALUES (13,'node1_committed_during');
-+INSERT INTO t1 (id,f1) VALUES (14,'node1_committed_during');
-+INSERT INTO t1 (id,f1) VALUES (15,'node1_committed_during');
++INSERT INTO t1 (f1) VALUES ('node1_committed_during');
++INSERT INTO t1 (f1) VALUES ('node1_committed_during');
++INSERT INTO t1 (f1) VALUES ('node1_committed_during');
++INSERT INTO t1 (f1) VALUES ('node1_committed_during');
++INSERT INTO t1 (f1) VALUES ('node1_committed_during');
+COMMIT;
+START TRANSACTION;
-+INSERT INTO t1 (id,f1) VALUES (16,'node1_to_be_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (17,'node1_to_be_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (18,'node1_to_be_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (19,'node1_to_be_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (20,'node1_to_be_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+connect node_1a_galera_st_kill_slave_ddl, 127.0.0.1, root, , test, $NODE_MYPORT_1;
+SET AUTOCOMMIT=OFF;
+START TRANSACTION;
-+INSERT INTO t1 (id,f1) VALUES (21,'node1_to_be_rollbacked_after');
-+INSERT INTO t1 (id,f1) VALUES (22,'node1_to_be_rollbacked_after');
-+INSERT INTO t1 (id,f1) VALUES (23,'node1_to_be_rollbacked_after');
-+INSERT INTO t1 (id,f1) VALUES (24,'node1_to_be_rollbacked_after');
-+INSERT INTO t1 (id,f1) VALUES (25,'node1_to_be_rollbacked_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+connection node_2;
+Performing --wsrep-recover ...
+connection node_2;
@@ -59,132 +59,56 @@
+Using --wsrep-start-position when starting mysqld ...
+SET AUTOCOMMIT=OFF;
+START TRANSACTION;
-+INSERT INTO t1 (id,f1) VALUES (26,'node2_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (27,'node2_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (28,'node2_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (29,'node2_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (30,'node2_committed_after');
++INSERT INTO t1 (f1) VALUES ('node2_committed_after');
++INSERT INTO t1 (f1) VALUES ('node2_committed_after');
++INSERT INTO t1 (f1) VALUES ('node2_committed_after');
++INSERT INTO t1 (f1) VALUES ('node2_committed_after');
++INSERT INTO t1 (f1) VALUES ('node2_committed_after');
+COMMIT;
+connection node_1;
-+INSERT INTO t1 (id,f1) VALUES (31,'node1_to_be_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (32,'node1_to_be_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (33,'node1_to_be_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (34,'node1_to_be_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (35,'node1_to_be_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
+COMMIT;
+SET AUTOCOMMIT=OFF;
+START TRANSACTION;
-+INSERT INTO t1 (id,f1) VALUES (36,'node1_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (37,'node1_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (38,'node1_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (39,'node1_committed_after');
-+INSERT INTO t1 (id,f1) VALUES (40,'node1_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_committed_after');
++INSERT INTO t1 (f1) VALUES ('node1_committed_after');
+COMMIT;
+connection node_1a_galera_st_kill_slave_ddl;
-+INSERT INTO t1 (id,f1) VALUES (41,'node1_to_be_rollbacked_after');
-+INSERT INTO t1 (id,f1) VALUES (42,'node1_to_be_rollbacked_after');
-+INSERT INTO t1 (id,f1) VALUES (43,'node1_to_be_rollbacked_after');
-+INSERT INTO t1 (id,f1) VALUES (44,'node1_to_be_rollbacked_after');
-+INSERT INTO t1 (id,f1) VALUES (45,'node1_to_be_rollbacked_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
++INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
+ROLLBACK;
-+SET AUTOCOMMIT=ON;
-+SET SESSION wsrep_sync_wait=15;
-+SELECT COUNT(*) AS EXPECT_3 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
-+EXPECT_3
-+3
-+SELECT COUNT(*) AS EXPECT_35 FROM t1;
-+EXPECT_35
-+35
-+SELECT * FROM t1;
-+id f1 f2
-+1 node1_committed_before NULL
-+2 node1_committed_before NULL
-+3 node1_committed_before NULL
-+4 node1_committed_before NULL
-+5 node1_committed_before NULL
-+6 node2_committed_before NULL
-+7 node2_committed_before NULL
-+8 node2_committed_before NULL
-+9 node2_committed_before NULL
-+10 node2_committed_before NULL
-+11 node1_committed_during NULL
-+12 node1_committed_during NULL
-+13 node1_committed_during NULL
-+14 node1_committed_during NULL
-+15 node1_committed_during NULL
-+16 node1_to_be_committed_after NULL
-+17 node1_to_be_committed_after NULL
-+18 node1_to_be_committed_after NULL
-+19 node1_to_be_committed_after NULL
-+20 node1_to_be_committed_after NULL
-+26 node2_committed_after NULL
-+27 node2_committed_after NULL
-+28 node2_committed_after NULL
-+29 node2_committed_after NULL
-+30 node2_committed_after NULL
-+31 node1_to_be_committed_after NULL
-+32 node1_to_be_committed_after NULL
-+33 node1_to_be_committed_after NULL
-+34 node1_to_be_committed_after NULL
-+35 node1_to_be_committed_after NULL
-+36 node1_committed_after NULL
-+37 node1_committed_after NULL
-+38 node1_committed_after NULL
-+39 node1_committed_after NULL
-+40 node1_committed_after NULL
++SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
++COUNT(*) = 2
++1
++SELECT COUNT(*) = 35 FROM t1;
++COUNT(*) = 35
++1
+SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
+COUNT(*) = 0
+1
+COMMIT;
-+connection node_1;
+SET AUTOCOMMIT=ON;
-+SET SESSION wsrep_sync_wait=15;
-+SELECT COUNT(*) AS EXPECT_3 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
-+EXPECT_3
-+3
-+SELECT COUNT(*) AS EXPECT_35 FROM t1;
-+EXPECT_35
-+35
-+SELECT * FROM t1;
-+id f1 f2
-+1 node1_committed_before NULL
-+2 node1_committed_before NULL
-+3 node1_committed_before NULL
-+4 node1_committed_before NULL
-+5 node1_committed_before NULL
-+6 node2_committed_before NULL
-+7 node2_committed_before NULL
-+8 node2_committed_before NULL
-+9 node2_committed_before NULL
-+10 node2_committed_before NULL
-+11 node1_committed_during NULL
-+12 node1_committed_during NULL
-+13 node1_committed_during NULL
-+14 node1_committed_during NULL
-+15 node1_committed_during NULL
-+16 node1_to_be_committed_after NULL
-+17 node1_to_be_committed_after NULL
-+18 node1_to_be_committed_after NULL
-+19 node1_to_be_committed_after NULL
-+20 node1_to_be_committed_after NULL
-+26 node2_committed_after NULL
-+27 node2_committed_after NULL
-+28 node2_committed_after NULL
-+29 node2_committed_after NULL
-+30 node2_committed_after NULL
-+31 node1_to_be_committed_after NULL
-+32 node1_to_be_committed_after NULL
-+33 node1_to_be_committed_after NULL
-+34 node1_to_be_committed_after NULL
-+35 node1_to_be_committed_after NULL
-+36 node1_committed_after NULL
-+37 node1_committed_after NULL
-+38 node1_committed_after NULL
-+39 node1_committed_after NULL
-+40 node1_committed_after NULL
++connection node_1;
++SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
++COUNT(*) = 2
++1
++SELECT COUNT(*) = 35 FROM t1;
++COUNT(*) = 35
++1
+SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
+COUNT(*) = 0
+1
+DROP TABLE t1;
+COMMIT;
++SET AUTOCOMMIT=ON;
+SET GLOBAL debug_dbug = $debug_orig;
diff --git a/mysql-test/suite/galera/r/galera_ist_MDEV-28583.result b/mysql-test/suite/galera/r/galera_ist_MDEV-28583.result
index 5a71b490a80..80a28d349ba 100644
--- a/mysql-test/suite/galera/r/galera_ist_MDEV-28583.result
+++ b/mysql-test/suite/galera/r/galera_ist_MDEV-28583.result
@@ -1,519 +1,287 @@
-connection node_2;
-connection node_1;
connection node_1;
connection node_2;
Performing State Transfer on a server that has been temporarily disconnected
connection node_1;
-CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB;
+CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (1,'node1_committed_before');
-INSERT INTO t1 VALUES (2,'node1_committed_before');
-INSERT INTO t1 VALUES (3,'node1_committed_before');
-INSERT INTO t1 VALUES (4,'node1_committed_before');
-INSERT INTO t1 VALUES (5,'node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
COMMIT;
connection node_2;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (6,'node2_committed_before');
-INSERT INTO t1 VALUES (7,'node2_committed_before');
-INSERT INTO t1 VALUES (8,'node2_committed_before');
-INSERT INTO t1 VALUES (9,'node2_committed_before');
-INSERT INTO t1 VALUES (10,'node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
COMMIT;
Unloading wsrep provider ...
SET GLOBAL wsrep_cluster_address = '';
connection node_1;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (11,'node1_committed_during');
-INSERT INTO t1 VALUES (12,'node1_committed_during');
-INSERT INTO t1 VALUES (13,'node1_committed_during');
-INSERT INTO t1 VALUES (14,'node1_committed_during');
-INSERT INTO t1 VALUES (15,'node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
COMMIT;
START TRANSACTION;
-INSERT INTO t1 VALUES (16,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (17,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (18,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (19,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (20,'node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
connect node_1a_galera_st_disconnect_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (21,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (22,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (23,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (24,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (25,'node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
connection node_2;
Loading wsrep provider ...
-disconnect node_2;
-connect node_2, 127.0.0.1, root, , test, $NODE_MYPORT_2;
-connection node_2;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (26,'node2_committed_after');
-INSERT INTO t1 VALUES (27,'node2_committed_after');
-INSERT INTO t1 VALUES (28,'node2_committed_after');
-INSERT INTO t1 VALUES (29,'node2_committed_after');
-INSERT INTO t1 VALUES (30,'node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
COMMIT;
connection node_1;
-INSERT INTO t1 VALUES (31,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (32,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (33,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (34,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (35,'node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
COMMIT;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (36,'node1_committed_after');
-INSERT INTO t1 VALUES (37,'node1_committed_after');
-INSERT INTO t1 VALUES (38,'node1_committed_after');
-INSERT INTO t1 VALUES (39,'node1_committed_after');
-INSERT INTO t1 VALUES (40,'node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
COMMIT;
connection node_1a_galera_st_disconnect_slave;
-INSERT INTO t1 VALUES (41,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (42,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (43,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (44,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (45,'node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
ROLLBACK;
-SET AUTOCOMMIT=ON;
-SET SESSION wsrep_sync_wait=15;
-SELECT COUNT(*) AS EXPECT_35 FROM t1;
-EXPECT_35
-35
-SELECT * FROM t1;
-id f1
-1 node1_committed_before
-2 node1_committed_before
-3 node1_committed_before
-4 node1_committed_before
-5 node1_committed_before
-6 node2_committed_before
-7 node2_committed_before
-8 node2_committed_before
-9 node2_committed_before
-10 node2_committed_before
-11 node1_committed_during
-12 node1_committed_during
-13 node1_committed_during
-14 node1_committed_during
-15 node1_committed_during
-16 node1_to_be_committed_after
-17 node1_to_be_committed_after
-18 node1_to_be_committed_after
-19 node1_to_be_committed_after
-20 node1_to_be_committed_after
-26 node2_committed_after
-27 node2_committed_after
-28 node2_committed_after
-29 node2_committed_after
-30 node2_committed_after
-31 node1_to_be_committed_after
-32 node1_to_be_committed_after
-33 node1_to_be_committed_after
-34 node1_to_be_committed_after
-35 node1_to_be_committed_after
-36 node1_committed_after
-37 node1_committed_after
-38 node1_committed_after
-39 node1_committed_after
-40 node1_committed_after
+SELECT COUNT(*) = 35 FROM t1;
+COUNT(*) = 35
+1
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COUNT(*) = 0
1
-connection node_1;
+COMMIT;
SET AUTOCOMMIT=ON;
-SET SESSION wsrep_sync_wait=15;
-SELECT COUNT(*) AS EXPECT_35 FROM t1;
-EXPECT_35
-35
-SELECT * FROM t1;
-id f1
-1 node1_committed_before
-2 node1_committed_before
-3 node1_committed_before
-4 node1_committed_before
-5 node1_committed_before
-6 node2_committed_before
-7 node2_committed_before
-8 node2_committed_before
-9 node2_committed_before
-10 node2_committed_before
-11 node1_committed_during
-12 node1_committed_during
-13 node1_committed_during
-14 node1_committed_during
-15 node1_committed_during
-16 node1_to_be_committed_after
-17 node1_to_be_committed_after
-18 node1_to_be_committed_after
-19 node1_to_be_committed_after
-20 node1_to_be_committed_after
-26 node2_committed_after
-27 node2_committed_after
-28 node2_committed_after
-29 node2_committed_after
-30 node2_committed_after
-31 node1_to_be_committed_after
-32 node1_to_be_committed_after
-33 node1_to_be_committed_after
-34 node1_to_be_committed_after
-35 node1_to_be_committed_after
-36 node1_committed_after
-37 node1_committed_after
-38 node1_committed_after
-39 node1_committed_after
-40 node1_committed_after
+connection node_1;
+SELECT COUNT(*) = 35 FROM t1;
+COUNT(*) = 35
+1
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COUNT(*) = 0
1
DROP TABLE t1;
COMMIT;
+SET AUTOCOMMIT=ON;
Performing State Transfer on a server that has been shut down cleanly and restarted
connection node_1;
-CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB;
+CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (1,'node1_committed_before');
-INSERT INTO t1 VALUES (2,'node1_committed_before');
-INSERT INTO t1 VALUES (3,'node1_committed_before');
-INSERT INTO t1 VALUES (4,'node1_committed_before');
-INSERT INTO t1 VALUES (5,'node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
COMMIT;
connection node_2;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (6,'node2_committed_before');
-INSERT INTO t1 VALUES (7,'node2_committed_before');
-INSERT INTO t1 VALUES (8,'node2_committed_before');
-INSERT INTO t1 VALUES (9,'node2_committed_before');
-INSERT INTO t1 VALUES (10,'node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
COMMIT;
Shutting down server ...
connection node_1;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (11,'node1_committed_during');
-INSERT INTO t1 VALUES (12,'node1_committed_during');
-INSERT INTO t1 VALUES (13,'node1_committed_during');
-INSERT INTO t1 VALUES (14,'node1_committed_during');
-INSERT INTO t1 VALUES (15,'node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
COMMIT;
START TRANSACTION;
-INSERT INTO t1 VALUES (16,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (17,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (18,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (19,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (20,'node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
connect node_1a_galera_st_shutdown_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (21,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (22,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (23,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (24,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (25,'node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
connection node_2;
Starting server ...
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (26,'node2_committed_after');
-INSERT INTO t1 VALUES (27,'node2_committed_after');
-INSERT INTO t1 VALUES (28,'node2_committed_after');
-INSERT INTO t1 VALUES (29,'node2_committed_after');
-INSERT INTO t1 VALUES (30,'node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
COMMIT;
connection node_1;
-INSERT INTO t1 VALUES (31,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (32,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (33,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (34,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (35,'node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
COMMIT;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (36,'node1_committed_after');
-INSERT INTO t1 VALUES (37,'node1_committed_after');
-INSERT INTO t1 VALUES (38,'node1_committed_after');
-INSERT INTO t1 VALUES (39,'node1_committed_after');
-INSERT INTO t1 VALUES (40,'node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
COMMIT;
connection node_1a_galera_st_shutdown_slave;
-INSERT INTO t1 VALUES (41,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (42,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (43,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (44,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (45,'node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
ROLLBACK;
-SET AUTOCOMMIT=ON;
-SET SESSION wsrep_sync_wait=15;
-SELECT COUNT(*) AS EXPECT_15 FROM t1;
-EXPECT_15
-35
-SELECT * from t1;
-id f1
-1 node1_committed_before
-2 node1_committed_before
-3 node1_committed_before
-4 node1_committed_before
-5 node1_committed_before
-6 node2_committed_before
-7 node2_committed_before
-8 node2_committed_before
-9 node2_committed_before
-10 node2_committed_before
-11 node1_committed_during
-12 node1_committed_during
-13 node1_committed_during
-14 node1_committed_during
-15 node1_committed_during
-16 node1_to_be_committed_after
-17 node1_to_be_committed_after
-18 node1_to_be_committed_after
-19 node1_to_be_committed_after
-20 node1_to_be_committed_after
-26 node2_committed_after
-27 node2_committed_after
-28 node2_committed_after
-29 node2_committed_after
-30 node2_committed_after
-31 node1_to_be_committed_after
-32 node1_to_be_committed_after
-33 node1_to_be_committed_after
-34 node1_to_be_committed_after
-35 node1_to_be_committed_after
-36 node1_committed_after
-37 node1_committed_after
-38 node1_committed_after
-39 node1_committed_after
-40 node1_committed_after
+SELECT COUNT(*) = 35 FROM t1;
+COUNT(*) = 35
+1
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COUNT(*) = 0
1
COMMIT;
-connection node_1;
SET AUTOCOMMIT=ON;
-SET SESSION wsrep_sync_wait=15;
-SELECT COUNT(*) AS EXPECT_15 FROM t1;
-EXPECT_15
-35
-SELECT * from t1;
-id f1
-1 node1_committed_before
-2 node1_committed_before
-3 node1_committed_before
-4 node1_committed_before
-5 node1_committed_before
-6 node2_committed_before
-7 node2_committed_before
-8 node2_committed_before
-9 node2_committed_before
-10 node2_committed_before
-11 node1_committed_during
-12 node1_committed_during
-13 node1_committed_during
-14 node1_committed_during
-15 node1_committed_during
-16 node1_to_be_committed_after
-17 node1_to_be_committed_after
-18 node1_to_be_committed_after
-19 node1_to_be_committed_after
-20 node1_to_be_committed_after
-26 node2_committed_after
-27 node2_committed_after
-28 node2_committed_after
-29 node2_committed_after
-30 node2_committed_after
-31 node1_to_be_committed_after
-32 node1_to_be_committed_after
-33 node1_to_be_committed_after
-34 node1_to_be_committed_after
-35 node1_to_be_committed_after
-36 node1_committed_after
-37 node1_committed_after
-38 node1_committed_after
-39 node1_committed_after
-40 node1_committed_after
+connection node_1;
+SELECT COUNT(*) = 35 FROM t1;
+COUNT(*) = 35
+1
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COUNT(*) = 0
1
DROP TABLE t1;
COMMIT;
+SET AUTOCOMMIT=ON;
Performing State Transfer on a server that has been killed and restarted
connection node_1;
-CREATE TABLE t1 (id int not null primary key,f1 CHAR(255)) ENGINE=InnoDB;
+CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (1,'node1_committed_before');
-INSERT INTO t1 VALUES (2,'node1_committed_before');
-INSERT INTO t1 VALUES (3,'node1_committed_before');
-INSERT INTO t1 VALUES (4,'node1_committed_before');
-INSERT INTO t1 VALUES (5,'node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
+INSERT INTO t1 VALUES ('node1_committed_before');
COMMIT;
connection node_2;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (6,'node2_committed_before');
-INSERT INTO t1 VALUES (7,'node2_committed_before');
-INSERT INTO t1 VALUES (8,'node2_committed_before');
-INSERT INTO t1 VALUES (9,'node2_committed_before');
-INSERT INTO t1 VALUES (10,'node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
+INSERT INTO t1 VALUES ('node2_committed_before');
COMMIT;
Killing server ...
connection node_1;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (11,'node1_committed_during');
-INSERT INTO t1 VALUES (12,'node1_committed_during');
-INSERT INTO t1 VALUES (13,'node1_committed_during');
-INSERT INTO t1 VALUES (14,'node1_committed_during');
-INSERT INTO t1 VALUES (15,'node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
+INSERT INTO t1 VALUES ('node1_committed_during');
COMMIT;
START TRANSACTION;
-INSERT INTO t1 VALUES (16,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (17,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (18,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (19,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (20,'node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
connect node_1a_galera_st_kill_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (21,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (22,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (23,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (24,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (25,'node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
connection node_2;
Performing --wsrep-recover ...
Starting server ...
Using --wsrep-start-position when starting mysqld ...
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (26,'node2_committed_after');
-INSERT INTO t1 VALUES (27,'node2_committed_after');
-INSERT INTO t1 VALUES (28,'node2_committed_after');
-INSERT INTO t1 VALUES (29,'node2_committed_after');
-INSERT INTO t1 VALUES (30,'node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
+INSERT INTO t1 VALUES ('node2_committed_after');
COMMIT;
connection node_1;
-INSERT INTO t1 VALUES (31,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (32,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (33,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (34,'node1_to_be_committed_after');
-INSERT INTO t1 VALUES (35,'node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
+INSERT INTO t1 VALUES ('node1_to_be_committed_after');
COMMIT;
SET AUTOCOMMIT=OFF;
START TRANSACTION;
-INSERT INTO t1 VALUES (36,'node1_committed_after');
-INSERT INTO t1 VALUES (37,'node1_committed_after');
-INSERT INTO t1 VALUES (38,'node1_committed_after');
-INSERT INTO t1 VALUES (39,'node1_committed_after');
-INSERT INTO t1 VALUES (40,'node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
+INSERT INTO t1 VALUES ('node1_committed_after');
COMMIT;
connection node_1a_galera_st_kill_slave;
-INSERT INTO t1 VALUES (41,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (42,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (43,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (45,'node1_to_be_rollbacked_after');
-INSERT INTO t1 VALUES (46,'node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
+INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
ROLLBACK;
-SET AUTOCOMMIT=ON;
-SET SESSION wsrep_sync_wait=15;
-SELECT COUNT(*) AS EXPECT_35 FROM t1;
-EXPECT_35
-35
-SELECT * FROM t1;
-id f1
-1 node1_committed_before
-2 node1_committed_before
-3 node1_committed_before
-4 node1_committed_before
-5 node1_committed_before
-6 node2_committed_before
-7 node2_committed_before
-8 node2_committed_before
-9 node2_committed_before
-10 node2_committed_before
-11 node1_committed_during
-12 node1_committed_during
-13 node1_committed_during
-14 node1_committed_during
-15 node1_committed_during
-16 node1_to_be_committed_after
-17 node1_to_be_committed_after
-18 node1_to_be_committed_after
-19 node1_to_be_committed_after
-20 node1_to_be_committed_after
-26 node2_committed_after
-27 node2_committed_after
-28 node2_committed_after
-29 node2_committed_after
-30 node2_committed_after
-31 node1_to_be_committed_after
-32 node1_to_be_committed_after
-33 node1_to_be_committed_after
-34 node1_to_be_committed_after
-35 node1_to_be_committed_after
-36 node1_committed_after
-37 node1_committed_after
-38 node1_committed_after
-39 node1_committed_after
-40 node1_committed_after
+SELECT COUNT(*) = 35 FROM t1;
+COUNT(*) = 35
+1
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COUNT(*) = 0
1
COMMIT;
-connection node_1;
SET AUTOCOMMIT=ON;
-SET SESSION wsrep_sync_wait=15;
-SELECT COUNT(*) AS EXPECT_35 FROM t1;
-EXPECT_35
-35
-SELECT * FROM t1;
-id f1
-1 node1_committed_before
-2 node1_committed_before
-3 node1_committed_before
-4 node1_committed_before
-5 node1_committed_before
-6 node2_committed_before
-7 node2_committed_before
-8 node2_committed_before
-9 node2_committed_before
-10 node2_committed_before
-11 node1_committed_during
-12 node1_committed_during
-13 node1_committed_during
-14 node1_committed_during
-15 node1_committed_during
-16 node1_to_be_committed_after
-17 node1_to_be_committed_after
-18 node1_to_be_committed_after
-19 node1_to_be_committed_after
-20 node1_to_be_committed_after
-26 node2_committed_after
-27 node2_committed_after
-28 node2_committed_after
-29 node2_committed_after
-30 node2_committed_after
-31 node1_to_be_committed_after
-32 node1_to_be_committed_after
-33 node1_to_be_committed_after
-34 node1_to_be_committed_after
-35 node1_to_be_committed_after
-36 node1_committed_after
-37 node1_committed_after
-38 node1_committed_after
-39 node1_committed_after
-40 node1_committed_after
+connection node_1;
+SELECT COUNT(*) = 35 FROM t1;
+COUNT(*) = 35
+1
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
COUNT(*) = 0
1
DROP TABLE t1;
COMMIT;
+SET AUTOCOMMIT=ON;
diff --git a/mysql-test/suite/innodb_fts/r/fulltext.result b/mysql-test/suite/innodb_fts/r/fulltext.result
index abcdebca01d..7775a46e0d8 100644
--- a/mysql-test/suite/innodb_fts/r/fulltext.result
+++ b/mysql-test/suite/innodb_fts/r/fulltext.result
@@ -718,4 +718,18 @@ t1 CREATE TABLE `t1` (
FULLTEXT KEY `a_2` (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
DROP TABLE t1;
+#
+# MDEV-25257 SEGV in fts_get_next_doc_id upon some INSERT
+#
+SET @save = @@global.innodb_file_per_table;
+SET @@global.innodb_file_per_table = 0;
+CREATE TABLE t1 (
+col_int INTEGER, col_text TEXT,
+col_int_g INTEGER GENERATED ALWAYS AS (col_int)
+) ENGINE = InnoDB ROW_FORMAT = Redundant ;
+ALTER TABLE t1 ADD FULLTEXT KEY `ftidx` ( col_text ) ;
+ALTER TABLE t1 DROP KEY `ftidx` ;
+INSERT INTO t1 (col_int, col_text) VALUES ( 1255, NULL);
+DROP TABLE t1;
+SET @@global.innodb_file_per_table = @save;
# End of 10.3 tests
diff --git a/mysql-test/suite/innodb_fts/t/fulltext.test b/mysql-test/suite/innodb_fts/t/fulltext.test
index f3bcaaec5cc..4878a0bee3f 100644
--- a/mysql-test/suite/innodb_fts/t/fulltext.test
+++ b/mysql-test/suite/innodb_fts/t/fulltext.test
@@ -741,4 +741,20 @@ ALTER TABLE t1 ADD FULLTEXT INDEX (a);
SHOW CREATE TABLE t1;
DROP TABLE t1;
+--echo #
+--echo # MDEV-25257 SEGV in fts_get_next_doc_id upon some INSERT
+--echo #
+SET @save = @@global.innodb_file_per_table;
+SET @@global.innodb_file_per_table = 0;
+
+CREATE TABLE t1 (
+ col_int INTEGER, col_text TEXT,
+ col_int_g INTEGER GENERATED ALWAYS AS (col_int)
+) ENGINE = InnoDB ROW_FORMAT = Redundant ;
+ALTER TABLE t1 ADD FULLTEXT KEY `ftidx` ( col_text ) ;
+ALTER TABLE t1 DROP KEY `ftidx` ;
+INSERT INTO t1 (col_int, col_text) VALUES ( 1255, NULL);
+DROP TABLE t1;
+SET @@global.innodb_file_per_table = @save;
+
--echo # End of 10.3 tests
diff --git a/scripts/wsrep_sst_mariabackup.sh b/scripts/wsrep_sst_mariabackup.sh
index a3fc4b78718..a66a792b5ea 100644
--- a/scripts/wsrep_sst_mariabackup.sh
+++ b/scripts/wsrep_sst_mariabackup.sh
@@ -86,7 +86,6 @@ encrypt_threads=""
encrypt_chunk=""
readonly SECRET_TAG='secret'
-readonly TOTAL_TAG='secret /total'
# Required for backup locks
# For backup locks it is 1 sent by joiner
@@ -419,7 +418,7 @@ get_transfer()
get_footprint()
{
- pushd "$WSREP_SST_OPT_DATA" 1>/dev/null
+ cd "$DATA_DIR"
payload=$(find . -regex '.*\.ibd$\|.*\.MYI$\|.*\.MYD$\|.*ibdata1$' \
-type f -print0 | du --files0-from=- --block-size=1 -c -s | \
awk 'END { print $1 }')
@@ -428,7 +427,7 @@ get_footprint()
# When compression/compaction used, the progress is only an approximate.
payload=$(( payload*1/2 ))
fi
- popd 1>/dev/null
+ cd "$OLD_PWD"
pcmd="$pcmd -s $payload"
adjust_progress
}
diff --git a/sql/partition_info.cc b/sql/partition_info.cc
index fb55091f05e..cf2536f3969 100644
--- a/sql/partition_info.cc
+++ b/sql/partition_info.cc
@@ -900,10 +900,12 @@ void partition_info::vers_check_limit(THD *thd)
bitmap_set_all(), but this is not optimal since there can be quite a number
of partitions.
*/
+#ifndef DBUG_OFF
const uint32 sub_factor= num_subparts ? num_subparts : 1;
uint32 part_id= vers_info->hist_part->id * sub_factor;
const uint32 part_id_end= part_id + sub_factor;
DBUG_ASSERT(part_id_end <= num_parts * sub_factor);
+#endif
ha_partition *hp= (ha_partition*)(table->file);
ha_rows hist_rows= hp->part_records(vers_info->hist_part);
diff --git a/sql/sql_partition_admin.cc b/sql/sql_partition_admin.cc
index fa91611e644..90019d071a1 100644
--- a/sql/sql_partition_admin.cc
+++ b/sql/sql_partition_admin.cc
@@ -539,6 +539,14 @@ bool Sql_cmd_alter_table_exchange_partition::
part_table= table_list->table;
swap_table= swap_table_list->table;
+ /* Don't allow to exchange with a VIEW */
+ if (unlikely(swap_table_list->view))
+ {
+ my_error(ER_WRONG_OBJECT, MYF(0), table_list->db.str,
+ swap_table_list->table_name.str, "BASE TABLE");
+ DBUG_RETURN(TRUE);
+ }
+
if (unlikely(check_exchange_partition(swap_table, part_table)))
DBUG_RETURN(TRUE);
diff --git a/sql/table.h b/sql/table.h
index ba8a03a3b50..214b90a4171 100644
--- a/sql/table.h
+++ b/sql/table.h
@@ -3214,9 +3214,6 @@ enum open_frm_error open_table_from_share(THD *thd, TABLE_SHARE *share,
uint ha_open_flags, TABLE *outparam,
bool is_create_table,
List<String> *partitions_to_open= NULL);
-bool fix_session_vcol_expr(THD *thd, Virtual_column_info *vcol);
-bool fix_session_vcol_expr_for_read(THD *thd, Field *field,
- Virtual_column_info *vcol);
bool parse_vcol_defs(THD *thd, MEM_ROOT *mem_root, TABLE *table,
bool *error_reported, vcol_init_mode expr);
TABLE_SHARE *alloc_table_share(const char *db, const char *table_name,
diff --git a/storage/connect/tabmysql.cpp b/storage/connect/tabmysql.cpp
index b677f862cc8..c65e2924ada 100644
--- a/storage/connect/tabmysql.cpp
+++ b/storage/connect/tabmysql.cpp
@@ -946,15 +946,6 @@ bool TDBMYSQL::OpenDB(PGLOBAL g)
} // endif MakeInsert
- if (m_Rc != RC_FX) {
- char cmd[64];
- int w;
-
- sprintf(cmd, "ALTER TABLE `%s` DISABLE KEYS", TableName);
-
- m_Rc = Myc.ExecSQL(g, cmd, &w); // may fail for some engines
- } // endif m_Rc
-
} else
// m_Rc = (Mode == MODE_DELETE) ? MakeDelete(g) : MakeUpdate(g);
m_Rc = (MakeCommand(g)) ? RC_FX : RC_OK;
@@ -1216,16 +1207,6 @@ int TDBMYSQL::DeleteDB(PGLOBAL g, int irc)
void TDBMYSQL::CloseDB(PGLOBAL g)
{
if (Myc.Connected()) {
- if (Mode == MODE_INSERT) {
- char cmd[64];
- int w;
- PDBUSER dup = PlgGetUser(g);
-
- dup->Step = "Enabling indexes";
- sprintf(cmd, "ALTER TABLE `%s` ENABLE KEYS", TableName);
- Myc.m_Rows = -1; // To execute the query
- m_Rc = Myc.ExecSQL(g, cmd, &w); // May fail for some engines
- } // endif m_Rc
Myc.Close();
} // endif Myc
diff --git a/storage/innobase/dict/dict0load.cc b/storage/innobase/dict/dict0load.cc
index ab3aaa61970..bfef508c613 100644
--- a/storage/innobase/dict/dict0load.cc
+++ b/storage/innobase/dict/dict0load.cc
@@ -1847,6 +1847,7 @@ dict_load_columns(
the flag is set before the table is created. */
if (table->fts == NULL) {
table->fts = fts_create(table);
+ table->fts->cache = fts_cache_create(table);
fts_optimize_add_table(table);
}
diff --git a/storage/innobase/os/os0file.cc b/storage/innobase/os/os0file.cc
index 4ba31760109..fa4da9738a1 100644
--- a/storage/innobase/os/os0file.cc
+++ b/storage/innobase/os/os0file.cc
@@ -2366,6 +2366,7 @@ os_file_get_last_error_low(
case EXDEV:
case ENOTDIR:
case EISDIR:
+ case EPERM:
return(OS_FILE_PATH_ERROR);
case EAGAIN:
if (srv_use_native_aio) {
diff --git a/storage/maria/ma_loghandler.c b/storage/maria/ma_loghandler.c
index 8455cbb80de..e2d8114c712 100644
--- a/storage/maria/ma_loghandler.c
+++ b/storage/maria/ma_loghandler.c
@@ -7995,22 +7995,14 @@ void translog_flush_buffers(TRANSLOG_ADDRESS *lsn,
}
else
{
- if (log_descriptor.bc.buffer->last_lsn == LSN_IMPOSSIBLE)
+ if (log_descriptor.bc.buffer->last_lsn == LSN_IMPOSSIBLE &&
+ log_descriptor.bc.buffer->prev_last_lsn == LSN_IMPOSSIBLE)
{
- /*
- In this case both last_lsn & prev_last_lsn are LSN_IMPOSSIBLE
- otherwise it will go in the first IF because LSN_IMPOSSIBLE less
- then any real LSN and cmp_translog_addr(*lsn,
- log_descriptor.bc.buffer->prev_last_lsn) will be TRUE
- */
- DBUG_ASSERT(log_descriptor.bc.buffer->prev_last_lsn ==
- LSN_IMPOSSIBLE);
DBUG_PRINT("info", ("There is no LSNs yet generated => do nothing"));
translog_unlock();
DBUG_VOID_RETURN;
}
- DBUG_ASSERT(log_descriptor.bc.buffer->prev_last_lsn != LSN_IMPOSSIBLE);
/* fix lsn if it was horizon */
*lsn= log_descriptor.bc.buffer->prev_last_lsn;
DBUG_PRINT("info", ("LSN to flush fixed to prev last lsn: " LSN_FMT,