mirror of
https://github.com/MariaDB/server.git
synced 2025-01-25 08:14:18 +01:00
Merge 10.6 into 10.7
This commit is contained in:
commit
588efca237
183 changed files with 4359 additions and 1077 deletions
client
cmake
config.h.cmakeconfigure.cmakemysql-test
include
main
alter_table.testcompress.testcreate_or_replace.resultcreate_or_replace.testctype_big5.testctype_gb2312.testctype_gbk.testctype_sjis.testctype_utf8.testfunc_json_notembedded.testgis-precise.testgrant3.resultgrant3.testgroup_min_max.testindex_merge_innodb.testindex_merge_myisam.testinformation_schema_all_engines.testinnodb_ext_key.testjoin_cache.testlog_slow.testmyisam_debug_keys.resultmyisam_debug_keys.testmysql_client_test_comp.testmysql_upgrade.testmysqldump.testorder_by.testpartition_alter.resultpartition_alter.testplugin_auth.testpool_of_threads.testquery_cache.testquery_cache_debug.testrange.testrange_innodb.testrange_vs_index_merge.testrowid_filter_innodb.testrowid_filter_innodb_debug.testselect.testselectivity.testsp.testssl-big.testssl.teststat_tables_disabled.teststat_tables_innodb.teststat_tables_par_innodb.teststatistics.testsubselect_innodb.testsubselect_sj.testsubselect_sj_jcl6.testtrigger.testupdate_use_source.testwin.testwin_big-mdev-11697.test
std_data
suite
federated
galera
disabled.def
r
MDEV-26597.resultMDEV-27123.resultMDEV-29142.resultgalera_repl_max_ws_size.resultgalera_var_max_ws_size.resultgalera_var_notify_ssl_ipv6.result
t
galera_3nodes
gcol
innodb
r
t
alter_large_dml.testalter_missing_tablespace.testautoinc_persist.testibuf_not_empty.testinnodb-64k.testinnodb-get-fk.testinnodb-index-online.testinnodb-stats-initialize-failure.testinnodb-stats-sample.testinnodb-trim.testinnodb_bug30423.testinnodb_bug53290.testlog_corruption.testlog_file.testlog_file_name.test
|
@ -1725,7 +1725,7 @@ that may lead to an endless loop.",
|
|||
&opt_binlog_rows_event_max_encoded_size, 0,
|
||||
GET_ULONG, REQUIRED_ARG, UINT_MAX/4, 256, ULONG_MAX, 0, 256, 0},
|
||||
#endif
|
||||
{"verify-binlog-checksum", 'c', "Verify checksum binlog events.",
|
||||
{"verify-binlog-checksum", 'c', "Verify binlog event checksums.",
|
||||
(uchar**) &opt_verify_binlog_checksum, (uchar**) &opt_verify_binlog_checksum,
|
||||
0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"rewrite-db", OPT_REWRITE_DB,
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
Copyright (c) 2000, 2015, Oracle and/or its affiliates.
|
||||
Copyright (c) 2011, 2017, MariaDB
|
||||
Copyright (c) 2011, 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
|
||||
|
@ -382,11 +382,7 @@ static int write_to_table(char *filename, MYSQL *mysql)
|
|||
{
|
||||
if (verbose)
|
||||
fprintf(stdout, "Deleting the old data from table %s\n", tablename);
|
||||
#ifdef HAVE_SNPRINTF
|
||||
snprintf(sql_statement, FN_REFLEN*16+256, "DELETE FROM %s", tablename);
|
||||
#else
|
||||
sprintf(sql_statement, "DELETE FROM %s", tablename);
|
||||
#endif
|
||||
if (mysql_query(mysql, sql_statement))
|
||||
{
|
||||
db_error_with_table(mysql, tablename);
|
||||
|
|
|
@ -27,6 +27,7 @@ SET(MY_WARNING_FLAGS
|
|||
-Wenum-conversion
|
||||
-Wextra
|
||||
-Wformat-security
|
||||
-Wmissing-braces
|
||||
-Wno-format-truncation
|
||||
-Wno-init-self
|
||||
-Wno-nonnull-compare
|
||||
|
|
|
@ -222,7 +222,6 @@
|
|||
#cmakedefine HAVE_SIGWAIT 1
|
||||
#cmakedefine HAVE_SIGWAITINFO 1
|
||||
#cmakedefine HAVE_SLEEP 1
|
||||
#cmakedefine HAVE_SNPRINTF 1
|
||||
#cmakedefine HAVE_STPCPY 1
|
||||
#cmakedefine HAVE_STRERROR 1
|
||||
#cmakedefine HAVE_STRCOLL 1
|
||||
|
@ -257,9 +256,6 @@
|
|||
#cmakedefine STRUCT_TIMESPEC_HAS_TV_SEC 1
|
||||
#cmakedefine STRUCT_TIMESPEC_HAS_TV_NSEC 1
|
||||
|
||||
#define USE_MB 1
|
||||
#define USE_MB_IDENT 1
|
||||
|
||||
/* this means that valgrind headers and macros are available */
|
||||
#cmakedefine HAVE_VALGRIND_MEMCHECK_H 1
|
||||
|
||||
|
@ -455,8 +451,8 @@
|
|||
#cmakedefine MYSQL_DEFAULT_CHARSET_NAME "@MYSQL_DEFAULT_CHARSET_NAME@"
|
||||
#cmakedefine MYSQL_DEFAULT_COLLATION_NAME "@MYSQL_DEFAULT_COLLATION_NAME@"
|
||||
|
||||
#cmakedefine USE_MB 1
|
||||
#cmakedefine USE_MB_IDENT 1
|
||||
#cmakedefine USE_MB
|
||||
#cmakedefine USE_MB_IDENT
|
||||
|
||||
/* This should mean case insensitive file system */
|
||||
#cmakedefine FN_NO_CASE_SENSE 1
|
||||
|
|
|
@ -407,7 +407,6 @@ CHECK_FUNCTION_EXISTS (sigwait HAVE_SIGWAIT)
|
|||
CHECK_FUNCTION_EXISTS (sigwaitinfo HAVE_SIGWAITINFO)
|
||||
CHECK_FUNCTION_EXISTS (sigset HAVE_SIGSET)
|
||||
CHECK_FUNCTION_EXISTS (sleep HAVE_SLEEP)
|
||||
CHECK_FUNCTION_EXISTS (snprintf HAVE_SNPRINTF)
|
||||
CHECK_FUNCTION_EXISTS (stpcpy HAVE_STPCPY)
|
||||
CHECK_FUNCTION_EXISTS (strcoll HAVE_STRCOLL)
|
||||
CHECK_FUNCTION_EXISTS (strerror HAVE_STRERROR)
|
||||
|
|
|
@ -22,4 +22,3 @@ eval SET PASSWORD FOR testuser1@'$IPv6' = PASSWORD ('9876');
|
|||
--replace_result ::1 localhost
|
||||
SELECT USER();
|
||||
eval DROP USER testuser1@'$IPv6';
|
||||
|
||||
|
|
|
@ -2,3 +2,5 @@
|
|||
# We can use this to schedule such test early (to not be left with
|
||||
# only one or two long tests running, and rests of works idle), or to
|
||||
# run a quick test skipping long-running test cases.
|
||||
|
||||
--source include/no_valgrind_without_big.inc
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
--source include/no_valgrind_without_big.inc
|
||||
|
||||
# ==== Purpose ====
|
||||
#
|
||||
# Configure two servers to be replication master and slave.
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
--source include/no_valgrind_without_big.inc
|
||||
--source include/have_innodb.inc
|
||||
#
|
||||
# Test of alter table
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
# Turn on compression between the client and server
|
||||
# and run a number of tests
|
||||
|
||||
# Too slow for valgrind
|
||||
--source include/no_valgrind_without_big.inc
|
||||
# Can't test with embedded server
|
||||
-- source include/not_embedded.inc
|
||||
-- source include/have_compress.inc
|
||||
|
|
|
@ -567,5 +567,14 @@ SELECT * FROM t3;
|
|||
ERROR HY000: Table 't3' was not locked with LOCK TABLES
|
||||
UNLOCK TABLES;
|
||||
DROP TABLE t3;
|
||||
#
|
||||
# MDEV-29697 Assertion failure in Diagnostics_area::set_ok_status
|
||||
# upon CREATE OR REPLACE causing ER_UPDATE_TABLE_USED
|
||||
#
|
||||
CREATE TABLE t (a INT) ENGINE=MyISAM;
|
||||
CREATE TABLE tm (a INT) ENGINE=MERGE UNION(t);
|
||||
CREATE OR REPLACE TABLE t LIKE tm;
|
||||
ERROR HY000: Table 'tm' is specified twice, both as a target for 'CREATE' and as a separate source for data
|
||||
DROP TABLE IF EXISTS tm, t;
|
||||
# End of 10.4 tests
|
||||
SET GLOBAL innodb_stats_persistent=@save_persistent;
|
||||
|
|
|
@ -508,6 +508,18 @@ SELECT * FROM t3;
|
|||
UNLOCK TABLES;
|
||||
DROP TABLE t3;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-29697 Assertion failure in Diagnostics_area::set_ok_status
|
||||
--echo # upon CREATE OR REPLACE causing ER_UPDATE_TABLE_USED
|
||||
--echo #
|
||||
CREATE TABLE t (a INT) ENGINE=MyISAM;
|
||||
CREATE TABLE tm (a INT) ENGINE=MERGE UNION(t);
|
||||
--error ER_UPDATE_TABLE_USED
|
||||
CREATE OR REPLACE TABLE t LIKE tm;
|
||||
|
||||
# Cleanup
|
||||
DROP TABLE IF EXISTS tm, t;
|
||||
|
||||
--echo # End of 10.4 tests
|
||||
|
||||
SET GLOBAL innodb_stats_persistent=@save_persistent;
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
-- source include/no_valgrind_without_big.inc
|
||||
-- source include/have_big5.inc
|
||||
|
||||
#
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
-- source include/no_valgrind_without_big.inc
|
||||
-- source include/have_gb2312.inc
|
||||
|
||||
#
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
--source include/no_valgrind_without_big.inc
|
||||
-- source include/have_gbk.inc
|
||||
|
||||
#
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
-- source include/no_valgrind_without_big.inc
|
||||
-- source include/have_sjis.inc
|
||||
|
||||
#
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
--source include/no_valgrind_without_big.inc
|
||||
#
|
||||
# Tests with the utf8 character set
|
||||
#
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
source include/have_profiling.inc;
|
||||
source include/not_embedded.inc;
|
||||
source include/no_valgrind_without_big.inc;
|
||||
|
||||
set global max_allowed_packet=1073741824;
|
||||
connect u,localhost,root;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
-- source include/have_geometry.inc
|
||||
|
||||
--source include/no_valgrind_without_big.inc
|
||||
--source include/have_geometry.inc
|
||||
|
||||
#
|
||||
# Spatial objects
|
||||
|
|
|
@ -195,4 +195,29 @@ connection default;
|
|||
DROP USER 'user2'@'%';
|
||||
DROP DATABASE temp;
|
||||
set global sql_mode=default;
|
||||
End of 5.0 tests
|
||||
#
|
||||
# End of 5.0 tests
|
||||
#
|
||||
create database db1;
|
||||
create user foo@localhost;
|
||||
grant create on db1.* to foo@localhost;
|
||||
connect foo,localhost,foo;
|
||||
create temporary table t as values (1),(2),(3);
|
||||
use db1;
|
||||
create table t1 as select * from test.t;
|
||||
ERROR 42000: INSERT command denied to user 'foo'@'localhost' for table `db1`.`t1`
|
||||
create table t1 as values (1),(2),(3);
|
||||
ERROR 42000: INSERT command denied to user 'foo'@'localhost' for table `db1`.`t1`
|
||||
create table t1 (a int);
|
||||
disconnect foo;
|
||||
connection default;
|
||||
revoke create on db1.* from foo@localhost;
|
||||
grant insert on db1.* to foo@localhost;
|
||||
connect foo,localhost,foo;
|
||||
use db1;
|
||||
create table t2 as values (1),(2),(3);
|
||||
ERROR 42000: CREATE command denied to user 'foo'@'localhost' for table `db1`.`t2`
|
||||
disconnect foo;
|
||||
connection default;
|
||||
drop user foo@localhost;
|
||||
drop database db1;
|
||||
|
|
|
@ -207,7 +207,35 @@ DROP USER 'user2'@'%';
|
|||
DROP DATABASE temp;
|
||||
|
||||
set global sql_mode=default;
|
||||
--echo End of 5.0 tests
|
||||
--echo #
|
||||
--echo # End of 5.0 tests
|
||||
--echo #
|
||||
|
||||
create database db1;
|
||||
create user foo@localhost;
|
||||
grant create on db1.* to foo@localhost;
|
||||
connect foo,localhost,foo;
|
||||
create temporary table t as values (1),(2),(3);
|
||||
use db1;
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
create table t1 as select * from test.t;
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
create table t1 as values (1),(2),(3);
|
||||
create table t1 (a int);
|
||||
disconnect foo;
|
||||
connection default;
|
||||
|
||||
revoke create on db1.* from foo@localhost;
|
||||
grant insert on db1.* to foo@localhost;
|
||||
connect foo,localhost,foo;
|
||||
use db1;
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
create table t2 as values (1),(2),(3);
|
||||
disconnect foo;
|
||||
|
||||
connection default;
|
||||
drop user foo@localhost;
|
||||
drop database db1;
|
||||
|
||||
# Wait till we reached the initial number of concurrent sessions
|
||||
--source include/wait_until_count_sessions.inc
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
# The queries in this file test query execution via QUICK_GROUP_MIN_MAX_SELECT.
|
||||
#
|
||||
|
||||
--source include/no_valgrind_without_big.inc
|
||||
--source include/default_optimizer_switch.inc
|
||||
--source include/have_sequence.inc
|
||||
--source include/have_innodb.inc
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#
|
||||
|
||||
# Slow test, don't run during staging part
|
||||
--source include/long_test.inc
|
||||
--source include/not_staging.inc
|
||||
--source include/have_innodb.inc
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
# wrapper t/index_merge_innodb.test sources now several
|
||||
# include/index_merge*.inc files
|
||||
#
|
||||
--source include/no_valgrind_without_big.inc
|
||||
|
||||
SET DEFAULT_STORAGE_ENGINE = MyISAM;
|
||||
# MyISAM supports Merge tables
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
# information_schema_db.test whose results depends on which engines are
|
||||
# available (since these engines inject tables into INFORMATION_SCHEMA).
|
||||
|
||||
--source include/no_valgrind_without_big.inc
|
||||
--source include/not_embedded.inc
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_perfschema.inc
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
--source include/innodb_prefix_index_cluster_optimization.inc
|
||||
--source include/no_valgrind_without_big.inc
|
||||
|
||||
SET SESSION DEFAULT_STORAGE_ENGINE='InnoDB';
|
||||
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
--source include/no_valgrind_without_big.inc
|
||||
--source include/default_optimizer_switch.inc
|
||||
--source include/default_charset.inc
|
||||
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11;
|
||||
DROP DATABASE IF EXISTS world;
|
||||
--enable_warnings
|
||||
--source include/default_optimizer_switch.inc
|
||||
--source include/default_charset.inc
|
||||
|
||||
set @org_optimizer_switch=@@optimizer_switch;
|
||||
set @save_join_cache_level=@@join_cache_level;
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
--source include/no_valgrind_without_big.inc
|
||||
|
||||
#
|
||||
# Testing of slow log query options
|
||||
#
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -10,6 +10,7 @@ CREATE TABLE types (
|
|||
type TEXT NOT NULL,
|
||||
prefix_length INT NOT NULL
|
||||
);
|
||||
--disable_ps_protocol
|
||||
INSERT INTO types (type, prefix_length) VALUES
|
||||
('INT', 0),
|
||||
('BIGINT', 0),
|
||||
|
@ -29,6 +30,7 @@ INSERT INTO types (type, prefix_length) VALUES
|
|||
('TEXT', 12),
|
||||
('TEXT', 16),
|
||||
('TEXT', 100);
|
||||
--enable_ps_protocol
|
||||
DELIMITER $$;
|
||||
BEGIN NOT ATOMIC
|
||||
DECLARE create2_template TEXT
|
||||
|
@ -53,6 +55,8 @@ BEGIN NOT ATOMIC
|
|||
SELECT tabledef AS ``;
|
||||
EXECUTE IMMEDIATE tabledef;
|
||||
SHOW WARNINGS;
|
||||
SELECT * FROM t1;
|
||||
SHOW WARNINGS;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
END;
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
# No need to run this with embedded server
|
||||
--source include/not_embedded.inc
|
||||
--source include/check_ipv6.inc
|
||||
--source include/no_valgrind_without_big.inc
|
||||
|
||||
# need to have the dynamic loading turned on for the client plugin tests
|
||||
--source include/have_plugin_auth.inc
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
-- source include/have_working_dns.inc
|
||||
-- source include/have_innodb.inc
|
||||
-- source include/have_partition.inc
|
||||
-- source include/no_valgrind_without_big.inc
|
||||
|
||||
set sql_mode="";
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
--source include/no_valgrind_without_big.inc
|
||||
--source include/have_utf8mb4.inc
|
||||
|
||||
call mtr.add_suppression("@003f.frm' \\(errno: 22\\)");
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
--source include/no_valgrind_without_big.inc
|
||||
#
|
||||
# Testing ORDER BY
|
||||
#
|
||||
|
|
|
@ -200,7 +200,96 @@ pk
|
|||
2
|
||||
delete from t1;
|
||||
drop table t1;
|
||||
#
|
||||
# MDEV-28576 RENAME COLUMN with NOCOPY algorithm leads to corrupt partitioned table
|
||||
#
|
||||
create table t (a int, b int) partition by list (b) (partition p1 values in (1, 2));
|
||||
insert into t values (0, 1), (2, 2);
|
||||
alter table t change b f int, change a b int, algorithm=nocopy;
|
||||
check table t;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t check status OK
|
||||
delete from t order by b limit 1;
|
||||
drop table t;
|
||||
# End of 10.3 tests
|
||||
#
|
||||
# MDEV-28576 RENAME COLUMN with NOCOPY algorithm leads to corrupt partitioned table
|
||||
#
|
||||
create table t (a int)
|
||||
partition by list (a)
|
||||
subpartition by hash(a) subpartitions 2
|
||||
(partition p0 values in (1));
|
||||
alter table t rename column a to b, algorithm=nocopy;
|
||||
show create table t;
|
||||
Table Create Table
|
||||
t CREATE TABLE `t` (
|
||||
`b` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
||||
PARTITION BY LIST (`b`)
|
||||
SUBPARTITION BY HASH (`b`)
|
||||
SUBPARTITIONS 2
|
||||
(PARTITION `p0` VALUES IN (1) ENGINE = MyISAM)
|
||||
alter table t rename column b to c, algorithm=copy;
|
||||
show create table t;
|
||||
Table Create Table
|
||||
t CREATE TABLE `t` (
|
||||
`c` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
||||
PARTITION BY LIST (`c`)
|
||||
SUBPARTITION BY HASH (`c`)
|
||||
SUBPARTITIONS 2
|
||||
(PARTITION `p0` VALUES IN (1) ENGINE = MyISAM)
|
||||
drop table t;
|
||||
create table t (d int, e int)
|
||||
partition by list columns (d, e)
|
||||
subpartition by key (d, e)
|
||||
(partition p0 values in ((2, 3)));
|
||||
alter table t rename column d to f, rename column e to g, algorithm=nocopy;
|
||||
show create table t;
|
||||
Table Create Table
|
||||
t CREATE TABLE `t` (
|
||||
`f` int(11) DEFAULT NULL,
|
||||
`g` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
||||
PARTITION BY LIST COLUMNS(`f`,`g`)
|
||||
SUBPARTITION BY KEY (`f`,`g`)
|
||||
(PARTITION `p0` VALUES IN ((2,3)) ENGINE = MyISAM)
|
||||
alter table t rename column f to h, rename column g to i, algorithm=copy;
|
||||
show create table t;
|
||||
Table Create Table
|
||||
t CREATE TABLE `t` (
|
||||
`h` int(11) DEFAULT NULL,
|
||||
`i` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
||||
PARTITION BY LIST COLUMNS(`h`,`i`)
|
||||
SUBPARTITION BY KEY (`h`,`i`)
|
||||
(PARTITION `p0` VALUES IN ((2,3)) ENGINE = MyISAM)
|
||||
drop table t;
|
||||
create table t (k int, l int)
|
||||
partition by range (k)
|
||||
subpartition by hash(l) subpartitions 4
|
||||
(partition p0 values less than (5));
|
||||
alter table t rename column k to l, rename column l to k;
|
||||
show create table t;
|
||||
Table Create Table
|
||||
t CREATE TABLE `t` (
|
||||
`l` int(11) DEFAULT NULL,
|
||||
`k` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
||||
PARTITION BY RANGE (`l`)
|
||||
SUBPARTITION BY HASH (`k`)
|
||||
SUBPARTITIONS 4
|
||||
(PARTITION `p0` VALUES LESS THAN (5) ENGINE = MyISAM)
|
||||
drop table t;
|
||||
create table t (a int, b int) partition by list (b) (partition p1 values in (1, 2));
|
||||
insert into t values (0, 1), (2, 2);
|
||||
alter table t rename column b to f, rename column a to b, algorithm=nocopy;
|
||||
check table t;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t check status OK
|
||||
delete from t order by b limit 1;
|
||||
drop table t;
|
||||
# End of 10.5 tests
|
||||
create or replace table t1 (x int primary key)
|
||||
partition by range(x) (
|
||||
p1 values less than (10),
|
||||
|
@ -265,3 +354,4 @@ partition by list(x) (
|
|||
partitio values in (2, 3, 4),
|
||||
pn values in (52, 53, 54));
|
||||
drop table t1;
|
||||
# End of 10.7 tests
|
||||
|
|
|
@ -185,8 +185,60 @@ select * from t1 partition(p1);
|
|||
delete from t1;
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-28576 RENAME COLUMN with NOCOPY algorithm leads to corrupt partitioned table
|
||||
--echo #
|
||||
create table t (a int, b int) partition by list (b) (partition p1 values in (1, 2));
|
||||
insert into t values (0, 1), (2, 2);
|
||||
alter table t change b f int, change a b int, algorithm=nocopy;
|
||||
check table t;
|
||||
delete from t order by b limit 1;
|
||||
# cleanup
|
||||
drop table t;
|
||||
|
||||
--echo # End of 10.3 tests
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-28576 RENAME COLUMN with NOCOPY algorithm leads to corrupt partitioned table
|
||||
--echo #
|
||||
create table t (a int)
|
||||
partition by list (a)
|
||||
subpartition by hash(a) subpartitions 2
|
||||
(partition p0 values in (1));
|
||||
alter table t rename column a to b, algorithm=nocopy;
|
||||
show create table t;
|
||||
alter table t rename column b to c, algorithm=copy;
|
||||
show create table t;
|
||||
drop table t;
|
||||
|
||||
create table t (d int, e int)
|
||||
partition by list columns (d, e)
|
||||
subpartition by key (d, e)
|
||||
(partition p0 values in ((2, 3)));
|
||||
alter table t rename column d to f, rename column e to g, algorithm=nocopy;
|
||||
show create table t;
|
||||
alter table t rename column f to h, rename column g to i, algorithm=copy;
|
||||
show create table t;
|
||||
drop table t;
|
||||
|
||||
create table t (k int, l int)
|
||||
partition by range (k)
|
||||
subpartition by hash(l) subpartitions 4
|
||||
(partition p0 values less than (5));
|
||||
alter table t rename column k to l, rename column l to k;
|
||||
show create table t;
|
||||
drop table t;
|
||||
|
||||
create table t (a int, b int) partition by list (b) (partition p1 values in (1, 2));
|
||||
insert into t values (0, 1), (2, 2);
|
||||
alter table t rename column b to f, rename column a to b, algorithm=nocopy;
|
||||
check table t;
|
||||
delete from t order by b limit 1;
|
||||
# cleanup
|
||||
drop table t;
|
||||
|
||||
--echo # End of 10.5 tests
|
||||
|
||||
create or replace table t1 (x int primary key)
|
||||
partition by range(x) (
|
||||
p1 values less than (10),
|
||||
|
@ -233,3 +285,5 @@ partition by list(x) (
|
|||
pn values in (52, 53, 54));
|
||||
|
||||
drop table t1;
|
||||
|
||||
--echo # End of 10.7 tests
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
--source include/not_embedded.inc
|
||||
--source include/mysql_upgrade_preparation.inc
|
||||
--source include/have_innodb.inc
|
||||
--source include/no_valgrind_without_big.inc
|
||||
|
||||
SET GLOBAL SQL_MODE="";
|
||||
SET LOCAL SQL_MODE="";
|
||||
|
|
|
@ -4,10 +4,11 @@
|
|||
-- source include/have_pool_of_threads.inc
|
||||
-- source include/default_optimizer_switch.inc
|
||||
|
||||
SET optimizer_switch='outer_join_with_cache=off';
|
||||
# Slow test, don't run during staging part
|
||||
-- source include/not_staging.inc
|
||||
-- source include/long_test.inc
|
||||
|
||||
SET optimizer_switch='outer_join_with_cache=off';
|
||||
-- source include/common-tests.inc
|
||||
SET optimizer_switch=default;
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
-- source include/have_query_cache.inc
|
||||
-- source include/long_test.inc
|
||||
-- source include/no_valgrind_without_big.inc
|
||||
|
||||
set @save_query_cache_size=@@query_cache_size;
|
||||
#
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
--source include/have_query_cache.inc
|
||||
--source include/have_debug_sync.inc
|
||||
--source include/long_test.inc
|
||||
--source include/no_valgrind_without_big.inc
|
||||
|
||||
set global query_cache_type= ON;
|
||||
set @save_query_cache_size=@@global.query_cache_size;
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
--source include/no_valgrind_without_big.inc
|
||||
#
|
||||
# Problem with range optimizer
|
||||
#
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_debug.inc
|
||||
--source include/no_valgrind_without_big.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t0, t1, t2;
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
--source include/no_valgrind_without_big.inc
|
||||
--source include/default_optimizer_switch.inc
|
||||
--source include/default_charset.inc
|
||||
--source include/have_sequence.inc
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
--source include/no_valgrind_without_big.inc
|
||||
--source include/have_innodb.inc
|
||||
|
||||
SET SESSION DEFAULT_STORAGE_ENGINE='InnoDB';
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
--source include/have_innodb.inc
|
||||
--source include/no_valgrind_without_big.inc
|
||||
|
||||
set default_storage_engine=innodb;
|
||||
--source include/rowid_filter_debug_kill.inc
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
# Find string "NOTE NOTE NOTE" in order to find some 'unsure' tests
|
||||
#
|
||||
|
||||
--source include/no_valgrind_without_big.inc
|
||||
|
||||
#
|
||||
# Simple select test
|
||||
#
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
--source include/no_valgrind_without_big.inc
|
||||
--source include/have_stat_tables.inc
|
||||
--source include/have_sequence.inc
|
||||
--source include/default_charset.inc
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
--source include/no_valgrind_without_big.inc
|
||||
--source include/have_partition.inc
|
||||
--source include/have_sequence.inc
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
-- source include/have_64bit.inc
|
||||
# No point in running with valgrind as it takes 1.5 hours
|
||||
-- source include/not_valgrind.inc
|
||||
# This test often times out with MemorySanitizer.
|
||||
-- source include/not_msan.inc
|
||||
|
||||
# Save the initial number of concurrent sessions
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
--source include/no_valgrind_without_big.inc
|
||||
# Turn on ssl between the client and server
|
||||
# and run a number of tests
|
||||
|
||||
|
|
|
@ -4,7 +4,9 @@ set @innodb_stats_persistent_sample_pages_save=
|
|||
|
||||
set global innodb_stats_persistent= 1;
|
||||
set global innodb_stats_persistent_sample_pages=100;
|
||||
|
||||
--source include/have_innodb.inc
|
||||
--source include/no_valgrind_without_big.inc
|
||||
|
||||
SET SESSION DEFAULT_STORAGE_ENGINE='InnoDB';
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
--source include/no_valgrind_without_big.inc
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_sequence.inc
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
# Note that this test requires a fresh restart to not have problems with the
|
||||
# old status values
|
||||
|
||||
--source include/no_valgrind_without_big.inc
|
||||
--source include/have_stat_tables.inc
|
||||
--source include/have_debug_sync.inc
|
||||
--source include/not_embedded.inc
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
--source include/no_valgrind_without_big.inc
|
||||
--source include/have_stat_tables.inc
|
||||
--source include/have_innodb.inc
|
||||
--disable_warnings
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
-- source include/no_valgrind_without_big.inc
|
||||
-- source include/have_innodb.inc
|
||||
|
||||
# Note: the tests uses only non-semijoin subqueries so semi-join switch
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
--source include/no_valgrind_without_big.inc
|
||||
#
|
||||
# Nested Loops semi-join subquery evaluation tests
|
||||
#
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#
|
||||
# Run subselect_sj.test with BKA enabled
|
||||
#
|
||||
--source include/no_valgrind_without_big.inc
|
||||
--source include/default_optimizer_switch.inc
|
||||
|
||||
set @save_optimizer_switch_jcl6=@@optimizer_switch;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
# This test uses chmod, can't be run with root permissions
|
||||
-- source include/not_as_root.inc
|
||||
--source include/default_charset.inc
|
||||
-- source include/no_valgrind_without_big.inc
|
||||
-- source include/default_charset.inc
|
||||
|
||||
#
|
||||
# Basic triggers test
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
--source include/have_sequence.inc
|
||||
--source include/have_innodb.inc
|
||||
--source include/no_valgrind_without_big.inc
|
||||
|
||||
create table t1 (old_c1 integer, old_c2 integer,c1 integer, c2 integer, c3 integer) engine=InnoDB STATS_PERSISTENT=0;
|
||||
create view v1 as select * from t1 where c2=2;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#
|
||||
# Window Functions Tests
|
||||
#
|
||||
--source include/no_valgrind_without_big.inc
|
||||
--source include/have_sequence.inc
|
||||
|
||||
--disable_warnings
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
--source include/no_valgrind_without_big.inc
|
||||
|
||||
set max_recursive_iterations=200000;
|
||||
create table test_table (id int, random_data varchar(36), static_int int, static_varchar varchar(10));
|
||||
|
||||
|
|
|
@ -4,22 +4,44 @@
|
|||
# It will create 'wsrep' schema and two tables in it: 'membeship' and 'status'
|
||||
# and fill them on every membership or node status change.
|
||||
#
|
||||
# Edit parameters below to specify the address and login to server.
|
||||
|
||||
# Edit parameters below to specify the address and login to server:
|
||||
#
|
||||
USER=root
|
||||
PSWD=
|
||||
#
|
||||
# If these parameters are not set, then the values
|
||||
# passed by the server are taken:
|
||||
#
|
||||
HOST=127.0.0.1
|
||||
PORT=$NODE_MYPORT_1
|
||||
#
|
||||
# Edit parameters below to specify SSL parameters:
|
||||
#
|
||||
ssl_key=
|
||||
ssl_cert=
|
||||
ssl_ca=
|
||||
ssl_capath=
|
||||
ssl_cipher=
|
||||
ssl_crl=
|
||||
ssl_crlpath=
|
||||
ssl_verify_server_cert=0
|
||||
#
|
||||
# Client executable path:
|
||||
#
|
||||
CLIENT="$EXE_MYSQL"
|
||||
|
||||
SCHEMA="mtr_wsrep_notify"
|
||||
MEMB_TABLE="$SCHEMA.membership"
|
||||
STATUS_TABLE="$SCHEMA.status"
|
||||
|
||||
BEGIN="
|
||||
SET wsrep_on=0;
|
||||
WSREP_ON='SET wsrep_on=ON'
|
||||
WSREP_OFF='SET wsrep_on=OFF'
|
||||
|
||||
BEGIN="$WSREP_OFF;
|
||||
CREATE SCHEMA IF NOT EXISTS $SCHEMA;
|
||||
CREATE TABLE IF NOT EXISTS $MEMB_TABLE (
|
||||
idx INT,
|
||||
uuid CHAR(40), /* node UUID */
|
||||
uuid CHAR(40), /* node UUID */
|
||||
name VARCHAR(32), /* node name */
|
||||
addr VARCHAR(256) /* node address */
|
||||
) ENGINE=MEMORY;
|
||||
|
@ -30,9 +52,8 @@ CREATE TABLE IF NOT EXISTS $STATUS_TABLE (
|
|||
uuid CHAR(40), /* cluster UUID */
|
||||
prim BOOLEAN /* if component is primary */
|
||||
) ENGINE=MEMORY;
|
||||
BEGIN;
|
||||
"
|
||||
END="COMMIT;"
|
||||
BEGIN"
|
||||
END="COMMIT; $WSREP_ON"
|
||||
|
||||
configuration_change()
|
||||
{
|
||||
|
@ -40,7 +61,7 @@ configuration_change()
|
|||
|
||||
local idx=0
|
||||
|
||||
for NODE in $(echo $MEMBERS | sed s/,/\ /g)
|
||||
for NODE in $(echo "$MEMBERS" | sed s/,/\ /g)
|
||||
do
|
||||
echo "INSERT INTO $MEMB_TABLE VALUES ( $idx, "
|
||||
# Don't forget to properly quote string values
|
||||
|
@ -51,7 +72,7 @@ configuration_change()
|
|||
|
||||
echo "INSERT INTO $STATUS_TABLE VALUES($idx, $INDEX, '$STATUS', '$CLUSTER_UUID', $PRIMARY);"
|
||||
|
||||
echo "$END"
|
||||
echo "$END;"
|
||||
}
|
||||
|
||||
status_update()
|
||||
|
@ -59,17 +80,44 @@ status_update()
|
|||
echo "$BEGIN; UPDATE $STATUS_TABLE SET status='$STATUS'; $END;"
|
||||
}
|
||||
|
||||
trim_string()
|
||||
{
|
||||
if [ -n "${BASH_VERSION:-}" ]; then
|
||||
local pattern="[![:space:]${2:-}]"
|
||||
local x="${1#*$pattern}"
|
||||
local z=${#1}
|
||||
x=${#x}
|
||||
if [ $x -ne $z ]; then
|
||||
local y="${1%$pattern*}"
|
||||
y=${#y}
|
||||
x=$(( z-x-1 ))
|
||||
y=$(( y-x+1 ))
|
||||
printf '%s' "${1:$x:$y}"
|
||||
else
|
||||
printf ''
|
||||
fi
|
||||
else
|
||||
local pattern="[[:space:]${2:-}]"
|
||||
echo "$1" | sed -E "s/^$pattern+|$pattern+\$//g"
|
||||
fi
|
||||
}
|
||||
|
||||
COM=status_update # not a configuration change by default
|
||||
|
||||
while [ $# -gt 0 ]
|
||||
do
|
||||
STATUS=""
|
||||
CLUSTER_UUID=""
|
||||
PRIMARY="0"
|
||||
INDEX=""
|
||||
MEMBERS=""
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
case $1 in
|
||||
--status)
|
||||
STATUS=$2
|
||||
STATUS=$(trim_string "$2")
|
||||
shift
|
||||
;;
|
||||
--uuid)
|
||||
CLUSTER_UUID=$2
|
||||
CLUSTER_UUID=$(trim_string "$2")
|
||||
shift
|
||||
;;
|
||||
--primary)
|
||||
|
@ -78,22 +126,75 @@ do
|
|||
shift
|
||||
;;
|
||||
--index)
|
||||
INDEX=$2
|
||||
INDEX=$(trim_string "$2")
|
||||
shift
|
||||
;;
|
||||
--members)
|
||||
MEMBERS=$2
|
||||
MEMBERS=$(trim_string "$2")
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
case $STATUS in
|
||||
"joined" | "donor" | "synced")
|
||||
$COM | mysql -B -u$USER -h$HOST -P$PORT
|
||||
USER=$(trim_string "$USER")
|
||||
PSWD=$(trim_string "$PSWD")
|
||||
|
||||
HOST=$(trim_string "$HOST")
|
||||
PORT=$(trim_string "$PORT")
|
||||
|
||||
case "$HOST" in
|
||||
\[*)
|
||||
HOST="${HOST##\[}"
|
||||
HOST=$(trim_string "${HOST%%\]}")
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -z "$HOST" ]; then
|
||||
HOST="${NOTIFY_HOST:-}"
|
||||
fi
|
||||
if [ -z "$PORT" ]; then
|
||||
PORT="${NOTIFY_PORT:-}"
|
||||
fi
|
||||
|
||||
ssl_key=$(trim_string "$ssl_key");
|
||||
ssl_cert=$(trim_string "$ssl_cert");
|
||||
ssl_ca=$(trim_string "$ssl_ca");
|
||||
ssl_capath=$(trim_string "$ssl_capath");
|
||||
ssl_cipher=$(trim_string "$ssl_cipher");
|
||||
ssl_crl=$(trim_string "$ssl_crl");
|
||||
ssl_crlpath=$(trim_string "$ssl_crlpath");
|
||||
ssl_verify_server_cert=$(trim_string "$ssl_verify_server_cert");
|
||||
|
||||
SSL_PARAM=""
|
||||
|
||||
if [ -n "$ssl_key" -o -n "$ssl_cert" -o \
|
||||
-n "$ssl_ca" -o -n "$ssl_capath" -o \
|
||||
-n "$ssl_cipher" ]
|
||||
then
|
||||
SSL_PARAM=' --ssl'
|
||||
[ -n "$ssl_key" ] && SSL_PARAM="$SSL_PARAM --ssl-key='$ssl_key'"
|
||||
[ -n "$ssl_cert" ] && SSL_PARAM="$SSL_PARAM --ssl-cert='$ssl_cert'"
|
||||
[ -n "$ssl_ca" ] && SSL_PARAM="$SSL_PARAM --ssl-ca='$ssl_ca'"
|
||||
[ -n "$ssl_capath" ] && SSL_PARAM="$SSL_PARAM --ssl-capath='$ssl_capath'"
|
||||
[ -n "$ssl_cipher" ] && SSL_PARAM="$SSL_PARAM --ssl-cipher='$ssl_cipher'"
|
||||
[ -n "$ssl_crl" ] && SSL_PARAM="$SSL_PARAM --ssl-crl='$ssl_crl'"
|
||||
[ -n "$ssl_crlpath" ] && SSL_PARAM="$SSL_PARAM --ssl-crlpath='$ssl_crlpath'"
|
||||
if [ -n "$ssl_verify_server_cert" ]; then
|
||||
if [ $ssl_verify_server_cert -ne 0 ]; then
|
||||
SSL_PARAM+=' --ssl-verify-server-cert'
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
case "$STATUS" in
|
||||
'joined' | 'donor' | 'synced')
|
||||
"$COM" | eval "$CLIENT" -B "-u'$USER'"${PSWD:+" -p'$PSWD'"}\
|
||||
"-h'$HOST'" "-P$PORT"$SSL_PARAM
|
||||
;;
|
||||
*)
|
||||
exit 0
|
||||
*)
|
||||
# The node might be shutting down or not initialized
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
|
200
mysql-test/std_data/wsrep_notify_ssl.sh
Executable file
200
mysql-test/std_data/wsrep_notify_ssl.sh
Executable file
|
@ -0,0 +1,200 @@
|
|||
#!/bin/sh -eu
|
||||
|
||||
# This is a simple example of wsrep notification script (wsrep_notify_cmd).
|
||||
# It will create 'wsrep' schema and two tables in it: 'membeship' and 'status'
|
||||
# and fill them on every membership or node status change.
|
||||
#
|
||||
# Edit parameters below to specify the address and login to server:
|
||||
#
|
||||
USER=root
|
||||
PSWD=
|
||||
#
|
||||
# If these parameters are not set, then the values
|
||||
# passed by the server are taken:
|
||||
#
|
||||
HOST=127.0.0.1
|
||||
PORT=$NODE_MYPORT_1
|
||||
#
|
||||
# Edit parameters below to specify SSL parameters:
|
||||
#
|
||||
ssl_cert="$MYSQL_TEST_DIR/std_data/client-cert.pem"
|
||||
ssl_key="$MYSQL_TEST_DIR/std_data/client-key.pem"
|
||||
ssl_ca="$MYSQL_TEST_DIR/std_data/cacert.pem"
|
||||
ssl_capath=
|
||||
ssl_cipher=
|
||||
ssl_crl=
|
||||
ssl_crlpath=
|
||||
ssl_verify_server_cert=0
|
||||
#
|
||||
# Client executable path:
|
||||
#
|
||||
CLIENT="$EXE_MYSQL"
|
||||
|
||||
SCHEMA="mtr_wsrep_notify"
|
||||
MEMB_TABLE="$SCHEMA.membership"
|
||||
STATUS_TABLE="$SCHEMA.status"
|
||||
|
||||
WSREP_ON='SET wsrep_on=ON'
|
||||
WSREP_OFF='SET wsrep_on=OFF'
|
||||
|
||||
BEGIN="$WSREP_OFF;
|
||||
CREATE SCHEMA IF NOT EXISTS $SCHEMA;
|
||||
CREATE TABLE IF NOT EXISTS $MEMB_TABLE (
|
||||
idx INT,
|
||||
uuid CHAR(40), /* node UUID */
|
||||
name VARCHAR(32), /* node name */
|
||||
addr VARCHAR(256) /* node address */
|
||||
) ENGINE=MEMORY;
|
||||
CREATE TABLE IF NOT EXISTS $STATUS_TABLE (
|
||||
size INT, /* component size */
|
||||
idx INT, /* this node index */
|
||||
status CHAR(16), /* this node status */
|
||||
uuid CHAR(40), /* cluster UUID */
|
||||
prim BOOLEAN /* if component is primary */
|
||||
) ENGINE=MEMORY;
|
||||
BEGIN"
|
||||
END="COMMIT; $WSREP_ON"
|
||||
|
||||
configuration_change()
|
||||
{
|
||||
echo "$BEGIN;"
|
||||
|
||||
local idx=0
|
||||
|
||||
for NODE in $(echo "$MEMBERS" | sed s/,/\ /g)
|
||||
do
|
||||
echo "INSERT INTO $MEMB_TABLE VALUES ( $idx, "
|
||||
# Don't forget to properly quote string values
|
||||
echo "'$NODE'" | sed s/\\//\',\'/g
|
||||
echo ");"
|
||||
idx=$(( $idx + 1 ))
|
||||
done
|
||||
|
||||
echo "INSERT INTO $STATUS_TABLE VALUES($idx, $INDEX, '$STATUS', '$CLUSTER_UUID', $PRIMARY);"
|
||||
|
||||
echo "$END;"
|
||||
}
|
||||
|
||||
status_update()
|
||||
{
|
||||
echo "$BEGIN; UPDATE $STATUS_TABLE SET status='$STATUS'; $END;"
|
||||
}
|
||||
|
||||
trim_string()
|
||||
{
|
||||
if [ -n "${BASH_VERSION:-}" ]; then
|
||||
local pattern="[![:space:]${2:-}]"
|
||||
local x="${1#*$pattern}"
|
||||
local z=${#1}
|
||||
x=${#x}
|
||||
if [ $x -ne $z ]; then
|
||||
local y="${1%$pattern*}"
|
||||
y=${#y}
|
||||
x=$(( z-x-1 ))
|
||||
y=$(( y-x+1 ))
|
||||
printf '%s' "${1:$x:$y}"
|
||||
else
|
||||
printf ''
|
||||
fi
|
||||
else
|
||||
local pattern="[[:space:]${2:-}]"
|
||||
echo "$1" | sed -E "s/^$pattern+|$pattern+\$//g"
|
||||
fi
|
||||
}
|
||||
|
||||
COM=status_update # not a configuration change by default
|
||||
|
||||
STATUS=""
|
||||
CLUSTER_UUID=""
|
||||
PRIMARY="0"
|
||||
INDEX=""
|
||||
MEMBERS=""
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
case $1 in
|
||||
--status)
|
||||
STATUS=$(trim_string "$2")
|
||||
shift
|
||||
;;
|
||||
--uuid)
|
||||
CLUSTER_UUID=$(trim_string "$2")
|
||||
shift
|
||||
;;
|
||||
--primary)
|
||||
[ "$2" = "yes" ] && PRIMARY="1" || PRIMARY="0"
|
||||
COM=configuration_change
|
||||
shift
|
||||
;;
|
||||
--index)
|
||||
INDEX=$(trim_string "$2")
|
||||
shift
|
||||
;;
|
||||
--members)
|
||||
MEMBERS=$(trim_string "$2")
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
USER=$(trim_string "$USER")
|
||||
PSWD=$(trim_string "$PSWD")
|
||||
|
||||
HOST=$(trim_string "$HOST")
|
||||
PORT=$(trim_string "$PORT")
|
||||
|
||||
case "$HOST" in
|
||||
\[*)
|
||||
HOST="${HOST##\[}"
|
||||
HOST=$(trim_string "${HOST%%\]}")
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -z "$HOST" ]; then
|
||||
HOST="${NOTIFY_HOST:-}"
|
||||
fi
|
||||
if [ -z "$PORT" ]; then
|
||||
PORT="${NOTIFY_PORT:-}"
|
||||
fi
|
||||
|
||||
ssl_key=$(trim_string "$ssl_key");
|
||||
ssl_cert=$(trim_string "$ssl_cert");
|
||||
ssl_ca=$(trim_string "$ssl_ca");
|
||||
ssl_capath=$(trim_string "$ssl_capath");
|
||||
ssl_cipher=$(trim_string "$ssl_cipher");
|
||||
ssl_crl=$(trim_string "$ssl_crl");
|
||||
ssl_crlpath=$(trim_string "$ssl_crlpath");
|
||||
ssl_verify_server_cert=$(trim_string "$ssl_verify_server_cert");
|
||||
|
||||
SSL_PARAM=""
|
||||
|
||||
if [ -n "$ssl_key" -o -n "$ssl_cert" -o \
|
||||
-n "$ssl_ca" -o -n "$ssl_capath" -o \
|
||||
-n "$ssl_cipher" ]
|
||||
then
|
||||
SSL_PARAM=' --ssl'
|
||||
[ -n "$ssl_key" ] && SSL_PARAM="$SSL_PARAM --ssl-key='$ssl_key'"
|
||||
[ -n "$ssl_cert" ] && SSL_PARAM="$SSL_PARAM --ssl-cert='$ssl_cert'"
|
||||
[ -n "$ssl_ca" ] && SSL_PARAM="$SSL_PARAM --ssl-ca='$ssl_ca'"
|
||||
[ -n "$ssl_capath" ] && SSL_PARAM="$SSL_PARAM --ssl-capath='$ssl_capath'"
|
||||
[ -n "$ssl_cipher" ] && SSL_PARAM="$SSL_PARAM --ssl-cipher='$ssl_cipher'"
|
||||
[ -n "$ssl_crl" ] && SSL_PARAM="$SSL_PARAM --ssl-crl='$ssl_crl'"
|
||||
[ -n "$ssl_crlpath" ] && SSL_PARAM="$SSL_PARAM --ssl-crlpath='$ssl_crlpath'"
|
||||
if [ -n "$ssl_verify_server_cert" ]; then
|
||||
if [ $ssl_verify_server_cert -ne 0 ]; then
|
||||
SSL_PARAM+=' --ssl-verify-server-cert'
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
case "$STATUS" in
|
||||
'joined' | 'donor' | 'synced')
|
||||
"$COM" | eval "$CLIENT" -B "-u'$USER'"${PSWD:+" -p'$PSWD'"}\
|
||||
"-h'$HOST'" "-P$PORT"$SSL_PARAM
|
||||
;;
|
||||
*)
|
||||
# The node might be shutting down or not initialized
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
|
@ -1,5 +1,6 @@
|
|||
--source have_federatedx.inc
|
||||
--source include/federated.inc
|
||||
--source include/no_valgrind_without_big.inc
|
||||
|
||||
connection default;
|
||||
|
||||
|
|
|
@ -23,12 +23,12 @@ galera_parallel_simple : MDEV-20318 galera.galera_parallel_simple fails
|
|||
galera_pc_recovery : MDEV-25199 cluster fails to start up
|
||||
galera_shutdown_nonprim : MDEV-21493 galera.galera_shutdown_nonprim
|
||||
galera_sst_mysqldump : MDEV-26501 : galera.galera_sst_mysqldump MTR failed: galera SST with mysqldump failed
|
||||
galera_trigger : MDEV-24048 galera.galera_trigger MTR fails: Result content mismatch
|
||||
galera_unicode_identifiers : MDEV-26500 : galera.galera_unicode_identifiers MTR failed: InnoDB: innodb_fatal_semaphore_wait_threshold was exceeded for dict_sys.mutex
|
||||
galera_var_dirty_reads : MDEV-25615 Galera test failure on galera_var_dirty_reads
|
||||
galera_var_ignore_apply_errors : MDEV-26770 galera_var_ignore_apply_errors fails Server did not transition to READY state
|
||||
galera_var_node_address : MDEV-20485 Galera test failure
|
||||
galera_var_notify_cmd : MDEV-21905 Galera test galera_var_notify_cmd causes hang
|
||||
galera_var_notify_ssl_ipv6 : hangs after the merge of MDEV-27682
|
||||
galera_var_retry_autocommit: MDEV-18181 Galera test failure on galera.galera_var_retry_autocommit
|
||||
galera_wsrep_provider_unset_set: wsrep_provider is read-only for security reasons
|
||||
partition : MDEV-19958 Galera test failure on galera.partition
|
||||
|
@ -36,4 +36,5 @@ pxc-421: wsrep_provider is read-only for security reasons
|
|||
query_cache: MDEV-15805 Test failure on galera.query_cache
|
||||
versioning_trx_id: MDEV-18590: galera.versioning_trx_id: Test failure: mysqltest: Result content mismatch
|
||||
galera_bf_abort_at_after_statement : Unstable
|
||||
galera_bf_abort_shutdown : MDEV-29773 Assertion failure on sql/wsrep_mysqld.cc:2893 in wsrep_bf_abort_shutdown
|
||||
|
||||
|
|
19
mysql-test/suite/galera/r/MDEV-26597.result
Normal file
19
mysql-test/suite/galera/r/MDEV-26597.result
Normal file
|
@ -0,0 +1,19 @@
|
|||
connection node_2;
|
||||
connection node_1;
|
||||
connection node_1;
|
||||
connection node_2;
|
||||
connection node_2;
|
||||
CREATE TABLE t3 (c1 INTEGER NOT NULL PRIMARY KEY, c2 FLOAT(3,2));
|
||||
SET GLOBAL wsrep_provider_options = 'repl.max_ws_size=512';
|
||||
SET @@autocommit=0;
|
||||
INSERT INTO t3 VALUES (1000,0.00),(1001,0.25),(1002,0.50),(1003,0.75),(1008,1.00),(1009,1.25),(1010,1.50),(1011,1.75);
|
||||
CREATE TABLE t1 ( pk int primary key) ENGINE=INNODB;
|
||||
ERROR HY000: Maximum writeset size exceeded
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
Error 1105 Maximum writeset size exceeded
|
||||
connection node_2;
|
||||
SET SESSION wsrep_sync_wait = 0;
|
||||
Killing server ...
|
||||
connection node_1;
|
||||
DROP TABLE t3;
|
17
mysql-test/suite/galera/r/MDEV-27123.result
Normal file
17
mysql-test/suite/galera/r/MDEV-27123.result
Normal file
|
@ -0,0 +1,17 @@
|
|||
connection node_2;
|
||||
connection node_1;
|
||||
show variables like 'auto_increment%';
|
||||
Variable_name Value
|
||||
auto_increment_increment 3
|
||||
auto_increment_offset 3
|
||||
create table t4 (c1 int primary key auto_increment) engine=innodb;
|
||||
show variables like 'auto_increment%';
|
||||
Variable_name Value
|
||||
auto_increment_increment 3
|
||||
auto_increment_offset 3
|
||||
alter table t4 add (c2 varchar(50));
|
||||
show variables like 'auto_increment%';
|
||||
Variable_name Value
|
||||
auto_increment_increment 3
|
||||
auto_increment_offset 3
|
||||
DROP TABLE t4;
|
45
mysql-test/suite/galera/r/MDEV-29142.result
Normal file
45
mysql-test/suite/galera/r/MDEV-29142.result
Normal file
|
@ -0,0 +1,45 @@
|
|||
connection node_2;
|
||||
connection node_1;
|
||||
connection node_1;
|
||||
connection node_2;
|
||||
connection node_1;
|
||||
call mtr.add_suppression("WSREP: Event .* Write_rows_v1 apply failed:.*");
|
||||
call mtr.add_suppression("WSREP: Failed to apply write set:.*");
|
||||
call mtr.add_suppression("WSREP: Inconsistency detected: Inconsistent by consensus on.*");
|
||||
connection node_2;
|
||||
call mtr.add_suppression("WSREP: Failed to open table mysql.wsrep_streaming_log for writing");
|
||||
call mtr.add_suppression("WSREP: Failed to open SR table for write");
|
||||
call mtr.add_suppression("WSREP: Failed to recover SR transactions from schema: wsrep_on : 0");
|
||||
call mtr.add_suppression("WSREP: Inconsistency detected: Inconsistent by consensus on.*");
|
||||
SET @@global.tx_read_only = ON;
|
||||
SET default_storage_engine = SEQUENCE;
|
||||
create table t1 (c1 int);
|
||||
ERROR HY000: Can't create table `test`.`t1` (errno: 131 "Command not supported by the engine")
|
||||
CREATE TABLE t1(c1 VARCHAR(20)) engine=innodb;
|
||||
INSERT INTO t1 VALUES(0xA9B8);
|
||||
create TABLE t1 (c1 int) engine=innodb;
|
||||
ERROR 42S01: Table 't1' already exists
|
||||
create TABLE t1 (c1 int) engine=innodb;
|
||||
ERROR 42S01: Table 't1' already exists
|
||||
SET GLOBAL wsrep_on=OFF;
|
||||
SET GLOBAL wsrep_cluster_address='gcomm://';
|
||||
INSERT INTO t1 VALUES (1);
|
||||
SELECT 1;
|
||||
1
|
||||
1
|
||||
SELECT 1;
|
||||
1
|
||||
1
|
||||
COMMIT;
|
||||
# Killing cluster because we have messed with wsrep_cluster_address
|
||||
connection node_2;
|
||||
SET SESSION wsrep_sync_wait = 0;
|
||||
Killing server ...
|
||||
connection node_1;
|
||||
SET SESSION wsrep_sync_wait = 0;
|
||||
Killing server ...
|
||||
connection node_2;
|
||||
call mtr.add_suppression("WSREP: Failed to open table mysql.wsrep_streaming_log for writing");
|
||||
call mtr.add_suppression("WSREP: Failed to open SR table for write");
|
||||
call mtr.add_suppression("WSREP: Failed to recover SR transactions from schema: wsrep_on : 0");
|
||||
DROP TABLE IF EXISTS t1;
|
|
@ -4,7 +4,7 @@ connection node_1;
|
|||
CREATE TABLE t1 (f1 VARCHAR(512)) ENGINE=InnoDB;
|
||||
SET GLOBAL wsrep_provider_options = 'repl.max_ws_size=512';
|
||||
INSERT INTO t1 VALUES (REPEAT('a', 512));
|
||||
ERROR HY000: Got error 5 "Input/output error" during COMMIT
|
||||
ERROR HY000: Maximum writeset size exceeded
|
||||
SELECT COUNT(*) = 0 FROM t1;
|
||||
COUNT(*) = 0
|
||||
1
|
||||
|
|
|
@ -4,7 +4,7 @@ connection node_1;
|
|||
CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, f2 VARCHAR(1024)) Engine=InnoDB;
|
||||
SET GLOBAL wsrep_max_ws_size = 1024;
|
||||
INSERT INTO t1 VALUES (DEFAULT, REPEAT('X', 1024));
|
||||
ERROR HY000: Got error 5 "Input/output error" during COMMIT
|
||||
ERROR HY000: Maximum writeset size exceeded
|
||||
SELECT COUNT(*) = 0 FROM t1;
|
||||
COUNT(*) = 0
|
||||
1
|
||||
|
|
13
mysql-test/suite/galera/r/galera_var_notify_ssl_ipv6.result
Normal file
13
mysql-test/suite/galera/r/galera_var_notify_ssl_ipv6.result
Normal file
|
@ -0,0 +1,13 @@
|
|||
connection node_2;
|
||||
connection node_1;
|
||||
connection node_1;
|
||||
SELECT COUNT(DISTINCT uuid) AS EXPECT_2 FROM mtr_wsrep_notify.membership;
|
||||
EXPECT_2
|
||||
2
|
||||
SELECT MAX(size) AS EXPECT_2 FROM mtr_wsrep_notify.status;
|
||||
EXPECT_2
|
||||
2
|
||||
SELECT COUNT(DISTINCT idx) AS EXPECT_2 FROM mtr_wsrep_notify.status;
|
||||
EXPECT_2
|
||||
2
|
||||
DROP SCHEMA mtr_wsrep_notify;
|
32
mysql-test/suite/galera/t/MDEV-26597.test
Normal file
32
mysql-test/suite/galera/t/MDEV-26597.test
Normal file
|
@ -0,0 +1,32 @@
|
|||
--source include/galera_cluster.inc
|
||||
|
||||
# Save original auto_increment_offset values.
|
||||
--let $node_1=node_1
|
||||
--let $node_2=node_2
|
||||
--source include/auto_increment_offset_save.inc
|
||||
|
||||
--connection node_2
|
||||
CREATE TABLE t3 (c1 INTEGER NOT NULL PRIMARY KEY, c2 FLOAT(3,2));
|
||||
SET GLOBAL wsrep_provider_options = 'repl.max_ws_size=512';
|
||||
SET @@autocommit=0;
|
||||
INSERT INTO t3 VALUES (1000,0.00),(1001,0.25),(1002,0.50),(1003,0.75),(1008,1.00),(1009,1.25),(1010,1.50),(1011,1.75);
|
||||
--error ER_UNKNOWN_ERROR
|
||||
CREATE TABLE t1 ( pk int primary key) ENGINE=INNODB;
|
||||
SHOW WARNINGS;
|
||||
|
||||
--connection node_2
|
||||
SET SESSION wsrep_sync_wait = 0;
|
||||
--source include/kill_galera.inc
|
||||
|
||||
--let $start_mysqld_params = ""
|
||||
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
|
||||
--source include/start_mysqld.inc
|
||||
|
||||
#
|
||||
# Cleanup
|
||||
#
|
||||
--source ../../galera/include/auto_increment_offset_restore.inc
|
||||
--connection node_1
|
||||
DROP TABLE t3;
|
||||
|
||||
|
2
mysql-test/suite/galera/t/MDEV-27123.opt
Normal file
2
mysql-test/suite/galera/t/MDEV-27123.opt
Normal file
|
@ -0,0 +1,2 @@
|
|||
--wsrep_auto_increment_control=OFF --auto_increment_increment=3 --auto_increment_offset=3
|
||||
|
8
mysql-test/suite/galera/t/MDEV-27123.test
Normal file
8
mysql-test/suite/galera/t/MDEV-27123.test
Normal file
|
@ -0,0 +1,8 @@
|
|||
--source include/galera_cluster.inc
|
||||
|
||||
show variables like 'auto_increment%';
|
||||
create table t4 (c1 int primary key auto_increment) engine=innodb;
|
||||
show variables like 'auto_increment%';
|
||||
alter table t4 add (c2 varchar(50));
|
||||
show variables like 'auto_increment%';
|
||||
DROP TABLE t4;
|
73
mysql-test/suite/galera/t/MDEV-29142.test
Normal file
73
mysql-test/suite/galera/t/MDEV-29142.test
Normal file
|
@ -0,0 +1,73 @@
|
|||
--source include/galera_cluster.inc
|
||||
--source include/have_sequence.inc
|
||||
--source include/force_restart.inc
|
||||
|
||||
# Save original auto_increment_offset values.
|
||||
--let $node_1=node_1
|
||||
--let $node_2=node_2
|
||||
--source include/auto_increment_offset_save.inc
|
||||
|
||||
--connection node_1
|
||||
call mtr.add_suppression("WSREP: Event .* Write_rows_v1 apply failed:.*");
|
||||
call mtr.add_suppression("WSREP: Failed to apply write set:.*");
|
||||
call mtr.add_suppression("WSREP: Inconsistency detected: Inconsistent by consensus on.*");
|
||||
|
||||
--connection node_2
|
||||
call mtr.add_suppression("WSREP: Failed to open table mysql.wsrep_streaming_log for writing");
|
||||
call mtr.add_suppression("WSREP: Failed to open SR table for write");
|
||||
call mtr.add_suppression("WSREP: Failed to recover SR transactions from schema: wsrep_on : 0");
|
||||
call mtr.add_suppression("WSREP: Inconsistency detected: Inconsistent by consensus on.*");
|
||||
|
||||
SET @@global.tx_read_only = ON;
|
||||
--error 0,1286
|
||||
SET default_storage_engine = SEQUENCE;
|
||||
--error 1005
|
||||
create table t1 (c1 int);
|
||||
CREATE TABLE t1(c1 VARCHAR(20)) engine=innodb;
|
||||
INSERT INTO t1 VALUES(0xA9B8);
|
||||
--error 1050
|
||||
create TABLE t1 (c1 int) engine=innodb;
|
||||
--error 1050
|
||||
create TABLE t1 (c1 int) engine=innodb;
|
||||
--let $wsrep_cluster_address_saved = `SELECT @@global.wsrep_cluster_address`
|
||||
SET GLOBAL wsrep_on=OFF;
|
||||
SET GLOBAL wsrep_cluster_address='gcomm://';
|
||||
INSERT INTO t1 VALUES (1);
|
||||
SELECT 1;
|
||||
SELECT 1;
|
||||
COMMIT;
|
||||
|
||||
#
|
||||
# Kill the entire cluster and restart
|
||||
#
|
||||
--echo # Killing cluster because we have messed with wsrep_cluster_address
|
||||
--connection node_2
|
||||
SET SESSION wsrep_sync_wait = 0;
|
||||
--source include/kill_galera.inc
|
||||
|
||||
--connection node_1
|
||||
SET SESSION wsrep_sync_wait = 0;
|
||||
--source include/kill_galera.inc
|
||||
|
||||
--remove_file $MYSQLTEST_VARDIR/mysqld.1/data/grastate.dat
|
||||
--let $start_mysqld_params = "--wsrep-new-cluster"
|
||||
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
||||
--source include/start_mysqld.inc
|
||||
|
||||
--connection node_2
|
||||
--let $start_mysqld_params = ""
|
||||
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
|
||||
--source include/start_mysqld.inc
|
||||
|
||||
call mtr.add_suppression("WSREP: Failed to open table mysql.wsrep_streaming_log for writing");
|
||||
call mtr.add_suppression("WSREP: Failed to open SR table for write");
|
||||
call mtr.add_suppression("WSREP: Failed to recover SR transactions from schema: wsrep_on : 0");
|
||||
|
||||
#
|
||||
# Cleanup
|
||||
#
|
||||
--source ../../galera/include/auto_increment_offset_restore.inc
|
||||
# We killed cluster, it might mean that table does not exists
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--enable_warnings
|
|
@ -12,7 +12,7 @@ CREATE TABLE t1 (f1 VARCHAR(512)) ENGINE=InnoDB;
|
|||
|
||||
SET GLOBAL wsrep_provider_options = 'repl.max_ws_size=512';
|
||||
|
||||
--error ER_ERROR_DURING_COMMIT
|
||||
--error ER_UNKNOWN_ERROR
|
||||
INSERT INTO t1 VALUES (REPEAT('a', 512));
|
||||
|
||||
SELECT COUNT(*) = 0 FROM t1;
|
||||
|
|
|
@ -12,7 +12,7 @@ CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, f2 VARCHAR(1024)) Engine
|
|||
--let $wsrep_max_ws_size_orig = `SELECT @@wsrep_max_ws_size`
|
||||
SET GLOBAL wsrep_max_ws_size = 1024;
|
||||
|
||||
--error ER_ERROR_DURING_COMMIT
|
||||
--error ER_UNKNOWN_ERROR
|
||||
INSERT INTO t1 VALUES (DEFAULT, REPEAT('X', 1024));
|
||||
SELECT COUNT(*) = 0 FROM t1;
|
||||
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
--wsrep_notify_cmd=$MYSQL_TEST_DIR/std_data/wsrep_notify_ssl.sh --wsrep-sync-wait=0
|
20
mysql-test/suite/galera/t/galera_var_notify_ssl_ipv6.cnf
Normal file
20
mysql-test/suite/galera/t/galera_var_notify_ssl_ipv6.cnf
Normal file
|
@ -0,0 +1,20 @@
|
|||
!include ../galera_2nodes.cnf
|
||||
|
||||
[mysqld]
|
||||
ssl-cert=@ENV.MYSQL_TEST_DIR/std_data/server-cert.pem
|
||||
ssl-key=@ENV.MYSQL_TEST_DIR/std_data/server-key.pem
|
||||
ssl-ca=@ENV.MYSQL_TEST_DIR/std_data/cacert.pem
|
||||
bind-address=::
|
||||
|
||||
[mysqld.1]
|
||||
wsrep_provider_options='base_port=@mysqld.1.#galera_port;gmcast.listen_addr=tcp://[::]:@mysqld.1.#galera_port;ist.recv_addr=[::1]:@mysqld.1.#ist_port;gcache.size=1;pc.ignore_sb=true'
|
||||
wsrep_node_incoming_address='[::1]:@mysqld.1.port'
|
||||
wsrep_node_address=::1
|
||||
wsrep_sst_receive_address='[::1]:@mysqld.1.#sst_port'
|
||||
|
||||
[mysqld.2]
|
||||
wsrep_cluster_address='gcomm://[::1]:@mysqld.1.#galera_port'
|
||||
wsrep_provider_options='base_port=@mysqld.2.#galera_port;gmcast.listen_addr=tcp://[::]:@mysqld.2.#galera_port;ist.recv_addr=[::1]:@mysqld.2.#ist_port;gcache.size=1;pc.ignore_sb=true'
|
||||
wsrep_node_address=::1
|
||||
wsrep_node_incoming_address='[::1]:@mysqld.2.port'
|
||||
wsrep_sst_receive_address='[::1]:@mysqld.2.#sst_port'
|
20
mysql-test/suite/galera/t/galera_var_notify_ssl_ipv6.test
Normal file
20
mysql-test/suite/galera/t/galera_var_notify_ssl_ipv6.test
Normal file
|
@ -0,0 +1,20 @@
|
|||
#
|
||||
# Test wsrep_notify_cmd. We use a version of the support-files/wsrep_notify.sh script that writes
|
||||
# notifications into a table.
|
||||
#
|
||||
|
||||
--source include/galera_cluster.inc
|
||||
--source include/have_ssl_communication.inc
|
||||
--source include/check_ipv6.inc
|
||||
--source include/force_restart.inc
|
||||
|
||||
--connection node_1
|
||||
--let $wait_condition = SELECT COUNT(DISTINCT uuid) = 2 FROM mtr_wsrep_notify.membership;
|
||||
--source include/wait_condition.inc
|
||||
|
||||
SELECT COUNT(DISTINCT uuid) AS EXPECT_2 FROM mtr_wsrep_notify.membership;
|
||||
SELECT MAX(size) AS EXPECT_2 FROM mtr_wsrep_notify.status;
|
||||
SELECT COUNT(DISTINCT idx) AS EXPECT_2 FROM mtr_wsrep_notify.status;
|
||||
|
||||
# CLEANUP
|
||||
DROP SCHEMA mtr_wsrep_notify;
|
|
@ -17,6 +17,7 @@ galera_gtid_2_cluster : MDEV-23775 Galera test failure on galera_3nodes.galera_g
|
|||
galera_ist_gcache_rollover : MDEV-23578 WSREP: exception caused by message: {v=0,t=1,ut=255,o=4,s=0,sr=0,as=1,f=6,src=50524cfe,srcvid=view_id(REG,50524cfe,4),insvid=view_id(UNKNOWN,00000000,0),ru=00000000,r=[-1,-1],fs=75,nl=(}
|
||||
galera_load_data_ist : MDEV-24639 galera_3nodes.galera_load_data_ist MTR failed with SIGABRT: query 'reap' failed: 2013: Lost connection to server during query
|
||||
galera_load_data_ist : MDEV-24639 galera_3nodes.galera_load_data_ist MTR failed with SIGABRT: query 'reap' failed: 2013: Lost connection to server during query
|
||||
galera_parallel_apply_3nodes : MDEV-29368 DEBUG_SYNC timeout
|
||||
galera_pc_bootstrap : MDEV-24097 MTR sporadaically fails: Failed to start mysqld or mysql_shutdown failed
|
||||
galera_safe_to_bootstrap : MDEV-24097 galera_3nodes.galera_safe_to_bootstrap MTR sporadaically fails: Failed to start mysqld or mysql_shutdown failed
|
||||
galera_slave_options_do : MDEV-8798
|
||||
|
@ -31,3 +32,4 @@ galera_ipv6_rsync_section : MDEV-24097 MTR sporadaically fails: Failed to start
|
|||
galera_ssl_reload : MDEV-24097 MTR sporadaically fails: Failed to start mysqld or mysql_shutdown failed
|
||||
galera_toi_vote : MDEV-24097 MTR sporadaically fails: Failed to start mysqld or mysql_shutdown failed
|
||||
galera_wsrep_schema_init : MDEV-24097 MTR sporadaically fails: Failed to start mysqld or mysql_shutdown failed
|
||||
galera_parallel_apply_3nodes : MDEV-29774 Galera test galera_parallel_apply_3nodes is unstable
|
||||
|
|
|
@ -150,10 +150,7 @@ lock table t write;
|
|||
connection prevent_purge;
|
||||
commit;
|
||||
connection default;
|
||||
InnoDB 0 transactions not purged
|
||||
disconnect lock_table;
|
||||
start transaction with consistent snapshot;
|
||||
commit;
|
||||
InnoDB 0 transactions not purged
|
||||
set global debug_dbug=@old_dbug;
|
||||
drop table t;
|
||||
|
|
|
@ -191,10 +191,7 @@ lock table t write;
|
|||
connection prevent_purge;
|
||||
commit;
|
||||
connection default;
|
||||
--source ../../innodb/include/wait_all_purged.inc
|
||||
disconnect lock_table;
|
||||
start transaction with consistent snapshot;
|
||||
commit;
|
||||
--source ../../innodb/include/wait_all_purged.inc
|
||||
set global debug_dbug=@old_dbug;
|
||||
drop table t;
|
||||
|
|
|
@ -1082,9 +1082,11 @@ COMMIT;
|
|||
drop table t2;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-19526 heap number overflow
|
||||
# MDEV-19526/MDEV-29742 heap number overflow
|
||||
#
|
||||
CREATE TABLE t1(a SMALLINT NOT NULL UNIQUE AUTO_INCREMENT, KEY(a))
|
||||
ENGINE=InnoDB;
|
||||
INSERT INTO t1 (a) SELECT seq FROM seq_1_to_8191;
|
||||
ALTER TABLE t1 FORCE, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
# End of 10.3 tests
|
||||
|
|
|
@ -154,4 +154,19 @@ WHERE LOWER(variable_name) LIKE 'INNODB_BUFFER_POOL_PAGES_FLUSHED';
|
|||
# FLUSH TABLES t1 FOR EXPORT;
|
||||
# UNLOCK TABLES;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-29666 InnoDB fails to purge secondary index records
|
||||
# when indexed virtual columns exist
|
||||
#
|
||||
CREATE TABLE t1 (a INT, b INT, a1 INT AS(a) VIRTUAL,
|
||||
INDEX(a1),INDEX(b)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 SET a=1, b=1;
|
||||
UPDATE t1 SET a=2, b=3;
|
||||
InnoDB 0 transactions not purged
|
||||
FLUSH TABLE t1 FOR EXPORT;
|
||||
page 4: N_RECS=0x0001
|
||||
page 5: N_RECS=0x0001
|
||||
UNLOCK TABLES;
|
||||
DROP TABLE t1;
|
||||
# End of 10.3 tests
|
||||
SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency;
|
||||
|
|
|
@ -5,6 +5,8 @@
|
|||
--source include/have_debug.inc
|
||||
--source include/have_debug_sync.inc
|
||||
--source include/have_sequence.inc
|
||||
# This test often times out with MemorySanitizer.
|
||||
--source include/not_msan.inc
|
||||
|
||||
CREATE TABLE t1(f1 char(200), f2 char(200), f3 char(200),
|
||||
f4 char(200), f5 char(200), f6 char(200),
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
--source include/not_embedded.inc
|
||||
--source include/innodb_page_size.inc
|
||||
--source include/no_valgrind_without_big.inc
|
||||
|
||||
--echo #
|
||||
--echo # Bug#13955083 ALLOW IN-PLACE DDL OPERATIONS ON MISSING
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
--source include/have_innodb.inc
|
||||
# Restarting is not supported when testing the embedded server.
|
||||
--source include/not_embedded.inc
|
||||
--source include/no_valgrind_without_big.inc
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-6076 Persistent AUTO_INCREMENT for InnoDB
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
--source include/have_innodb.inc
|
||||
--source include/no_valgrind_without_big.inc
|
||||
# innodb_change_buffering_debug option is debug only
|
||||
--source include/have_debug.inc
|
||||
# Embedded server tests do not support restarting
|
||||
|
|
|
@ -641,9 +641,12 @@ drop table t2;
|
|||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-19526 heap number overflow
|
||||
--echo # MDEV-19526/MDEV-29742 heap number overflow
|
||||
--echo #
|
||||
CREATE TABLE t1(a SMALLINT NOT NULL UNIQUE AUTO_INCREMENT, KEY(a))
|
||||
ENGINE=InnoDB;
|
||||
INSERT INTO t1 (a) SELECT seq FROM seq_1_to_8191;
|
||||
ALTER TABLE t1 FORCE, ALGORITHM=INPLACE;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo # End of 10.3 tests
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
--source include/default_charset.inc
|
||||
# need to restart server
|
||||
--source include/not_embedded.inc
|
||||
--source include/no_valgrind_without_big.inc
|
||||
|
||||
CREATE SCHEMA `repro`;
|
||||
|
||||
CREATE TABLE `repro`.`crew` (
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
--source include/innodb_encrypt_log.inc
|
||||
--source include/have_debug.inc
|
||||
--source include/have_debug_sync.inc
|
||||
--source include/no_valgrind_without_big.inc
|
||||
|
||||
let $innodb_metrics_select=
|
||||
SELECT name, count FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE subsystem = 'ddl';
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
# MDEV-6424: Mariadb server crashes with assertion failure in file ha_innodb.cc
|
||||
--source include/have_innodb.inc
|
||||
--source include/no_valgrind_without_big.inc
|
||||
|
||||
# DEBUG_SYNC must be compiled in.
|
||||
--source include/have_debug_sync.inc
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
--source include/have_innodb.inc
|
||||
--source include/no_valgrind_without_big.inc
|
||||
#
|
||||
# Test that mysqld does not crash when running ANALYZE TABLE with
|
||||
# different values of the parameter innodb_stats_transient_sample_pages.
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
--source include/have_innodb.inc
|
||||
--source include/have_innodb_punchhole.inc
|
||||
--source include/no_valgrind_without_big.inc
|
||||
|
||||
--disable_query_log
|
||||
--disable_warnings
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
--source include/have_innodb.inc
|
||||
--source include/no_valgrind_without_big.inc
|
||||
# Test for Bug #30423, InnoDBs treatment of NULL in index stats causes
|
||||
# bad "rows examined" estimates.
|
||||
# Implemented InnoDB system variable "innodb_stats_method" with
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
-- source include/have_innodb.inc
|
||||
-- source include/no_valgrind_without_big.inc
|
||||
|
||||
create table bug53290 (x bigint) engine=innodb;
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
--source include/have_innodb.inc
|
||||
--source include/have_innodb_16k.inc
|
||||
--source include/no_valgrind_without_big.inc
|
||||
|
||||
--disable_query_log
|
||||
call mtr.add_suppression("InnoDB: Upgrade after a crash is not supported");
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
--echo # Bug#16418661 - CHANGING NAME IN FOR INNODB_DATA_FILE_PATH SHOULD NOT SUCCEED WITH LOG FILES
|
||||
|
||||
--source include/have_innodb.inc
|
||||
--source include/no_valgrind_without_big.inc
|
||||
|
||||
--disable_query_log
|
||||
call mtr.add_suppression("InnoDB: Could not create undo tablespace.*undo002");
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Test the detection of duplicate tablespaces.
|
||||
|
||||
--source include/have_innodb.inc
|
||||
--source include/not_valgrind.inc
|
||||
--source include/no_valgrind_without_big.inc
|
||||
|
||||
# Embedded server does not support crashing
|
||||
--source include/not_embedded.inc
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue