399 changed files with 14892 additions and 1525 deletions
-
1configure.cmake
-
6include/my_global.h
-
24include/mysql/psi/mysql_socket.h
-
14include/mysql/service_wsrep.h
-
34mysql-test/include/wait_until_ready.inc
-
20mysql-test/std_data/galera-cert.pem
-
28mysql-test/std_data/galera-key.pem
-
99mysql-test/std_data/wsrep_notify.sh
-
21mysql-test/suite/galera/disabled.def
-
12mysql-test/suite/galera/galera_2nodes.cnf
-
71mysql-test/suite/galera/galera_2nodes_as_master.cnf
-
69mysql-test/suite/galera/galera_2nodes_as_slave.cnf
-
74mysql-test/suite/galera/galera_4nodes.cnf
-
9mysql-test/suite/galera/include/galera_have_debug_sync.inc
-
10mysql-test/suite/galera/include/galera_load_provider.inc
-
12mysql-test/suite/galera/include/galera_reset_cluster_address.inc
-
9mysql-test/suite/galera/include/galera_resume.inc
-
29mysql-test/suite/galera/include/galera_sst_restore.inc
-
22mysql-test/suite/galera/include/galera_sst_set_mysqldump.inc
-
113mysql-test/suite/galera/include/galera_st_clean_slave.inc
-
105mysql-test/suite/galera/include/galera_st_disconnect_slave.inc
-
108mysql-test/suite/galera/include/galera_st_kill_slave.inc
-
123mysql-test/suite/galera/include/galera_st_kill_slave_ddl.inc
-
105mysql-test/suite/galera/include/galera_st_shutdown_slave.inc
-
7mysql-test/suite/galera/include/galera_unload_provider.inc
-
23mysql-test/suite/galera/include/galera_wsrep_recover.inc
-
20mysql-test/suite/galera/include/kill_galera.inc
-
18mysql-test/suite/galera/include/shutdown_mysqld.inc
-
22mysql-test/suite/galera/include/start_mysqld.inc
-
36mysql-test/suite/galera/r/binlog_checksum.result
-
38mysql-test/suite/galera/r/create.result
-
40mysql-test/suite/galera/r/galera_account_management.result
-
10mysql-test/suite/galera/r/galera_alter_engine_innodb.result
-
11mysql-test/suite/galera/r/galera_alter_engine_myisam.result
-
10mysql-test/suite/galera/r/galera_alter_table_force.result
-
7mysql-test/suite/galera/r/galera_as_master.result
-
59mysql-test/suite/galera/r/galera_as_master_gtid.result
-
15mysql-test/suite/galera/r/galera_as_master_gtid_change_master.result
-
14mysql-test/suite/galera/r/galera_as_slave.result
-
16mysql-test/suite/galera/r/galera_as_slave_gtid.result
-
10mysql-test/suite/galera/r/galera_bf_abort.result
-
10mysql-test/suite/galera/r/galera_bf_abort_for_update.result
-
8mysql-test/suite/galera/r/galera_bf_abort_ftwrl.result
-
12mysql-test/suite/galera/r/galera_bf_abort_get_lock.result
-
8mysql-test/suite/galera/r/galera_bf_abort_lock_table.result
-
9mysql-test/suite/galera/r/galera_bf_abort_sleep.result
-
12mysql-test/suite/galera/r/galera_binlog_cache_size.result
-
10mysql-test/suite/galera/r/galera_binlog_checksum.result
-
9mysql-test/suite/galera/r/galera_binlog_event_max_size_max.result
-
6mysql-test/suite/galera/r/galera_binlog_event_max_size_min.result
-
79mysql-test/suite/galera/r/galera_binlog_row_image.result
-
12mysql-test/suite/galera/r/galera_binlog_rows_query_log_events.result
-
1mysql-test/suite/galera/r/galera_concurrent_ctas.result
-
55mysql-test/suite/galera/r/galera_create_function.result
-
53mysql-test/suite/galera/r/galera_create_procedure.result
-
47mysql-test/suite/galera/r/galera_create_table_like.result
-
42mysql-test/suite/galera/r/galera_create_trigger.result
-
120mysql-test/suite/galera/r/galera_defaults.result
-
19mysql-test/suite/galera/r/galera_delete_limit.result
-
37mysql-test/suite/galera/r/galera_enum.result
-
18mysql-test/suite/galera/r/galera_events.result
-
6mysql-test/suite/galera/r/galera_fk_multicolumn.result
-
4mysql-test/suite/galera/r/galera_fk_multitable.result
-
32mysql-test/suite/galera/r/galera_flush.result
-
16mysql-test/suite/galera/r/galera_ftwrl.result
-
26mysql-test/suite/galera/r/galera_fulltext.result
-
17mysql-test/suite/galera/r/galera_gcs_fc_limit.result
-
15mysql-test/suite/galera/r/galera_gcs_max_packet_size.result
-
12mysql-test/suite/galera/r/galera_gtid.result
-
52mysql-test/suite/galera/r/galera_insert_ignore.result
-
58mysql-test/suite/galera/r/galera_insert_multi.result
-
184mysql-test/suite/galera/r/galera_ist_innodb_flush_logs.result
-
284mysql-test/suite/galera/r/galera_ist_mysqldump.result
-
43mysql-test/suite/galera/r/galera_ist_restart_joiner.result
-
358mysql-test/suite/galera/r/galera_ist_rsync.result
-
357mysql-test/suite/galera/r/galera_ist_xtrabackup-v2.result
-
11mysql-test/suite/galera/r/galera_kill_ddl.result
-
14mysql-test/suite/galera/r/galera_kill_largechanges.result
-
10mysql-test/suite/galera/r/galera_kill_nochanges.result
-
11mysql-test/suite/galera/r/galera_kill_smallchanges.result
-
21mysql-test/suite/galera/r/galera_lock_table.result
-
58mysql-test/suite/galera/r/galera_log_bin.result
-
21mysql-test/suite/galera/r/galera_log_output_csv.result
-
1018mysql-test/suite/galera/r/galera_many_columns.result
-
2mysql-test/suite/galera/r/galera_many_rows.result
-
17mysql-test/suite/galera/r/galera_many_tables_nopk.result
-
20mysql-test/suite/galera/r/galera_many_tables_pk.result
-
79mysql-test/suite/galera/r/galera_migrate.result
-
28mysql-test/suite/galera/r/galera_multi_database.result
-
24mysql-test/suite/galera/r/galera_myisam_autocommit.result
-
34mysql-test/suite/galera/r/galera_myisam_transactions.result
-
24mysql-test/suite/galera/r/galera_nopk_unicode.result
-
33mysql-test/suite/galera/r/galera_parallel_apply_lock_table.result
-
18mysql-test/suite/galera/r/galera_parallel_autoinc_largetrx.result
-
15mysql-test/suite/galera/r/galera_parallel_autoinc_manytrx.result
-
27mysql-test/suite/galera/r/galera_parallel_simple.result
-
12mysql-test/suite/galera/r/galera_pc_ignore_sb.result
-
26mysql-test/suite/galera/r/galera_pk_bigint_signed.result
-
23mysql-test/suite/galera/r/galera_pk_bigint_unsigned.result
-
57mysql-test/suite/galera/r/galera_query_cache.result
@ -0,0 +1,34 @@ |
|||
# If wsrep patch is enabled, wait for a minute until node is ready. |
|||
# Note: include/wait_for_status_var.inc cannot be used here, as server rejects |
|||
# all commands except SHOW & SET until its ready. (see wsrep_ready status |
|||
# variable) |
|||
|
|||
--disable_result_log |
|||
--disable_query_log |
|||
--enable_reconnect |
|||
|
|||
let $counter= 600; |
|||
|
|||
# Check if wsrep_ready status variable exists. |
|||
if (`SHOW STATUS LIKE 'wsrep_ready'`) |
|||
{ |
|||
let $wsrep_ready= query_get_value("SHOW STATUS LIKE 'wsrep_ready'", Value, 1); |
|||
|
|||
while ($wsrep_ready == 'OFF') |
|||
{ |
|||
if (!$counter) |
|||
{ |
|||
echo ===============================================; |
|||
echo Node still not ready after a minute, giving up!; |
|||
echo ===============================================; |
|||
die; |
|||
} |
|||
dec $counter; |
|||
sleep 0.1; |
|||
let $wsrep_ready= query_get_value("SHOW STATUS LIKE 'wsrep_ready'", Value, 1); |
|||
} |
|||
} |
|||
|
|||
--disable_reconnect |
|||
--enable_query_log |
|||
--enable_result_log |
@ -0,0 +1,20 @@ |
|||
-----BEGIN CERTIFICATE----- |
|||
MIIDWTCCAkGgAwIBAgIJAIlW4JmZGnU4MA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNV |
|||
BAYTAkZJMRUwEwYDVQQHDAxEZWZhdWx0IENpdHkxHDAaBgNVBAoME0RlZmF1bHQg |
|||
Q29tcGFueSBMdGQwIBcNMTQxMDI0MDc1MTU1WhgPMzAxNDAyMjQwNzUxNTVaMEIx |
|||
CzAJBgNVBAYTAkZJMRUwEwYDVQQHDAxEZWZhdWx0IENpdHkxHDAaBgNVBAoME0Rl |
|||
ZmF1bHQgQ29tcGFueSBMdGQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB |
|||
AQDDzU6xLZDD5rZENsOpTpTmqS8YisBaefU3ZeN7VJepZZ/7unM/1YLGJtuRh2Qa |
|||
MyTkvyjzf7bSFsDt9L5lfQwBBblVeWkrCvGnQmHDQQYB7JrSmFDPz9W9Mxf9Q2BW |
|||
B3lcoKXXJgMnWw0WGrt0lEdFp9gWbq8H9hwJdjpyyk4ZTIuucSOD4JUP3QFEhYU5 |
|||
kdcIbDRVw81J4eAZ6EdvbjDN05S7qWjW7rJTnCHAHEd18hcsMGwjpwhjEaSdhMrM |
|||
mhOeL8kuQV0fI8v2xfYBliIn9xBZGOVzySPzwFmQceORlW6F3V5w6mwFkmuXqXWX |
|||
Qo98swTu7mb89qVYmR71d3L3AgMBAAGjUDBOMB0GA1UdDgQWBBRdWet/kGNTyvXK |
|||
wuBdP/eSldOgWjAfBgNVHSMEGDAWgBRdWet/kGNTyvXKwuBdP/eSldOgWjAMBgNV |
|||
HRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQCcJpP+DR4AJxVelNTSZa+V38c+ |
|||
jgrMD2Ku2eU8NQlsjgMfNEU5Md/g7FpP8aCFzVf0kAAT7DxZmSE3uWXQbMXyVJmy |
|||
bF+qXinf71QzdWULm6sASoshC6wbHnXL9ZjWQ3gh1nqVgo3MmLQYrb3eJfKaaLoc |
|||
wpjhYxVxGFOx1ITN3jED64lUfoLHvR6NFbESYKAuAAzSNqX4HOQ3uGk2THM8JocZ |
|||
oH2+38d81Kd4HQ7DDDKS/isG0+rR60Ti1cMgu7OT7p1dZCwT/KQuI5eGjE9lubkc |
|||
yAJjaod4rVLdBri3XVvtySfS2+/75qUgv2TF7d/s7mxMq4DDt29yeKSUhZCs |
|||
-----END CERTIFICATE----- |
@ -0,0 +1,28 @@ |
|||
-----BEGIN PRIVATE KEY----- |
|||
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDDzU6xLZDD5rZE |
|||
NsOpTpTmqS8YisBaefU3ZeN7VJepZZ/7unM/1YLGJtuRh2QaMyTkvyjzf7bSFsDt |
|||
9L5lfQwBBblVeWkrCvGnQmHDQQYB7JrSmFDPz9W9Mxf9Q2BWB3lcoKXXJgMnWw0W |
|||
Grt0lEdFp9gWbq8H9hwJdjpyyk4ZTIuucSOD4JUP3QFEhYU5kdcIbDRVw81J4eAZ |
|||
6EdvbjDN05S7qWjW7rJTnCHAHEd18hcsMGwjpwhjEaSdhMrMmhOeL8kuQV0fI8v2 |
|||
xfYBliIn9xBZGOVzySPzwFmQceORlW6F3V5w6mwFkmuXqXWXQo98swTu7mb89qVY |
|||
mR71d3L3AgMBAAECggEBAIMT0UdZSp1quL/nrYqNGa9kuSuDz4uCM3+3jNcGZVU4 |
|||
vCYHxpmINLi0UK8W5ROJA3zC4AZKjDgOlW93NXK5iKyyiUTIN3hiJi4jiVDuGbh2 |
|||
DZtH7mmAKAU1zCx2y2osLLmurfbe8qOJF7ShhrZfgWsHFujFhhUdU92dsTkhZ7EU |
|||
2NF8ScxCo4PbOJoHC3j0ApfwCMxUMAKZF5+08EeKYqK7OAXI79HeIvEbHn3cUDGm |
|||
bvg6ykwlz2UUO4sg+xdCmn1Bt36HF/4e973Y5fkE/vd9mryHIlu9t7GJgWyUiPr8 |
|||
BGEoAWDSpPOMd/b9ivtxh9Gd+LW/uitMuBIfrRPgz9kCgYEA+JqeeD2xqF2IzZyq |
|||
i1UqgKe3su2U2zhkgbu1h/1M/reNIZGylF0wFs3P+kNIB2NavmHjXcgSjdJzqRL9 |
|||
XEWfFJRmeARo9RTEQEVd8zp1Eo8ISeiksGgvbL4rrNIRR5V5MZytfISRiGCWN6jx |
|||
ulJ6EieQk5EcvknGlWpJY/bBsQ0CgYEAyaCLqrR38gVl2Z0t6YlhW/HWAwGt+lf4 |
|||
apN1AS4uykx7wRW2B0y9QUDfsrYeVlbbeRPP4UzPmJez+J2cweoIIeFFyo3KP2L7 |
|||
79E3EVYywjXhPg52F7OjFA4Bp970XclIC5Al7kDufSgwZmWdceSx4Jjc5ixyQEC8 |
|||
Ad0ThgP6yxMCgYAvC4OFmZcvF1Q2JLmZWGqMojB/KbqLqaZLbqwxqduSMEYC3kF/ |
|||
FgttpVEAOQ8+ZqzbbkbKjnwEXpkIm9FaTsqF6HdjquH5zw48Y2QeDSfudSbKZb4U |
|||
rAKdf3dgYvhmJYEjxFSIRcYMmsqSieQEsGrtWJNheYqI8AkmaVCuHBoXWQKBgQCj |
|||
daelNffD2wJuQNI28axfiRjSiSsNuQHpDTCfS1ydnxH5QGu5UUphO4HfdWv03SfC |
|||
6f/vDIGEmQBLvyOVxfDf3qzhAMCFUO8kxj1ZrcMq1dmMoNa2cmj0WkKXYNZFrmfd |
|||
D/jgRf3Ss6FBcoIJErnudp8nb8MUOibxb9RjIpjQxwKBgEliKaGN+/QkPTNJ4vXz |
|||
609CIilxpE+YVTzlv3YeZP5HqsJTJPS2ARIUr/Pjpbl3LHfYNeeGDCwgkJIK0JJH |
|||
iA1M51q6t3zG2y9gKmC15FF0jShoZkRgqBxqrSHAnrCo5t2C48ElxJ3FEU8T75sz |
|||
dlGTbkmR0Wm43Kh++dWICJ3g |
|||
-----END PRIVATE KEY----- |
@ -0,0 +1,99 @@ |
|||
#!/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 |
|||
HOST=127.0.0.1 |
|||
PORT=$NODE_MYPORT_1 |
|||
|
|||
SCHEMA="mtr_wsrep_notify" |
|||
MEMB_TABLE="$SCHEMA.membership" |
|||
STATUS_TABLE="$SCHEMA.status" |
|||
|
|||
BEGIN=" |
|||
SET wsrep_on=0; |
|||
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;" |
|||
|
|||
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 "SET wsrep_on=0; BEGIN; UPDATE $STATUS_TABLE SET status='$STATUS'; COMMIT;" |
|||
} |
|||
|
|||
COM=status_update # not a configuration change by default |
|||
|
|||
while [ $# -gt 0 ] |
|||
do |
|||
case $1 in |
|||
--status) |
|||
STATUS=$2 |
|||
shift |
|||
;; |
|||
--uuid) |
|||
CLUSTER_UUID=$2 |
|||
shift |
|||
;; |
|||
--primary) |
|||
[ "$2" = "yes" ] && PRIMARY="1" || PRIMARY="0" |
|||
COM=configuration_change |
|||
shift |
|||
;; |
|||
--index) |
|||
INDEX=$2 |
|||
shift |
|||
;; |
|||
--members) |
|||
MEMBERS=$2 |
|||
shift |
|||
;; |
|||
esac |
|||
shift |
|||
done |
|||
|
|||
# Undefined means node is shutting down |
|||
if [ "$STATUS" != "Undefined" ] |
|||
then |
|||
$COM | mysql -B -u$USER -h$HOST -P$PORT |
|||
fi |
|||
|
|||
exit 0 |
|||
# |
@ -0,0 +1,21 @@ |
|||
galera_wsrep_provider_unset_set : lp1379204 'Unsupported protocol downgrade: incremental data collection disabled. Expect abort.' |
|||
galera_kill_nochanges : mysql-wsrep#24 Galera server does not restart properly if killed |
|||
galera_bf_abort_for_update : mysql-wsrep#26 SELECT FOR UPDATE sometimes allowed to proceed in the face of a concurrent update |
|||
galera_toi_ddl_fk_insert : qa#39 galera_toi_ddl_fk_insert fails sporadically |
|||
galera_binlog_row_image : MDEV-7471 - Enable binlog_row_image parameter in MariaDB |
|||
galera_binlog_rows_query_log_events : Unknown system variable 'binlog_rows_query_log_events' (see annotate_rows_log_event) |
|||
|
|||
galera_ist_mysqldump : Lost connection to MySQL server during query |
|||
galera_ist_xtrabackup-v2 : mysqltest failed but provided no output |
|||
galera_ist_innodb_flush_logs : mysqltest failed but provided no output |
|||
galera_sst_mysqldump : query 'show status' failed with wrong errno 1927 |
|||
galera_as_master_gtid : Needs to be re-worked |
|||
galera_as_master_gtid_change_master : Needs to be re-worked |
|||
galera_migrate : query 'let $success= `$wait_condition`' failed: 1146 |
|||
galera_var_notify_cmd : Result content mismatch |
|||
query_cache : Fails intermittently due to content mismatch. Needs to be investigated |
|||
basic : Fails intermittently without providing any output. Needs to be investigated |
|||
galera_var_auto_inc_control_on : Failing sporadically with content mismatch |
|||
galera_parallel_simple : Failing sporadically |
|||
galera_bf_abort : Failing sporadically |
|||
galera_log_output_csv : Failing sporadically |
@ -0,0 +1,71 @@ |
|||
# |
|||
# This file creates a setup with a 2-node Galera cluster (master) and one |
|||
# standalone MariaDB server, to be used as a slave. |
|||
# |
|||
|
|||
# Use default setting for mysqld processes |
|||
!include include/default_mysqld.cnf |
|||
|
|||
[mysqld] |
|||
binlog-format=row |
|||
innodb-autoinc-lock-mode=2 |
|||
default-storage-engine=innodb |
|||
|
|||
[mysqld.1] |
|||
#galera_port=@OPT.port |
|||
#ist_port=@OPT.port |
|||
#sst_port=@OPT.port |
|||
|
|||
server-id=1 |
|||
log-bin=mysqld-bin |
|||
log_slave_updates |
|||
|
|||
wsrep-on=1 |
|||
wsrep-provider=@ENV.WSREP_PROVIDER |
|||
wsrep_provider_options='base_port=@mysqld.1.#galera_port;gcache.size=10M' |
|||
wsrep_cluster_address=gcomm:// |
|||
wsrep_sst_receive_address='127.0.0.1:@mysqld.1.#sst_port' |
|||
wsrep_node_address=127.0.0.1 |
|||
wsrep_node_incoming_address=127.0.0.1:@mysqld.1.port |
|||
# enforce read-committed characteristics across the cluster |
|||
wsrep-causal-reads=ON |
|||
wsrep-sync-wait=7 |
|||
|
|||
[mysqld.2] |
|||
#galera_port=@OPT.port |
|||
#ist_port=@OPT.port |
|||
#sst_port=@OPT.port |
|||
|
|||
server-id=2 |
|||
log-bin=mysqld-bin |
|||
log_slave_updates |
|||
|
|||
wsrep-on=1 |
|||
wsrep_provider=@ENV.WSREP_PROVIDER |
|||
wsrep_provider_options='base_port=@mysqld.2.#galera_port;gcache.size=10M' |
|||
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port' |
|||
wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port' |
|||
wsrep_node_address=127.0.0.1 |
|||
wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port |
|||
# enforce read-committed characteristics across the cluster |
|||
wsrep-causal-reads=ON |
|||
wsrep-sync-wait=7 |
|||
|
|||
[mysqld.3] |
|||
server-id=3 |
|||
|
|||
[ENV] |
|||
NODE_MYPORT_1= @mysqld.1.port |
|||
NODE_MYSOCK_1= @mysqld.1.socket |
|||
|
|||
NODE_MYPORT_2= @mysqld.2.port |
|||
NODE_MYSOCK_2= @mysqld.2.socket |
|||
|
|||
NODE_MYPORT_3= @mysqld.3.port |
|||
NODE_MYSOCK_3= @mysqld.3.socket |
|||
|
|||
NODE_GALERAPORT_1= @mysqld.1.#galera_port |
|||
NODE_GALERAPORT_2= @mysqld.2.#galera_port |
|||
|
|||
NODE_SSTPORT_1= @mysqld.1.#sst_port |
|||
NODE_SSTPORT_2= @mysqld.2.#sst_port |
@ -0,0 +1,69 @@ |
|||
# |
|||
# This .cnf file creates a setup with 1 standard MariaDB server, followed by a 2-node Galera cluster |
|||
# |
|||
|
|||
# Use default setting for mysqld processes |
|||
!include include/default_mysqld.cnf |
|||
|
|||
[mysqld] |
|||
binlog-format=row |
|||
|
|||
[mysqld.1] |
|||
log-bin |
|||
server-id=1 |
|||
|
|||
[mysqld.2] |
|||
#galera_port=@OPT.port |
|||
#ist_port=@OPT.port |
|||
#sst_port=@OPT.port |
|||
|
|||
wsrep-on=1 |
|||
innodb-autoinc-lock-mode=2 |
|||
default-storage-engine=innodb |
|||
wsrep-provider=@ENV.WSREP_PROVIDER |
|||
wsrep_node_address=127.0.0.1 |
|||
wsrep-cluster-address=gcomm:// |
|||
wsrep_provider_options='base_port=@mysqld.2.#galera_port;gcache.size=10M' |
|||
wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port |
|||
wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port' |
|||
|
|||
# enforce read-committed characteristics across the cluster |
|||
wsrep-causal-reads=ON |
|||
wsrep-sync-wait=7 |
|||
server-id=2 |
|||
|
|||
[mysqld.3] |
|||
#galera_port=@OPT.port |
|||
#ist_port=@OPT.port |
|||
#sst_port=@OPT.port |
|||
|
|||
wsrep-on=1 |
|||
innodb-autoinc-lock-mode=2 |
|||
default-storage-engine=innodb |
|||
wsrep-provider=@ENV.WSREP_PROVIDER |
|||
wsrep_node_address=127.0.0.1 |
|||
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.2.#galera_port' |
|||
wsrep_provider_options='base_port=@mysqld.3.#galera_port;gcache.size=10M' |
|||
wsrep_node_incoming_address=127.0.0.1:@mysqld.3.port |
|||
wsrep_sst_receive_address='127.0.0.1:@mysqld.3.#sst_port' |
|||
|
|||
# enforce read-committed characteristics across the cluster |
|||
wsrep-causal-reads=ON |
|||
wsrep-sync-wait=7 |
|||
server-id=3 |
|||
|
|||
[ENV] |
|||
NODE_MYPORT_1= @mysqld.1.port |
|||
NODE_MYSOCK_1= @mysqld.1.socket |
|||
|
|||
NODE_MYPORT_2= @mysqld.2.port |
|||
NODE_MYSOCK_2= @mysqld.2.socket |
|||
|
|||
NODE_MYPORT_3= @mysqld.2.port |
|||
NODE_MYSOCK_3= @mysqld.2.socket |
|||
|
|||
NODE_GALERAPORT_2= @mysqld.2.#galera_port |
|||
NODE_GALERAPORT_3= @mysqld.3.#galera_port |
|||
|
|||
NODE_SSTPORT_2= @mysqld.2.#sst_port |
|||
NODE_SSTPORT_3= @mysqld.3.#sst_port |
@ -0,0 +1,74 @@ |
|||
# Use default setting for mysqld processes |
|||
!include include/default_mysqld.cnf |
|||
|
|||
[mysqld] |
|||
binlog-format=row |
|||
innodb-autoinc-lock-mode=2 |
|||
default-storage-engine=innodb |
|||
wsrep-on=1 |
|||
wsrep-provider=@ENV.WSREP_PROVIDER |
|||
wsrep_node_address=127.0.0.1 |
|||
# enforce read-committed characteristics across the cluster |
|||
wsrep-causal-reads=ON |
|||
wsrep-sync-wait=7 |
|||
|
|||
[mysqld.1] |
|||
#galera_port=@OPT.port |
|||
#ist_port=@OPT.port |
|||
#sst_port=@OPT.port |
|||
wsrep-cluster-address=gcomm:// |
|||
wsrep_provider_options='base_port=@mysqld.1.#galera_port;gcache.size=10M' |
|||
wsrep_node_incoming_address=127.0.0.1:@mysqld.1.port |
|||
wsrep_sst_receive_address='127.0.0.1:@mysqld.1.#sst_port' |
|||
|
|||
[mysqld.2] |
|||
#galera_port=@OPT.port |
|||
#ist_port=@OPT.port |
|||
#sst_port=@OPT.port |
|||
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port' |
|||
wsrep_provider_options='base_port=@mysqld.2.#galera_port;gcache.size=10M' |
|||
wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port |
|||
wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port' |
|||
|
|||
|
|||
[mysqld.3] |
|||
#galera_port=@OPT.port |
|||
#ist_port=@OPT.port |
|||
#sst_port=@OPT.port |
|||
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port' |
|||
wsrep_provider_options='base_port=@mysqld.3.#galera_port;gcache.size=10M' |
|||
wsrep_node_incoming_address=127.0.0.1:@mysqld.3.port |
|||
wsrep_sst_receive_address='127.0.0.1:@mysqld.3.#sst_port' |
|||
|
|||
|
|||
[mysqld.4] |
|||
#galera_port=@OPT.port |
|||
#ist_port=@OPT.port |
|||
#sst_port=@OPT.port |
|||
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port' |
|||
wsrep_provider_options='base_port=@mysqld.4.#galera_port;gcache.size=10M' |
|||
wsrep_node_incoming_address=127.0.0.1:@mysqld.4.port |
|||
wsrep_sst_receive_address='127.0.0.1:@mysqld.4.#sst_port' |
|||
|
|||
[ENV] |
|||
NODE_MYPORT_1= @mysqld.1.port |
|||
NODE_MYSOCK_1= @mysqld.1.socket |
|||
|
|||
NODE_MYPORT_2= @mysqld.2.port |
|||
NODE_MYSOCK_2= @mysqld.2.socket |
|||
|
|||
NODE_MYPORT_3= @mysqld.3.port |
|||
NODE_MYSOCK_3= @mysqld.3.socket |
|||
|
|||
NODE_MYPORT_4= @mysqld.4.port |
|||
NODE_MYSOCK_4= @mysqld.4.socket |
|||
|
|||
NODE_GALERAPORT_1= @mysqld.1.#galera_port |
|||
NODE_GALERAPORT_2= @mysqld.2.#galera_port |
|||
NODE_GALERAPORT_3= @mysqld.3.#galera_port |
|||
NODE_GALERAPORT_4= @mysqld.4.#galera_port |
|||
|
|||
NODE_SSTPORT_1= @mysqld.1.#sst_port |
|||
NODE_SSTPORT_2= @mysqld.2.#sst_port |
|||
NODE_SSTPORT_3= @mysqld.3.#sst_port |
|||
NODE_SSTPORT_4= @mysqld.4.#sst_port |
@ -0,0 +1,9 @@ |
|||
--disable_query_log |
|||
|
|||
--let $galera_have_debug_sync = `SELECT 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_debug_sync_waiters'` |
|||
|
|||
--if (!$galera_have_debug_sync) { |
|||
--skip "Test requires Galera debug library with debug_sync functionality" |
|||
} |
|||
|
|||
--enable_query_log |
@ -0,0 +1,10 @@ |
|||
--echo Loading wsrep provider ... |
|||
|
|||
--disable_query_log |
|||
--eval SET GLOBAL wsrep_provider = '$wsrep_provider_orig'; |
|||
--eval SET GLOBAL wsrep_cluster_address = '$wsrep_cluster_address_orig'; |
|||
--enable_query_log |
|||
|
|||
--enable_reconnect |
|||
--source include/wait_until_connected_again.inc |
|||
--source include/wait_until_ready.inc |
@ -0,0 +1,12 @@ |
|||
--echo Resetting wsrep_cluster_address |
|||
|
|||
--let $wsrep_cluster_size_orig = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'` |
|||
|
|||
SET GLOBAL wsrep_cluster_address = @@wsrep_cluster_address; |
|||
|
|||
--source include/wait_until_connected_again.inc |
|||
|
|||
# Wait for wsrep_cluster_size to go back to its original value |
|||
|
|||
--let $wait_condition = SELECT VARIABLE_VALUE = $wsrep_cluster_size_orig FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size' |
|||
--source include/wait_condition.inc |
@ -0,0 +1,9 @@ |
|||
--echo Resuming node ... |
|||
--perl |
|||
my $pid_filename = $ENV{'_SUSPEND_NODE_PIDFILE'}; |
|||
my $mysqld_pid = `cat $pid_filename`; |
|||
chomp($mysqld_pid); |
|||
system("kill -18 $mysqld_pid"); |
|||
exit(0); |
|||
EOF |
|||
|
@ -0,0 +1,29 @@ |
|||
# |
|||
# Restore the various options used for SST to their original values |
|||
# so that MTR's end-of-test checks are happy. |
|||
# |
|||
|
|||
--connection node_1 |
|||
CALL mtr.add_suppression("Slave SQL: Error 'The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement' on query"); |
|||
|
|||
--disable_query_log |
|||
--eval SET GLOBAL wsrep_sst_auth = '$wsrep_sst_auth_orig'; |
|||
--enable_query_log |
|||
|
|||
--error 0,ER_CANNOT_USER |
|||
DROP USER sst; |
|||
|
|||
--connection node_2 |
|||
CALL mtr.add_suppression("Slave SQL: Error 'The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement' on query"); |
|||
CALL mtr.add_suppression("InnoDB: Error: Table \"mysql\"\\.\"innodb_index_stats\" not found"); |
|||
CALL mtr.add_suppression("InnoDB: New log files created"); |
|||
CALL mtr.add_suppression("InnoDB: Creating foreign key constraint system tables"); |
|||
CALL mtr.add_suppression("Can't open and lock time zone table"); |
|||
CALL mtr.add_suppression("Can't open and lock privilege tables"); |
|||
CALL mtr.add_suppression("Info table is not ready to be used"); |
|||
CALL mtr.add_suppression("Native table .* has the wrong structure"); |
|||
|
|||
--disable_query_log |
|||
--eval SET GLOBAL wsrep_sst_method = '$wsrep_sst_method_orig'; |
|||
--eval SET GLOBAL wsrep_sst_receive_address = '$wsrep_sst_receive_address_orig'; |
|||
--enable_query_log |
@ -0,0 +1,22 @@ |
|||
# |
|||
# Set all the variables required for the SST to be performed via mysqldump |
|||
# |
|||
|
|||
--echo Setting SST method to mysqldump ... |
|||
|
|||
--connection node_1 |
|||
# We need a user with a password to perform SST, otherwise we hit LP #1378253 |
|||
GRANT ALL PRIVILEGES ON *.* TO 'sst' IDENTIFIED BY 'sst'; |
|||
|
|||
--let $wsrep_sst_auth_orig = `SELECT @@wsrep_sst_auth` |
|||
SET GLOBAL wsrep_sst_auth = 'sst:sst'; |
|||
|
|||
--connection node_2 |
|||
--let $wsrep_sst_method_orig = `SELECT @@wsrep_sst_method` |
|||
--let $wsrep_sst_receive_address_orig = `SELECT @@wsrep_sst_receive_address` |
|||
|
|||
--disable_query_log |
|||
# Set wsrep_sst_receive_address to the SQL port |
|||
--eval SET GLOBAL wsrep_sst_receive_address = '127.0.0.2:$NODE_MYPORT_2'; |
|||
--enable_query_log |
|||
SET GLOBAL wsrep_sst_method = 'mysqldump'; |
@ -0,0 +1,113 @@ |
|||
--echo Performing State Transfer on a server that starts from a clean var directory |
|||
--echo This is accomplished by shutting down node #2 and removing its var directory before restarting it |
|||
|
|||
--connection node_1 |
|||
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ('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; |
|||
|
|||
--echo Shutting down server ... |
|||
--source include/shutdown_mysqld.inc |
|||
|
|||
--connection node_1 |
|||
--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size' |
|||
--source include/wait_condition.inc |
|||
|
|||
--echo Cleaning var directory ... |
|||
--remove_files_wildcard $MYSQLTEST_VARDIR/mysqld.2/data/mtr |
|||
--remove_files_wildcard $MYSQLTEST_VARDIR/mysqld.2/data/performance_schema |
|||
--remove_files_wildcard $MYSQLTEST_VARDIR/mysqld.2/data/test |
|||
--remove_files_wildcard $MYSQLTEST_VARDIR/mysqld.2/data/mysql |
|||
--remove_files_wildcard $MYSQLTEST_VARDIR/mysqld.2/data |
|||
|
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ('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_clean_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1 |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 |
|||
--echo Starting server ... |
|||
--source include/start_mysqld.inc |
|||
--source include/wait_until_ready.inc |
|||
|
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ('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 ('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_clean_slave |
|||
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; |
|||
|
|||
SELECT COUNT(*) = 35 FROM t1; |
|||
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; |
|||
COMMIT; |
|||
SET AUTOCOMMIT=ON; |
|||
|
|||
--connection node_1 |
|||
SELECT COUNT(*) = 35 FROM t1; |
|||
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; |
|||
DROP TABLE t1; |
|||
COMMIT; |
|||
SET AUTOCOMMIT=ON; |
@ -0,0 +1,105 @@ |
|||
--echo Performing State Transfer on a server that has been temporarily disconnected |
|||
|
|||
--connection node_1 |
|||
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ('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; |
|||
|
|||
--source suite/galera/include/galera_unload_provider.inc |
|||
|
|||
--connection node_1 |
|||
--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size' |
|||
--source include/wait_condition.inc |
|||
|
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ('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 ('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 |
|||
--source suite/galera/include/galera_load_provider.inc |
|||
|
|||
--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size' |
|||
--source include/wait_condition.inc |
|||
|
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ('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 ('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 ('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; |
|||
|
|||
SELECT COUNT(*) = 35 FROM t1; |
|||
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; |
|||
COMMIT; |
|||
SET AUTOCOMMIT=ON; |
|||
|
|||
--connection node_1 |
|||
SELECT COUNT(*) = 35 FROM t1; |
|||
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; |
|||
DROP TABLE t1; |
|||
COMMIT; |
|||
SET AUTOCOMMIT=ON; |
@ -0,0 +1,108 @@ |
|||
--echo Performing State Transfer on a server that has been killed and restarted |
|||
|
|||
--connection node_1 |
|||
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ('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; |
|||
|
|||
--source include/kill_galera.inc |
|||
|
|||
--connection node_1 |
|||
--source include/wait_until_connected_again.inc |
|||
--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size' |
|||
--source include/wait_condition.inc |
|||
|
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ('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 ('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 |
|||
--let $galera_wsrep_recover_server_id=2 |
|||
--source suite/galera/include/galera_wsrep_recover.inc |
|||
|
|||
--echo Starting server ... |
|||
--source include/start_mysqld.inc |
|||
--source include/wait_until_ready.inc |
|||
|
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ('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 ('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 ('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; |
|||
|
|||
SELECT COUNT(*) = 35 FROM t1; |
|||
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; |
|||
COMMIT; |
|||
SET AUTOCOMMIT=ON; |
|||
|
|||
--connection node_1 |
|||
SELECT COUNT(*) = 35 FROM t1; |
|||
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; |
|||
DROP TABLE t1; |
|||
COMMIT; |
|||
SET AUTOCOMMIT=ON; |
@ -0,0 +1,123 @@ |
|||
--echo Performing State Transfer on a server that has been killed and restarted |
|||
--echo while a DDL was in progress on it |
|||
|
|||
--connection node_1 |
|||
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ('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; |
|||
|
|||
# Suspend the applier as it applies the ALTER TABLE |
|||
--let $debug_orig = `SELECT @@debug_dbug` |
|||
SET GLOBAL debug_dbug = 'd,sync.alter_opened_table'; |
|||
|
|||
--connection node_1 |
|||
ALTER TABLE t1 ADD COLUMN f2 INTEGER; |
|||
|
|||
--connection node_2 |
|||
SET wsrep_sync_wait = 0; |
|||
--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE = 'debug sync point: now' |
|||
--source include/wait_condition.inc |
|||
|
|||
--source include/kill_galera.inc |
|||
|
|||
--connection node_1 |
|||
--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size' |
|||
--source include/wait_condition.inc |
|||
|
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 (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 (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 |
|||
--let $galera_wsrep_recover_server_id=2 |
|||
--source suite/galera/include/galera_wsrep_recover.inc |
|||
|
|||
--connection node_2 |
|||
--echo Starting server ... |
|||
--source include/start_mysqld.inc |
|||
--source include/wait_until_ready.inc |
|||
|
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 (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 (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 (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; |
|||
|
|||
SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; |
|||
SELECT COUNT(*) = 35 FROM t1; |
|||
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; |
|||
COMMIT; |
|||
SET AUTOCOMMIT=ON; |
|||
|
|||
--connection node_1 |
|||
SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; |
|||
SELECT COUNT(*) = 35 FROM t1; |
|||
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; |
|||
DROP TABLE t1; |
|||
COMMIT; |
|||
SET AUTOCOMMIT=ON; |
|||
|
|||
SET GLOBAL debug_dbug = $debug_orig; |
@ -0,0 +1,105 @@ |
|||
--echo Performing State Transfer on a server that has been shut down cleanly and restarted |
|||
|
|||
--connection node_1 |
|||
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ('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; |
|||
|
|||
--echo Shutting down server ... |
|||
--source include/shutdown_mysqld.inc |
|||
|
|||
--connection node_1 |
|||
--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size' |
|||
--source include/wait_condition.inc |
|||
|
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ('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 ('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 |
|||
--echo Starting server ... |
|||
--source include/start_mysqld.inc |
|||
--source include/wait_until_ready.inc |
|||
|
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ('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 ('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 ('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; |
|||
|
|||
SELECT COUNT(*) = 35 FROM t1; |
|||
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; |
|||
COMMIT; |
|||
SET AUTOCOMMIT=ON; |
|||
|
|||
--connection node_1 |
|||
SELECT COUNT(*) = 35 FROM t1; |
|||
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1; |
|||
DROP TABLE t1; |
|||
COMMIT; |
|||
SET AUTOCOMMIT=ON; |
@ -0,0 +1,7 @@ |
|||
--echo Unloading wsrep provider ... |
|||
|
|||
--let $wsrep_cluster_address_orig = `SELECT @@wsrep_cluster_address` |
|||
--let $wsrep_provider_orig = `SELECT @@wsrep_provider` |
|||
--let $wsrep_provider_options_orig = `SELECT @@wsrep_provider_options` |
|||
|
|||
SET GLOBAL wsrep_provider = 'none'; |
@ -0,0 +1,23 @@ |
|||
--echo Performing --wsrep-recover ... |
|||
--exec $MYSQLD --defaults-group-suffix=.$galera_wsrep_recover_server_id --defaults-file=$MYSQLTEST_VARDIR/my.cnf --innodb --wsrep-recover > $MYSQL_TMP_DIR/galera_wsrep_recover.log 2>&1 |
|||
|
|||
--perl |
|||
use strict; |
|||
my $wsrep_start_position_str = "grep 'WSREP: Recovered position:' $ENV{MYSQL_TMP_DIR}/galera_wsrep_recover.log | sed 's/.*WSREP\:\ Recovered\ position://' | sed 's/^[ \t]*//'"; |
|||
my $wsrep_start_position = `grep 'WSREP: Recovered position:' $ENV{MYSQL_TMP_DIR}/galera_wsrep_recover.log | sed 's/.*WSREP\:\ Recovered\ position://' | sed 's/^[ \t]*//'`; |
|||
chomp($wsrep_start_position); |
|||
|
|||
die if $wsrep_start_position eq ''; |
|||
|
|||
open(FILE, ">", "$ENV{MYSQL_TMP_DIR}/galera_wsrep_start_position.inc") or die; |
|||
print FILE "--let \$galera_wsrep_start_position = $wsrep_start_position\n"; |
|||
close FILE; |
|||
EOF |
|||
|
|||
--source $MYSQL_TMP_DIR/galera_wsrep_start_position.inc |
|||
|
|||
if ($galera_wsrep_start_position == '') { |
|||
--die "Could not obtain wsrep_start_position." |
|||
} |
|||
|
|||
--remove_file $MYSQL_TMP_DIR/galera_wsrep_start_position.inc |
@ -0,0 +1,20 @@ |
|||
--echo Killing server ... |
|||
|
|||
# Write file to make mysql-test-run.pl expect the crash, but don't start it |
|||
--let $_server_id= `SELECT @@server_id` |
|||
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.$_server_id.expect |
|||
--exec echo "wait" > $_expect_file_name |
|||
|
|||
# Kill the connected server |
|||
--disable_reconnect |
|||
--let KILL_NODE_PIDFILE = `SELECT @@pid_file` |
|||
|
|||
--perl |
|||
my $pid_filename = $ENV{'KILL_NODE_PIDFILE'}; |
|||
my $mysqld_pid = `cat $pid_filename`; |
|||
chomp($mysqld_pid); |
|||
system("kill -9 $mysqld_pid"); |
|||
exit(0); |
|||
EOF |
|||
|
|||
--source include/wait_until_disconnected.inc |
@ -0,0 +1,18 @@ |
|||
# This is the first half of include/restart_mysqld.inc. |
|||
if ($rpl_inited) |
|||
{ |
|||
if (!$allow_rpl_inited) |
|||
{ |
|||
--die ERROR IN TEST: When using the replication test framework (master-slave.inc, rpl_init.inc etc), use rpl_restart_server.inc instead of restart_mysqld.inc. If you know what you are doing and you really have to use restart_mysqld.inc, set allow_rpl_inited=1 before you source restart_mysqld.inc |
|||
} |
|||
} |
|||
|
|||
# Write file to make mysql-test-run.pl expect the "crash", but don't start it |
|||
--let $_server_id= `SELECT @@server_id` |
|||
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.$_server_id.expect |
|||
--exec echo "wait" > $_expect_file_name |
|||
|
|||
# Send shutdown to the connected server |
|||
--shutdown_server |
|||
--source include/wait_until_disconnected.inc |
|||
|
@ -0,0 +1,22 @@ |
|||
# Include this script only after using shutdown_mysqld.inc |
|||
# where $_expect_file_name was initialized. |
|||
# Write file to make mysql-test-run.pl start up the server again |
|||
|
|||
if ($galera_wsrep_start_position != '') { |
|||
--echo Using --wsrep-start-position when starting mysqld ... |
|||
--exec echo "restart:$start_mysqld_params --wsrep-start-position=$galera_wsrep_start_position" > $_expect_file_name |
|||
--let $galera_wsrep_start_position = 0 |
|||
} |
|||
|
|||
if ($galera_wsrep_start_position == '') { |
|||
--exec echo "restart:$start_mysqld_params" > $_expect_file_name |
|||
} |
|||
|
|||
# Turn on reconnect |
|||
--enable_reconnect |
|||
|
|||
# Call script that will poll the server waiting for it to be back online again |
|||
--source include/wait_until_connected_again.inc |
|||
|
|||
# Turn off reconnect again |
|||
--disable_reconnect |
@ -0,0 +1,36 @@ |
|||
# On node_1 |
|||
SET @binlog_checksum_saved= @@GLOBAL.BINLOG_CHECKSUM; |
|||
SET @@GLOBAL.BINLOG_CHECKSUM=CRC32; |
|||
# On node_2 |
|||
SET @binlog_checksum_saved= @@GLOBAL.BINLOG_CHECKSUM; |
|||
SET @@GLOBAL.BINLOG_CHECKSUM=CRC32; |
|||
USE test; |
|||
CREATE TABLE t1(c1 INT PRIMARY KEY) ENGINE=INNODB; |
|||
INSERT INTO t1 VALUES (1), (2), (3), (4), (5); |
|||
SELECT * FROM t1; |
|||
c1 |
|||
1 |
|||
2 |
|||
3 |
|||
4 |
|||
5 |
|||
SELECT * FROM test.t1; |
|||
c1 |
|||
1 |
|||
2 |
|||
3 |
|||
4 |
|||
5 |
|||
|
|||
# On node_2 |
|||
SELECT * FROM test.t1; |
|||
c1 |
|||
1 |
|||
2 |
|||
3 |
|||
4 |
|||
5 |
|||
DROP TABLE t1; |
|||
SET @@GLOBAL.BINLOG_CHECKSUM = @binlog_checksum_saved; |
|||
SET @@GLOBAL.BINLOG_CHECKSUM = @binlog_checksum_saved; |
|||
# End of test |
@ -0,0 +1,40 @@ |
|||
CREATE USER user1, user2 IDENTIFIED BY 'password'; |
|||
SELECT COUNT(*) = 2 FROM mysql.user WHERE user IN ('user1', 'user2'); |
|||
COUNT(*) = 2 |
|||
1 |
|||
RENAME USER user2 TO user3; |
|||
SELECT COUNT(*) = 0 FROM mysql.user WHERE user = 'user2'; |
|||
COUNT(*) = 0 |
|||
1 |
|||
SELECT COUNT(*) = 1 FROM mysql.user WHERE user = 'user3'; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SET PASSWORD FOR user3 = PASSWORD('foo'); |
|||
SELECT password != '' FROM mysql.user WHERE user = 'user3'; |
|||
password != '' |
|||
1 |
|||
DROP USER user1, user3; |
|||
SELECT COUNT(*) = 0 FROM mysql.user WHERE user IN ('user1', 'user2'); |
|||
COUNT(*) = 0 |
|||
1 |
|||
GRANT ALL ON *.* TO user4 IDENTIFIED BY 'password'; |
|||
SELECT COUNT(*) = 1 FROM mysql.user WHERE user = 'user4'; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SELECT Select_priv = 'Y' FROM mysql.user WHERE user = 'user4'; |
|||
Select_priv = 'Y' |
|||
1 |
|||
CREATE USER user5; |
|||
GRANT PROXY ON user4 TO user5; |
|||
SELECT COUNT(*) = 1 FROM mysql.proxies_priv WHERE user = 'user5'; |
|||
COUNT(*) = 1 |
|||
1 |
|||
REVOKE ALL PRIVILEGES ON *.* FROM user4; |
|||
SELECT Select_priv = 'N' FROM mysql.user WHERE user = 'user4'; |
|||
Select_priv = 'N' |
|||
1 |
|||
REVOKE PROXY ON user4 FROM user5; |
|||
SELECT COUNT(*) = 0 FROM mysql.proxies_priv WHERE user = 'user5'; |
|||
COUNT(*) = 0 |
|||
1 |
|||
DROP USER user4, user5; |
@ -0,0 +1,10 @@ |
|||
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES (1); |
|||
ALTER TABLE t1 ENGINE=InnoDB; |
|||
SELECT ENGINE = 'InnoDB' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1'; |
|||
ENGINE = 'InnoDB' |
|||
1 |
|||
SELECT COUNT(*) = 1 FROM t1; |
|||
COUNT(*) = 1 |
|||
1 |
|||
DROP TABLE t1; |
@ -0,0 +1,11 @@ |
|||
SET GLOBAL wsrep_replicate_myisam = TRUE; |
|||
CREATE TABLE t1 (f1 INTEGER) ENGINE=MyISAM; |
|||
INSERT INTO t1 VALUES (1); |
|||
ALTER TABLE t1 ENGINE=InnoDB; |
|||
SELECT ENGINE = 'InnoDB' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1'; |
|||
ENGINE = 'InnoDB' |
|||
1 |
|||
SELECT COUNT(*) = 1 FROM t1; |
|||
COUNT(*) = 1 |
|||
1 |
|||
DROP TABLE t1; |
@ -0,0 +1,10 @@ |
|||
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES (1); |
|||
ALTER TABLE t1 FORCE; |
|||
SELECT ENGINE = 'InnoDB' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1'; |
|||
ENGINE = 'InnoDB' |
|||
1 |
|||
SELECT COUNT(*) = 1 FROM t1; |
|||
COUNT(*) = 1 |
|||
1 |
|||
DROP TABLE t1; |
@ -0,0 +1,7 @@ |
|||
START SLAVE; |
|||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES(1); |
|||
INSERT INTO t1 VALUES(2); |
|||
DROP TABLE t1; |
|||
STOP SLAVE; |
|||
RESET SLAVE ALL; |
@ -0,0 +1,59 @@ |
|||
START SLAVE USER='root'; |
|||
Warnings: |
|||
Note 1759 Sending passwords in plain text without SSL/TLS is extremely insecure. |
|||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES(1); |
|||
uuids_do_not_match |
|||
1 |
|||
SHOW BINLOG EVENTS IN 'mysqld-bin.000002' FROM 120; |
|||
Log_name Pos Event_type Server_id End_log_pos Info |
|||
mysqld-bin.000002 120 Previous_gtids 1 151 |
|||
mysqld-bin.000002 151 Gtid 1 199 SET @@SESSION.GTID_NEXT= '<effective_uuid>:1' |
|||
mysqld-bin.000002 199 Query 1 327 use `test`; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB |
|||
mysqld-bin.000002 327 Gtid 1 375 SET @@SESSION.GTID_NEXT= '<effective_uuid>:2' |
|||
mysqld-bin.000002 375 Query 1 452 BEGIN |
|||
mysqld-bin.000002 452 Table_map 1 497 table_id: # (test.t1) |
|||
mysqld-bin.000002 497 Write_rows 1 537 table_id: # flags: STMT_END_F |
|||
mysqld-bin.000002 537 Xid 1 568 COMMIT /* xid=# */ |
|||
INSERT INTO t1 VALUES(2); |
|||
uuids_do_not_match |
|||
1 |
|||
uuids_match |
|||
1 |
|||
SHOW BINLOG EVENTS IN 'mysqld-bin.000003' FROM 120; |
|||
Log_name Pos Event_type Server_id End_log_pos Info |
|||
mysqld-bin.000003 120 Previous_gtids 2 151 |
|||
mysqld-bin.000003 151 Gtid 1 199 SET @@SESSION.GTID_NEXT= '<effective_uuid>:1' |
|||
mysqld-bin.000003 199 Query 1 327 use `test`; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB |
|||
mysqld-bin.000003 327 Gtid 1 375 SET @@SESSION.GTID_NEXT= '<effective_uuid>:2' |
|||
mysqld-bin.000003 375 Query 1 443 BEGIN |
|||
mysqld-bin.000003 443 Table_map 1 488 table_id: # (test.t1) |
|||
mysqld-bin.000003 488 Write_rows 1 528 table_id: # flags: STMT_END_F |
|||
mysqld-bin.000003 528 Xid 1 559 COMMIT /* xid=# */ |
|||
mysqld-bin.000003 559 Gtid 2 607 SET @@SESSION.GTID_NEXT= '<effective_uuid>:3' |
|||
mysqld-bin.000003 607 Query 2 684 BEGIN |
|||
mysqld-bin.000003 684 Table_map 2 729 table_id: # (test.t1) |
|||
mysqld-bin.000003 729 Write_rows 2 769 table_id: # flags: STMT_END_F |
|||
mysqld-bin.000003 769 Xid 2 800 COMMIT /* xid=# */ |
|||
uuids_do_not_match |
|||
1 |
|||
uuids_match |
|||
1 |
|||
SHOW BINLOG EVENTS IN 'mysqld-bin.000001' FROM 120; |
|||
Log_name Pos Event_type Server_id End_log_pos Info |
|||
mysqld-bin.000001 120 Previous_gtids 3 151 |
|||
mysqld-bin.000001 151 Gtid 1 199 SET @@SESSION.GTID_NEXT= '<effective_uuid>:1' |
|||
mysqld-bin.000001 199 Query 1 327 use `test`; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB |
|||
mysqld-bin.000001 327 Gtid 1 375 SET @@SESSION.GTID_NEXT= '<effective_uuid>:2' |
|||
mysqld-bin.000001 375 Query 1 443 BEGIN |
|||
mysqld-bin.000001 443 Table_map 1 488 table_id: # (test.t1) |
|||
mysqld-bin.000001 488 Write_rows 1 528 table_id: # flags: STMT_END_F |
|||
mysqld-bin.000001 528 Xid 1 559 COMMIT /* xid=# */ |
|||
mysqld-bin.000001 559 Gtid 2 607 SET @@SESSION.GTID_NEXT= '<effective_uuid>:3' |
|||
mysqld-bin.000001 607 Query 2 675 BEGIN |
|||
mysqld-bin.000001 675 Table_map 2 720 table_id: # (test.t1) |
|||
mysqld-bin.000001 720 Write_rows 2 760 table_id: # flags: STMT_END_F |
|||
mysqld-bin.000001 760 Xid 2 791 COMMIT /* xid=# */ |
|||
DROP TABLE t1; |
|||
STOP SLAVE; |
|||
RESET SLAVE ALL; |
@ -0,0 +1,15 @@ |
|||
START SLAVE USER='root'; |
|||
Warnings: |
|||
Note 1759 Sending passwords in plain text without SSL/TLS is extremely insecure. |
|||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES(1); |
|||
INSERT INTO t1 VALUES(2); |
|||
STOP SLAVE; |
|||
START SLAVE USER='root'; |
|||
Warnings: |
|||
Note 1759 Sending passwords in plain text without SSL/TLS is extremely insecure. |
|||
INSERT INTO t1 VALUES(3); |
|||
INSERT INTO t1 VALUES(4); |
|||
DROP TABLE t1; |
|||
STOP SLAVE; |
|||
RESET SLAVE ALL; |
@ -0,0 +1,14 @@ |
|||
START SLAVE; |
|||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES(1); |
|||
INSERT INTO t1 VALUES (2); |
|||
SELECT COUNT(*) = 2 FROM t1; |
|||
COUNT(*) = 2 |
|||
1 |
|||
INSERT INTO t1 VALUES (3); |
|||
SELECT COUNT(*) = 3 FROM t1; |
|||
COUNT(*) = 3 |
|||
1 |
|||
DROP TABLE t1; |
|||
STOP SLAVE; |
|||
RESET SLAVE ALL; |
@ -0,0 +1,16 @@ |
|||
START SLAVE; |
|||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES(1); |
|||
SELECT LENGTH(@@global.gtid_binlog_state) > 1; |
|||
LENGTH(@@global.gtid_binlog_state) > 1 |
|||
1 |
|||
gtid_binlog_state_equal |
|||
1 |
|||
SELECT COUNT(*) = 1 FROM t1; |
|||
COUNT(*) = 1 |
|||
1 |
|||
gtid_binlog_state_equal |
|||
1 |
|||
DROP TABLE t1; |
|||
STOP SLAVE; |
|||
RESET SLAVE ALL; |
@ -0,0 +1,10 @@ |
|||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
INSERT INTO t1 VALUES (1); |
|||
INSERT INTO t1 VALUES (1); |
|||
INSERT INTO t1 VALUES (2); |
|||
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction |
|||
wsrep_local_aborts_increment |
|||
1 |
|||
DROP TABLE t1; |
@ -0,0 +1,10 @@ |
|||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
INSERT INTO t1 VALUES (1); |
|||
INSERT INTO t1 VALUES (1); |
|||
SELECT * FROM t1 FOR UPDATE; |
|||
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction |
|||
wsrep_local_aborts_increment |
|||
1 |
|||
DROP TABLE t1; |
@ -0,0 +1,8 @@ |
|||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; |
|||
SET AUTOCOMMIT=OFF; |
|||
FLUSH TABLES WITH READ LOCK;; |
|||
INSERT INTO t1 VALUES (1); |
|||
UNLOCK TABLES; |
|||
wsrep_local_aborts_increment |
|||
1 |
|||
DROP TABLE t1; |
@ -0,0 +1,12 @@ |
|||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; |
|||
SELECT GET_LOCK("foo", 1000); |
|||
GET_LOCK("foo", 1000) |
|||
1 |
|||
SET AUTOCOMMIT=OFF; |
|||
INSERT INTO t1 VALUES (1); |
|||
SELECT GET_LOCK("foo", 1000);; |
|||
INSERT INTO t1 VALUES (1); |
|||
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction |
|||
wsrep_local_aborts_increment |
|||
1 |
|||
DROP TABLE t1; |
@ -0,0 +1,8 @@ |
|||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; |
|||
SET AUTOCOMMIT=OFF; |
|||
LOCK TABLE t1 WRITE; |
|||
INSERT INTO t1 VALUES (1);; |
|||
INSERT INTO t1 VALUES (2); |
|||
wsrep_local_aborts_increment |
|||
1 |
|||
DROP TABLE t1; |
@ -0,0 +1,9 @@ |
|||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; |
|||
SET AUTOCOMMIT=OFF; |
|||
INSERT INTO t1 VALUES (1); |
|||
SELECT SLEEP(1000);; |
|||
INSERT INTO t1 VALUES (1); |
|||
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction |
|||
wsrep_local_aborts_increment |
|||
1 |
|||
DROP TABLE t1; |
@ -0,0 +1,12 @@ |
|||
CREATE TABLE t1 (f1 VARCHAR(767)) ENGINE=InnoDB; |
|||
CREATE TABLE ten (f1 INTEGER); |
|||
INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); |
|||
SET GLOBAL binlog_cache_size=4096; |
|||
SET GLOBAL max_binlog_cache_size=4096; |
|||
SET AUTOCOMMIT=ON; |
|||
START TRANSACTION; |
|||
INSERT INTO t1 SELECT REPEAT('a', 767) FROM ten; |
|||
INSERT INTO t1 SELECT REPEAT('a', 767) FROM ten; |
|||
ERROR HY000: Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage; increase this mysqld variable and try again |
|||
DROP TABLE t1; |
|||
DROP TABLE ten; |
@ -0,0 +1,10 @@ |
|||
CREATE TABLE t1 (f1 INT PRIMARY KEY) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES (1); |
|||
SELECT COUNT(*) = 1 FROM t1; |
|||
COUNT(*) = 1 |
|||
1 |
|||
UPDATE t1 SET f1 = 2 WHERE f1 = 1; |
|||
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2; |
|||
COUNT(*) = 1 |
|||
1 |
|||
DROP TABLE t1; |
@ -0,0 +1,9 @@ |
|||
CREATE TABLE ten (f1 INTEGER); |
|||
INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); |
|||
CREATE TABLE t1 (f1 VARCHAR(1000)); |
|||
INSERT INTO t1 SELECT REPEAT('x', 1000) FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4; |
|||
SELECT COUNT(*) = 10000 FROM t1; |
|||
COUNT(*) = 10000 |
|||
1 |
|||
DROP TABLE t1; |
|||
DROP TABLE ten; |
@ -0,0 +1,6 @@ |
|||
CREATE TABLE t1 (f1 VARCHAR(1000)); |
|||
INSERT INTO t1 VALUES (REPEAT('x', 1000)); |
|||
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = REPEAT('x', 1000); |
|||
COUNT(*) = 1 |
|||
1 |
|||
DROP TABLE t1; |
@ -0,0 +1,79 @@ |
|||
SET SESSION binlog_row_image=minimal; |
|||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; |
|||
CREATE TABLE t2 (f1 INTEGER NOT NULL UNIQUE) ENGINE=InnoDB; |
|||
CREATE TABLE t3 (f1 VARCHAR(1)) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES (1); |
|||
INSERT INTO t2 VALUES (1); |
|||
INSERT INTO t3 VALUES (1); |
|||
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 1; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SELECT COUNT(*) = 1 FROM t2 WHERE f1 = 1; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SELECT COUNT(*) = 1 FROM t3 WHERE f1 = 1; |
|||
COUNT(*) = 1 |
|||
1 |
|||
UPDATE t1 SET f1 = 2 WHERE f1 = 1; |
|||
UPDATE t2 SET f1 = 2 WHERE f1 = 1; |
|||
UPDATE t3 SET f1 = 2 WHERE f1 = 1; |
|||
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SELECT COUNT(*) = 1 FROM t2 WHERE f1 = 2; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SELECT COUNT(*) = 1 FROM t3 WHERE f1 = 2; |
|||
COUNT(*) = 1 |
|||
1 |
|||
DELETE FROM t1; |
|||
DELETE FROM t2; |
|||
DELETE FROM t3; |
|||
SELECT COUNT(*) = 0 FROM t1; |
|||
COUNT(*) = 0 |
|||
1 |
|||
SELECT COUNT(*) = 0 FROM t2; |
|||
COUNT(*) = 0 |
|||
1 |
|||
SELECT COUNT(*) = 0 FROM t3; |
|||
COUNT(*) = 0 |
|||
1 |
|||
DROP TABLE t1; |
|||
DROP TABLE t2; |
|||
DROP TABLE t3; |
|||
SET SESSION binlog_row_image=noblob; |
|||
CREATE TABLE t1 (f1 BLOB, f2 INTEGER PRIMARY KEY) ENGINE=InnoDB; |
|||
CREATE TABLE t2 (f1 BLOB) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES ('abc', 1); |
|||
INSERT INTO t2 VALUES ('abc'); |
|||
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 'abc'; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SELECT COUNT(*) = 1 FROM t2 WHERE f1 = 'abc'; |
|||
COUNT(*) = 1 |
|||
1 |
|||
UPDATE t1 SET f1 = 'xyz'; |
|||
UPDATE t2 SET f1 = 'xyz'; |
|||
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 'xyz'; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SELECT COUNT(*) = 1 FROM t2 WHERE f1 = 'xyz'; |
|||
COUNT(*) = 1 |
|||
1 |
|||
UPDATE t1 SET f2 = 2 WHERE f2 = 1; |
|||
SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 2; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 'xyz'; |
|||
COUNT(*) = 1 |
|||
1 |
|||
DELETE FROM t1; |
|||
DELETE FROM t2; |
|||
SELECT COUNT(*) = 0 FROM t1; |
|||
COUNT(*) = 0 |
|||
1 |
|||
SELECT COUNT(*) = 0 FROM t2; |
|||
COUNT(*) = 0 |
|||
1 |
|||
DROP TABLE t1; |
|||
DROP TABLE t2; |
@ -0,0 +1,12 @@ |
|||
SET GLOBAL binlog_rows_query_log_events=TRUE; |
|||
CREATE TABLE t1 (f1 INT PRIMARY KEY) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES (1); |
|||
SELECT COUNT(*) = 1 FROM t1; |
|||
COUNT(*) = 1 |
|||
1 |
|||
UPDATE t1 SET f1 = 2 WHERE f1 = 1; |
|||
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SET GLOBAL binlog_rows_query_log_events = 0; |
|||
DROP TABLE t1; |
@ -0,0 +1 @@ |
|||
# End of test |
@ -0,0 +1,55 @@ |
|||
CREATE USER 'user1'; |
|||
CREATE |
|||
DEFINER = 'user1' |
|||
FUNCTION f1 (param INTEGER) |
|||
RETURNS VARCHAR(200) |
|||
COMMENT 'f1_comment' |
|||
LANGUAGE SQL |
|||
NOT DETERMINISTIC |
|||
MODIFIES SQL DATA |
|||
SQL SECURITY DEFINER |
|||
RETURN 'abc'; |
|||
GRANT EXECUTE ON FUNCTION f1 TO user1; |
|||
CREATE |
|||
DEFINER = CURRENT_USER |
|||
FUNCTION f2 (param VARCHAR(100)) |
|||
RETURNS INTEGER |
|||
DETERMINISTIC |
|||
NO SQL |
|||
SQL SECURITY INVOKER |
|||
RETURN 123; |
|||
SHOW CREATE FUNCTION f1; |
|||
Function sql_mode Create Function character_set_client collation_connection Database Collation |
|||
f1 CREATE DEFINER=`user1`@`%` FUNCTION `f1`(param INTEGER) RETURNS varchar(200) CHARSET latin1 |
|||
MODIFIES SQL DATA |
|||
COMMENT 'f1_comment' |
|||
RETURN 'abc' latin1 latin1_swedish_ci latin1_swedish_ci |
|||
SHOW CREATE FUNCTION f1; |
|||
Function sql_mode Create Function character_set_client collation_connection Database Collation |
|||
f1 CREATE DEFINER=`user1`@`%` FUNCTION `f1`(param INTEGER) RETURNS varchar(200) CHARSET latin1 |
|||
MODIFIES SQL DATA |
|||
COMMENT 'f1_comment' |
|||
RETURN 'abc' latin1 latin1_swedish_ci latin1_swedish_ci |
|||
SHOW CREATE FUNCTION f2; |
|||
Function sql_mode Create Function character_set_client collation_connection Database Collation |
|||
f2 CREATE DEFINER=`root`@`localhost` FUNCTION `f2`(param VARCHAR(100)) RETURNS int(11) |
|||
NO SQL |
|||
DETERMINISTIC |
|||
SQL SECURITY INVOKER |
|||
RETURN 123 latin1 latin1_swedish_ci latin1_swedish_ci |
|||
SHOW CREATE FUNCTION f2; |
|||
Function sql_mode Create Function character_set_client collation_connection Database Collation |
|||
f2 CREATE DEFINER=`root`@`localhost` FUNCTION `f2`(param VARCHAR(100)) RETURNS int(11) |
|||
NO SQL |
|||
DETERMINISTIC |
|||
SQL SECURITY INVOKER |
|||
RETURN 123 latin1 latin1_swedish_ci latin1_swedish_ci |
|||
SELECT f1(1) = 'abc'; |
|||
f1(1) = 'abc' |
|||
1 |
|||
SELECT f2('abc') = 123; |
|||
f2('abc') = 123 |
|||
1 |
|||
DROP FUNCTION f1; |
|||
DROP FUNCTION f2; |
|||
DROP USER 'user1'; |
@ -0,0 +1,53 @@ |
|||
CREATE USER 'user1'; |
|||
CREATE TABLE t1 (f1 INTEGER); |
|||
CREATE |
|||
DEFINER = 'user1' |
|||
PROCEDURE p1 (IN param1 INTEGER, OUT param2 INTEGER, INOUT param3 INTEGER) |
|||
COMMENT 'p1_comment' |
|||
LANGUAGE SQL |
|||
NOT DETERMINISTIC |
|||
MODIFIES SQL DATA |
|||
SQL SECURITY DEFINER |
|||
INSERT INTO t1 VALUES (1); |
|||
GRANT EXECUTE ON PROCEDURE p1 TO user1; |
|||
CREATE |
|||
DEFINER = CURRENT_USER |
|||
PROCEDURE p2 (param VARCHAR(100)) |
|||
DETERMINISTIC |
|||
NO SQL |
|||
SQL SECURITY INVOKER BEGIN END ; |
|||
SHOW CREATE PROCEDURE p1; |
|||
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation |
|||
p1 CREATE DEFINER=`user1`@`%` PROCEDURE `p1`(IN param1 INTEGER, OUT param2 INTEGER, INOUT param3 INTEGER) |
|||
MODIFIES SQL DATA |
|||
COMMENT 'p1_comment' |
|||
INSERT INTO t1 VALUES (1) latin1 latin1_swedish_ci latin1_swedish_ci |
|||
SELECT 1 FROM DUAL; |
|||
1 |
|||
1 |
|||
SHOW CREATE PROCEDURE p1; |
|||
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation |
|||
p1 CREATE DEFINER=`user1`@`%` PROCEDURE `p1`(IN param1 INTEGER, OUT param2 INTEGER, INOUT param3 INTEGER) |
|||
MODIFIES SQL DATA |
|||
COMMENT 'p1_comment' |
|||
INSERT INTO t1 VALUES (1) latin1 latin1_swedish_ci latin1_swedish_ci |
|||
SHOW CREATE PROCEDURE p2; |
|||
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation |
|||
p2 CREATE DEFINER=`root`@`localhost` PROCEDURE `p2`(param VARCHAR(100)) |
|||
NO SQL |
|||
DETERMINISTIC |
|||
SQL SECURITY INVOKER |
|||
BEGIN END latin1 latin1_swedish_ci latin1_swedish_ci |
|||
SHOW CREATE PROCEDURE p2; |
|||
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation |
|||
p2 CREATE DEFINER=`root`@`localhost` PROCEDURE `p2`(param VARCHAR(100)) |
|||
NO SQL |
|||
DETERMINISTIC |
|||
SQL SECURITY INVOKER |
|||
BEGIN END latin1 latin1_swedish_ci latin1_swedish_ci |
|||
CALL p1(@a, @b, @c); |
|||
CALL p2('abc'); |
|||
DROP PROCEDURE p1; |
|||
DROP PROCEDURE p2; |
|||
DROP USER 'user1'; |
|||
DROP TABLE t1; |
@ -0,0 +1,47 @@ |
|||
CREATE SCHEMA schema1; |
|||
CREATE SCHEMA schema2; |
|||
USE schema1; |
|||
CREATE TABLE real_table (f1 INTEGER) ENGINE=InnoDB; |
|||
CREATE TEMPORARY TABLE temp_table (f1 INTEGER) ENGINE=InnoDB; |
|||
CREATE TABLE myisam_table (f1 INTEGER) ENGINE=MyISAM; |
|||
USE schema2; |
|||
CREATE TABLE real_table1 LIKE schema1.real_table; |
|||
CREATE TABLE real_table2 LIKE schema1.temp_table; |
|||
CREATE TABLE real_table3 LIKE schema1.myisam_table; |
|||
CREATE TEMPORARY TABLE temp_table1 LIKE schema1.real_table; |
|||
CREATE TEMPORARY TABLE temp_table2 LIKE schema1.temp_table; |
|||
CREATE TEMPORARY TABLE temp_table3 LIKE schema1.myisam_table; |
|||
SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'real_table' AND TABLE_SCHEMA = 'schema1'; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'myisam_table' AND TABLE_SCHEMA = 'schema1'; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'temp_table' AND TABLE_SCHEMA = 'schema1'; |
|||
COUNT(*) = 0 |
|||
1 |
|||
SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'real_table1' AND TABLE_SCHEMA = 'schema2'; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'real_table2' AND TABLE_SCHEMA = 'schema2'; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'real_table3' AND TABLE_SCHEMA = 'schema2'; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'temp_table1' AND TABLE_SCHEMA = 'schema2'; |
|||
COUNT(*) = 0 |
|||
1 |
|||
SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'temp_table2' AND TABLE_SCHEMA = 'schema2'; |
|||
COUNT(*) = 0 |
|||
1 |
|||
SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'temp_table3' AND TABLE_SCHEMA = 'schema2'; |
|||
COUNT(*) = 0 |
|||
1 |
|||
DROP TABLE schema1.real_table; |
|||
DROP TABLE schema1.myisam_table; |
|||
DROP TABLE schema2.real_table1; |
|||
DROP TABLE schema2.real_table2; |
|||
DROP TABLE schema2.real_table3; |
|||
DROP SCHEMA schema1; |
|||
DROP SCHEMA schema2; |
@ -0,0 +1,42 @@ |
|||
CREATE TABLE definer_root (f1 INTEGER, trigger_user VARCHAR(100)) ENGINE=InnoDB; |
|||
CREATE TABLE definer_user (f1 INTEGER, trigger_user VARCHAR(100)) ENGINE=InnoDB; |
|||
CREATE TABLE definer_current_user (f1 INTEGER, trigger_user VARCHAR(100)) ENGINE=InnoDB; |
|||
CREATE TABLE definer_default (f1 INTEGER, trigger_user VARCHAR(100)) ENGINE=InnoDB; |
|||
CREATE USER 'user1'; |
|||
CREATE DEFINER=root@localhost TRIGGER definer_root BEFORE INSERT ON definer_root FOR EACH ROW SET NEW.trigger_user = CURRENT_USER(); |
|||
CREATE DEFINER=user1 TRIGGER definer_user BEFORE INSERT ON definer_user FOR EACH ROW SET NEW.trigger_user = CURRENT_USER(); |
|||
CREATE DEFINER=current_user TRIGGER definer_current_user BEFORE INSERT ON definer_current_user FOR EACH ROW SET NEW.trigger_user = CURRENT_USER(); |
|||
CREATE TRIGGER definer_default BEFORE INSERT ON definer_default FOR EACH ROW SET NEW.trigger_user = CURRENT_USER(); |
|||
INSERT INTO definer_root (f1) VALUES (1); |
|||
SELECT DEFINER = 'root@localhost' FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_NAME = 'definer_root'; |
|||
DEFINER = 'root@localhost' |
|||
1 |
|||
SELECT trigger_user = 'root@localhost' FROM definer_root; |
|||
trigger_user = 'root@localhost' |
|||
1 |
|||
INSERT INTO definer_user (f1) VALUES (1); |
|||
SELECT DEFINER = 'user1@%' FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_NAME = 'definer_user'; |
|||
DEFINER = 'user1@%' |
|||
1 |
|||
SELECT trigger_user = 'user1@%' FROM definer_user; |
|||
trigger_user = 'user1@%' |
|||
1 |
|||
INSERT INTO definer_current_user (f1) VALUES (1); |
|||
SELECT DEFINER = 'root@localhost' FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_NAME = 'definer_current_user'; |
|||
DEFINER = 'root@localhost' |
|||
1 |
|||
SELECT trigger_user = 'root@localhost' FROM definer_current_user; |
|||
trigger_user = 'root@localhost' |
|||
1 |
|||
INSERT INTO definer_default (f1) VALUES (1); |
|||
SELECT DEFINER = 'root@localhost' FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_NAME = 'definer_default'; |
|||
DEFINER = 'root@localhost' |
|||
1 |
|||
SELECT trigger_user = 'root@localhost' FROM definer_default; |
|||
trigger_user = 'root@localhost' |
|||
1 |
|||
DROP TABLE definer_current_user; |
|||
DROP TABLE definer_user; |
|||
DROP TABLE definer_root; |
|||
DROP TABLE definer_default; |
|||
DROP USER 'user1'; |
@ -0,0 +1,120 @@ |
|||
SELECT COUNT(*) = 42 FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME LIKE 'wsrep_%'; |
|||
COUNT(*) = 42 |
|||
1 |
|||
SELECT VARIABLE_NAME, VARIABLE_VALUE |
|||
FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES |
|||
WHERE VARIABLE_NAME LIKE 'wsrep_%' |
|||
AND VARIABLE_NAME NOT IN ( |
|||
'WSREP_PROVIDER_OPTIONS', |
|||
'WSREP_SST_RECEIVE_ADDRESS', |
|||
'WSREP_NODE_ADDRESS', |
|||
'WSREP_NODE_NAME', |
|||
'WSREP_PROVIDER', |
|||
'WSREP_DATA_HOME_DIR', |
|||
'WSREP_NODE_INCOMING_ADDRESS', |
|||
'WSREP_START_POSITION' |
|||
) |
|||
ORDER BY VARIABLE_NAME; |
|||
VARIABLE_NAME VARIABLE_VALUE |
|||
WSREP_AUTO_INCREMENT_CONTROL ON |
|||
WSREP_CAUSAL_READS ON |
|||
WSREP_CERTIFY_NONPK ON |
|||
WSREP_CLUSTER_ADDRESS gcomm:// |
|||
WSREP_CLUSTER_NAME my_wsrep_cluster |
|||
WSREP_CONVERT_LOCK_TO_TRX OFF |
|||
WSREP_DBUG_OPTION |
|||
WSREP_DEBUG OFF |
|||
WSREP_DESYNC OFF |
|||
WSREP_DRUPAL_282555_WORKAROUND OFF |
|||
WSREP_FORCED_BINLOG_FORMAT NONE |
|||
WSREP_GTID_DOMAIN_ID 0 |
|||
WSREP_GTID_MODE OFF |
|||
WSREP_LOAD_DATA_SPLITTING ON |
|||
WSREP_LOG_CONFLICTS OFF |
|||
WSREP_MAX_WS_ROWS 131072 |
|||
WSREP_MAX_WS_SIZE 1073741824 |
|||
WSREP_MYSQL_REPLICATION_BUNDLE 0 |
|||
WSREP_NOTIFY_CMD |
|||
WSREP_ON ON |
|||
WSREP_OSU_METHOD TOI |
|||
WSREP_PATCH_VERSION wsrep_25.10 |
|||
WSREP_RECOVER OFF |
|||
WSREP_REPLICATE_MYISAM OFF |
|||
WSREP_RESTART_SLAVE OFF |
|||
WSREP_RETRY_AUTOCOMMIT 1 |
|||
WSREP_SLAVE_FK_CHECKS ON |
|||
WSREP_SLAVE_THREADS 1 |
|||
WSREP_SLAVE_UK_CHECKS OFF |
|||
WSREP_SST_AUTH |
|||
WSREP_SST_DONOR |
|||
WSREP_SST_DONOR_REJECTS_QUERIES OFF |
|||
WSREP_SST_METHOD rsync |
|||
WSREP_SYNC_WAIT 7 |
|||
<BASE_HOST>; <BASE_PORT>; cert.log_conflicts = no; debug = no; evs.auto_evict = 0; evs.causal_keepalive_period = PT1S; evs.debug_log_mask = 0x1; evs.delay_margin = PT1S; evs.delayed_keep_period = PT30S; evs.inactive_check_period = PT0.5S; evs.inactive_timeout = PT15S; evs.info_log_mask = 0; evs.install_timeout = PT7.5S; evs.join_retrans_period = PT1S; evs.keepalive_period = PT1S; evs.max_install_timeouts = 3; evs.send_window = 4; evs.stats_report_period = PT1M; evs.suspect_timeout = PT5S; evs.use_aggregate = true; evs.user_send_window = 2; evs.version = 0; evs.view_forget_timeout = P1D; <GCACHE_DIR>; gcache.keep_pages_size = 0; gcache.mem_size = 0; <GCACHE_NAME>; gcache.page_size = 128M; gcache.size = 10M; gcs.fc_debug = 0; gcs.fc_factor = 1.0; gcs.fc_limit = 16; gcs.fc_master_slave = no; gcs.max_packet_size = 64500; gcs.max_throttle = 0.25; <GCS_RECV_Q_HARD_LIMIT>; gcs.recv_q_soft_limit = 0.25; gcs.sync_donor = no; <GMCAST_LISTEN_ADDR>; gmcast.mcast_addr = ; gmcast.mcast_ttl = 1; gmcast.peer_timeout = PT3S; gmcast.segment = 0; gmcast.time_wait = PT5S; gmcast.version = 0; <IST_RECV_ADDR>; pc.announce_timeout = PT3S; pc.checksum = false; pc.ignore_quorum = false; pc.ignore_sb = false; pc.linger = PT20S; pc.npvo = false; pc.recovery = true; pc.version = 0; pc.wait_prim = true; pc.wait_prim_timeout = P30S; pc.weight = 1; protonet.backend = asio; protonet.version = 0; repl.causal_read_timeout = PT30S; repl.commit_order = 3; repl.key_format = FLAT8; repl.max_ws_size = 2147483647; repl.proto_max = 7; socket.checksum = 2; |
|||
SELECT COUNT(*) FROM INFORMATION_SCHEMA.GLOBAL_STATUS |
|||
WHERE VARIABLE_NAME LIKE 'wsrep_%' |
|||
AND VARIABLE_NAME != 'wsrep_debug_sync_waiters'; |
|||
COUNT(*) |
|||
57 |
|||
SELECT VARIABLE_NAME FROM INFORMATION_SCHEMA.GLOBAL_STATUS |
|||
WHERE VARIABLE_NAME LIKE 'wsrep_%' |
|||
AND VARIABLE_NAME != 'wsrep_debug_sync_waiters' |
|||
ORDER BY VARIABLE_NAME; |
|||
VARIABLE_NAME |
|||
WSREP_APPLY_OOOE |
|||
WSREP_APPLY_OOOL |
|||
WSREP_APPLY_WINDOW |
|||
WSREP_CAUSAL_READS |
|||
WSREP_CERT_DEPS_DISTANCE |
|||
WSREP_CERT_INDEX_SIZE |
|||
WSREP_CERT_INTERVAL |
|||
WSREP_CLUSTER_CONF_ID |
|||
WSREP_CLUSTER_SIZE |
|||
WSREP_CLUSTER_STATE_UUID |
|||
WSREP_CLUSTER_STATUS |
|||
WSREP_COMMIT_OOOE |
|||
WSREP_COMMIT_OOOL |
|||
WSREP_COMMIT_WINDOW |
|||
WSREP_CONNECTED |
|||
WSREP_EVS_DELAYED |
|||
WSREP_EVS_EVICT_LIST |
|||
WSREP_EVS_REPL_LATENCY |
|||
WSREP_EVS_STATE |
|||
WSREP_FLOW_CONTROL_PAUSED |
|||
WSREP_FLOW_CONTROL_PAUSED_NS |
|||
WSREP_FLOW_CONTROL_RECV |
|||
WSREP_FLOW_CONTROL_SENT |
|||
WSREP_GCOMM_UUID |
|||
WSREP_INCOMING_ADDRESSES |
|||
WSREP_LAST_COMMITTED |
|||
WSREP_LOCAL_BF_ABORTS |
|||
WSREP_LOCAL_CACHED_DOWNTO |
|||
WSREP_LOCAL_CERT_FAILURES |
|||
WSREP_LOCAL_COMMITS |
|||
WSREP_LOCAL_INDEX |
|||
WSREP_LOCAL_RECV_QUEUE |
|||
WSREP_LOCAL_RECV_QUEUE_AVG |
|||
WSREP_LOCAL_RECV_QUEUE_MAX |
|||
WSREP_LOCAL_RECV_QUEUE_MIN |
|||
WSREP_LOCAL_REPLAYS |
|||
WSREP_LOCAL_SEND_QUEUE |
|||
WSREP_LOCAL_SEND_QUEUE_AVG |
|||
WSREP_LOCAL_SEND_QUEUE_MAX |
|||
WSREP_LOCAL_SEND_QUEUE_MIN |
|||
WSREP_LOCAL_STATE |
|||
WSREP_LOCAL_STATE_COMMENT |
|||
WSREP_LOCAL_STATE_UUID |
|||
WSREP_PROTOCOL_VERSION |
|||
WSREP_PROVIDER_NAME |
|||
WSREP_PROVIDER_VENDOR |
|||
WSREP_PROVIDER_VERSION |
|||
WSREP_READY |
|||
WSREP_RECEIVED |
|||
WSREP_RECEIVED_BYTES |
|||
WSREP_REPLICATED |
|||
WSREP_REPLICATED_BYTES |
|||
WSREP_REPL_DATA_BYTES |
|||
WSREP_REPL_KEYS |
|||
WSREP_REPL_KEYS_BYTES |
|||
WSREP_REPL_OTHER_BYTES |
|||
WSREP_THREAD_COUNT |
@ -0,0 +1,19 @@ |
|||
CREATE TABLE ten (f1 INTEGER) Engine=InnoDB; |
|||
INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); |
|||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) Engine=InnoDB; |
|||
INSERT INTO t1 SELECT f1 FROM ten ORDER BY RAND(); |
|||
DELETE FROM t1 ORDER BY RAND() LIMIT 5; |
|||
sum_matches |
|||
1 |
|||
max_matches |
|||
1 |
|||
DROP TABLE t1; |
|||
CREATE TABLE t2 (f1 INTEGER) Engine=InnoDB; |
|||
INSERT INTO t2 SELECT f1 FROM ten ORDER BY RAND(); |
|||
DELETE FROM t2 ORDER BY RAND() LIMIT 5; |
|||
sum_matches |
|||
1 |
|||
max_matches |
|||
1 |
|||
DROP TABLE t2; |
|||
DROP TABLE ten; |
@ -0,0 +1,37 @@ |
|||
CREATE TABLE t1 (f1 ENUM('', 'one', 'two'), KEY (f1)) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES (''); |
|||
INSERT INTO t1 VALUES ('one'), ('two'); |
|||
INSERT INTO t1 VALUES (0), (1), (2); |
|||
Warnings: |
|||
Warning 1265 Data truncated for column 'f1' at row 1 |
|||
SELECT COUNT(*) = 6 FROM t1; |
|||
COUNT(*) = 6 |
|||
1 |
|||
SELECT COUNT(*) = 2 FROM t1 where f1 = ''; |
|||
COUNT(*) = 2 |
|||
1 |
|||
SELECT COUNT(*) = 2 FROM t1 where f1 = 'one'; |
|||
COUNT(*) = 2 |
|||
1 |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 (f1 ENUM('', 'one', 'two', 'three', 'four') PRIMARY KEY) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES (''), ('one'), ('two'); |
|||
SELECT COUNT(*) = 3 FROM t1; |
|||
COUNT(*) = 3 |
|||
1 |
|||
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = ''; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
UPDATE t1 SET f1 = 'three' where f1 = ''; |
|||
SET AUTOCOMMIt=OFF; |
|||
START TRANSACTION; |
|||
UPDATE t1 SET f1 = 'four' where f1 = ''; |
|||
COMMIT; |
|||
COMMIT; |
|||
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction |
|||
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 'three'; |
|||
COUNT(*) = 1 |
|||
1 |
|||
DROP TABLE t1; |
@ -0,0 +1,18 @@ |
|||
CREATE EVENT event1 ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO SELECT 1; |
|||
SELECT DEFINER= 'root@localhost', ORIGINATOR = 1, STATUS = 'SLAVESIDE_DISABLED', EVENT_TYPE = 'ONE TIME', ON_COMPLETION = 'NOT PRESERVE' FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME = 'event1'; |
|||
DEFINER= 'root@localhost' ORIGINATOR = 1 STATUS = 'SLAVESIDE_DISABLED' EVENT_TYPE = 'ONE TIME' ON_COMPLETION = 'NOT PRESERVE' |
|||
1 1 1 1 1 |
|||
ALTER EVENT event1 DISABLE; |
|||
SELECT DEFINER= 'root@localhost', ORIGINATOR = 1, STATUS = 'SLAVESIDE_DISABLED', EVENT_TYPE = 'ONE TIME', ON_COMPLETION = 'NOT PRESERVE' FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME = 'event1'; |
|||
DEFINER= 'root@localhost' ORIGINATOR = 1 STATUS = 'SLAVESIDE_DISABLED' EVENT_TYPE = 'ONE TIME' ON_COMPLETION = 'NOT PRESERVE' |
|||
1 1 1 1 1 |
|||
SET GLOBAL event_scheduler = ON; |
|||
CREATE EVENT event2 ON SCHEDULE AT CURRENT_TIMESTAMP ON COMPLETION NOT PRESERVE DO SELECT 1; |
|||
SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME = 'event2'; |
|||
COUNT(*) = 0 |
|||
1 |
|||
DROP EVENT event1; |
|||
SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME = 'event1'; |
|||
COUNT(*) = 0 |
|||
1 |
|||
SET GLOBAL event_scheduler = OFF;; |
@ -0,0 +1,32 @@ |
|||
FLUSH DES_KEY_FILE; |
|||
wsrep_last_committed_diff |
|||
1 |
|||
FLUSH HOSTS; |
|||
wsrep_last_committed_diff |
|||
1 |
|||
SET GLOBAL wsrep_replicate_myisam = TRUE; |
|||
INSERT INTO mysql.user VALUES('localhost','user1',PASSWORD('pass1'), 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'mysql_native_password','','N','N','',0); |
|||
FLUSH PRIVILEGES; |
|||
DELETE FROM mysql.user WHERE user = 'user1'; |
|||
SET GLOBAL wsrep_replicate_myisam = FALSE; |
|||
FLUSH PRIVILEGES; |
|||
FLUSH QUERY CACHE; |
|||
wsrep_last_committed_diff |
|||
1 |
|||
FLUSH STATUS; |
|||
wsrep_last_committed_diff |
|||
1 |
|||
FLUSH USER_RESOURCES; |
|||
wsrep_last_committed_diff |
|||
1 |
|||
CREATE TABLE t1 (f1 INTEGER); |
|||
FLUSH LOGS; |
|||
FLUSH TABLES WITH READ LOCK; |
|||
UNLOCK TABLES; |
|||
FLUSH TABLES t1 WITH READ LOCK; |
|||
UNLOCK TABLES; |
|||
FLUSH TABLES t1 FOR EXPORT; |
|||
UNLOCK TABLES; |
|||
wsrep_last_committed_diff |
|||
1 |
|||
DROP TABLE t1; |
@ -0,0 +1,16 @@ |
|||
CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB; |
|||
SET GLOBAL wsrep_provider_options = "repl.causal_read_timeout=PT1S"; |
|||
FLUSH TABLES WITH READ LOCK; |
|||
INSERT INTO t1 VALUES (1); |
|||
SHOW TABLES; |
|||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction |
|||
SELECT * FROM t1; |
|||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction |
|||
UNLOCK TABLES; |
|||
SHOW TABLES; |
|||
Tables_in_test |
|||
t1 |
|||
SELECT COUNT(*) = 1 FROM t1; |
|||
COUNT(*) = 1 |
|||
1 |
|||
DROP TABLE t1; |
@ -0,0 +1,26 @@ |
|||
CREATE TABLE ten (f1 INTEGER) ENGINE=InnoDB; |
|||
INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); |
|||
CREATE TABLE t1 (f1 INT PRIMARY KEY AUTO_INCREMENT, f2 VARCHAR(100), FULLTEXT (f2)) ENGINE=InnoDB; |
|||
SELECT COUNT(*) = 13 FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE name LIKE 'test/%'; |
|||
COUNT(*) = 13 |
|||
1 |
|||
INSERT INTO t1 (f2) SELECT 'foobarbaz' FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4; |
|||
SELECT COUNT(f2) = 10000 FROM t1 WHERE MATCH(f2) AGAINST ('foobarbaz'); |
|||
COUNT(f2) = 10000 |
|||
1 |
|||
UPDATE t1 SET f2 = 'abcdefjhk'; |
|||
SELECT COUNT(f2) = 10000 FROM t1 WHERE MATCH(f2) AGAINST ('abcdefjhk'); |
|||
COUNT(f2) = 10000 |
|||
1 |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 (f1 VARCHAR(100), FULLTEXT (f1)) ENGINE=InnoDB; |
|||
INSERT INTO t1 (f1) SELECT 'foobarbaz' FROM ten AS a1, ten AS a2, ten AS a3; |
|||
SELECT COUNT(f1) = 1000 FROM t1 WHERE MATCH(f1) AGAINST ('foobarbaz'); |
|||
COUNT(f1) = 1000 |
|||
1 |
|||
UPDATE t1 SET f1 = 'abcdefjhk'; |
|||
SELECT COUNT(f1) = 1000 FROM t1 WHERE MATCH(f1) AGAINST ('abcdefjhk'); |
|||
COUNT(f1) = 1000 |
|||
1 |
|||
DROP TABLE t1; |
|||
DROP TABLE ten; |
@ -0,0 +1,17 @@ |
|||
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES (1); |
|||
SET GLOBAL wsrep_provider_options = 'gcs.fc_limit=1'; |
|||
FLUSH TABLES WITH READ LOCK; |
|||
INSERT INTO t1 VALUES (2); |
|||
INSERT INTO t1 VALUES (3); |
|||
INSERT INTO t1 VALUES (4); |
|||
INSERT INTO t1 VALUES (5); |
|||
SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE = 'query end' AND INFO = 'INSERT INTO t1 VALUES (5)'; |
|||
COUNT(*) = 1 |
|||
1 |
|||
UNLOCK TABLES; |
|||
INSERT INTO t1 VALUES (6); |
|||
SELECT COUNT(*) = 6 FROM t1; |
|||
COUNT(*) = 6 |
|||
1 |
|||
DROP TABLE t1; |
@ -0,0 +1,15 @@ |
|||
CREATE TABLE ten (f1 INTEGER); |
|||
INSERT INTO ten VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10); |
|||
CREATE TABLE t1 (f1 INT PRIMARY KEY AUTO_INCREMENT, f2 INTEGER) ENGINE=InnoDB; |
|||
CREATE TABLE t2 (f1 VARCHAR(512) UNIQUE) ENGINE=InnoDB; |
|||
INSERT INTO t1 (f2) SELECT 1 FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4; |
|||
INSERT INTO t2 VALUES (REPEAT('x', 512)); |
|||
SELECT COUNT(*) = 10000 FROM t1; |
|||
COUNT(*) = 10000 |
|||
1 |
|||
SELECT LENGTH(f1) = 512 FROM t2 WHERE f1 = REPEAT('x', 512); |
|||
LENGTH(f1) = 512 |
|||
1 |
|||
DROP TABLE t1; |
|||
DROP TABLE t2; |
|||
DROP TABLE ten; |
@ -0,0 +1,12 @@ |
|||
CREATE TABLE t1 (f1 INT PRIMARY KEY); |
|||
INSERT INTO t1 VALUES (1); |
|||
SELECT COUNT(*) = 1 FROM t1; |
|||
COUNT(*) = 1 |
|||
1 |
|||
UPDATE t1 SET f1 = 2; |
|||
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2; |
|||
COUNT(*) = 1 |
|||
1 |
|||
gtid_binlog_state_equal |
|||
1 |
|||
DROP TABLE t1; |
@ -0,0 +1,52 @@ |
|||
SET GLOBAL wsrep_sync_wait = 7; |
|||
SET GLOBAL wsrep_sync_wait = 7; |
|||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES (1); |
|||
INSERT IGNORE INTO t1 VALUES (1), (2); |
|||
Warnings: |
|||
Warning 1062 Duplicate entry '1' for key 'PRIMARY' |
|||
SELECT * FROM t1; |
|||
f1 |
|||
1 |
|||
2 |
|||
SELECT * FROM t1; |
|||
f1 |
|||
1 |
|||
2 |
|||
CREATE TABLE t2 (f1 INTEGER) ENGINE=InnoDB; |
|||
INSERT INTO t2 VALUES (0), (2), (3); |
|||
INSERT IGNORE INTO t1 SELECT f1 FROM t2; |
|||
Warnings: |
|||
Warning 1062 Duplicate entry '2' for key 'PRIMARY' |
|||
SELECT * FROM t1; |
|||
f1 |
|||
0 |
|||
1 |
|||
2 |
|||
3 |
|||
SELECT * FROM t1; |
|||
f1 |
|||
0 |
|||
1 |
|||
2 |
|||
3 |
|||
CREATE TABLE t3 (f1 INTEGER UNIQUE) Engine=InnoDB; |
|||
INSERT INTO t3 VALUES (NULL); |
|||
INSERT IGNORE INTO t3 VALUES (1), (NULL), (2); |
|||
SELECT * FROM t3; |
|||
f1 |
|||
NULL |
|||
NULL |
|||
1 |
|||
2 |
|||
SELECT * FROM t3; |
|||
f1 |
|||
NULL |
|||
NULL |
|||
1 |
|||
2 |
|||
SET GLOBAL wsrep_sync_wait = (SELECT @@wsrep_sync_wait); |
|||
DROP TABLE t1; |
|||
DROP TABLE t2; |
|||
DROP TABLE t3; |
|||
SET GLOBAL wsrep_sync_wait = (SELECT @@wsrep_sync_wait); |
@ -0,0 +1,58 @@ |
|||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES (1),(2); |
|||
INSERT INTO t1 VALUES (3),(4); |
|||
SELECT COUNT(*) = 4 FROM t1; |
|||
COUNT(*) = 4 |
|||
1 |
|||
SELECT COUNT(*) = 4 FROM t1; |
|||
COUNT(*) = 4 |
|||
1 |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 (f1 INTEGER, KEY (f1)) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES (1),(1); |
|||
INSERT INTO t1 VALUES (2),(2); |
|||
SELECT COUNT(*) = 4 FROM t1; |
|||
COUNT(*) = 4 |
|||
1 |
|||
SELECT COUNT(*) = 4 FROM t1; |
|||
COUNT(*) = 4 |
|||
1 |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (1); |
|||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY' |
|||
SELECT COUNT(*) = 0 FROM t1; |
|||
COUNT(*) = 0 |
|||
1 |
|||
SELECT COUNT(*) = 0 FROM t1; |
|||
COUNT(*) = 0 |
|||
1 |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; |
|||
SET AUTOCOMMIT = OFF; |
|||
START TRANSACTION; |
|||
INSERT INTO t1 VALUES (1), (2); |
|||
SET AUTOCOMMIT = OFF; |
|||
START TRANSACTION; |
|||
INSERT INTO t1 VALUES (2), (1); |
|||
COMMIT; |
|||
COMMIT; |
|||
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction |
|||
ROLLBACK; |
|||
INSERT INTO t1 VALUES (1), (2); |
|||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY' |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; |
|||
START TRANSACTION; |
|||
INSERT INTO t1 VALUES (1), (2); |
|||
START TRANSACTION; |
|||
INSERT INTO t1 VALUES (2), (1); |
|||
ROLLBACK; |
|||
COMMIT; |
|||
SELECT COUNT(*) = 2 FROM t1; |
|||
COUNT(*) = 2 |
|||
1 |
|||
SELECT COUNT(*) = 2 FROM t1; |
|||
COUNT(*) = 2 |
|||
1 |
|||
DROP TABLE t1; |
@ -0,0 +1,184 @@ |
|||
Performing State Transfer on a server that has been killed and restarted |
|||
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ... |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ('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'); |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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'); |
|||
Performing --wsrep-recover ... |
|||
Starting server ... |
|||
Using --wsrep-start-position when starting mysqld ... |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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; |
|||
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 ('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; |
|||
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; |
|||
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; |
|||
SET AUTOCOMMIT=ON; |
|||
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 |
|||
while a DDL was in progress on it |
|||
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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'); |
|||
START TRANSACTION; |
|||
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 = 'd,sync.alter_opened_table'; |
|||
ALTER TABLE t1 ADD COLUMN f2 INTEGER; |
|||
SET wsrep_sync_wait = 0; |
|||
Killing server ... |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 (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'); |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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'); |
|||
Performing --wsrep-recover ... |
|||
Starting server ... |
|||
Using --wsrep-start-position when starting mysqld ... |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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; |
|||
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 (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; |
|||
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; |
|||
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; |
|||
SET AUTOCOMMIT=ON; |
|||
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; |
@ -0,0 +1,284 @@ |
|||
Setting SST method to mysqldump ... |
|||
GRANT ALL PRIVILEGES ON *.* TO 'sst' IDENTIFIED BY 'sst'; |
|||
SET GLOBAL wsrep_sst_auth = 'sst:sst'; |
|||
SET GLOBAL wsrep_sst_method = 'mysqldump'; |
|||
Performing State Transfer on a server that has been shut down cleanly and restarted |
|||
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ... |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ('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'); |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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'); |
|||
Starting server ... |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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; |
|||
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 ('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; |
|||
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; |
|||
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; |
|||
SET AUTOCOMMIT=ON; |
|||
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 |
|||
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ... |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ('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'); |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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'); |
|||
Performing --wsrep-recover ... |
|||
Starting server ... |
|||
Using --wsrep-start-position when starting mysqld ... |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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; |
|||
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 ('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; |
|||
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; |
|||
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; |
|||
SET AUTOCOMMIT=ON; |
|||
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 |
|||
while a DDL was in progress on it |
|||
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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'); |
|||
START TRANSACTION; |
|||
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 = 'd,sync.alter_opened_table'; |
|||
ALTER TABLE t1 ADD COLUMN f2 INTEGER; |
|||
SET wsrep_sync_wait = 0; |
|||
Killing server ... |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 (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'); |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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'); |
|||
Performing --wsrep-recover ... |
|||
Starting server ... |
|||
Using --wsrep-start-position when starting mysqld ... |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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; |
|||
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 (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; |
|||
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; |
|||
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; |
|||
SET AUTOCOMMIT=ON; |
|||
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; |
|||
CALL mtr.add_suppression("Slave SQL: Error 'The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement' on query"); |
|||
DROP USER sst; |
|||
CALL mtr.add_suppression("Slave SQL: Error 'The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement' on query"); |
|||
CALL mtr.add_suppression("InnoDB: Error: Table \"mysql\"\\.\"innodb_index_stats\" not found"); |
|||
CALL mtr.add_suppression("InnoDB: New log files created"); |
|||
CALL mtr.add_suppression("InnoDB: Creating foreign key constraint system tables"); |
|||
CALL mtr.add_suppression("Can't open and lock time zone table"); |
|||
CALL mtr.add_suppression("Can't open and lock privilege tables"); |
|||
CALL mtr.add_suppression("Info table is not ready to be used"); |
|||
CALL mtr.add_suppression("Native table .* has the wrong structure"); |
@ -0,0 +1,43 @@ |
|||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 CHAR(1)); |
|||
INSERT INTO t1 VALUES (1, 'a'), (2, 'a'), (3, 'a'), (4, 'a'), (5, 'a'),(6, 'a'); |
|||
Unloading wsrep provider ... |
|||
SET GLOBAL wsrep_provider = 'none'; |
|||
UPDATE t1 SET f2 = 'b' WHERE f1 > 1; |
|||
UPDATE t1 SET f2 = 'c' WHERE f1 > 2; |
|||
SET GLOBAL wsrep_provider_options = 'dbug=d,recv_IST_after_apply_trx'; |
|||
SET SESSION wsrep_sync_wait = 0; |
|||
Loading wsrep_provider ... |
|||
SHOW STATUS LIKE 'wsrep_debug_sync_waiters'; |
|||
Variable_name Value |
|||
wsrep_debug_sync_waiters recv_IST_after_apply_trx |
|||
UPDATE t1 SET f2 = 'd' WHERE f1 > 3; |
|||
CREATE TABLE t2 (f1 INTEGER); |
|||
UPDATE t1 SET f2 = 'e' WHERE f1 > 4; |
|||
CREATE TABLE t3 (f1 INTEGER); |
|||
Performing --wsrep-recover ... |
|||
Starting server ... |
|||
Using --wsrep-start-position when starting mysqld ... |
|||
UPDATE t1 SET f2 = 'f' WHERE f1 > 5; |
|||
SELECT * FROM t1; |
|||
f1 f2 |
|||
1 a |
|||
2 b |
|||
3 c |
|||
4 d |
|||
5 e |
|||
6 f |
|||
SELECT * FROM t1; |
|||
f1 f2 |
|||
1 a |
|||
2 b |
|||
3 c |
|||
4 d |
|||
5 e |
|||
6 f |
|||
SELECT COUNT(*) = 0 FROM t2; |
|||
COUNT(*) = 0 |
|||
1 |
|||
SELECT COUNT(*) = 0 FROM t3; |
|||
COUNT(*) = 0 |
|||
1 |
|||
DROP TABLE t1, t2, t3; |
@ -0,0 +1,358 @@ |
|||
Performing State Transfer on a server that has been temporarily disconnected |
|||
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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_provider = 'none'; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ('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'); |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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'); |
|||
Loading wsrep provider ... |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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; |
|||
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 ('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; |
|||
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; |
|||
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; |
|||
SET AUTOCOMMIT=ON; |
|||
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 |
|||
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ... |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ('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'); |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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'); |
|||
Starting server ... |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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; |
|||
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 ('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; |
|||
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; |
|||
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; |
|||
SET AUTOCOMMIT=ON; |
|||
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 |
|||
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ... |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ('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'); |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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'); |
|||
Performing --wsrep-recover ... |
|||
Starting server ... |
|||
Using --wsrep-start-position when starting mysqld ... |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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; |
|||
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 ('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; |
|||
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; |
|||
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; |
|||
SET AUTOCOMMIT=ON; |
|||
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 |
|||
while a DDL was in progress on it |
|||
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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'); |
|||
START TRANSACTION; |
|||
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'; |
|||
ALTER TABLE t1 ADD COLUMN f2 INTEGER; |
|||
SET wsrep_sync_wait = 0; |
|||
Killing server ... |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 (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'); |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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'); |
|||
Performing --wsrep-recover ... |
|||
Starting server ... |
|||
Using --wsrep-start-position when starting mysqld ... |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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; |
|||
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 (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; |
|||
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; |
|||
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; |
|||
SET AUTOCOMMIT=ON; |
|||
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; |
@ -0,0 +1,357 @@ |
|||
Performing State Transfer on a server that has been temporarily disconnected |
|||
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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_provider = 'none'; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ('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'); |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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'); |
|||
Loading wsrep provider ... |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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; |
|||
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 ('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; |
|||
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; |
|||
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; |
|||
SET AUTOCOMMIT=ON; |
|||
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 |
|||
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ... |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ('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'); |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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'); |
|||
Starting server ... |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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; |
|||
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 ('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; |
|||
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; |
|||
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; |
|||
SET AUTOCOMMIT=ON; |
|||
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 |
|||
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ... |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 ('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'); |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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'); |
|||
Performing --wsrep-recover ... |
|||
Starting server ... |
|||
Using --wsrep-start-position when starting mysqld ... |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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; |
|||
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 ('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; |
|||
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; |
|||
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; |
|||
SET AUTOCOMMIT=ON; |
|||
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 |
|||
while a DDL was in progress on it |
|||
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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'); |
|||
START TRANSACTION; |
|||
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 = 'd,sync.alter_opened_table'; |
|||
ALTER TABLE t1 ADD COLUMN f2 INTEGER; |
|||
SET wsrep_sync_wait = 0; |
|||
Killing server ... |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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 (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'); |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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'); |
|||
Performing --wsrep-recover ... |
|||
Starting server ... |
|||
Using --wsrep-start-position when starting mysqld ... |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
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; |
|||
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 (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; |
|||
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; |
|||
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; |
|||
SET AUTOCOMMIT=ON; |
|||
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; |
@ -0,0 +1,11 @@ |
|||
SET GLOBAL wsrep_provider_options = 'pc.ignore_sb=true'; |
|||
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; |
|||
Killing server ... |
|||
ALTER TABLE t1 ADD COLUMN f2 INTEGER; |
|||
SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='t1'; |
|||
COUNT(*) = 2 |
|||
1 |
|||
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
VARIABLE_VALUE = 2 |
|||
1 |
|||
DROP TABLE t1; |
@ -0,0 +1,14 @@ |
|||
SET GLOBAL wsrep_provider_options = 'pc.ignore_sb=true'; |
|||
CREATE TABLE ten (f1 INTEGER); |
|||
INSERT INTO ten VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10); |
|||
CREATE TABLE t1 (f1 VARCHAR(128)) ENGINE=InnoDB; |
|||
Killing server ... |
|||
INSERT INTO t1 SELECT REPEAT('a', 128) FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4, ten AS a5, ten AS a6; |
|||
SELECT COUNT(*) = 1000000 FROM t1; |
|||
COUNT(*) = 1000000 |
|||
1 |
|||
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
VARIABLE_VALUE = 2 |
|||
1 |
|||
DROP TABLE t1; |
|||
DROP TABLE ten; |
@ -0,0 +1,10 @@ |
|||
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES (1); |
|||
Killing server ... |
|||
SELECT COUNT(*) = 1 FROM t1; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
VARIABLE_VALUE = 2 |
|||
1 |
|||
DROP TABLE t1; |
@ -0,0 +1,11 @@ |
|||
SET GLOBAL wsrep_provider_options = 'pc.ignore_sb=true'; |
|||
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; |
|||
Killing server ... |
|||
INSERT INTO t1 VALUES (1); |
|||
SELECT COUNT(*) = 1 FROM t1; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
VARIABLE_VALUE = 2 |
|||
1 |
|||
DROP TABLE t1; |
@ -0,0 +1,21 @@ |
|||
CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB; |
|||
CREATE TABLE t2 (id INT PRIMARY KEY) ENGINE=InnoDB; |
|||
LOCK TABLE t1 READ; |
|||
INSERT INTO t1 VALUES (1); |
|||
INSERT INTO t2 VALUES (1); |
|||
SET SESSION wsrep_sync_wait=0; |
|||
SELECT COUNT(*) = 0 FROM t1; |
|||
COUNT(*) = 0 |
|||
1 |
|||
SELECT COUNT(*) = 0 FROM t2; |
|||
COUNT(*) = 0 |
|||
1 |
|||
UNLOCK TABLES; |
|||
SELECT COUNT(*) = 1 FROM t1; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SELECT COUNT(*) = 1 FROM t2; |
|||
COUNT(*) = 1 |
|||
1 |
|||
DROP TABLE t1; |
|||
DROP TABLE t2; |
@ -0,0 +1,58 @@ |
|||
CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES (1); |
|||
CREATE TABLE t2 (id INT) ENGINE=InnoDB; |
|||
INSERT INTO t2 VALUES (1); |
|||
INSERT INTO t2 VALUES (1); |
|||
SELECT COUNT(*) = 1 FROM t1; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SELECT COUNT(*) = 2 FROM t2; |
|||
COUNT(*) = 2 |
|||
1 |
|||
ALTER TABLE t1 ADD COLUMN f2 INTEGER; |
|||
FLUSH LOGS; |
|||
SHOW BINLOG EVENTS IN 'mysqld-bin.000002' LIMIT 4,18; |
|||
Log_name Pos Event_type Server_id End_log_pos Info |
|||
mysqld-bin.000002 353 Gtid 1 391 GTID 0-1-1 |
|||
mysqld-bin.000002 391 Query 1 504 use `test`; CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB |
|||
mysqld-bin.000002 504 Gtid 1 542 BEGIN GTID 0-1-2 |
|||
mysqld-bin.000002 542 Table_map 1 583 table_id: 48 (test.t1) |
|||
mysqld-bin.000002 583 Write_rows_v1 1 617 table_id: 48 flags: STMT_END_F |
|||
mysqld-bin.000002 617 Xid 1 644 COMMIT /* xid=2 */ |
|||
mysqld-bin.000002 644 Gtid 1 682 GTID 0-1-3 |
|||
mysqld-bin.000002 682 Query 1 783 use `test`; CREATE TABLE t2 (id INT) ENGINE=InnoDB |
|||
mysqld-bin.000002 783 Gtid 1 821 BEGIN GTID 0-1-4 |
|||
mysqld-bin.000002 821 Table_map 1 862 table_id: 49 (test.t2) |
|||
mysqld-bin.000002 862 Write_rows_v1 1 896 table_id: 49 flags: STMT_END_F |
|||
mysqld-bin.000002 896 Xid 1 923 COMMIT /* xid=4 */ |
|||
mysqld-bin.000002 923 Gtid 1 961 BEGIN GTID 0-1-5 |
|||
mysqld-bin.000002 961 Table_map 1 1002 table_id: 49 (test.t2) |
|||
mysqld-bin.000002 1002 Write_rows_v1 1 1036 table_id: 49 flags: STMT_END_F |
|||
mysqld-bin.000002 1036 Xid 1 1063 COMMIT /* xid=5 */ |
|||
mysqld-bin.000002 1063 Gtid 1 1101 GTID 0-1-6 |
|||
mysqld-bin.000002 1101 Query 1 1200 use `test`; ALTER TABLE t1 ADD COLUMN f2 INTEGER |
|||
SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; |
|||
COUNT(*) = 2 |
|||
1 |
|||
SHOW BINLOG EVENTS IN 'mysqld-bin.000003' LIMIT 3,18; |
|||
Log_name Pos Event_type Server_id End_log_pos Info |
|||
mysqld-bin.000003 313 Gtid 1 351 GTID 0-1-1 |
|||
mysqld-bin.000003 351 Query 1 464 use `test`; CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB |
|||
mysqld-bin.000003 464 Gtid 1 502 BEGIN GTID 0-1-2 |
|||
mysqld-bin.000003 502 Table_map 1 543 table_id: 30 (test.t1) |
|||
mysqld-bin.000003 543 Write_rows_v1 1 577 table_id: 30 flags: STMT_END_F |
|||
mysqld-bin.000003 577 Xid 1 604 COMMIT /* xid=2 */ |
|||
mysqld-bin.000003 604 Gtid 1 642 GTID 0-1-3 |
|||
mysqld-bin.000003 642 Query 1 743 use `test`; CREATE TABLE t2 (id INT) ENGINE=InnoDB |
|||
mysqld-bin.000003 743 Gtid 1 781 BEGIN GTID 0-1-4 |
|||
mysqld-bin.000003 781 Table_map 1 822 table_id: 31 (test.t2) |
|||
mysqld-bin.000003 822 Write_rows_v1 1 856 table_id: 31 flags: STMT_END_F |
|||
mysqld-bin.000003 856 Xid 1 883 COMMIT /* xid=4 */ |
|||
mysqld-bin.000003 883 Gtid 1 921 BEGIN GTID 0-1-5 |
|||
mysqld-bin.000003 921 Table_map 1 962 table_id: 31 (test.t2) |
|||
mysqld-bin.000003 962 Write_rows_v1 1 996 table_id: 31 flags: STMT_END_F |
|||
mysqld-bin.000003 996 Xid 1 1023 COMMIT /* xid=5 */ |
|||
mysqld-bin.000003 1023 Gtid 1 1061 GTID 0-1-6 |
|||
mysqld-bin.000003 1061 Query 1 1160 use `test`; ALTER TABLE t1 ADD COLUMN f2 INTEGER |
|||
DROP TABLE t1; |
|||
DROP TABLE t2; |
@ -0,0 +1,21 @@ |
|||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES (1); |
|||
SELECT COUNT(*) > 0 FROM mysql.general_log; |
|||
COUNT(*) > 0 |
|||
1 |
|||
SELECT 1 = 1 FROM t1; |
|||
1 = 1 |
|||
1 |
|||
SELECT COUNT(*) = 1 FROM mysql.slow_log WHERE sql_text = 'SELECT 1 = 1 FROM t1'; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SELECT COUNT(*) > 0 FROM mysql.general_log WHERE argument = 'CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB'; |
|||
COUNT(*) > 0 |
|||
1 |
|||
SELECT 2 = 2 FROM t1; |
|||
2 = 2 |
|||
1 |
|||
SELECT COUNT(*) = 1 FROM mysql.slow_log WHERE sql_text = 'SELECT 2 = 2 FROM t1'; |
|||
COUNT(*) = 1 |
|||
1 |
|||
DROP TABLE t1; |
1018
mysql-test/suite/galera/r/galera_many_columns.result
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,17 @@ |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
COMMIT; |
|||
CREATE TABLE sum_table (f1 INTEGER); |
|||
SELECT SUM(f1) = 1000 FROM sum_table; |
|||
SUM(f1) = 1000 |
|||
1 |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
UPDATE t1000 SET f1 = 3; |
|||
COMMIT; |
|||
COMMIT; |
|||
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction |
|||
DROP SCHEMA test; |
|||
CREATE SCHEMA test; |
@ -0,0 +1,20 @@ |
|||
SELECT COUNT(*) = 1000 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME LIKE 't%'; |
|||
COUNT(*) = 1000 |
|||
1 |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
COMMIT; |
|||
CREATE TABLE sum_table (f1 INTEGER); |
|||
SELECT SUM(f1) = 1000 FROM sum_table; |
|||
SUM(f1) = 1000 |
|||
1 |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
UPDATE t1000 SET f1 = 3; |
|||
COMMIT; |
|||
COMMIT; |
|||
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction |
|||
DROP SCHEMA test; |
|||
CREATE SCHEMA test; |
@ -0,0 +1,79 @@ |
|||
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES (1); |
|||
START SLAVE USER='root'; |
|||
Warnings: |
|||
Note 1759 Sending passwords in plain text without SSL/TLS is extremely insecure. |
|||
INSERT INTO t1 VALUES (2); |
|||
START SLAVE USER='root'; |
|||
Warnings: |
|||
Note 1759 Sending passwords in plain text without SSL/TLS is extremely insecure. |
|||
INSERT INTO t1 VALUES (3); |
|||
INSERT INTO t1 VALUES (4); |
|||
SET GLOBAL wsrep_cluster_address='gcomm://'; |
|||
INSERT INTO t1 VALUES (5); |
|||
SELECT VARIABLE_VALUE = 'Synced' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment'; |
|||
VARIABLE_VALUE = 'Synced' |
|||
1 |
|||
SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status'; |
|||
VARIABLE_VALUE = 'Primary' |
|||
1 |
|||
SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
VARIABLE_VALUE = 1 |
|||
1 |
|||
INSERT INTO t1 VALUES (6); |
|||
GRANT ALL PRIVILEGES ON *.* TO 'sst' IDENTIFIED BY 'sst'; |
|||
SET GLOBAL wsrep_sst_auth = 'sst:sst'; |
|||
GRANT ALL PRIVILEGES ON *.* TO 'sst' IDENTIFIED BY 'sst'; |
|||
SELECT VARIABLE_VALUE = 'Synced' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment'; |
|||
VARIABLE_VALUE = 'Synced' |
|||
1 |
|||
SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status'; |
|||
VARIABLE_VALUE = 'Primary' |
|||
1 |
|||
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
VARIABLE_VALUE = 2 |
|||
1 |
|||
STOP SLAVE; |
|||
RESET SLAVE ALL; |
|||
STOP SLAVE; |
|||
RESET SLAVE ALL; |
|||
INSERT INTO t1 VALUES (7); |
|||
INSERT INTO t1 VALUES (8); |
|||
SELECT COUNT(*) = 8 FROM t1; |
|||
COUNT(*) = 8 |
|||
1 |
|||
SELECT VARIABLE_VALUE = 'Synced' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment'; |
|||
VARIABLE_VALUE = 'Synced' |
|||
1 |
|||
SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status'; |
|||
VARIABLE_VALUE = 'Primary' |
|||
1 |
|||
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
VARIABLE_VALUE = 2 |
|||
1 |
|||
SELECT COUNT(*) = 8 FROM t1; |
|||
COUNT(*) = 8 |
|||
1 |
|||
SELECT VARIABLE_VALUE = 'Synced' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment'; |
|||
VARIABLE_VALUE = 'Synced' |
|||
1 |
|||
SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status'; |
|||
VARIABLE_VALUE = 'Primary' |
|||
1 |
|||
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
VARIABLE_VALUE = 2 |
|||
1 |
|||
DROP TABLE t1; |
|||
DROP TABLE t1; |
|||
SET GLOBAL wsrep_provider = 'none'; |
|||
SET GLOBAL wsrep_sst_auth = ''; |
|||
SET GLOBAL wsrep_provider_options = ''; |
|||
DROP TABLE t1; |
|||
DROP USER sst; |
|||
SET GLOBAL wsrep_provider = 'none'; |
|||
SET GLOBAL wsrep_sst_method = 'rsync'; |
|||
SET GLOBAL wsrep_provider_options = ''; |
|||
SET GLOBAL wsrep_sst_receive_address = 'AUTO'; |
|||
DROP TABLE t1; |
|||
DROP USER sst; |
|||
CALL mtr.add_suppression("InnoDB: Error: Table \"mysql\"\\.\"innodb_index_stats\" not found"); |
@ -0,0 +1,28 @@ |
|||
CREATE DATABASE d1; |
|||
CREATE TABLE d1.t1(f1 INTEGER) ENGINE=InnoDB; |
|||
CREATE DATABASE d2; |
|||
CREATE TABLE d2.t1(f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
INSERT INTO d1.t1 VALUES (1); |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
INSERT INTO d2.t1 VALUES (1); |
|||
COMMIT; |
|||
COMMIT; |
|||
SELECT COUNT(*) = 1 FROM d1.t1; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SELECT COUNT(*) = 1 FROM d2.t1; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SELECT COUNT(*) = 1 FROM d1.t1; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SELECT COUNT(*) = 1 FROM d2.t1; |
|||
COUNT(*) = 1 |
|||
1 |
|||
DROP TABLE d1.t1; |
|||
DROP TABLE d2.t1; |
|||
DROP DATABASE d1; |
|||
DROP DATABASE d2; |
@ -0,0 +1,24 @@ |
|||
CREATE TABLE t1 (f1 INTEGER) ENGINE=MyISAM; |
|||
INSERT INTO t1 VALUES (1); |
|||
INSERT INTO t1 VALUES (2), (3); |
|||
INSERT INTO t1 SELECT 4 FROM DUAL UNION ALL SELECT 5 FROM DUAL; |
|||
CREATE TABLE t2 (f1 INTEGER PRIMARY KEY) ENGINE=MyISAM; |
|||
INSERT INTO t2 VALUES (1); |
|||
INSERT INTO t2 VALUES (2), (3); |
|||
INSERT INTO t2 SELECT 4 FROM DUAL UNION ALL SELECT 5 FROM DUAL; |
|||
INSERT INTO t2 VALUES (6), (1); |
|||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY' |
|||
UPDATE t1 SET f1 = 9; |
|||
UPDATE t2 SET f1 = 9 WHERE f1 = 1; |
|||
DELETE FROM t1 WHERE f1 = 9; |
|||
DELETE FROM t2 WHERE f1 = 9; |
|||
TRUNCATE TABLE t1; |
|||
TRUNCATE TABLE t1; |
|||
SELECT COUNT(*) = 0 FROM t1; |
|||
COUNT(*) = 0 |
|||
1 |
|||
SELECT COUNT(*) = 0 FROM t2; |
|||
COUNT(*) = 0 |
|||
1 |
|||
DROP TABLE t1; |
|||
DROP TABLE t2; |
@ -0,0 +1,34 @@ |
|||
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; |
|||
CREATE TABLE t2 (f1 INTEGER) ENGINE=MyISAM; |
|||
CREATE TABLE t3 (f1 INTEGER) ENGINE=MyISAM; |
|||
CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW INSERT INTO t3 VALUES (NEW.f1); |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
INSERT INTO t1 VALUES (1); |
|||
INSERT INTO t2 VALUES (1); |
|||
COMMIT; |
|||
SELECT COUNT(*) = 1 FROM t1; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SELECT COUNT(*) = 0 FROM t2; |
|||
COUNT(*) = 0 |
|||
1 |
|||
SELECT COUNT(*) = 0 FROM t2; |
|||
COUNT(*) = 0 |
|||
1 |
|||
START TRANSACTION; |
|||
INSERT INTO t1 VALUES (1); |
|||
INSERT INTO t2 VALUES (1); |
|||
ROLLBACK; |
|||
Warnings: |
|||
Warning 1196 Some non-transactional changed tables couldn't be rolled back |
|||
SELECT COUNT(*) = 1 FROM t1; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SELECT COUNT(*) = 0 FROM t2; |
|||
COUNT(*) = 0 |
|||
1 |
|||
SELECT COUNT(*) = 0 FROM t2; |
|||
COUNT(*) = 0 |
|||
1 |
|||
DROP TABLE t1, t2, t3; |
@ -0,0 +1,24 @@ |
|||
CREATE TABLE t1 ( |
|||
f1 VARCHAR(255), |
|||
KEY (f1) |
|||
) ENGINE=InnoDB DEFAULT CHARSET=utf8; |
|||
INSERT INTO t1 VALUES ('текст'); |
|||
SELECT f1 = 'текст' FROM t1; |
|||
f1 = 'текст' |
|||
1 |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
UPDATE t1 SET f1 = 'текст2'; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
UPDATE t1 SET f1 = 'текст3'; |
|||
COMMIT; |
|||
COMMIT; |
|||
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction |
|||
SELECT f1 = 'текст2' FROM t1; |
|||
f1 = 'текст2' |
|||
1 |
|||
SELECT f1 = 'текст2' FROM t1 WHERE f1 = 'текст2'; |
|||
f1 = 'текст2' |
|||
1 |
|||
DROP TABLE t1; |
@ -0,0 +1,33 @@ |
|||
CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB; |
|||
CREATE TABLE t2 (id INT PRIMARY KEY) ENGINE=InnoDB; |
|||
SET GLOBAL wsrep_slave_threads = 2; |
|||
LOCK TABLE t1 READ; |
|||
INSERT INTO t1 VALUES (1); |
|||
INSERT INTO t2 VALUES (1); |
|||
SET SESSION wsrep_sync_wait=0; |
|||
SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE LIKE '%applied write set%'; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE LIKE '%Waiting for table level lock%'; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SELECT COUNT(*) = 0 FROM t1; |
|||
COUNT(*) = 0 |
|||
1 |
|||
SELECT COUNT(*) = 0 FROM t2; |
|||
COUNT(*) = 0 |
|||
1 |
|||
UNLOCK TABLES; |
|||
SET SESSION wsrep_sync_wait = 7;; |
|||
SELECT COUNT(*) = 1 FROM t1; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SELECT COUNT(*) = 1 FROM t2; |
|||
COUNT(*) = 1 |
|||
1 |
|||
SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE LIKE 'committed%'; |
|||
COUNT(*) = 2 |
|||
1 |
|||
SET GLOBAL wsrep_slave_threads = 1;; |
|||
DROP TABLE t1; |
|||
DROP TABLE t2; |
@ -0,0 +1,18 @@ |
|||
CREATE TABLE ten (f1 INTEGER); |
|||
INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); |
|||
CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, f2 INTEGER) Engine=InnoDB; |
|||
SET GLOBAL wsrep_slave_threads = 4; |
|||
INSERT INTO t1 (f2) SELECT 1 FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4;; |
|||
INSERT INTO t1 (f2) SELECT 1 FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4;; |
|||
INSERT INTO t1 (f2) SELECT 1 FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4;; |
|||
SELECT COUNT(*) = 30000 FROM t1; |
|||
COUNT(*) = 30000 |
|||
1 |
|||
SELECT COUNT(DISTINCT f1) = 30000 FROM t1; |
|||
COUNT(DISTINCT f1) = 30000 |
|||
1 |
|||
SELECT COUNT(*) = 5 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user'; |
|||
COUNT(*) = 5 |
|||
1 |
|||
DROP TABLE t1; |
|||
DROP TABLE ten; |
@ -0,0 +1,15 @@ |
|||
CREATE TABLE ten (f1 INTEGER); |
|||
INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); |
|||
CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, f2 INTEGER) Engine=InnoDB; |
|||
SET GLOBAL wsrep_slave_threads = 4; |
|||
SELECT COUNT(*) = 20000 FROM t1; |
|||
COUNT(*) = 20000 |
|||
1 |
|||
SELECT COUNT(DISTINCT f1) = 20000 FROM t1; |
|||
COUNT(DISTINCT f1) = 20000 |
|||
1 |
|||
SELECT COUNT(*) = 4 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE LIKE 'committed%'; |
|||
COUNT(*) = 4 |
|||
1 |
|||
DROP TABLE t1; |
|||
DROP TABLE ten; |
@ -0,0 +1,27 @@ |
|||
CREATE TABLE t1 (id INT) ENGINE=InnoDB; |
|||
CREATE TABLE t2 (id INT) ENGINE=InnoDB; |
|||
SET GLOBAL wsrep_slave_threads = 2; |
|||
INSERT INTO t1 VALUES (1); |
|||
INSERT INTO t2 VALUES (1); |
|||
INSERT INTO t1 VALUES (1); |
|||
INSERT INTO t2 VALUES (1); |
|||
INSERT INTO t1 VALUES (1); |
|||
INSERT INTO t2 VALUES (1); |
|||
INSERT INTO t1 VALUES (1); |
|||
INSERT INTO t2 VALUES (1); |
|||
INSERT INTO t1 VALUES (1); |
|||
INSERT INTO t2 VALUES (1); |
|||
INSERT INTO t1 VALUES (1); |
|||
INSERT INTO t2 VALUES (1); |
|||
SELECT COUNT(*) = 6 FROM t1; |
|||
COUNT(*) = 6 |
|||
1 |
|||
SELECT COUNT(*) = 6 FROM t2; |
|||
COUNT(*) = 6 |
|||
1 |
|||
SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE LIKE 'closing tables'; |
|||
COUNT(*) = 2 |
|||
1 |
|||
SET GLOBAL wsrep_slave_threads = 1;; |
|||
DROP TABLE t1; |
|||
DROP TABLE t2; |
@ -0,0 +1,12 @@ |
|||
SET GLOBAL wsrep_provider_options = 'pc.ignore_sb=true'; |
|||
Killing server ... |
|||
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES (1); |
|||
DROP TABLE t1; |
|||
SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
VARIABLE_VALUE = 1 |
|||
1 |
|||
SELECT VARIABLE_VALUE = 'ON' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready'; |
|||
VARIABLE_VALUE = 'ON' |
|||
1 |
|||
SET GLOBAL wsrep_cluster_address = ''; |
@ -0,0 +1,26 @@ |
|||
CREATE TABLE t1 (f1 BIGINT SIGNED PRIMARY KEY, f2 VARCHAR(5)) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES |
|||
(-9223372036854775808, 'min'), |
|||
(9223372036854775807, 'max') |
|||
; |
|||
SELECT * FROM t1; |
|||
f1 f2 |
|||
-9223372036854775808 min |
|||
9223372036854775807 max |
|||
UPDATE t1 SET f2 = CONCAT(f2, '_'); |
|||
SELECT * FROM t1; |
|||
f1 f2 |
|||
-9223372036854775808 min_ |
|||
9223372036854775807 max_ |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
UPDATE t1 SET f2 = 'foo' WHERE f1 = -9223372036854775808; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
UPDATE t1 SET f2 = 'bar' WHERE f1 = -9223372036854775808; |
|||
COMMIT; |
|||
SET AUTOCOMMIT=ON; |
|||
COMMIT; |
|||
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction |
|||
SET AUTOCOMMIT=ON; |
|||
DROP TABLE t1; |
@ -0,0 +1,23 @@ |
|||
CREATE TABLE t1 (f1 BIGINT UNSIGNED PRIMARY KEY, f2 VARCHAR(5)) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES |
|||
(18446744073709551615, 'max') |
|||
; |
|||
SELECT f1 = 18446744073709551615 FROM t1; |
|||
f1 = 18446744073709551615 |
|||
1 |
|||
UPDATE t1 SET f2 = CONCAT(f2, '_'); |
|||
SELECT f1 = 18446744073709551615 FROM t1; |
|||
f1 = 18446744073709551615 |
|||
1 |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
UPDATE t1 SET f2 = 'foo' WHERE f1 = 18446744073709551615; |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
UPDATE t1 SET f2 = 'bar' WHERE f1 = 18446744073709551615; |
|||
COMMIT; |
|||
SET AUTOCOMMIT=ON; |
|||
COMMIT; |
|||
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction |
|||
SET AUTOCOMMIT=ON; |
|||
DROP TABLE t1; |
@ -0,0 +1,57 @@ |
|||
CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB; |
|||
INSERT INTO t1 VALUES (1); |
|||
RESET QUERY CACHE; |
|||
FLUSH STATUS; |
|||
SELECT COUNT(*) FROM t1; |
|||
COUNT(*) |
|||
1 |
|||
SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'Qcache_queries_in_cache'; |
|||
VARIABLE_VALUE = 1 |
|||
1 |
|||
SELECT COUNT(*) FROM t1; |
|||
COUNT(*) |
|||
1 |
|||
SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'Qcache_hits'; |
|||
VARIABLE_VALUE = 1 |
|||
1 |
|||
INSERT INTO t1 VALUES (2); |
|||
FLUSH STATUS; |
|||
SELECT VARIABLE_VALUE = 0 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'Qcache_queries_in_cache'; |
|||
VARIABLE_VALUE = 0 |
|||
1 |
|||
SELECT COUNT(*) FROM t1; |
|||
COUNT(*) |
|||
2 |
|||
SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'Qcache_queries_in_cache'; |
|||
VARIABLE_VALUE = 1 |
|||
1 |
|||
SELECT VARIABLE_VALUE = 0 FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'Qcache_hits'; |
|||
VARIABLE_VALUE = 0 |
|||
1 |
|||
SELECT COUNT(*) FROM t1; |
|||
COUNT(*) |
|||
2 |
|||
SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'Qcache_hits'; |
|||
VARIABLE_VALUE = 1 |
|||
1 |
|||
ALTER TABLE t1 ADD COLUMN f2 INTEGER; |
|||
FLUSH STATUS; |
|||
SELECT VARIABLE_VALUE = 0 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'Qcache_queries_in_cache'; |
|||
VARIABLE_VALUE = 0 |
|||
1 |
|||
SELECT COUNT(*) FROM t1; |
|||
COUNT(*) |
|||
2 |
|||
SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'Qcache_queries_in_cache'; |
|||
VARIABLE_VALUE = 1 |
|||
1 |
|||
SELECT VARIABLE_VALUE = 0 FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'Qcache_hits'; |
|||
VARIABLE_VALUE = 0 |
|||
1 |
|||
SELECT COUNT(*) FROM t1; |
|||
COUNT(*) |
|||
2 |
|||
SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'Qcache_hits'; |
|||
VARIABLE_VALUE = 1 |
|||
1 |
|||
DROP TABLE t1; |
Some files were not shown because too many files changed in this diff
Write
Preview
Loading…
Cancel
Save
Reference in new issue