mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
perfschema test formatting. Use --echo #
This commit is contained in:
@ -1,6 +1,6 @@
|
|||||||
# Helper for hostcache_*.test
|
# Helper for hostcache_*.test
|
||||||
|
|
||||||
--echo "Dumping performance_schema.host_cache"
|
--echo # Dumping performance_schema.host_cache
|
||||||
|
|
||||||
--disable_query_log
|
--disable_query_log
|
||||||
--vertical_results
|
--vertical_results
|
||||||
|
@ -20,7 +20,7 @@ drop event if exists test.user_event;
|
|||||||
--enable_warnings
|
--enable_warnings
|
||||||
|
|
||||||
|
|
||||||
--echo "Testing mysql_upgrade with TABLE performance_schema.user_table"
|
--echo # Testing mysql_upgrade with TABLE performance_schema.user_table
|
||||||
|
|
||||||
create table test.user_table(a int);
|
create table test.user_table(a int);
|
||||||
|
|
||||||
@ -43,7 +43,7 @@ use test;
|
|||||||
drop table test.user_table;
|
drop table test.user_table;
|
||||||
|
|
||||||
|
|
||||||
--echo "Testing mysql_upgrade with VIEW performance_schema.user_view"
|
--echo # Testing mysql_upgrade with VIEW performance_schema.user_view
|
||||||
|
|
||||||
create view test.user_view as select "Not supposed to be here";
|
create view test.user_view as select "Not supposed to be here";
|
||||||
|
|
||||||
@ -66,7 +66,7 @@ use test;
|
|||||||
drop view test.user_view;
|
drop view test.user_view;
|
||||||
|
|
||||||
|
|
||||||
--echo "Testing mysql_upgrade with PROCEDURE performance_schema.user_proc"
|
--echo # Testing mysql_upgrade with PROCEDURE performance_schema.user_proc
|
||||||
|
|
||||||
create procedure test.user_proc()
|
create procedure test.user_proc()
|
||||||
select "Not supposed to be here";
|
select "Not supposed to be here";
|
||||||
@ -81,7 +81,7 @@ update mysql.proc set db='test' where name='user_proc';
|
|||||||
drop procedure test.user_proc;
|
drop procedure test.user_proc;
|
||||||
|
|
||||||
|
|
||||||
--echo "Testing mysql_upgrade with FUNCTION performance_schema.user_func"
|
--echo # Testing mysql_upgrade with FUNCTION performance_schema.user_func
|
||||||
|
|
||||||
create function test.user_func() returns integer
|
create function test.user_func() returns integer
|
||||||
return 0;
|
return 0;
|
||||||
@ -96,7 +96,7 @@ update mysql.proc set db='test' where name='user_func';
|
|||||||
drop function test.user_func;
|
drop function test.user_func;
|
||||||
|
|
||||||
|
|
||||||
--echo "Testing mysql_upgrade with EVENT performance_schema.user_event"
|
--echo # Testing mysql_upgrade with EVENT performance_schema.user_event
|
||||||
|
|
||||||
create event test.user_event on schedule every 1 day do
|
create event test.user_event on schedule every 1 day do
|
||||||
select "not supposed to be here";
|
select "not supposed to be here";
|
||||||
|
@ -12,7 +12,7 @@ UPDATE test.status_results sr, performance_schema.global_status sg
|
|||||||
SET sr.stop = sg.variable_value
|
SET sr.stop = sg.variable_value
|
||||||
WHERE sr.variable_name = sg.variable_name
|
WHERE sr.variable_name = sg.variable_name
|
||||||
AND sg.variable_name IN ('handler_delete', 'handler_rollback');
|
AND sg.variable_name IN ('handler_delete', 'handler_rollback');
|
||||||
--echo
|
--echo #
|
||||||
--echo # Global deltas: END - START.
|
--echo # Global deltas: END - START.
|
||||||
UPDATE test.status_results sr
|
UPDATE test.status_results sr
|
||||||
SET sr.delta = sr.stop - sr.start;
|
SET sr.delta = sr.stop - sr.start;
|
||||||
@ -30,21 +30,21 @@ UPDATE test.status_results sr, performance_schema.status_by_thread sbt
|
|||||||
WHERE sr.variable_name = sbt.variable_name
|
WHERE sr.variable_name = sbt.variable_name
|
||||||
AND sbt.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sbt.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sbt.thread_id = @con1_id;
|
AND sbt.thread_id = @con1_id;
|
||||||
--echo
|
--echo #
|
||||||
--echo # Thread results from CON2.
|
--echo # Thread results from CON2.
|
||||||
UPDATE test.status_results sr, performance_schema.status_by_thread sbt
|
UPDATE test.status_results sr, performance_schema.status_by_thread sbt
|
||||||
SET sr.t2 = sbt.variable_value
|
SET sr.t2 = sbt.variable_value
|
||||||
WHERE sr.variable_name = sbt.variable_name
|
WHERE sr.variable_name = sbt.variable_name
|
||||||
AND sbt.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sbt.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sbt.thread_id = @con2_id;
|
AND sbt.thread_id = @con2_id;
|
||||||
--echo
|
--echo #
|
||||||
--echo # Thread results from CON3.
|
--echo # Thread results from CON3.
|
||||||
UPDATE test.status_results sr, performance_schema.status_by_thread sbt
|
UPDATE test.status_results sr, performance_schema.status_by_thread sbt
|
||||||
SET sr.t3 = sbt.variable_value
|
SET sr.t3 = sbt.variable_value
|
||||||
WHERE sr.variable_name = sbt.variable_name
|
WHERE sr.variable_name = sbt.variable_name
|
||||||
AND sbt.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sbt.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sbt.thread_id = @con3_id;
|
AND sbt.thread_id = @con3_id;
|
||||||
--echo
|
--echo #
|
||||||
--echo # Thread totals for 3 connections.
|
--echo # Thread totals for 3 connections.
|
||||||
UPDATE test.status_results sr
|
UPDATE test.status_results sr
|
||||||
SET sr.thread = sr.t1 + sr.t2 + sr.t3;
|
SET sr.thread = sr.t1 + sr.t2 + sr.t3;
|
||||||
@ -58,21 +58,21 @@ UPDATE test.status_results sr, performance_schema.status_by_user sbu
|
|||||||
WHERE sr.variable_name = sbu.variable_name
|
WHERE sr.variable_name = sbu.variable_name
|
||||||
AND sbu.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sbu.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sbu.user IN ('user1');
|
AND sbu.user IN ('user1');
|
||||||
--echo
|
--echo #
|
||||||
--echo # User2
|
--echo # User2
|
||||||
UPDATE test.status_results sr, performance_schema.status_by_user sbu
|
UPDATE test.status_results sr, performance_schema.status_by_user sbu
|
||||||
SET sr.u2 = sbu.variable_value
|
SET sr.u2 = sbu.variable_value
|
||||||
WHERE sr.variable_name = sbu.variable_name
|
WHERE sr.variable_name = sbu.variable_name
|
||||||
AND sbu.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sbu.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sbu.user IN ('user2');
|
AND sbu.user IN ('user2');
|
||||||
--echo
|
--echo #
|
||||||
--echo # User3
|
--echo # User3
|
||||||
UPDATE test.status_results sr, performance_schema.status_by_user sbu
|
UPDATE test.status_results sr, performance_schema.status_by_user sbu
|
||||||
SET sr.u3 = sbu.variable_value
|
SET sr.u3 = sbu.variable_value
|
||||||
WHERE sr.variable_name = sbu.variable_name
|
WHERE sr.variable_name = sbu.variable_name
|
||||||
AND sbu.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sbu.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sbu.user IN ('user3');
|
AND sbu.user IN ('user3');
|
||||||
--echo
|
--echo #
|
||||||
--echo # Status totals for 3 users.
|
--echo # Status totals for 3 users.
|
||||||
UPDATE test.status_results sr
|
UPDATE test.status_results sr
|
||||||
SET sr.user = sr.u1 + sr.u2 + sr.u3;
|
SET sr.user = sr.u1 + sr.u2 + sr.u3;
|
||||||
@ -80,14 +80,14 @@ UPDATE test.status_results sr
|
|||||||
--echo #===========================
|
--echo #===========================
|
||||||
--echo # Status by host (localhost)
|
--echo # Status by host (localhost)
|
||||||
--echo #===========================
|
--echo #===========================
|
||||||
--echo
|
--echo #
|
||||||
--echo # host1 = localhost
|
--echo # host1 = localhost
|
||||||
UPDATE test.status_results sr, performance_schema.status_by_host sbh
|
UPDATE test.status_results sr, performance_schema.status_by_host sbh
|
||||||
SET sr.h1 = sbh.variable_value
|
SET sr.h1 = sbh.variable_value
|
||||||
WHERE sr.variable_name = sbh.variable_name
|
WHERE sr.variable_name = sbh.variable_name
|
||||||
AND sbh.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sbh.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sbh.host IN ('localhost');
|
AND sbh.host IN ('localhost');
|
||||||
--echo
|
--echo #
|
||||||
--echo # Status totals for 'localhost' only.
|
--echo # Status totals for 'localhost' only.
|
||||||
UPDATE test.status_results sr
|
UPDATE test.status_results sr
|
||||||
SET sr.host = sr.h1 + sr.h2 + sr.h3;
|
SET sr.host = sr.h1 + sr.h2 + sr.h3;
|
||||||
@ -101,22 +101,22 @@ UPDATE test.status_results sr, performance_schema.status_by_account sba
|
|||||||
WHERE sr.variable_name = sba.variable_name
|
WHERE sr.variable_name = sba.variable_name
|
||||||
AND sba.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sba.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sba.user IN ('user1');
|
AND sba.user IN ('user1');
|
||||||
--echo
|
--echo #
|
||||||
--echo # User2@localhost
|
--echo # User2@localhost
|
||||||
UPDATE test.status_results sr, performance_schema.status_by_account sba
|
UPDATE test.status_results sr, performance_schema.status_by_account sba
|
||||||
SET sr.a2 = sba.variable_value
|
SET sr.a2 = sba.variable_value
|
||||||
WHERE sr.variable_name = sba.variable_name
|
WHERE sr.variable_name = sba.variable_name
|
||||||
AND sba.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sba.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sba.user IN ('user2');
|
AND sba.user IN ('user2');
|
||||||
--echo
|
--echo #
|
||||||
--echo # User3@localhost
|
--echo # User3@localhost
|
||||||
UPDATE test.status_results sr, performance_schema.status_by_account sba
|
UPDATE test.status_results sr, performance_schema.status_by_account sba
|
||||||
SET sr.a3 = sba.variable_value
|
SET sr.a3 = sba.variable_value
|
||||||
WHERE sr.variable_name = sba.variable_name
|
WHERE sr.variable_name = sba.variable_name
|
||||||
AND sba.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sba.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sba.user IN ('user3');
|
AND sba.user IN ('user3');
|
||||||
--echo
|
--echo #
|
||||||
--echo
|
--echo #
|
||||||
--echo # Status totals for 3 accounts.
|
--echo # Status totals for 3 accounts.
|
||||||
UPDATE test.status_results sr
|
UPDATE test.status_results sr
|
||||||
SET sr.acct = sr.a1 + sr.a2 + sr.a3;
|
SET sr.acct = sr.a1 + sr.a2 + sr.a3;
|
||||||
|
@ -1,20 +1,20 @@
|
|||||||
--disable_warnings
|
--disable_warnings
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
SHOW GLOBAL STATUS LIKE "example_%";
|
SHOW GLOBAL STATUS LIKE "example_%";
|
||||||
--echo
|
--echo #
|
||||||
SHOW SESSION STATUS LIKE "example_%";
|
SHOW SESSION STATUS LIKE "example_%";
|
||||||
--echo
|
--echo #
|
||||||
SHOW GLOBAL VARIABLES LIKE "example_%";
|
SHOW GLOBAL VARIABLES LIKE "example_%";
|
||||||
--echo
|
--echo #
|
||||||
SHOW SESSION VARIABLES LIKE "example_%";
|
SHOW SESSION VARIABLES LIKE "example_%";
|
||||||
--echo
|
--echo #
|
||||||
SELECT variable_name, variable_value FROM performance_schema.global_status WHERE variable_name LIKE "example_%";
|
SELECT variable_name, variable_value FROM performance_schema.global_status WHERE variable_name LIKE "example_%";
|
||||||
--echo
|
--echo #
|
||||||
SELECT variable_name, variable_value FROM performance_schema.session_status WHERE variable_name LIKE "example_%";
|
SELECT variable_name, variable_value FROM performance_schema.session_status WHERE variable_name LIKE "example_%";
|
||||||
--echo
|
--echo #
|
||||||
SELECT variable_name, variable_value FROM performance_schema.global_variables WHERE variable_name LIKE "example_%";
|
SELECT variable_name, variable_value FROM performance_schema.global_variables WHERE variable_name LIKE "example_%";
|
||||||
--echo
|
--echo #
|
||||||
SELECT variable_name, variable_value FROM performance_schema.session_variables WHERE variable_name LIKE "example_%";
|
SELECT variable_name, variable_value FROM performance_schema.session_variables WHERE variable_name LIKE "example_%";
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -24,6 +24,6 @@ if ($current_result == '')
|
|||||||
--let $current_result= none
|
--let $current_result= none
|
||||||
}
|
}
|
||||||
|
|
||||||
--echo - history=$history_result current=$current_result
|
--echo # - history=$history_result current=$current_result
|
||||||
|
|
||||||
--connection default
|
--connection default
|
||||||
|
@ -63,7 +63,7 @@
|
|||||||
--echo # $title_prefix.$check_num Compare impact of statements
|
--echo # $title_prefix.$check_num Compare impact of statements
|
||||||
--echo # $stmt2
|
--echo # $stmt2
|
||||||
--echo # $stmt1
|
--echo # $stmt1
|
||||||
--echo $msg
|
--echo # $msg
|
||||||
|
|
||||||
# Enable this when extending the checks for SQL statements.
|
# Enable this when extending the checks for SQL statements.
|
||||||
if(0)
|
if(0)
|
||||||
|
@ -17,11 +17,11 @@ let $wait_condition=
|
|||||||
--source include/wait_condition.inc
|
--source include/wait_condition.inc
|
||||||
if(!$success)
|
if(!$success)
|
||||||
{
|
{
|
||||||
--echo The activity of connection con1 did not finish.
|
--echo # The activity of connection con1 did not finish.
|
||||||
SELECT thread_id , PROCESSLIST_id, PROCESSLIST_STATE, PROCESSLIST_INFO
|
SELECT thread_id , PROCESSLIST_id, PROCESSLIST_STATE, PROCESSLIST_INFO
|
||||||
FROM performance_schema.threads
|
FROM performance_schema.threads
|
||||||
WHERE thread_id = @con1_thread_id;
|
WHERE thread_id = @con1_thread_id;
|
||||||
--echo Abort.
|
--echo # Abort.
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -47,8 +47,9 @@ select if(@base_tx_event_id < @base_stmt_event_id,
|
|||||||
# set @base_event_id = 0;
|
# set @base_event_id = 0;
|
||||||
# select @base_tx_event_id, @base_stmt_event_id, @base_event_id;
|
# select @base_tx_event_id, @base_stmt_event_id, @base_event_id;
|
||||||
|
|
||||||
--echo EVENTS_TRANSACTIONS_CURRENT
|
--echo #
|
||||||
--echo
|
--echo # EVENTS_TRANSACTIONS_CURRENT
|
||||||
|
--echo #
|
||||||
|
|
||||||
--replace_column 1 thread_id
|
--replace_column 1 thread_id
|
||||||
|
|
||||||
@ -66,9 +67,9 @@ FROM performance_schema.events_transactions_current
|
|||||||
WHERE ((THREAD_ID = @con1_thread_id) OR (@all_threads = 1))
|
WHERE ((THREAD_ID = @con1_thread_id) OR (@all_threads = 1))
|
||||||
ORDER BY thread_id, event_id;
|
ORDER BY thread_id, event_id;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo EVENTS_TRANSACTIONS_HISTORY_LONG
|
--echo # EVENTS_TRANSACTIONS_HISTORY_LONG
|
||||||
--echo
|
--echo #
|
||||||
|
|
||||||
--replace_column 1 thread_id
|
--replace_column 1 thread_id
|
||||||
|
|
||||||
@ -86,9 +87,9 @@ FROM performance_schema.events_transactions_history_long
|
|||||||
WHERE ((THREAD_ID = @con1_thread_id) OR (@all_threads = 1))
|
WHERE ((THREAD_ID = @con1_thread_id) OR (@all_threads = 1))
|
||||||
ORDER BY thread_id, event_id;
|
ORDER BY thread_id, event_id;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo EVENTS_STATEMENTS_HISTORY_LONG
|
--echo # EVENTS_STATEMENTS_HISTORY_LONG
|
||||||
--echo
|
--echo #
|
||||||
|
|
||||||
--replace_column 1 thread_id
|
--replace_column 1 thread_id
|
||||||
|
|
||||||
@ -105,11 +106,11 @@ FROM performance_schema.events_statements_history_long
|
|||||||
WHERE ((THREAD_ID = @con1_thread_id) OR (@all_threads = 1))
|
WHERE ((THREAD_ID = @con1_thread_id) OR (@all_threads = 1))
|
||||||
ORDER BY thread_id, event_id;
|
ORDER BY thread_id, event_id;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Combined statement and transaction event history ordered by event id
|
--echo ### Combined statement and transaction event history ordered by event id
|
||||||
--echo
|
--echo #
|
||||||
--echo EVENTS_STATEMENTS_HISTORY_LONG + EVENTS_TRANSACTIONS_HISTORY_LONG
|
--echo #EVENTS_STATEMENTS_HISTORY_LONG + EVENTS_TRANSACTIONS_HISTORY_LONG
|
||||||
--echo
|
--echo #
|
||||||
|
|
||||||
--replace_column 1 thread_id
|
--replace_column 1 thread_id
|
||||||
|
|
||||||
@ -134,11 +135,11 @@ FROM performance_schema.events_statements_history_long s
|
|||||||
WHERE ((s.thread_id = @con1_thread_id) OR (@all_threads = 1))
|
WHERE ((s.thread_id = @con1_thread_id) OR (@all_threads = 1))
|
||||||
ORDER BY thread_id, r_event_id;
|
ORDER BY thread_id, r_event_id;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Clear statement and transaction history
|
--echo ### Clear statement and transaction history
|
||||||
--echo CALL test.clear_history();
|
--echo # CALL test.clear_history();
|
||||||
CALL test.clear_history();
|
CALL test.clear_history();
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
--echo ## Reset db.t1
|
--echo ## Reset db.t1
|
||||||
DELETE FROM db.t1;
|
DELETE FROM db.t1;
|
||||||
--echo
|
--echo #
|
||||||
|
@ -57,7 +57,7 @@ select "After payload";
|
|||||||
After payload
|
After payload
|
||||||
After payload
|
After payload
|
||||||
connection default;
|
connection default;
|
||||||
Dumping ALTER TABLE stages
|
# Dumping ALTER TABLE stages
|
||||||
select EVENT_NAME, WORK_COMPLETED, WORK_ESTIMATED
|
select EVENT_NAME, WORK_COMPLETED, WORK_ESTIMATED
|
||||||
from performance_schema.events_stages_history_long
|
from performance_schema.events_stages_history_long
|
||||||
where (thread_id = @con1_thread_id)
|
where (thread_id = @con1_thread_id)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
"Default connection"
|
# Default connection
|
||||||
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
||||||
from performance_schema.threads
|
from performance_schema.threads
|
||||||
where PROCESSLIST_ID = connection_id();
|
where PROCESSLIST_ID = connection_id();
|
||||||
@ -21,7 +21,6 @@ SET GLOBAL general_log_file = '.../log/rewrite_general_con.log';
|
|||||||
SET GLOBAL log_output = 'FILE,TABLE';
|
SET GLOBAL log_output = 'FILE,TABLE';
|
||||||
SET GLOBAL general_log= 'ON';
|
SET GLOBAL general_log= 'ON';
|
||||||
connect con1, localhost, root,,;
|
connect con1, localhost, root,,;
|
||||||
"Connection con1"
|
|
||||||
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
||||||
from performance_schema.threads
|
from performance_schema.threads
|
||||||
where PROCESSLIST_ID = connection_id();
|
where PROCESSLIST_ID = connection_id();
|
||||||
@ -31,7 +30,6 @@ PROCESSLIST_HOST localhost
|
|||||||
CONNECTION_TYPE Socket
|
CONNECTION_TYPE Socket
|
||||||
disconnect con1;
|
disconnect con1;
|
||||||
connect con2, "127.0.0.1", root,,test,$MASTER_MYPORT,;
|
connect con2, "127.0.0.1", root,,test,$MASTER_MYPORT,;
|
||||||
"Connection con2"
|
|
||||||
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
||||||
from performance_schema.threads
|
from performance_schema.threads
|
||||||
where PROCESSLIST_ID = connection_id();
|
where PROCESSLIST_ID = connection_id();
|
||||||
@ -41,7 +39,6 @@ PROCESSLIST_HOST santa.claus.ipv4.example.com
|
|||||||
CONNECTION_TYPE TCP/IP
|
CONNECTION_TYPE TCP/IP
|
||||||
disconnect con2;
|
disconnect con2;
|
||||||
connect con3, "127.0.0.1", rootssl,,test,$MASTER_MYPORT,,SSL;
|
connect con3, "127.0.0.1", rootssl,,test,$MASTER_MYPORT,,SSL;
|
||||||
"Connection con3"
|
|
||||||
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
||||||
from performance_schema.threads
|
from performance_schema.threads
|
||||||
where PROCESSLIST_ID = connection_id();
|
where PROCESSLIST_ID = connection_id();
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
"Default connection"
|
# Default connection
|
||||||
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
||||||
from performance_schema.threads
|
from performance_schema.threads
|
||||||
where PROCESSLIST_ID = connection_id();
|
where PROCESSLIST_ID = connection_id();
|
||||||
@ -20,7 +20,6 @@ SET GLOBAL general_log_file = '.../log/rewrite_general_con.log';
|
|||||||
SET GLOBAL log_output = 'FILE,TABLE';
|
SET GLOBAL log_output = 'FILE,TABLE';
|
||||||
SET GLOBAL general_log= 'ON';
|
SET GLOBAL general_log= 'ON';
|
||||||
connect con1, localhost, root,,;
|
connect con1, localhost, root,,;
|
||||||
"Connection con1"
|
|
||||||
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
||||||
from performance_schema.threads
|
from performance_schema.threads
|
||||||
where PROCESSLIST_ID = connection_id();
|
where PROCESSLIST_ID = connection_id();
|
||||||
@ -30,7 +29,6 @@ PROCESSLIST_HOST santa.claus.ipv4.example.com
|
|||||||
CONNECTION_TYPE TCP/IP
|
CONNECTION_TYPE TCP/IP
|
||||||
disconnect con1;
|
disconnect con1;
|
||||||
connect con2, "127.0.0.1", root,,test,$MASTER_MYPORT,;
|
connect con2, "127.0.0.1", root,,test,$MASTER_MYPORT,;
|
||||||
"Connection con2"
|
|
||||||
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
||||||
from performance_schema.threads
|
from performance_schema.threads
|
||||||
where PROCESSLIST_ID = connection_id();
|
where PROCESSLIST_ID = connection_id();
|
||||||
@ -40,7 +38,6 @@ PROCESSLIST_HOST santa.claus.ipv4.example.com
|
|||||||
CONNECTION_TYPE TCP/IP
|
CONNECTION_TYPE TCP/IP
|
||||||
disconnect con2;
|
disconnect con2;
|
||||||
connect con3, "127.0.0.1", rootssl,,test,$MASTER_MYPORT,,SSL;
|
connect con3, "127.0.0.1", rootssl,,test,$MASTER_MYPORT,,SSL;
|
||||||
"Connection con3"
|
|
||||||
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
||||||
from performance_schema.threads
|
from performance_schema.threads
|
||||||
where PROCESSLIST_ID = connection_id();
|
where PROCESSLIST_ID = connection_id();
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
|
#
|
||||||
# Create a temporary table of performance schema table names
|
# Create a temporary table of performance schema table names
|
||||||
|
#
|
||||||
CREATE TEMPORARY TABLE table_list (id INT AUTO_INCREMENT, PRIMARY KEY (id)) AS
|
CREATE TEMPORARY TABLE table_list (id INT AUTO_INCREMENT, PRIMARY KEY (id)) AS
|
||||||
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
|
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
|
||||||
WHERE TABLE_SCHEMA='performance_schema'
|
WHERE TABLE_SCHEMA='performance_schema'
|
||||||
@ -8,10 +8,10 @@ WHERE TABLE_SCHEMA='performance_schema'
|
|||||||
SELECT COUNT(*) FROM table_list INTO @table_count;
|
SELECT COUNT(*) FROM table_list INTO @table_count;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1287 '<select expression> INTO <destination>;' is deprecated and will be removed in a future release. Please use 'SELECT <select list> INTO <destination> FROM...' instead
|
Warning 1287 '<select expression> INTO <destination>;' is deprecated and will be removed in a future release. Please use 'SELECT <select list> INTO <destination> FROM...' instead
|
||||||
|
#
|
||||||
# For each table in the performance schema, attempt HANDLER...OPEN,
|
# For each table in the performance schema, attempt HANDLER...OPEN,
|
||||||
# which should fail with an error 1031, ER_ILLEGAL_HA.
|
# which should fail with an error 1031, ER_ILLEGAL_HA.
|
||||||
|
#
|
||||||
SELECT TABLE_NAME INTO @table_name FROM table_list WHERE id=80;
|
SELECT TABLE_NAME INTO @table_name FROM table_list WHERE id=80;
|
||||||
HANDLER performance_schema.user_variables_by_thread OPEN;
|
HANDLER performance_schema.user_variables_by_thread OPEN;
|
||||||
ERROR HY000: Storage engine PERFORMANCE_SCHEMA of the table `performance_schema`.`user_variables_by_thread` doesn't have this option
|
ERROR HY000: Storage engine PERFORMANCE_SCHEMA of the table `performance_schema`.`user_variables_by_thread` doesn't have this option
|
||||||
|
@ -77,10 +77,10 @@ LOCK TABLES performance_schema.setup_instruments READ;
|
|||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
LOCK TABLES performance_schema.setup_instruments WRITE;
|
LOCK TABLES performance_schema.setup_instruments WRITE;
|
||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
|
#
|
||||||
# Bug#13813193 ASSERTION `TABLE->READ_SET ==
|
# Bug#13813193 ASSERTION `TABLE->READ_SET ==
|
||||||
# &TABLE->DEF_READ_SET' FAILED / MYSQL_UPDATE
|
# &TABLE->DEF_READ_SET' FAILED / MYSQL_UPDATE
|
||||||
|
#
|
||||||
UPDATE performance_schema.setup_instruments SET timed='NO'
|
UPDATE performance_schema.setup_instruments SET timed='NO'
|
||||||
ORDER BY RAND();
|
ORDER BY RAND();
|
||||||
update performance_schema.setup_instruments
|
update performance_schema.setup_instruments
|
||||||
|
@ -33,7 +33,7 @@ current_user()
|
|||||||
root@192.0.2.4
|
root@192.0.2.4
|
||||||
disconnect con2;
|
disconnect con2;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED NO
|
HOST_VALIDATED NO
|
||||||
@ -70,7 +70,7 @@ current_user()
|
|||||||
root@192.0.2.4
|
root@192.0.2.4
|
||||||
disconnect con3;
|
disconnect con3;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED NO
|
HOST_VALIDATED NO
|
||||||
|
@ -24,7 +24,7 @@ SET @saved_dbug = @@GLOBAL.debug_dbug;
|
|||||||
set global debug_dbug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_fake_ipv4,getaddrinfo_error_again";
|
set global debug_dbug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_fake_ipv4,getaddrinfo_error_again";
|
||||||
ERROR HY000: Host '192.0.2.4' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host '192.0.2.4' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED NO
|
HOST_VALIDATED NO
|
||||||
@ -54,7 +54,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR HY000: Host '192.0.2.4' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host '192.0.2.4' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED NO
|
HOST_VALIDATED NO
|
||||||
|
@ -33,7 +33,7 @@ current_user()
|
|||||||
root@192.0.2.4
|
root@192.0.2.4
|
||||||
disconnect con2;
|
disconnect con2;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -70,7 +70,7 @@ current_user()
|
|||||||
root@192.0.2.4
|
root@192.0.2.4
|
||||||
disconnect con3;
|
disconnect con3;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -24,7 +24,7 @@ SET @saved_dbug = @@GLOBAL.debug_dbug;
|
|||||||
set global debug_dbug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_fake_ipv4,getaddrinfo_fake_bad_ipv4";
|
set global debug_dbug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_fake_ipv4,getaddrinfo_fake_bad_ipv4";
|
||||||
ERROR HY000: Host '192.0.2.4' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host '192.0.2.4' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -54,7 +54,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR HY000: Host '192.0.2.4' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host '192.0.2.4' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -33,7 +33,7 @@ current_user()
|
|||||||
root@santa.claus.ipv4.example.com
|
root@santa.claus.ipv4.example.com
|
||||||
disconnect con2;
|
disconnect con2;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -70,7 +70,7 @@ current_user()
|
|||||||
root@santa.claus.ipv4.example.com
|
root@santa.claus.ipv4.example.com
|
||||||
disconnect con3;
|
disconnect con3;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -24,7 +24,7 @@ SET @saved_dbug = @@GLOBAL.debug_dbug;
|
|||||||
set global debug_dbug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_fake_ipv4,getaddrinfo_fake_good_ipv4";
|
set global debug_dbug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_fake_ipv4,getaddrinfo_fake_good_ipv4";
|
||||||
ERROR HY000: Host 'santa.claus.ipv4.example.com' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host 'santa.claus.ipv4.example.com' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -54,7 +54,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR HY000: Host 'santa.claus.ipv4.example.com' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host 'santa.claus.ipv4.example.com' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -35,7 +35,7 @@ current_user()
|
|||||||
root@192.0.2.4
|
root@192.0.2.4
|
||||||
disconnect con2;
|
disconnect con2;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -72,7 +72,7 @@ current_user()
|
|||||||
root@192.0.2.4
|
root@192.0.2.4
|
||||||
disconnect con3;
|
disconnect con3;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -24,7 +24,7 @@ SET @saved_dbug = @@GLOBAL.debug_dbug;
|
|||||||
set global debug_dbug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_fake_ipv4,getaddrinfo_error_noname";
|
set global debug_dbug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_fake_ipv4,getaddrinfo_error_noname";
|
||||||
ERROR HY000: Host '192.0.2.4' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host '192.0.2.4' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -54,7 +54,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR HY000: Host '192.0.2.4' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host '192.0.2.4' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -29,7 +29,7 @@ set global debug_dbug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_fake_ipv4,getaddr
|
|||||||
uninstall plugin test_plugin_server;
|
uninstall plugin test_plugin_server;
|
||||||
ERROR HY000: Plugin 'test_plugin_server' is not loaded
|
ERROR HY000: Plugin 'test_plugin_server' is not loaded
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -59,7 +59,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR HY000: Plugin 'test_plugin_server' is not loaded
|
ERROR HY000: Plugin 'test_plugin_server' is not loaded
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -90,7 +90,7 @@ LAST_ERROR_SEEN set
|
|||||||
install plugin test_plugin_server soname 'PLUGIN_AUTH';
|
install plugin test_plugin_server soname 'PLUGIN_AUTH';
|
||||||
ERROR 28000: Access denied for user 'plug'@'santa.claus.ipv4.example.com' (using password: YES)
|
ERROR 28000: Access denied for user 'plug'@'santa.claus.ipv4.example.com' (using password: YES)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -120,7 +120,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 28000: Access denied for user 'plug'@'santa.claus.ipv4.example.com' (using password: YES)
|
ERROR 28000: Access denied for user 'plug'@'santa.claus.ipv4.example.com' (using password: YES)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -162,7 +162,7 @@ current_user()
|
|||||||
plug_dest@santa.claus.ipv4.example.com
|
plug_dest@santa.claus.ipv4.example.com
|
||||||
disconnect con4;
|
disconnect con4;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -29,7 +29,7 @@ SET @saved_dbug = @@GLOBAL.debug_dbug;
|
|||||||
set global debug_dbug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_fake_ipv4,getaddrinfo_fake_good_ipv4,native_password_bad_reply";
|
set global debug_dbug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_fake_ipv4,getaddrinfo_fake_good_ipv4,native_password_bad_reply";
|
||||||
ERROR 08S01: Bad handshake
|
ERROR 08S01: Bad handshake
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -59,7 +59,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 08S01: Bad handshake
|
ERROR 08S01: Bad handshake
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -89,7 +89,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 08S01: Bad handshake
|
ERROR 08S01: Bad handshake
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -119,7 +119,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR HY000: Host '192.0.2.4' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
|
ERROR HY000: Host '192.0.2.4' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -149,7 +149,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR HY000: Host '192.0.2.4' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
|
ERROR HY000: Host '192.0.2.4' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -180,7 +180,7 @@ LAST_ERROR_SEEN set
|
|||||||
flush hosts;
|
flush hosts;
|
||||||
ERROR 08S01: Bad handshake
|
ERROR 08S01: Bad handshake
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -210,7 +210,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 08S01: Bad handshake
|
ERROR 08S01: Bad handshake
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -245,7 +245,7 @@ Valid connection should reset SUM_CONNECT_ERROR counter
|
|||||||
connection default;
|
connection default;
|
||||||
set global debug_dbug= "+d,native_password_bad_reply";
|
set global debug_dbug= "+d,native_password_bad_reply";
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -275,7 +275,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 08S01: Bad handshake
|
ERROR 08S01: Bad handshake
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -305,7 +305,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 08S01: Bad handshake
|
ERROR 08S01: Bad handshake
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -335,7 +335,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 08S01: Bad handshake
|
ERROR 08S01: Bad handshake
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -365,7 +365,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR HY000: Host '192.0.2.4' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
|
ERROR HY000: Host '192.0.2.4' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -395,7 +395,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR HY000: Host '192.0.2.4' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
|
ERROR HY000: Host '192.0.2.4' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -24,7 +24,7 @@ SET @saved_dbug = @@GLOBAL.debug_dbug;
|
|||||||
set global debug_dbug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_format_ipv4";
|
set global debug_dbug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_format_ipv4";
|
||||||
ERROR HY000: Host '192.0.2.4' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host '192.0.2.4' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED NO
|
HOST_VALIDATED NO
|
||||||
@ -54,7 +54,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR HY000: Host '192.0.2.4' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host '192.0.2.4' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED NO
|
HOST_VALIDATED NO
|
||||||
|
@ -36,7 +36,7 @@ current_user()
|
|||||||
quota@santa.claus.ipv4.example.com
|
quota@santa.claus.ipv4.example.com
|
||||||
disconnect con2a;
|
disconnect con2a;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -73,7 +73,7 @@ current_user()
|
|||||||
quota@santa.claus.ipv4.example.com
|
quota@santa.claus.ipv4.example.com
|
||||||
disconnect con2b;
|
disconnect con2b;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -110,7 +110,7 @@ current_user()
|
|||||||
quota@santa.claus.ipv4.example.com
|
quota@santa.claus.ipv4.example.com
|
||||||
disconnect con2c;
|
disconnect con2c;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -140,7 +140,7 @@ FIRST_ERROR_SEEN null
|
|||||||
LAST_ERROR_SEEN null
|
LAST_ERROR_SEEN null
|
||||||
ERROR 42000: User 'quota' has exceeded the 'max_connections_per_hour' resource (current value: 3)
|
ERROR 42000: User 'quota' has exceeded the 'max_connections_per_hour' resource (current value: 3)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -170,7 +170,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 42000: User 'quota' has exceeded the 'max_connections_per_hour' resource (current value: 3)
|
ERROR 42000: User 'quota' has exceeded the 'max_connections_per_hour' resource (current value: 3)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -211,7 +211,7 @@ select current_user();
|
|||||||
current_user()
|
current_user()
|
||||||
quota@santa.claus.ipv4.example.com
|
quota@santa.claus.ipv4.example.com
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -247,7 +247,7 @@ select current_user();
|
|||||||
current_user()
|
current_user()
|
||||||
quota@santa.claus.ipv4.example.com
|
quota@santa.claus.ipv4.example.com
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -283,7 +283,7 @@ select current_user();
|
|||||||
current_user()
|
current_user()
|
||||||
quota@santa.claus.ipv4.example.com
|
quota@santa.claus.ipv4.example.com
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -313,7 +313,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 42000: User 'quota' has exceeded the 'max_user_connections' resource (current value: 3)
|
ERROR 42000: User 'quota' has exceeded the 'max_user_connections' resource (current value: 3)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -343,7 +343,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 42000: User 'quota' has exceeded the 'max_user_connections' resource (current value: 3)
|
ERROR 42000: User 'quota' has exceeded the 'max_user_connections' resource (current value: 3)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -386,7 +386,7 @@ select current_user();
|
|||||||
current_user()
|
current_user()
|
||||||
quota@santa.claus.ipv4.example.com
|
quota@santa.claus.ipv4.example.com
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -422,7 +422,7 @@ select current_user();
|
|||||||
current_user()
|
current_user()
|
||||||
quota@santa.claus.ipv4.example.com
|
quota@santa.claus.ipv4.example.com
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -458,7 +458,7 @@ select current_user();
|
|||||||
current_user()
|
current_user()
|
||||||
quota@santa.claus.ipv4.example.com
|
quota@santa.claus.ipv4.example.com
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -488,7 +488,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 42000: User quota already has more than 'max_user_connections' active connections
|
ERROR 42000: User quota already has more than 'max_user_connections' active connections
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -518,7 +518,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 42000: User quota already has more than 'max_user_connections' active connections
|
ERROR 42000: User quota already has more than 'max_user_connections' active connections
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -567,7 +567,7 @@ select current_user();
|
|||||||
current_user()
|
current_user()
|
||||||
quota@santa.claus.ipv4.example.com
|
quota@santa.claus.ipv4.example.com
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -603,7 +603,7 @@ select current_user();
|
|||||||
current_user()
|
current_user()
|
||||||
quota@santa.claus.ipv4.example.com
|
quota@santa.claus.ipv4.example.com
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -633,7 +633,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -663,7 +663,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -35,7 +35,7 @@ current_user()
|
|||||||
root@192.0.2.4
|
root@192.0.2.4
|
||||||
disconnect con2;
|
disconnect con2;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED NO
|
HOST_VALIDATED NO
|
||||||
@ -72,7 +72,7 @@ current_user()
|
|||||||
root@192.0.2.4
|
root@192.0.2.4
|
||||||
disconnect con3;
|
disconnect con3;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED NO
|
HOST_VALIDATED NO
|
||||||
@ -110,7 +110,7 @@ current_user()
|
|||||||
root@santa.claus.ipv4.example.com
|
root@santa.claus.ipv4.example.com
|
||||||
disconnect con4;
|
disconnect con4;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -147,7 +147,7 @@ current_user()
|
|||||||
root@santa.claus.ipv4.example.com
|
root@santa.claus.ipv4.example.com
|
||||||
disconnect con5;
|
disconnect con5;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -24,7 +24,7 @@ SET @saved_dbug = @@GLOBAL.debug_dbug;
|
|||||||
set global debug_dbug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_error_again";
|
set global debug_dbug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_error_again";
|
||||||
ERROR HY000: Host '192.0.2.4' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host '192.0.2.4' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED NO
|
HOST_VALIDATED NO
|
||||||
@ -54,7 +54,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR HY000: Host '192.0.2.4' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host '192.0.2.4' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED NO
|
HOST_VALIDATED NO
|
||||||
@ -85,7 +85,7 @@ LAST_ERROR_SEEN set
|
|||||||
set global debug_dbug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_fake_ipv4,getaddrinfo_fake_good_ipv4";
|
set global debug_dbug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_fake_ipv4,getaddrinfo_fake_good_ipv4";
|
||||||
ERROR HY000: Host 'santa.claus.ipv4.example.com' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host 'santa.claus.ipv4.example.com' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -115,7 +115,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR HY000: Host 'santa.claus.ipv4.example.com' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host 'santa.claus.ipv4.example.com' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -33,7 +33,7 @@ current_user()
|
|||||||
root@192.0.2.4
|
root@192.0.2.4
|
||||||
disconnect con2;
|
disconnect con2;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -70,7 +70,7 @@ current_user()
|
|||||||
root@192.0.2.4
|
root@192.0.2.4
|
||||||
disconnect con3;
|
disconnect con3;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -24,7 +24,7 @@ SET @saved_dbug = @@GLOBAL.debug_dbug;
|
|||||||
set global debug_dbug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_error_noname";
|
set global debug_dbug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_error_noname";
|
||||||
ERROR HY000: Host '192.0.2.4' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host '192.0.2.4' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -54,7 +54,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR HY000: Host '192.0.2.4' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host '192.0.2.4' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -28,7 +28,7 @@ SET @saved_dbug = @@GLOBAL.debug_dbug;
|
|||||||
set global debug_dbug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_fake_ipv4,getaddrinfo_fake_good_ipv4";
|
set global debug_dbug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_fake_ipv4,getaddrinfo_fake_good_ipv4";
|
||||||
ERROR 28000: Access denied for user 'user_without'@'santa.claus.ipv4.example.com' (using password: YES)
|
ERROR 28000: Access denied for user 'user_without'@'santa.claus.ipv4.example.com' (using password: YES)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -58,7 +58,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 28000: Access denied for user 'user_without'@'santa.claus.ipv4.example.com' (using password: YES)
|
ERROR 28000: Access denied for user 'user_without'@'santa.claus.ipv4.example.com' (using password: YES)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -88,7 +88,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 28000: Access denied for user 'user_with'@'santa.claus.ipv4.example.com' (using password: NO)
|
ERROR 28000: Access denied for user 'user_with'@'santa.claus.ipv4.example.com' (using password: NO)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -118,7 +118,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 28000: Access denied for user 'user_with'@'santa.claus.ipv4.example.com' (using password: NO)
|
ERROR 28000: Access denied for user 'user_with'@'santa.claus.ipv4.example.com' (using password: NO)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -148,7 +148,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 28000: Access denied for user 'user_with'@'santa.claus.ipv4.example.com' (using password: YES)
|
ERROR 28000: Access denied for user 'user_with'@'santa.claus.ipv4.example.com' (using password: YES)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -178,7 +178,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 28000: Access denied for user 'user_with'@'santa.claus.ipv4.example.com' (using password: YES)
|
ERROR 28000: Access denied for user 'user_with'@'santa.claus.ipv4.example.com' (using password: YES)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -32,7 +32,7 @@ SET @saved_dbug = @@GLOBAL.debug_dbug;
|
|||||||
set global debug_dbug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_fake_ipv4,getaddrinfo_fake_good_ipv4";
|
set global debug_dbug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_fake_ipv4,getaddrinfo_fake_good_ipv4";
|
||||||
ERROR 28000: Access denied for user 'user_ssl'@'santa.claus.ipv4.example.com' (using password: NO)
|
ERROR 28000: Access denied for user 'user_ssl'@'santa.claus.ipv4.example.com' (using password: NO)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -62,7 +62,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 28000: Access denied for user 'user_ssl'@'santa.claus.ipv4.example.com' (using password: NO)
|
ERROR 28000: Access denied for user 'user_ssl'@'santa.claus.ipv4.example.com' (using password: NO)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -92,7 +92,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 28000: Access denied for user 'user_ssl_x509'@'santa.claus.ipv4.example.com' (using password: YES)
|
ERROR 28000: Access denied for user 'user_ssl_x509'@'santa.claus.ipv4.example.com' (using password: YES)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -122,7 +122,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 28000: Access denied for user 'user_ssl_x509'@'santa.claus.ipv4.example.com' (using password: YES)
|
ERROR 28000: Access denied for user 'user_ssl_x509'@'santa.claus.ipv4.example.com' (using password: YES)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 192.0.2.4
|
IP 192.0.2.4
|
||||||
HOST santa.claus.ipv4.example.com
|
HOST santa.claus.ipv4.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -33,7 +33,7 @@ current_user()
|
|||||||
root@2001:db8::6:6
|
root@2001:db8::6:6
|
||||||
disconnect con2;
|
disconnect con2;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED NO
|
HOST_VALIDATED NO
|
||||||
@ -70,7 +70,7 @@ current_user()
|
|||||||
root@2001:db8::6:6
|
root@2001:db8::6:6
|
||||||
disconnect con3;
|
disconnect con3;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED NO
|
HOST_VALIDATED NO
|
||||||
|
@ -24,7 +24,7 @@ SET @saved_dbug = @@GLOBAL.debug_dbug;
|
|||||||
set global debug_dbug= "+d,vio_peer_addr_fake_ipv6,getnameinfo_fake_ipv6,getaddrinfo_error_again";
|
set global debug_dbug= "+d,vio_peer_addr_fake_ipv6,getnameinfo_fake_ipv6,getaddrinfo_error_again";
|
||||||
ERROR HY000: Host '2001:db8::6:6' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host '2001:db8::6:6' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED NO
|
HOST_VALIDATED NO
|
||||||
@ -54,7 +54,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR HY000: Host '2001:db8::6:6' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host '2001:db8::6:6' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED NO
|
HOST_VALIDATED NO
|
||||||
|
@ -33,7 +33,7 @@ current_user()
|
|||||||
root@2001:db8::6:6
|
root@2001:db8::6:6
|
||||||
disconnect con2;
|
disconnect con2;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -70,7 +70,7 @@ current_user()
|
|||||||
root@2001:db8::6:6
|
root@2001:db8::6:6
|
||||||
disconnect con3;
|
disconnect con3;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -24,7 +24,7 @@ SET @saved_dbug = @@GLOBAL.debug_dbug;
|
|||||||
set global debug_dbug= "+d,vio_peer_addr_fake_ipv6,getnameinfo_fake_ipv6,getaddrinfo_fake_bad_ipv6";
|
set global debug_dbug= "+d,vio_peer_addr_fake_ipv6,getnameinfo_fake_ipv6,getaddrinfo_fake_bad_ipv6";
|
||||||
ERROR HY000: Host '2001:db8::6:6' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host '2001:db8::6:6' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -54,7 +54,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR HY000: Host '2001:db8::6:6' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host '2001:db8::6:6' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -33,7 +33,7 @@ current_user()
|
|||||||
root@santa.claus.ipv6.example.com
|
root@santa.claus.ipv6.example.com
|
||||||
disconnect con2;
|
disconnect con2;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -70,7 +70,7 @@ current_user()
|
|||||||
root@santa.claus.ipv6.example.com
|
root@santa.claus.ipv6.example.com
|
||||||
disconnect con3;
|
disconnect con3;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -23,7 +23,7 @@ SET @saved_dbug = @@GLOBAL.debug_dbug;
|
|||||||
set global debug_dbug= "+d,vio_peer_addr_fake_ipv6,getnameinfo_fake_ipv6,getaddrinfo_fake_good_ipv6";
|
set global debug_dbug= "+d,vio_peer_addr_fake_ipv6,getnameinfo_fake_ipv6,getaddrinfo_fake_good_ipv6";
|
||||||
ERROR HY000: Host 'santa.claus.ipv6.example.com' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host 'santa.claus.ipv6.example.com' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -53,7 +53,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR HY000: Host 'santa.claus.ipv6.example.com' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host 'santa.claus.ipv6.example.com' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -35,7 +35,7 @@ current_user()
|
|||||||
root@2001:db8::6:6
|
root@2001:db8::6:6
|
||||||
disconnect con2;
|
disconnect con2;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -72,7 +72,7 @@ current_user()
|
|||||||
root@2001:db8::6:6
|
root@2001:db8::6:6
|
||||||
disconnect con3;
|
disconnect con3;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -24,7 +24,7 @@ SET @saved_dbug = @@GLOBAL.debug_dbug;
|
|||||||
set global debug_dbug= "+d,vio_peer_addr_fake_ipv6,getnameinfo_fake_ipv6,getaddrinfo_error_noname";
|
set global debug_dbug= "+d,vio_peer_addr_fake_ipv6,getnameinfo_fake_ipv6,getaddrinfo_error_noname";
|
||||||
ERROR HY000: Host '2001:db8::6:6' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host '2001:db8::6:6' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -54,7 +54,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR HY000: Host '2001:db8::6:6' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host '2001:db8::6:6' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -29,7 +29,7 @@ set global debug_dbug= "+d,vio_peer_addr_fake_ipv6,getnameinfo_fake_ipv6,getaddr
|
|||||||
uninstall plugin test_plugin_server;
|
uninstall plugin test_plugin_server;
|
||||||
ERROR HY000: Plugin 'test_plugin_server' is not loaded
|
ERROR HY000: Plugin 'test_plugin_server' is not loaded
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -59,7 +59,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR HY000: Plugin 'test_plugin_server' is not loaded
|
ERROR HY000: Plugin 'test_plugin_server' is not loaded
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -90,7 +90,7 @@ LAST_ERROR_SEEN set
|
|||||||
install plugin test_plugin_server soname 'PLUGIN_AUTH';
|
install plugin test_plugin_server soname 'PLUGIN_AUTH';
|
||||||
ERROR 28000: Access denied for user 'plug'@'santa.claus.ipv6.example.com' (using password: YES)
|
ERROR 28000: Access denied for user 'plug'@'santa.claus.ipv6.example.com' (using password: YES)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -120,7 +120,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 28000: Access denied for user 'plug'@'santa.claus.ipv6.example.com' (using password: YES)
|
ERROR 28000: Access denied for user 'plug'@'santa.claus.ipv6.example.com' (using password: YES)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -162,7 +162,7 @@ current_user()
|
|||||||
plug_dest@santa.claus.ipv6.example.com
|
plug_dest@santa.claus.ipv6.example.com
|
||||||
disconnect con4;
|
disconnect con4;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -29,7 +29,7 @@ SET @saved_dbug = @@GLOBAL.debug_dbug;
|
|||||||
set global debug_dbug= "+d,vio_peer_addr_fake_ipv6,getnameinfo_fake_ipv6,getaddrinfo_fake_good_ipv6,native_password_bad_reply";
|
set global debug_dbug= "+d,vio_peer_addr_fake_ipv6,getnameinfo_fake_ipv6,getaddrinfo_fake_good_ipv6,native_password_bad_reply";
|
||||||
ERROR 08S01: Bad handshake
|
ERROR 08S01: Bad handshake
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -59,7 +59,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 08S01: Bad handshake
|
ERROR 08S01: Bad handshake
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -89,7 +89,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 08S01: Bad handshake
|
ERROR 08S01: Bad handshake
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -119,7 +119,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR HY000: Host '2001:db8::6:6' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
|
ERROR HY000: Host '2001:db8::6:6' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -149,7 +149,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR HY000: Host '2001:db8::6:6' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
|
ERROR HY000: Host '2001:db8::6:6' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -180,7 +180,7 @@ LAST_ERROR_SEEN set
|
|||||||
flush hosts;
|
flush hosts;
|
||||||
ERROR 08S01: Bad handshake
|
ERROR 08S01: Bad handshake
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -210,7 +210,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 08S01: Bad handshake
|
ERROR 08S01: Bad handshake
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -245,7 +245,7 @@ Valid connection should reset SUM_CONNECT_ERROR counter
|
|||||||
connection default;
|
connection default;
|
||||||
set global debug_dbug= "+d,native_password_bad_reply";
|
set global debug_dbug= "+d,native_password_bad_reply";
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -275,7 +275,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 08S01: Bad handshake
|
ERROR 08S01: Bad handshake
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -305,7 +305,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 08S01: Bad handshake
|
ERROR 08S01: Bad handshake
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -335,7 +335,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 08S01: Bad handshake
|
ERROR 08S01: Bad handshake
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -365,7 +365,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR HY000: Host '2001:db8::6:6' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
|
ERROR HY000: Host '2001:db8::6:6' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -395,7 +395,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR HY000: Host '2001:db8::6:6' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
|
ERROR HY000: Host '2001:db8::6:6' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -36,7 +36,7 @@ current_user()
|
|||||||
quota@santa.claus.ipv6.example.com
|
quota@santa.claus.ipv6.example.com
|
||||||
disconnect con2a;
|
disconnect con2a;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -73,7 +73,7 @@ current_user()
|
|||||||
quota@santa.claus.ipv6.example.com
|
quota@santa.claus.ipv6.example.com
|
||||||
disconnect con2b;
|
disconnect con2b;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -110,7 +110,7 @@ current_user()
|
|||||||
quota@santa.claus.ipv6.example.com
|
quota@santa.claus.ipv6.example.com
|
||||||
disconnect con2c;
|
disconnect con2c;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -140,7 +140,7 @@ FIRST_ERROR_SEEN null
|
|||||||
LAST_ERROR_SEEN null
|
LAST_ERROR_SEEN null
|
||||||
ERROR 42000: User 'quota' has exceeded the 'max_connections_per_hour' resource (current value: 3)
|
ERROR 42000: User 'quota' has exceeded the 'max_connections_per_hour' resource (current value: 3)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -170,7 +170,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 42000: User 'quota' has exceeded the 'max_connections_per_hour' resource (current value: 3)
|
ERROR 42000: User 'quota' has exceeded the 'max_connections_per_hour' resource (current value: 3)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -211,7 +211,7 @@ select current_user();
|
|||||||
current_user()
|
current_user()
|
||||||
quota@santa.claus.ipv6.example.com
|
quota@santa.claus.ipv6.example.com
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -247,7 +247,7 @@ select current_user();
|
|||||||
current_user()
|
current_user()
|
||||||
quota@santa.claus.ipv6.example.com
|
quota@santa.claus.ipv6.example.com
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -283,7 +283,7 @@ select current_user();
|
|||||||
current_user()
|
current_user()
|
||||||
quota@santa.claus.ipv6.example.com
|
quota@santa.claus.ipv6.example.com
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -313,7 +313,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 42000: User 'quota' has exceeded the 'max_user_connections' resource (current value: 3)
|
ERROR 42000: User 'quota' has exceeded the 'max_user_connections' resource (current value: 3)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -343,7 +343,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 42000: User 'quota' has exceeded the 'max_user_connections' resource (current value: 3)
|
ERROR 42000: User 'quota' has exceeded the 'max_user_connections' resource (current value: 3)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -386,7 +386,7 @@ select current_user();
|
|||||||
current_user()
|
current_user()
|
||||||
quota@santa.claus.ipv6.example.com
|
quota@santa.claus.ipv6.example.com
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -422,7 +422,7 @@ select current_user();
|
|||||||
current_user()
|
current_user()
|
||||||
quota@santa.claus.ipv6.example.com
|
quota@santa.claus.ipv6.example.com
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -458,7 +458,7 @@ select current_user();
|
|||||||
current_user()
|
current_user()
|
||||||
quota@santa.claus.ipv6.example.com
|
quota@santa.claus.ipv6.example.com
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -488,7 +488,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 42000: User quota already has more than 'max_user_connections' active connections
|
ERROR 42000: User quota already has more than 'max_user_connections' active connections
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -518,7 +518,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 42000: User quota already has more than 'max_user_connections' active connections
|
ERROR 42000: User quota already has more than 'max_user_connections' active connections
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -567,7 +567,7 @@ select current_user();
|
|||||||
current_user()
|
current_user()
|
||||||
quota@santa.claus.ipv6.example.com
|
quota@santa.claus.ipv6.example.com
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -603,7 +603,7 @@ select current_user();
|
|||||||
current_user()
|
current_user()
|
||||||
quota@santa.claus.ipv6.example.com
|
quota@santa.claus.ipv6.example.com
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -633,7 +633,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -663,7 +663,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -35,7 +35,7 @@ current_user()
|
|||||||
root@2001:db8::6:6
|
root@2001:db8::6:6
|
||||||
disconnect con2;
|
disconnect con2;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED NO
|
HOST_VALIDATED NO
|
||||||
@ -72,7 +72,7 @@ current_user()
|
|||||||
root@2001:db8::6:6
|
root@2001:db8::6:6
|
||||||
disconnect con3;
|
disconnect con3;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED NO
|
HOST_VALIDATED NO
|
||||||
@ -110,7 +110,7 @@ current_user()
|
|||||||
root@santa.claus.ipv6.example.com
|
root@santa.claus.ipv6.example.com
|
||||||
disconnect con4;
|
disconnect con4;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -147,7 +147,7 @@ current_user()
|
|||||||
root@santa.claus.ipv6.example.com
|
root@santa.claus.ipv6.example.com
|
||||||
disconnect con5;
|
disconnect con5;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -24,7 +24,7 @@ SET @saved_dbug = @@GLOBAL.debug_dbug;
|
|||||||
set global debug_dbug= "+d,vio_peer_addr_fake_ipv6,getnameinfo_error_again";
|
set global debug_dbug= "+d,vio_peer_addr_fake_ipv6,getnameinfo_error_again";
|
||||||
ERROR HY000: Host '2001:db8::6:6' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host '2001:db8::6:6' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED NO
|
HOST_VALIDATED NO
|
||||||
@ -54,7 +54,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR HY000: Host '2001:db8::6:6' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host '2001:db8::6:6' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED NO
|
HOST_VALIDATED NO
|
||||||
@ -85,7 +85,7 @@ LAST_ERROR_SEEN set
|
|||||||
set global debug_dbug= "+d,vio_peer_addr_fake_ipv6,getnameinfo_fake_ipv6,getaddrinfo_fake_good_ipv6";
|
set global debug_dbug= "+d,vio_peer_addr_fake_ipv6,getnameinfo_fake_ipv6,getaddrinfo_fake_good_ipv6";
|
||||||
ERROR HY000: Host 'santa.claus.ipv6.example.com' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host 'santa.claus.ipv6.example.com' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -115,7 +115,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR HY000: Host 'santa.claus.ipv6.example.com' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host 'santa.claus.ipv6.example.com' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -33,7 +33,7 @@ current_user()
|
|||||||
root@2001:db8::6:6
|
root@2001:db8::6:6
|
||||||
disconnect con2;
|
disconnect con2;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -70,7 +70,7 @@ current_user()
|
|||||||
root@2001:db8::6:6
|
root@2001:db8::6:6
|
||||||
disconnect con3;
|
disconnect con3;
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -24,7 +24,7 @@ SET @saved_dbug = @@GLOBAL.debug_dbug;
|
|||||||
set global debug_dbug= "+d,vio_peer_addr_fake_ipv6,getnameinfo_error_noname";
|
set global debug_dbug= "+d,vio_peer_addr_fake_ipv6,getnameinfo_error_noname";
|
||||||
ERROR HY000: Host '2001:db8::6:6' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host '2001:db8::6:6' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -54,7 +54,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR HY000: Host '2001:db8::6:6' is not allowed to connect to this MariaDB server
|
ERROR HY000: Host '2001:db8::6:6' is not allowed to connect to this MariaDB server
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST NULL
|
HOST NULL
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -28,7 +28,7 @@ SET @saved_dbug = @@GLOBAL.debug_dbug;
|
|||||||
set global debug_dbug= "+d,vio_peer_addr_fake_ipv6,getnameinfo_fake_ipv6,getaddrinfo_fake_good_ipv6";
|
set global debug_dbug= "+d,vio_peer_addr_fake_ipv6,getnameinfo_fake_ipv6,getaddrinfo_fake_good_ipv6";
|
||||||
ERROR 28000: Access denied for user 'user_without'@'santa.claus.ipv6.example.com' (using password: YES)
|
ERROR 28000: Access denied for user 'user_without'@'santa.claus.ipv6.example.com' (using password: YES)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -58,7 +58,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 28000: Access denied for user 'user_without'@'santa.claus.ipv6.example.com' (using password: YES)
|
ERROR 28000: Access denied for user 'user_without'@'santa.claus.ipv6.example.com' (using password: YES)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -88,7 +88,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 28000: Access denied for user 'user_with'@'santa.claus.ipv6.example.com' (using password: NO)
|
ERROR 28000: Access denied for user 'user_with'@'santa.claus.ipv6.example.com' (using password: NO)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -118,7 +118,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 28000: Access denied for user 'user_with'@'santa.claus.ipv6.example.com' (using password: NO)
|
ERROR 28000: Access denied for user 'user_with'@'santa.claus.ipv6.example.com' (using password: NO)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -148,7 +148,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 28000: Access denied for user 'user_with'@'santa.claus.ipv6.example.com' (using password: YES)
|
ERROR 28000: Access denied for user 'user_with'@'santa.claus.ipv6.example.com' (using password: YES)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -178,7 +178,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 28000: Access denied for user 'user_with'@'santa.claus.ipv6.example.com' (using password: YES)
|
ERROR 28000: Access denied for user 'user_with'@'santa.claus.ipv6.example.com' (using password: YES)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -32,7 +32,7 @@ SET @saved_dbug = @@GLOBAL.debug_dbug;
|
|||||||
set global debug_dbug= "+d,vio_peer_addr_fake_ipv6,getnameinfo_fake_ipv6,getaddrinfo_fake_good_ipv6";
|
set global debug_dbug= "+d,vio_peer_addr_fake_ipv6,getnameinfo_fake_ipv6,getaddrinfo_fake_good_ipv6";
|
||||||
ERROR 28000: Access denied for user 'user_ssl'@'santa.claus.ipv6.example.com' (using password: NO)
|
ERROR 28000: Access denied for user 'user_ssl'@'santa.claus.ipv6.example.com' (using password: NO)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -62,7 +62,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 28000: Access denied for user 'user_ssl'@'santa.claus.ipv6.example.com' (using password: NO)
|
ERROR 28000: Access denied for user 'user_ssl'@'santa.claus.ipv6.example.com' (using password: NO)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -92,7 +92,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 28000: Access denied for user 'user_ssl_x509'@'santa.claus.ipv6.example.com' (using password: YES)
|
ERROR 28000: Access denied for user 'user_ssl_x509'@'santa.claus.ipv6.example.com' (using password: YES)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
@ -122,7 +122,7 @@ FIRST_ERROR_SEEN set
|
|||||||
LAST_ERROR_SEEN set
|
LAST_ERROR_SEEN set
|
||||||
ERROR 28000: Access denied for user 'user_ssl_x509'@'santa.claus.ipv6.example.com' (using password: YES)
|
ERROR 28000: Access denied for user 'user_ssl_x509'@'santa.claus.ipv6.example.com' (using password: YES)
|
||||||
connection default;
|
connection default;
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
IP 2001:db8::6:6
|
IP 2001:db8::6:6
|
||||||
HOST santa.claus.ipv6.example.com
|
HOST santa.claus.ipv6.example.com
|
||||||
HOST_VALIDATED YES
|
HOST_VALIDATED YES
|
||||||
|
@ -39,7 +39,7 @@ Connection_errors_max_connections 0
|
|||||||
Connection_errors_peer_address 1
|
Connection_errors_peer_address 1
|
||||||
Connection_errors_select 0
|
Connection_errors_select 0
|
||||||
Connection_errors_tcpwrap 0
|
Connection_errors_tcpwrap 0
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
ERROR HY000: Can't get hostname for your address
|
ERROR HY000: Can't get hostname for your address
|
||||||
connection default;
|
connection default;
|
||||||
show global status like "connection_errors_%";
|
show global status like "connection_errors_%";
|
||||||
@ -50,7 +50,7 @@ Connection_errors_max_connections 0
|
|||||||
Connection_errors_peer_address 2
|
Connection_errors_peer_address 2
|
||||||
Connection_errors_select 0
|
Connection_errors_select 0
|
||||||
Connection_errors_tcpwrap 0
|
Connection_errors_tcpwrap 0
|
||||||
"Dumping performance_schema.host_cache"
|
# Dumping performance_schema.host_cache
|
||||||
SET @@GLOBAL.debug_dbug = @saved_dbug;
|
SET @@GLOBAL.debug_dbug = @saved_dbug;
|
||||||
flush status;
|
flush status;
|
||||||
show global status like "connection_errors_%";
|
show global status like "connection_errors_%";
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
|
#
|
||||||
## Connection default
|
## Connection default
|
||||||
|
#
|
||||||
connection default;
|
connection default;
|
||||||
USE test;
|
USE test;
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
@ -13,9 +13,9 @@ SELECT @@global.binlog_stmt_cache_size;
|
|||||||
SELECT * FROM performance_schema.setup_instruments WHERE name LIKE "%file/sql/io_cache%";
|
SELECT * FROM performance_schema.setup_instruments WHERE name LIKE "%file/sql/io_cache%";
|
||||||
NAME ENABLED TIMED
|
NAME ENABLED TIMED
|
||||||
wait/io/file/sql/io_cache YES YES
|
wait/io/file/sql/io_cache YES YES
|
||||||
|
#
|
||||||
## Connection con1
|
## Connection con1
|
||||||
|
#
|
||||||
connect con1, localhost, root,,;
|
connect con1, localhost, root,,;
|
||||||
USE test;
|
USE test;
|
||||||
CREATE TABLE t1 (s1 INT, s2 VARCHAR(4096));
|
CREATE TABLE t1 (s1 INT, s2 VARCHAR(4096));
|
||||||
@ -82,9 +82,9 @@ SELECT COUNT(*) FROM t1;
|
|||||||
COUNT(*)
|
COUNT(*)
|
||||||
8
|
8
|
||||||
disconnect con1;
|
disconnect con1;
|
||||||
|
#
|
||||||
## Connection default
|
## Connection default
|
||||||
|
#
|
||||||
connection default;
|
connection default;
|
||||||
SELECT COUNT(*) FROM test.t1;
|
SELECT COUNT(*) FROM test.t1;
|
||||||
COUNT(*)
|
COUNT(*)
|
||||||
|
@ -116,7 +116,7 @@ select mysql_errno, returned_sqlstate, message_text, errors, warnings
|
|||||||
from performance_schema.events_statements_history where errors > 0;
|
from performance_schema.events_statements_history where errors > 0;
|
||||||
mysql_errno returned_sqlstate message_text errors warnings
|
mysql_errno returned_sqlstate message_text errors warnings
|
||||||
1146 42S02 Table 'test.t1' doesn't exist 1 0
|
1146 42S02 Table 'test.t1' doesn't exist 1 0
|
||||||
|
#
|
||||||
select mysql_errno, returned_sqlstate, message_text, errors, warnings from
|
select mysql_errno, returned_sqlstate, message_text, errors, warnings from
|
||||||
performance_schema.events_statements_history_long where errors > 0;
|
performance_schema.events_statements_history_long where errors > 0;
|
||||||
mysql_errno returned_sqlstate message_text errors warnings
|
mysql_errno returned_sqlstate message_text errors warnings
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
"Testing mysql_upgrade with EVENT performance_schema.user_event"
|
# Testing mysql_upgrade with EVENT performance_schema.user_event
|
||||||
create event test.user_event on schedule every 1 day do
|
create event test.user_event on schedule every 1 day do
|
||||||
select "not supposed to be here";
|
select "not supposed to be here";
|
||||||
Warnings:
|
Warnings:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
"Testing mysql_upgrade with FUNCTION performance_schema.user_func"
|
# Testing mysql_upgrade with FUNCTION performance_schema.user_func
|
||||||
create function test.user_func() returns integer
|
create function test.user_func() returns integer
|
||||||
return 0;
|
return 0;
|
||||||
update mysql.proc set db='performance_schema' where name='user_func';
|
update mysql.proc set db='performance_schema' where name='user_func';
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
"Testing mysql_upgrade with PROCEDURE performance_schema.user_proc"
|
# Testing mysql_upgrade with PROCEDURE performance_schema.user_proc
|
||||||
create procedure test.user_proc()
|
create procedure test.user_proc()
|
||||||
select "Not supposed to be here";
|
select "Not supposed to be here";
|
||||||
update mysql.proc set db='performance_schema' where name='user_proc';
|
update mysql.proc set db='performance_schema' where name='user_proc';
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
"Testing mysql_upgrade with TABLE performance_schema.user_table"
|
# Testing mysql_upgrade with TABLE performance_schema.user_table
|
||||||
create table test.user_table(a int);
|
create table test.user_table(a int);
|
||||||
use performance_schema;
|
use performance_schema;
|
||||||
show tables like "user_table";
|
show tables like "user_table";
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
"Testing mysql_upgrade with VIEW performance_schema.user_view"
|
# Testing mysql_upgrade with VIEW performance_schema.user_view
|
||||||
create view test.user_view as select "Not supposed to be here";
|
create view test.user_view as select "Not supposed to be here";
|
||||||
use performance_schema;
|
use performance_schema;
|
||||||
show tables like "user_view";
|
show tables like "user_view";
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
include/master-slave.inc
|
include/master-slave.inc
|
||||||
[connection master]
|
[connection master]
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# STEP 1 - CREATE AND REPLICATE TEST TABLES
|
# STEP 1 - CREATE AND REPLICATE TEST TABLES
|
||||||
#
|
#
|
||||||
connection master;
|
connection master;
|
||||||
|
#
|
||||||
*** Create test tables
|
# *** Create test tables
|
||||||
|
#
|
||||||
show global variables like 'binlog_format%';
|
show global variables like 'binlog_format%';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
binlog_format MIXED
|
binlog_format MIXED
|
||||||
@ -17,73 +17,73 @@ from performance_schema.threads
|
|||||||
where processlist_id = connection_id();
|
where processlist_id = connection_id();
|
||||||
create table test.marker(s1 int) engine=innodb;
|
create table test.marker(s1 int) engine=innodb;
|
||||||
connection slave;
|
connection slave;
|
||||||
|
#
|
||||||
*** Clear statement events
|
# *** Clear statement events
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# STEP 2 - REPLICATE ONE ROW ON MASTER TO GET REPLICATION THREAD ID ON SLAVE
|
# STEP 2 - REPLICATE ONE ROW ON MASTER TO GET REPLICATION THREAD ID ON SLAVE
|
||||||
#
|
#
|
||||||
connection master;
|
connection master;
|
||||||
|
#
|
||||||
insert into test.marker values (0);
|
insert into test.marker values (0);
|
||||||
|
#
|
||||||
connection slave;
|
connection slave;
|
||||||
|
#
|
||||||
*** Verify row, get replication thread id, clear statement events
|
# *** Verify row, get replication thread id, clear statement events
|
||||||
|
#
|
||||||
select thread_id into @slave_thread_id from performance_schema.events_statements_history
|
select thread_id into @slave_thread_id from performance_schema.events_statements_history
|
||||||
where sql_text like '%marker%';
|
where sql_text like '%marker%';
|
||||||
*** Verify row inserted on master was replicated
|
# *** Verify row inserted on master was replicated
|
||||||
select count(*) = 1 as 'Expect 1' from test.marker;
|
select count(*) = 1 as 'Expect 1' from test.marker;
|
||||||
Expect 1
|
Expect 1
|
||||||
1
|
1
|
||||||
*** Clear statement events
|
# *** Clear statement events
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# STEP 3 - PERFORM DML STATEMENTS ON MASTER
|
# STEP 3 - PERFORM DML STATEMENTS ON MASTER
|
||||||
#
|
#
|
||||||
connection master;
|
connection master;
|
||||||
|
#
|
||||||
show global variables like 'binlog_format%';
|
show global variables like 'binlog_format%';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
binlog_format MIXED
|
binlog_format MIXED
|
||||||
*** Clear statement events
|
# *** Clear statement events
|
||||||
|
#
|
||||||
*** Create/drop table, create/drop database
|
# *** Create/drop table, create/drop database
|
||||||
|
#
|
||||||
create database marker1_db;
|
create database marker1_db;
|
||||||
create database marker2_db;
|
create database marker2_db;
|
||||||
create table marker1_db.table1 (s1 int) engine=innodb;
|
create table marker1_db.table1 (s1 int) engine=innodb;
|
||||||
create table marker2_db.table1 (s1 int) engine=innodb;
|
create table marker2_db.table1 (s1 int) engine=innodb;
|
||||||
create table marker2_db.table2 (s1 int) engine=innodb;
|
create table marker2_db.table2 (s1 int) engine=innodb;
|
||||||
|
#
|
||||||
*** Transaction
|
# *** Transaction
|
||||||
start transaction;
|
start transaction;
|
||||||
insert into marker1_db.table1 values (1), (2), (3);
|
insert into marker1_db.table1 values (1), (2), (3);
|
||||||
insert into marker2_db.table1 values (1), (2), (3);
|
insert into marker2_db.table1 values (1), (2), (3);
|
||||||
commit;
|
commit;
|
||||||
|
#
|
||||||
*** Alter
|
# *** Alter
|
||||||
alter table marker1_db.table1 add column (s2 varchar(32));
|
alter table marker1_db.table1 add column (s2 varchar(32));
|
||||||
|
#
|
||||||
*** Insert, Update
|
# *** Insert, Update
|
||||||
start transaction;
|
start transaction;
|
||||||
insert into marker1_db.table1 values (4, 'four'), (5, 'five'), (6, 'six');
|
insert into marker1_db.table1 values (4, 'four'), (5, 'five'), (6, 'six');
|
||||||
update marker1_db.table1 set s1 = s1 + 1;
|
update marker1_db.table1 set s1 = s1 + 1;
|
||||||
commit;
|
commit;
|
||||||
|
#
|
||||||
*** Rollback
|
# *** Rollback
|
||||||
start transaction;
|
start transaction;
|
||||||
insert into marker1_db.table1 values (7, 'seven'), (8, 'eight'), (9, 'nine');
|
insert into marker1_db.table1 values (7, 'seven'), (8, 'eight'), (9, 'nine');
|
||||||
rollback;
|
rollback;
|
||||||
|
#
|
||||||
*** Autocommit, Delete, Drop
|
# *** Autocommit, Delete, Drop
|
||||||
delete from marker1_db.table1 where s1 > 4;
|
delete from marker1_db.table1 where s1 > 4;
|
||||||
drop table marker2_db.table1;
|
drop table marker2_db.table1;
|
||||||
drop database marker2_db;
|
drop database marker2_db;
|
||||||
|
#
|
||||||
*** Examine statements events that will be compared on the slave
|
# *** Examine statements events that will be compared on the slave
|
||||||
|
#
|
||||||
select thread_id, event_id, rpad(event_name, 28, ' ') event_name, rpad(current_schema, 10, ' ') current_schema, rpad(digest_text, 72, ' ') digest_text, sql_text from performance_schema.events_statements_history_long
|
select thread_id, event_id, rpad(event_name, 28, ' ') event_name, rpad(current_schema, 10, ' ') current_schema, rpad(digest_text, 72, ' ') digest_text, sql_text from performance_schema.events_statements_history_long
|
||||||
where sql_text like '%marker%' order by event_id;
|
where sql_text like '%marker%' order by event_id;
|
||||||
thread_id event_id event_name current_schema digest_text sql_text
|
thread_id event_id event_name current_schema digest_text sql_text
|
||||||
@ -101,13 +101,13 @@ thread_id event_id event_name current_schema digest_text sql_text
|
|||||||
[THREAD_ID] [EVENT_ID] statement/sql/delete test DELETE FROM `marker1_db` . `table1` WHERE `s1` > ? delete from marker1_db.table1 where s1 > 4
|
[THREAD_ID] [EVENT_ID] statement/sql/delete test DELETE FROM `marker1_db` . `table1` WHERE `s1` > ? delete from marker1_db.table1 where s1 > 4
|
||||||
[THREAD_ID] [EVENT_ID] statement/sql/drop_table test DROP TABLE `marker2_db` . `table1` drop table marker2_db.table1
|
[THREAD_ID] [EVENT_ID] statement/sql/drop_table test DROP TABLE `marker2_db` . `table1` drop table marker2_db.table1
|
||||||
[THREAD_ID] [EVENT_ID] statement/sql/drop_db test DROP SCHEMA `marker2_db` drop database marker2_db
|
[THREAD_ID] [EVENT_ID] statement/sql/drop_db test DROP SCHEMA `marker2_db` drop database marker2_db
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# STEP 4 - REPLICATE STATEMENT EVENTS ON MASTER TO SLAVE
|
# STEP 4 - REPLICATE STATEMENT EVENTS ON MASTER TO SLAVE
|
||||||
#
|
#
|
||||||
|
#
|
||||||
*** Store statement events in holding table, then replicate
|
# *** Store statement events in holding table, then replicate
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# Create table to hold statement events for later comparison on the slave
|
# Create table to hold statement events for later comparison on the slave
|
||||||
#
|
#
|
||||||
@ -115,14 +115,14 @@ create table test.master_events_statements_history_long as
|
|||||||
(select thread_id, event_id, event_name, sql_text, digest, digest_text, current_schema, rows_affected
|
(select thread_id, event_id, event_name, sql_text, digest, digest_text, current_schema, rows_affected
|
||||||
from performance_schema.events_statements_history_long
|
from performance_schema.events_statements_history_long
|
||||||
where (thread_id=@my_thread_id and digest_text like '%marker%'));
|
where (thread_id=@my_thread_id and digest_text like '%marker%'));
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# STEP 5 - VERIFY DML AND DDL STATEMENT EVENTS ON SLAVE
|
# STEP 5 - VERIFY DML AND DDL STATEMENT EVENTS ON SLAVE
|
||||||
#
|
#
|
||||||
connection slave;
|
connection slave;
|
||||||
|
#
|
||||||
*** List statement events from master
|
# *** List statement events from master
|
||||||
|
#
|
||||||
select thread_id, event_id, rpad(event_name, 28, ' ') event_name, rpad(current_schema, 10, ' ') current_schema, rpad(digest_text, 72, ' ') digest_text, sql_text from master_events_statements_history_long order by event_id;
|
select thread_id, event_id, rpad(event_name, 28, ' ') event_name, rpad(current_schema, 10, ' ') current_schema, rpad(digest_text, 72, ' ') digest_text, sql_text from master_events_statements_history_long order by event_id;
|
||||||
thread_id event_id event_name current_schema digest_text sql_text
|
thread_id event_id event_name current_schema digest_text sql_text
|
||||||
[THREAD_ID] [EVENT_ID] statement/sql/create_db test CREATE SCHEMA `marker1_db` create database marker1_db
|
[THREAD_ID] [EVENT_ID] statement/sql/create_db test CREATE SCHEMA `marker1_db` create database marker1_db
|
||||||
@ -139,9 +139,9 @@ thread_id event_id event_name current_schema digest_text sql_text
|
|||||||
[THREAD_ID] [EVENT_ID] statement/sql/delete test DELETE FROM `marker1_db` . `table1` WHERE `s1` > ? delete from marker1_db.table1 where s1 > 4
|
[THREAD_ID] [EVENT_ID] statement/sql/delete test DELETE FROM `marker1_db` . `table1` WHERE `s1` > ? delete from marker1_db.table1 where s1 > 4
|
||||||
[THREAD_ID] [EVENT_ID] statement/sql/drop_table test DROP TABLE `marker2_db` . `table1` drop table marker2_db.table1
|
[THREAD_ID] [EVENT_ID] statement/sql/drop_table test DROP TABLE `marker2_db` . `table1` drop table marker2_db.table1
|
||||||
[THREAD_ID] [EVENT_ID] statement/sql/drop_db test DROP SCHEMA `marker2_db` drop database marker2_db
|
[THREAD_ID] [EVENT_ID] statement/sql/drop_db test DROP SCHEMA `marker2_db` drop database marker2_db
|
||||||
|
#
|
||||||
*** List statement events on slave
|
# *** List statement events on slave
|
||||||
|
#
|
||||||
select thread_id, event_id, rpad(event_name, 28, ' ') event_name, rpad(current_schema, 10, ' ') current_schema, rpad(digest_text, 72, ' ') digest_text, sql_text from performance_schema.events_statements_history_long
|
select thread_id, event_id, rpad(event_name, 28, ' ') event_name, rpad(current_schema, 10, ' ') current_schema, rpad(digest_text, 72, ' ') digest_text, sql_text from performance_schema.events_statements_history_long
|
||||||
where thread_id = @slave_thread_id and sql_text like '%marker%' order by event_id;
|
where thread_id = @slave_thread_id and sql_text like '%marker%' order by event_id;
|
||||||
thread_id event_id event_name current_schema digest_text sql_text
|
thread_id event_id event_name current_schema digest_text sql_text
|
||||||
@ -158,11 +158,11 @@ thread_id event_id event_name current_schema digest_text sql_text
|
|||||||
[THREAD_ID] [EVENT_ID] statement/sql/delete test DELETE FROM `marker1_db` . `table1` WHERE `s1` > ? delete from marker1_db.table1 where s1 > 4
|
[THREAD_ID] [EVENT_ID] statement/sql/delete test DELETE FROM `marker1_db` . `table1` WHERE `s1` > ? delete from marker1_db.table1 where s1 > 4
|
||||||
[THREAD_ID] [EVENT_ID] statement/sql/drop_table test DROP TABLE `marker2_db` . `table1` DROP TABLE `marker2_db`.`table1` /* generated by server */
|
[THREAD_ID] [EVENT_ID] statement/sql/drop_table test DROP TABLE `marker2_db` . `table1` DROP TABLE `marker2_db`.`table1` /* generated by server */
|
||||||
[THREAD_ID] [EVENT_ID] statement/sql/drop_db marker2_db DROP SCHEMA `marker2_db` drop database marker2_db
|
[THREAD_ID] [EVENT_ID] statement/sql/drop_db marker2_db DROP SCHEMA `marker2_db` drop database marker2_db
|
||||||
|
#
|
||||||
|
# *** Compare master and slave events
|
||||||
|
#
|
||||||
|
|
||||||
*** Compare master and slave events
|
# *** Event name comparison - expect 0 mismatches
|
||||||
|
|
||||||
|
|
||||||
*** Event name comparison - expect 0 mismatches
|
|
||||||
|
|
||||||
select thread_id, event_id, event_name, digest_text, sql_text from performance_schema.events_statements_history_long t1
|
select thread_id, event_id, event_name, digest_text, sql_text from performance_schema.events_statements_history_long t1
|
||||||
where t1.thread_id = @slave_thread_id and
|
where t1.thread_id = @slave_thread_id and
|
||||||
@ -170,14 +170,14 @@ sql_text like '%marker%' and
|
|||||||
not exists (select * from master_events_statements_history_long t2 where t2.event_name = t1.event_name);
|
not exists (select * from master_events_statements_history_long t2 where t2.event_name = t1.event_name);
|
||||||
thread_id event_id event_name digest_text sql_text
|
thread_id event_id event_name digest_text sql_text
|
||||||
|
|
||||||
*** Statement digest comparison - expect 1 mismatch for DROP TABLE
|
# *** Statement digest comparison - expect 1 mismatch for DROP TABLE
|
||||||
|
|
||||||
select thread_id, event_id, event_name, digest, digest_text, sql_text from performance_schema.events_statements_history_long t1
|
select thread_id, event_id, event_name, digest, digest_text, sql_text from performance_schema.events_statements_history_long t1
|
||||||
where t1.thread_id = @slave_thread_id and
|
where t1.thread_id = @slave_thread_id and
|
||||||
sql_text like '%marker%' and
|
sql_text like '%marker%' and
|
||||||
not exists (select * from master_events_statements_history_long t2 where t2.digest = t1.digest);
|
not exists (select * from master_events_statements_history_long t2 where t2.digest = t1.digest);
|
||||||
thread_id event_id event_name digest digest_text sql_text
|
thread_id event_id event_name digest digest_text sql_text
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# STEP 6 - DISABLE REPLICATED STATEMENT EVENTS ON SLAVE
|
# STEP 6 - DISABLE REPLICATED STATEMENT EVENTS ON SLAVE
|
||||||
#
|
#
|
||||||
@ -186,38 +186,38 @@ update performance_schema.setup_instruments set enabled='no', timed='no'
|
|||||||
select * from performance_schema.setup_instruments where name like '%statement/abstract/relay_log%';
|
select * from performance_schema.setup_instruments where name like '%statement/abstract/relay_log%';
|
||||||
NAME ENABLED TIMED
|
NAME ENABLED TIMED
|
||||||
statement/abstract/relay_log NO NO
|
statement/abstract/relay_log NO NO
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# STEP 7 - UPDATE TABLES ON MASTER, REPLICATE
|
# STEP 7 - UPDATE TABLES ON MASTER, REPLICATE
|
||||||
#
|
#
|
||||||
connection master;
|
connection master;
|
||||||
|
#
|
||||||
*** Clear statement events
|
# *** Clear statement events
|
||||||
*** Update some tables, then replicate
|
# *** Update some tables, then replicate
|
||||||
|
#
|
||||||
insert into marker1_db.table1 values (999, '999'), (998, '998'), (997, '997');
|
insert into marker1_db.table1 values (999, '999'), (998, '998'), (997, '997');
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# STEP 8 - VERIFY TABLE UPDATES FROM MASTER, EXPECT NO STATEMENT EVENTS ON SLAVE
|
# STEP 8 - VERIFY TABLE UPDATES FROM MASTER, EXPECT NO STATEMENT EVENTS ON SLAVE
|
||||||
#
|
#
|
||||||
connection slave;
|
connection slave;
|
||||||
|
#
|
||||||
*** Confirm rows were replicated
|
# *** Confirm rows were replicated
|
||||||
|
#
|
||||||
select * from marker1_db.table1 where s1 > 900 order by s1;
|
select * from marker1_db.table1 where s1 > 900 order by s1;
|
||||||
s1 s2
|
s1 s2
|
||||||
997 997
|
997 997
|
||||||
998 998
|
998 998
|
||||||
999 999
|
999 999
|
||||||
|
#
|
||||||
*** Confirm that are no statements events from the replication thread
|
# *** Confirm that are no statements events from the replication thread
|
||||||
|
#
|
||||||
select * from performance_schema.events_statements_history_long
|
select * from performance_schema.events_statements_history_long
|
||||||
where thread_id = @slave_thread_id;
|
where thread_id = @slave_thread_id;
|
||||||
THREAD_ID EVENT_ID END_EVENT_ID EVENT_NAME SOURCE TIMER_START TIMER_END TIMER_WAIT LOCK_TIME SQL_TEXT DIGEST DIGEST_TEXT CURRENT_SCHEMA OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME OBJECT_INSTANCE_BEGIN MYSQL_ERRNO RETURNED_SQLSTATE MESSAGE_TEXT ERRORS WARNINGS ROWS_AFFECTED ROWS_SENT ROWS_EXAMINED CREATED_TMP_DISK_TABLES CREATED_TMP_TABLES SELECT_FULL_JOIN SELECT_FULL_RANGE_JOIN SELECT_RANGE SELECT_RANGE_CHECK SELECT_SCAN SORT_MERGE_PASSES SORT_RANGE SORT_ROWS SORT_SCAN NO_INDEX_USED NO_GOOD_INDEX_USED NESTING_EVENT_ID NESTING_EVENT_TYPE NESTING_EVENT_LEVEL
|
THREAD_ID EVENT_ID END_EVENT_ID EVENT_NAME SOURCE TIMER_START TIMER_END TIMER_WAIT LOCK_TIME SQL_TEXT DIGEST DIGEST_TEXT CURRENT_SCHEMA OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME OBJECT_INSTANCE_BEGIN MYSQL_ERRNO RETURNED_SQLSTATE MESSAGE_TEXT ERRORS WARNINGS ROWS_AFFECTED ROWS_SENT ROWS_EXAMINED CREATED_TMP_DISK_TABLES CREATED_TMP_TABLES SELECT_FULL_JOIN SELECT_FULL_RANGE_JOIN SELECT_RANGE SELECT_RANGE_CHECK SELECT_SCAN SORT_MERGE_PASSES SORT_RANGE SORT_ROWS SORT_SCAN NO_INDEX_USED NO_GOOD_INDEX_USED NESTING_EVENT_ID NESTING_EVENT_TYPE NESTING_EVENT_LEVEL
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# STEP 9 - CLEAN UP
|
# STEP 9 - CLEAN UP
|
||||||
#
|
#
|
||||||
|
#
|
||||||
include/rpl_end.inc
|
include/rpl_end.inc
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
|
#
|
||||||
================================================================================
|
# ================================================================================
|
||||||
SETUP
|
# SETUP
|
||||||
================================================================================
|
# ================================================================================
|
||||||
SET @@session.sql_log_bin=OFF;
|
SET @@session.sql_log_bin=OFF;
|
||||||
|
#
|
||||||
# CREATE 3 CLIENTS, 3 CONNECTIONS, RESULTS TABLE
|
# CREATE 3 CLIENTS, 3 CONNECTIONS, RESULTS TABLE
|
||||||
connection default;
|
connection default;
|
||||||
USE test;
|
USE test;
|
||||||
|
#
|
||||||
# Create results table
|
# Create results table
|
||||||
CREATE TABLE test.status_results
|
CREATE TABLE test.status_results
|
||||||
(variable_name VARCHAR(64), start INT DEFAULT 0, stop INT DEFAULT 0, delta INT DEFAULT 0,
|
(variable_name VARCHAR(64), start INT DEFAULT 0, stop INT DEFAULT 0, delta INT DEFAULT 0,
|
||||||
@ -24,61 +24,61 @@ CREATE TABLE t1 (s1 int) ENGINE=InnoDB;
|
|||||||
INSERT INTO t1 VALUES (1), (2), (2), (3), (3), (3);
|
INSERT INTO t1 VALUES (1), (2), (2), (3), (3), (3);
|
||||||
CREATE TABLE t2 (s1 int) ENGINE=InnoDB;
|
CREATE TABLE t2 (s1 int) ENGINE=InnoDB;
|
||||||
CREATE TABLE t3 (s1 int) ENGINE=InnoDB;
|
CREATE TABLE t3 (s1 int) ENGINE=InnoDB;
|
||||||
|
#
|
||||||
set @orig_sql_mode= @@sql_mode;
|
set @orig_sql_mode= @@sql_mode;
|
||||||
set sql_mode= (select replace(@@sql_mode,'NO_AUTO_CREATE_USER',''));
|
set sql_mode= (select replace(@@sql_mode,'NO_AUTO_CREATE_USER',''));
|
||||||
GRANT ALL ON *.* to 'user1'@localhost;
|
GRANT ALL ON *.* to 'user1'@localhost;
|
||||||
GRANT ALL ON *.* to 'user2'@localhost;
|
GRANT ALL ON *.* to 'user2'@localhost;
|
||||||
GRANT ALL ON *.* to 'user3'@localhost;
|
GRANT ALL ON *.* to 'user3'@localhost;
|
||||||
set sql_mode= @orig_sql_mode;
|
set sql_mode= @orig_sql_mode;
|
||||||
|
#
|
||||||
================================================================================
|
# ================================================================================
|
||||||
CONNECTION 1: DELETE 1, ROLLBACK x 1
|
# CONNECTION 1: DELETE 1, ROLLBACK x 1
|
||||||
================================================================================
|
# ================================================================================
|
||||||
connect con1, localhost, user1,,;
|
connect con1, localhost, user1,,;
|
||||||
SET @@session.sql_log_bin=OFF;
|
SET @@session.sql_log_bin=OFF;
|
||||||
DELETE FROM t1 WHERE s1 = 1;
|
DELETE FROM t1 WHERE s1 = 1;
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (1);
|
INSERT INTO t1 VALUES (1);
|
||||||
ROLLBACK;
|
ROLLBACK;
|
||||||
|
#
|
||||||
================================================================================
|
# ================================================================================
|
||||||
CONNECTION 2: DELETE 2, ROLLBACK x 2
|
# CONNECTION 2: DELETE 2, ROLLBACK x 2
|
||||||
================================================================================
|
# ================================================================================
|
||||||
connect con2, localhost, user2,,;
|
connect con2, localhost, user2,,;
|
||||||
SET @@session.sql_log_bin=OFF;
|
SET @@session.sql_log_bin=OFF;
|
||||||
DELETE FROM t1 WHERE s1 = 2;
|
DELETE FROM t1 WHERE s1 = 2;
|
||||||
|
#
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (2);
|
INSERT INTO t1 VALUES (2);
|
||||||
ROLLBACK;
|
ROLLBACK;
|
||||||
|
#
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (2);
|
INSERT INTO t1 VALUES (2);
|
||||||
ROLLBACK;
|
ROLLBACK;
|
||||||
|
#
|
||||||
================================================================================
|
# ================================================================================
|
||||||
CONNECTION 3: DELETE 3, ROLLBACK x 3
|
# CONNECTION 3: DELETE 3, ROLLBACK x 3
|
||||||
================================================================================
|
# ================================================================================
|
||||||
connect con3, localhost, user3,,;
|
connect con3, localhost, user3,,;
|
||||||
SET @@session.sql_log_bin=OFF;
|
SET @@session.sql_log_bin=OFF;
|
||||||
DELETE FROM t1 WHERE s1 = 3;
|
DELETE FROM t1 WHERE s1 = 3;
|
||||||
|
#
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (3);
|
INSERT INTO t1 VALUES (3);
|
||||||
ROLLBACK;
|
ROLLBACK;
|
||||||
|
#
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (3);
|
INSERT INTO t1 VALUES (3);
|
||||||
ROLLBACK;
|
ROLLBACK;
|
||||||
|
#
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (3);
|
INSERT INTO t1 VALUES (3);
|
||||||
ROLLBACK;
|
ROLLBACK;
|
||||||
|
#
|
||||||
================================================================================
|
# ================================================================================
|
||||||
CONNECTION DEFAULT: Gather results, compare session and global status counts
|
# CONNECTION DEFAULT: Gather results, compare session and global status counts
|
||||||
================================================================================
|
# ================================================================================
|
||||||
connection default;
|
connection default;
|
||||||
# Get thread ids for each connection.
|
# Get thread ids for each connection.
|
||||||
USE performance_schema;
|
USE performance_schema;
|
||||||
@ -93,7 +93,7 @@ UPDATE test.status_results sr, performance_schema.global_status sg
|
|||||||
SET sr.stop = sg.variable_value
|
SET sr.stop = sg.variable_value
|
||||||
WHERE sr.variable_name = sg.variable_name
|
WHERE sr.variable_name = sg.variable_name
|
||||||
AND sg.variable_name IN ('handler_delete', 'handler_rollback');
|
AND sg.variable_name IN ('handler_delete', 'handler_rollback');
|
||||||
|
#
|
||||||
# Global deltas: END - START.
|
# Global deltas: END - START.
|
||||||
UPDATE test.status_results sr
|
UPDATE test.status_results sr
|
||||||
SET sr.delta = sr.stop - sr.start;
|
SET sr.delta = sr.stop - sr.start;
|
||||||
@ -106,21 +106,21 @@ SET sr.t1 = sbt.variable_value
|
|||||||
WHERE sr.variable_name = sbt.variable_name
|
WHERE sr.variable_name = sbt.variable_name
|
||||||
AND sbt.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sbt.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sbt.thread_id = @con1_id;
|
AND sbt.thread_id = @con1_id;
|
||||||
|
#
|
||||||
# Thread results from CON2.
|
# Thread results from CON2.
|
||||||
UPDATE test.status_results sr, performance_schema.status_by_thread sbt
|
UPDATE test.status_results sr, performance_schema.status_by_thread sbt
|
||||||
SET sr.t2 = sbt.variable_value
|
SET sr.t2 = sbt.variable_value
|
||||||
WHERE sr.variable_name = sbt.variable_name
|
WHERE sr.variable_name = sbt.variable_name
|
||||||
AND sbt.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sbt.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sbt.thread_id = @con2_id;
|
AND sbt.thread_id = @con2_id;
|
||||||
|
#
|
||||||
# Thread results from CON3.
|
# Thread results from CON3.
|
||||||
UPDATE test.status_results sr, performance_schema.status_by_thread sbt
|
UPDATE test.status_results sr, performance_schema.status_by_thread sbt
|
||||||
SET sr.t3 = sbt.variable_value
|
SET sr.t3 = sbt.variable_value
|
||||||
WHERE sr.variable_name = sbt.variable_name
|
WHERE sr.variable_name = sbt.variable_name
|
||||||
AND sbt.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sbt.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sbt.thread_id = @con3_id;
|
AND sbt.thread_id = @con3_id;
|
||||||
|
#
|
||||||
# Thread totals for 3 connections.
|
# Thread totals for 3 connections.
|
||||||
UPDATE test.status_results sr
|
UPDATE test.status_results sr
|
||||||
SET sr.thread = sr.t1 + sr.t2 + sr.t3;
|
SET sr.thread = sr.t1 + sr.t2 + sr.t3;
|
||||||
@ -133,35 +133,35 @@ SET sr.u1 = sbu.variable_value
|
|||||||
WHERE sr.variable_name = sbu.variable_name
|
WHERE sr.variable_name = sbu.variable_name
|
||||||
AND sbu.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sbu.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sbu.user IN ('user1');
|
AND sbu.user IN ('user1');
|
||||||
|
#
|
||||||
# User2
|
# User2
|
||||||
UPDATE test.status_results sr, performance_schema.status_by_user sbu
|
UPDATE test.status_results sr, performance_schema.status_by_user sbu
|
||||||
SET sr.u2 = sbu.variable_value
|
SET sr.u2 = sbu.variable_value
|
||||||
WHERE sr.variable_name = sbu.variable_name
|
WHERE sr.variable_name = sbu.variable_name
|
||||||
AND sbu.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sbu.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sbu.user IN ('user2');
|
AND sbu.user IN ('user2');
|
||||||
|
#
|
||||||
# User3
|
# User3
|
||||||
UPDATE test.status_results sr, performance_schema.status_by_user sbu
|
UPDATE test.status_results sr, performance_schema.status_by_user sbu
|
||||||
SET sr.u3 = sbu.variable_value
|
SET sr.u3 = sbu.variable_value
|
||||||
WHERE sr.variable_name = sbu.variable_name
|
WHERE sr.variable_name = sbu.variable_name
|
||||||
AND sbu.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sbu.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sbu.user IN ('user3');
|
AND sbu.user IN ('user3');
|
||||||
|
#
|
||||||
# Status totals for 3 users.
|
# Status totals for 3 users.
|
||||||
UPDATE test.status_results sr
|
UPDATE test.status_results sr
|
||||||
SET sr.user = sr.u1 + sr.u2 + sr.u3;
|
SET sr.user = sr.u1 + sr.u2 + sr.u3;
|
||||||
#===========================
|
#===========================
|
||||||
# Status by host (localhost)
|
# Status by host (localhost)
|
||||||
#===========================
|
#===========================
|
||||||
|
#
|
||||||
# host1 = localhost
|
# host1 = localhost
|
||||||
UPDATE test.status_results sr, performance_schema.status_by_host sbh
|
UPDATE test.status_results sr, performance_schema.status_by_host sbh
|
||||||
SET sr.h1 = sbh.variable_value
|
SET sr.h1 = sbh.variable_value
|
||||||
WHERE sr.variable_name = sbh.variable_name
|
WHERE sr.variable_name = sbh.variable_name
|
||||||
AND sbh.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sbh.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sbh.host IN ('localhost');
|
AND sbh.host IN ('localhost');
|
||||||
|
#
|
||||||
# Status totals for 'localhost' only.
|
# Status totals for 'localhost' only.
|
||||||
UPDATE test.status_results sr
|
UPDATE test.status_results sr
|
||||||
SET sr.host = sr.h1 + sr.h2 + sr.h3;
|
SET sr.host = sr.h1 + sr.h2 + sr.h3;
|
||||||
@ -174,29 +174,29 @@ SET sr.a1 = sba.variable_value
|
|||||||
WHERE sr.variable_name = sba.variable_name
|
WHERE sr.variable_name = sba.variable_name
|
||||||
AND sba.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sba.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sba.user IN ('user1');
|
AND sba.user IN ('user1');
|
||||||
|
#
|
||||||
# User2@localhost
|
# User2@localhost
|
||||||
UPDATE test.status_results sr, performance_schema.status_by_account sba
|
UPDATE test.status_results sr, performance_schema.status_by_account sba
|
||||||
SET sr.a2 = sba.variable_value
|
SET sr.a2 = sba.variable_value
|
||||||
WHERE sr.variable_name = sba.variable_name
|
WHERE sr.variable_name = sba.variable_name
|
||||||
AND sba.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sba.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sba.user IN ('user2');
|
AND sba.user IN ('user2');
|
||||||
|
#
|
||||||
# User3@localhost
|
# User3@localhost
|
||||||
UPDATE test.status_results sr, performance_schema.status_by_account sba
|
UPDATE test.status_results sr, performance_schema.status_by_account sba
|
||||||
SET sr.a3 = sba.variable_value
|
SET sr.a3 = sba.variable_value
|
||||||
WHERE sr.variable_name = sba.variable_name
|
WHERE sr.variable_name = sba.variable_name
|
||||||
AND sba.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sba.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sba.user IN ('user3');
|
AND sba.user IN ('user3');
|
||||||
|
#
|
||||||
|
#
|
||||||
# Status totals for 3 accounts.
|
# Status totals for 3 accounts.
|
||||||
UPDATE test.status_results sr
|
UPDATE test.status_results sr
|
||||||
SET sr.acct = sr.a1 + sr.a2 + sr.a3;
|
SET sr.acct = sr.a1 + sr.a2 + sr.a3;
|
||||||
|
#
|
||||||
================================================================================
|
# ================================================================================
|
||||||
TEST 1: STATUS_BY_THREAD: Verify expected status counts per thread (1,2,3)
|
# TEST 1: STATUS_BY_THREAD: Verify expected status counts per thread (1,2,3)
|
||||||
================================================================================
|
# ================================================================================
|
||||||
#
|
#
|
||||||
# Review per-thread status counts
|
# Review per-thread status counts
|
||||||
#
|
#
|
||||||
@ -215,11 +215,11 @@ thread_id Handler_rollback 3
|
|||||||
SELECT *, IF (variable_value = 1,'OK','ERROR') AS Expected FROM status_by_thread WHERE thread_id = @con1_id AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 1,'OK','ERROR') AS Expected FROM status_by_thread WHERE thread_id = @con1_id AND variable_name IN ('handler_delete');
|
||||||
THREAD_ID VARIABLE_NAME VARIABLE_VALUE Expected
|
THREAD_ID VARIABLE_NAME VARIABLE_VALUE Expected
|
||||||
connect_1 Handler_delete 1 OK
|
connect_1 Handler_delete 1 OK
|
||||||
|
#
|
||||||
SELECT *, IF (variable_value = 2,'OK','ERROR') AS Expected FROM status_by_thread WHERE thread_id = @con2_id AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 2,'OK','ERROR') AS Expected FROM status_by_thread WHERE thread_id = @con2_id AND variable_name IN ('handler_delete');
|
||||||
THREAD_ID VARIABLE_NAME VARIABLE_VALUE Expected
|
THREAD_ID VARIABLE_NAME VARIABLE_VALUE Expected
|
||||||
connnect_2 Handler_delete 2 OK
|
connnect_2 Handler_delete 2 OK
|
||||||
|
#
|
||||||
SELECT *, IF (variable_value = 3,'OK','ERROR') AS Expected FROM status_by_thread WHERE thread_id = @con3_id AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 3,'OK','ERROR') AS Expected FROM status_by_thread WHERE thread_id = @con3_id AND variable_name IN ('handler_delete');
|
||||||
THREAD_ID VARIABLE_NAME VARIABLE_VALUE Expected
|
THREAD_ID VARIABLE_NAME VARIABLE_VALUE Expected
|
||||||
connnect_3 Handler_delete 3 OK
|
connnect_3 Handler_delete 3 OK
|
||||||
@ -232,18 +232,18 @@ ORDER BY variable_name;
|
|||||||
variable_name t1 t2 t3 delta thread Expected
|
variable_name t1 t2 t3 delta thread Expected
|
||||||
Handler_delete 1 2 3 6 6 OK
|
Handler_delete 1 2 3 6 6 OK
|
||||||
Handler_rollback 1 2 3 6 6 OK
|
Handler_rollback 1 2 3 6 6 OK
|
||||||
|
#
|
||||||
================================================================================
|
# ================================================================================
|
||||||
TEST 2: STATUS_BY_USER: Verify expected status counts per user (1,2,3)
|
# TEST 2: STATUS_BY_USER: Verify expected status counts per user (1,2,3)
|
||||||
================================================================================
|
# ================================================================================
|
||||||
SELECT *, IF (variable_value = 1,'OK','ERROR') AS Expected FROM status_by_user WHERE user IN ('user1') AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 1,'OK','ERROR') AS Expected FROM status_by_user WHERE user IN ('user1') AND variable_name IN ('handler_delete');
|
||||||
USER VARIABLE_NAME VARIABLE_VALUE Expected
|
USER VARIABLE_NAME VARIABLE_VALUE Expected
|
||||||
user1 Handler_delete 1 OK
|
user1 Handler_delete 1 OK
|
||||||
|
#
|
||||||
SELECT *, IF (variable_value = 2,'OK','ERROR') AS Expected FROM status_by_user WHERE user IN ('user2') AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 2,'OK','ERROR') AS Expected FROM status_by_user WHERE user IN ('user2') AND variable_name IN ('handler_delete');
|
||||||
USER VARIABLE_NAME VARIABLE_VALUE Expected
|
USER VARIABLE_NAME VARIABLE_VALUE Expected
|
||||||
user2 Handler_delete 2 OK
|
user2 Handler_delete 2 OK
|
||||||
|
#
|
||||||
SELECT *, IF (variable_value = 3,'OK','ERROR') AS Expected FROM status_by_user WHERE user IN ('user3') AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 3,'OK','ERROR') AS Expected FROM status_by_user WHERE user IN ('user3') AND variable_name IN ('handler_delete');
|
||||||
USER VARIABLE_NAME VARIABLE_VALUE Expected
|
USER VARIABLE_NAME VARIABLE_VALUE Expected
|
||||||
user3 Handler_delete 3 OK
|
user3 Handler_delete 3 OK
|
||||||
@ -256,18 +256,18 @@ ORDER BY variable_name;
|
|||||||
variable_name u1 u2 u3 delta user Expected
|
variable_name u1 u2 u3 delta user Expected
|
||||||
Handler_delete 1 2 3 6 6 OK
|
Handler_delete 1 2 3 6 6 OK
|
||||||
Handler_rollback 1 2 3 6 6 OK
|
Handler_rollback 1 2 3 6 6 OK
|
||||||
|
#
|
||||||
================================================================================
|
# ================================================================================
|
||||||
TEST 3: STATUS_BY_ACCOUNT: Verify expected status counts per user, host (1,2,3)
|
# TEST 3: STATUS_BY_ACCOUNT: Verify expected status counts per user, host (1,2,3)
|
||||||
================================================================================
|
# ================================================================================
|
||||||
SELECT *, IF (variable_value = 1,'OK','ERROR') AS Expected FROM status_by_account WHERE user IN ('user1') AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 1,'OK','ERROR') AS Expected FROM status_by_account WHERE user IN ('user1') AND variable_name IN ('handler_delete');
|
||||||
USER HOST VARIABLE_NAME VARIABLE_VALUE Expected
|
USER HOST VARIABLE_NAME VARIABLE_VALUE Expected
|
||||||
user1 localhost Handler_delete 1 OK
|
user1 localhost Handler_delete 1 OK
|
||||||
|
#
|
||||||
SELECT *, IF (variable_value = 2,'OK','ERROR') AS Expected FROM status_by_account WHERE user IN ('user2') AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 2,'OK','ERROR') AS Expected FROM status_by_account WHERE user IN ('user2') AND variable_name IN ('handler_delete');
|
||||||
USER HOST VARIABLE_NAME VARIABLE_VALUE Expected
|
USER HOST VARIABLE_NAME VARIABLE_VALUE Expected
|
||||||
user2 localhost Handler_delete 2 OK
|
user2 localhost Handler_delete 2 OK
|
||||||
|
#
|
||||||
SELECT *, IF (variable_value = 3,'OK','ERROR') AS Expected FROM status_by_account WHERE user IN ('user3') AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 3,'OK','ERROR') AS Expected FROM status_by_account WHERE user IN ('user3') AND variable_name IN ('handler_delete');
|
||||||
USER HOST VARIABLE_NAME VARIABLE_VALUE Expected
|
USER HOST VARIABLE_NAME VARIABLE_VALUE Expected
|
||||||
user3 localhost Handler_delete 3 OK
|
user3 localhost Handler_delete 3 OK
|
||||||
@ -280,9 +280,9 @@ ORDER BY variable_name;
|
|||||||
variable_name a1 a2 a3 delta acct Expected
|
variable_name a1 a2 a3 delta acct Expected
|
||||||
Handler_delete 1 2 3 6 6 OK
|
Handler_delete 1 2 3 6 6 OK
|
||||||
Handler_rollback 1 2 3 6 6 OK
|
Handler_rollback 1 2 3 6 6 OK
|
||||||
================================================================================
|
# ================================================================================
|
||||||
TEST 4: STATUS_BY_HOST: Verify expected status counts per host (6)
|
# TEST 4: STATUS_BY_HOST: Verify expected status counts per host (6)
|
||||||
================================================================================
|
# ================================================================================
|
||||||
SELECT *, IF (variable_value = 6,'OK','ERROR') AS Expected FROM status_by_host WHERE host IN ('localhost') AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 6,'OK','ERROR') AS Expected FROM status_by_host WHERE host IN ('localhost') AND variable_name IN ('handler_delete');
|
||||||
HOST VARIABLE_NAME VARIABLE_VALUE Expected
|
HOST VARIABLE_NAME VARIABLE_VALUE Expected
|
||||||
localhost Handler_delete 6 OK
|
localhost Handler_delete 6 OK
|
||||||
@ -298,17 +298,17 @@ ORDER BY variable_name;
|
|||||||
variable_name h1 h2 h3 delta host Expected
|
variable_name h1 h2 h3 delta host Expected
|
||||||
Handler_delete 6 0 0 6 6 OK
|
Handler_delete 6 0 0 6 6 OK
|
||||||
Handler_rollback 6 0 0 6 6 OK
|
Handler_rollback 6 0 0 6 6 OK
|
||||||
|
#
|
||||||
================================================================================
|
# ================================================================================
|
||||||
DISCONNECT ALL USERS AND RUN THE TESTS AGAIN. RESULTS SHOULD NOT CHANGE.
|
# DISCONNECT ALL USERS AND RUN THE TESTS AGAIN. RESULTS SHOULD NOT CHANGE.
|
||||||
================================================================================
|
# ================================================================================
|
||||||
connection default;
|
connection default;
|
||||||
disconnect con1;
|
disconnect con1;
|
||||||
disconnect con2;
|
disconnect con2;
|
||||||
disconnect con3;
|
disconnect con3;
|
||||||
|
#
|
||||||
USE test;
|
USE test;
|
||||||
|
#
|
||||||
# Clear results table, leave initial global_status counts
|
# Clear results table, leave initial global_status counts
|
||||||
UPDATE test.status_results
|
UPDATE test.status_results
|
||||||
SET stop=0, delta=0,
|
SET stop=0, delta=0,
|
||||||
@ -316,7 +316,7 @@ t1=0, t2=0, t3=0, thread=0,
|
|||||||
u1=0, u2=0, u3=0, user=0,
|
u1=0, u2=0, u3=0, user=0,
|
||||||
h1=0, h2=0, h3=0, host=0,
|
h1=0, h2=0, h3=0, host=0,
|
||||||
a1=0, a2=0, a3=0, acct=0;
|
a1=0, a2=0, a3=0, acct=0;
|
||||||
|
#
|
||||||
#=================
|
#=================
|
||||||
# Global results
|
# Global results
|
||||||
#=================
|
#=================
|
||||||
@ -325,7 +325,7 @@ UPDATE test.status_results sr, performance_schema.global_status sg
|
|||||||
SET sr.stop = sg.variable_value
|
SET sr.stop = sg.variable_value
|
||||||
WHERE sr.variable_name = sg.variable_name
|
WHERE sr.variable_name = sg.variable_name
|
||||||
AND sg.variable_name IN ('handler_delete', 'handler_rollback');
|
AND sg.variable_name IN ('handler_delete', 'handler_rollback');
|
||||||
|
#
|
||||||
# Global deltas: END - START.
|
# Global deltas: END - START.
|
||||||
UPDATE test.status_results sr
|
UPDATE test.status_results sr
|
||||||
SET sr.delta = sr.stop - sr.start;
|
SET sr.delta = sr.stop - sr.start;
|
||||||
@ -338,21 +338,21 @@ SET sr.t1 = sbt.variable_value
|
|||||||
WHERE sr.variable_name = sbt.variable_name
|
WHERE sr.variable_name = sbt.variable_name
|
||||||
AND sbt.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sbt.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sbt.thread_id = @con1_id;
|
AND sbt.thread_id = @con1_id;
|
||||||
|
#
|
||||||
# Thread results from CON2.
|
# Thread results from CON2.
|
||||||
UPDATE test.status_results sr, performance_schema.status_by_thread sbt
|
UPDATE test.status_results sr, performance_schema.status_by_thread sbt
|
||||||
SET sr.t2 = sbt.variable_value
|
SET sr.t2 = sbt.variable_value
|
||||||
WHERE sr.variable_name = sbt.variable_name
|
WHERE sr.variable_name = sbt.variable_name
|
||||||
AND sbt.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sbt.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sbt.thread_id = @con2_id;
|
AND sbt.thread_id = @con2_id;
|
||||||
|
#
|
||||||
# Thread results from CON3.
|
# Thread results from CON3.
|
||||||
UPDATE test.status_results sr, performance_schema.status_by_thread sbt
|
UPDATE test.status_results sr, performance_schema.status_by_thread sbt
|
||||||
SET sr.t3 = sbt.variable_value
|
SET sr.t3 = sbt.variable_value
|
||||||
WHERE sr.variable_name = sbt.variable_name
|
WHERE sr.variable_name = sbt.variable_name
|
||||||
AND sbt.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sbt.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sbt.thread_id = @con3_id;
|
AND sbt.thread_id = @con3_id;
|
||||||
|
#
|
||||||
# Thread totals for 3 connections.
|
# Thread totals for 3 connections.
|
||||||
UPDATE test.status_results sr
|
UPDATE test.status_results sr
|
||||||
SET sr.thread = sr.t1 + sr.t2 + sr.t3;
|
SET sr.thread = sr.t1 + sr.t2 + sr.t3;
|
||||||
@ -365,35 +365,35 @@ SET sr.u1 = sbu.variable_value
|
|||||||
WHERE sr.variable_name = sbu.variable_name
|
WHERE sr.variable_name = sbu.variable_name
|
||||||
AND sbu.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sbu.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sbu.user IN ('user1');
|
AND sbu.user IN ('user1');
|
||||||
|
#
|
||||||
# User2
|
# User2
|
||||||
UPDATE test.status_results sr, performance_schema.status_by_user sbu
|
UPDATE test.status_results sr, performance_schema.status_by_user sbu
|
||||||
SET sr.u2 = sbu.variable_value
|
SET sr.u2 = sbu.variable_value
|
||||||
WHERE sr.variable_name = sbu.variable_name
|
WHERE sr.variable_name = sbu.variable_name
|
||||||
AND sbu.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sbu.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sbu.user IN ('user2');
|
AND sbu.user IN ('user2');
|
||||||
|
#
|
||||||
# User3
|
# User3
|
||||||
UPDATE test.status_results sr, performance_schema.status_by_user sbu
|
UPDATE test.status_results sr, performance_schema.status_by_user sbu
|
||||||
SET sr.u3 = sbu.variable_value
|
SET sr.u3 = sbu.variable_value
|
||||||
WHERE sr.variable_name = sbu.variable_name
|
WHERE sr.variable_name = sbu.variable_name
|
||||||
AND sbu.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sbu.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sbu.user IN ('user3');
|
AND sbu.user IN ('user3');
|
||||||
|
#
|
||||||
# Status totals for 3 users.
|
# Status totals for 3 users.
|
||||||
UPDATE test.status_results sr
|
UPDATE test.status_results sr
|
||||||
SET sr.user = sr.u1 + sr.u2 + sr.u3;
|
SET sr.user = sr.u1 + sr.u2 + sr.u3;
|
||||||
#===========================
|
#===========================
|
||||||
# Status by host (localhost)
|
# Status by host (localhost)
|
||||||
#===========================
|
#===========================
|
||||||
|
#
|
||||||
# host1 = localhost
|
# host1 = localhost
|
||||||
UPDATE test.status_results sr, performance_schema.status_by_host sbh
|
UPDATE test.status_results sr, performance_schema.status_by_host sbh
|
||||||
SET sr.h1 = sbh.variable_value
|
SET sr.h1 = sbh.variable_value
|
||||||
WHERE sr.variable_name = sbh.variable_name
|
WHERE sr.variable_name = sbh.variable_name
|
||||||
AND sbh.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sbh.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sbh.host IN ('localhost');
|
AND sbh.host IN ('localhost');
|
||||||
|
#
|
||||||
# Status totals for 'localhost' only.
|
# Status totals for 'localhost' only.
|
||||||
UPDATE test.status_results sr
|
UPDATE test.status_results sr
|
||||||
SET sr.host = sr.h1 + sr.h2 + sr.h3;
|
SET sr.host = sr.h1 + sr.h2 + sr.h3;
|
||||||
@ -406,42 +406,42 @@ SET sr.a1 = sba.variable_value
|
|||||||
WHERE sr.variable_name = sba.variable_name
|
WHERE sr.variable_name = sba.variable_name
|
||||||
AND sba.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sba.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sba.user IN ('user1');
|
AND sba.user IN ('user1');
|
||||||
|
#
|
||||||
# User2@localhost
|
# User2@localhost
|
||||||
UPDATE test.status_results sr, performance_schema.status_by_account sba
|
UPDATE test.status_results sr, performance_schema.status_by_account sba
|
||||||
SET sr.a2 = sba.variable_value
|
SET sr.a2 = sba.variable_value
|
||||||
WHERE sr.variable_name = sba.variable_name
|
WHERE sr.variable_name = sba.variable_name
|
||||||
AND sba.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sba.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sba.user IN ('user2');
|
AND sba.user IN ('user2');
|
||||||
|
#
|
||||||
# User3@localhost
|
# User3@localhost
|
||||||
UPDATE test.status_results sr, performance_schema.status_by_account sba
|
UPDATE test.status_results sr, performance_schema.status_by_account sba
|
||||||
SET sr.a3 = sba.variable_value
|
SET sr.a3 = sba.variable_value
|
||||||
WHERE sr.variable_name = sba.variable_name
|
WHERE sr.variable_name = sba.variable_name
|
||||||
AND sba.variable_name IN ('handler_delete', 'handler_rollback')
|
AND sba.variable_name IN ('handler_delete', 'handler_rollback')
|
||||||
AND sba.user IN ('user3');
|
AND sba.user IN ('user3');
|
||||||
|
#
|
||||||
|
#
|
||||||
# Status totals for 3 accounts.
|
# Status totals for 3 accounts.
|
||||||
UPDATE test.status_results sr
|
UPDATE test.status_results sr
|
||||||
SET sr.acct = sr.a1 + sr.a2 + sr.a3;
|
SET sr.acct = sr.a1 + sr.a2 + sr.a3;
|
||||||
USE performance_schema;
|
USE performance_schema;
|
||||||
|
#
|
||||||
================================================================================
|
# ================================================================================
|
||||||
TEST X: STATUS_BY_THREAD: Connections are gone--nothing to verify.
|
# TEST X: STATUS_BY_THREAD: Connections are gone--nothing to verify.
|
||||||
================================================================================
|
# ================================================================================
|
||||||
|
#
|
||||||
================================================================================
|
# ================================================================================
|
||||||
TEST 5: STATUS_BY_USER: Verify expected status counts per user (1,2,3)
|
# TEST 5: STATUS_BY_USER: Verify expected status counts per user (1,2,3)
|
||||||
================================================================================
|
# ================================================================================
|
||||||
SELECT *, IF (variable_value = 1,'OK','ERROR') AS Expected FROM status_by_user WHERE user IN ('user1') AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 1,'OK','ERROR') AS Expected FROM status_by_user WHERE user IN ('user1') AND variable_name IN ('handler_delete');
|
||||||
USER VARIABLE_NAME VARIABLE_VALUE Expected
|
USER VARIABLE_NAME VARIABLE_VALUE Expected
|
||||||
user1 Handler_delete 1 OK
|
user1 Handler_delete 1 OK
|
||||||
|
#
|
||||||
SELECT *, IF (variable_value = 2,'OK','ERROR') AS Expected FROM status_by_user WHERE user IN ('user2') AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 2,'OK','ERROR') AS Expected FROM status_by_user WHERE user IN ('user2') AND variable_name IN ('handler_delete');
|
||||||
USER VARIABLE_NAME VARIABLE_VALUE Expected
|
USER VARIABLE_NAME VARIABLE_VALUE Expected
|
||||||
user2 Handler_delete 2 OK
|
user2 Handler_delete 2 OK
|
||||||
|
#
|
||||||
SELECT *, IF (variable_value = 3,'OK','ERROR') AS Expected FROM status_by_user WHERE user IN ('user3') AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 3,'OK','ERROR') AS Expected FROM status_by_user WHERE user IN ('user3') AND variable_name IN ('handler_delete');
|
||||||
USER VARIABLE_NAME VARIABLE_VALUE Expected
|
USER VARIABLE_NAME VARIABLE_VALUE Expected
|
||||||
user3 Handler_delete 3 OK
|
user3 Handler_delete 3 OK
|
||||||
@ -454,18 +454,18 @@ ORDER BY variable_name;
|
|||||||
variable_name u1 u2 u3 delta user Expected
|
variable_name u1 u2 u3 delta user Expected
|
||||||
Handler_delete 1 2 3 6 6 OK
|
Handler_delete 1 2 3 6 6 OK
|
||||||
Handler_rollback 1 2 3 6 6 OK
|
Handler_rollback 1 2 3 6 6 OK
|
||||||
|
#
|
||||||
================================================================================
|
# ================================================================================
|
||||||
TEST 6: STATUS_BY_ACCOUNT: Verify expected status counts per user:host (1,2,3)
|
# TEST 6: STATUS_BY_ACCOUNT: Verify expected status counts per user:host (1,2,3)
|
||||||
================================================================================
|
# ================================================================================
|
||||||
SELECT *, IF (variable_value = 1,'OK','ERROR') AS Expected FROM status_by_account WHERE user IN ('user1') AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 1,'OK','ERROR') AS Expected FROM status_by_account WHERE user IN ('user1') AND variable_name IN ('handler_delete');
|
||||||
USER HOST VARIABLE_NAME VARIABLE_VALUE Expected
|
USER HOST VARIABLE_NAME VARIABLE_VALUE Expected
|
||||||
user1 localhost Handler_delete 1 OK
|
user1 localhost Handler_delete 1 OK
|
||||||
|
#
|
||||||
SELECT *, IF (variable_value = 2,'OK','ERROR') AS Expected FROM status_by_account WHERE user IN ('user2') AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 2,'OK','ERROR') AS Expected FROM status_by_account WHERE user IN ('user2') AND variable_name IN ('handler_delete');
|
||||||
USER HOST VARIABLE_NAME VARIABLE_VALUE Expected
|
USER HOST VARIABLE_NAME VARIABLE_VALUE Expected
|
||||||
user2 localhost Handler_delete 2 OK
|
user2 localhost Handler_delete 2 OK
|
||||||
|
#
|
||||||
SELECT *, IF (variable_value = 3,'OK','ERROR') AS Expected FROM status_by_account WHERE user IN ('user3') AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 3,'OK','ERROR') AS Expected FROM status_by_account WHERE user IN ('user3') AND variable_name IN ('handler_delete');
|
||||||
USER HOST VARIABLE_NAME VARIABLE_VALUE Expected
|
USER HOST VARIABLE_NAME VARIABLE_VALUE Expected
|
||||||
user3 localhost Handler_delete 3 OK
|
user3 localhost Handler_delete 3 OK
|
||||||
@ -478,9 +478,9 @@ ORDER BY variable_name;
|
|||||||
variable_name a1 a2 a3 delta acct Expected
|
variable_name a1 a2 a3 delta acct Expected
|
||||||
Handler_delete 1 2 3 6 6 OK
|
Handler_delete 1 2 3 6 6 OK
|
||||||
Handler_rollback 1 2 3 6 6 OK
|
Handler_rollback 1 2 3 6 6 OK
|
||||||
================================================================================
|
# ================================================================================
|
||||||
TEST 7: STATUS_BY_HOST: Verify expected status counts per host (6)
|
# TEST 7: STATUS_BY_HOST: Verify expected status counts per host (6)
|
||||||
================================================================================
|
# ================================================================================
|
||||||
SELECT *, IF (variable_value = 6,'OK','ERROR') AS Expected FROM status_by_host WHERE host IN ('localhost') AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 6,'OK','ERROR') AS Expected FROM status_by_host WHERE host IN ('localhost') AND variable_name IN ('handler_delete');
|
||||||
HOST VARIABLE_NAME VARIABLE_VALUE Expected
|
HOST VARIABLE_NAME VARIABLE_VALUE Expected
|
||||||
localhost Handler_delete 6 OK
|
localhost Handler_delete 6 OK
|
||||||
@ -496,30 +496,30 @@ ORDER BY variable_name;
|
|||||||
variable_name h1 h2 h3 delta host Expected
|
variable_name h1 h2 h3 delta host Expected
|
||||||
Handler_delete 6 0 0 6 6 OK
|
Handler_delete 6 0 0 6 6 OK
|
||||||
Handler_rollback 6 0 0 6 6 OK
|
Handler_rollback 6 0 0 6 6 OK
|
||||||
================================================================================
|
# ================================================================================
|
||||||
TEST 8: FLUSH STATUS should clear account, host and user status
|
# TEST 8: FLUSH STATUS should clear account, host and user status
|
||||||
================================================================================
|
# ================================================================================
|
||||||
|
#
|
||||||
FLUSH STATUS;
|
FLUSH STATUS;
|
||||||
|
#
|
||||||
SELECT * FROM status_by_account WHERE user IN ('user1', 'user2', 'user3') AND variable_name IN ('handler_delete');
|
SELECT * FROM status_by_account WHERE user IN ('user1', 'user2', 'user3') AND variable_name IN ('handler_delete');
|
||||||
USER HOST VARIABLE_NAME VARIABLE_VALUE
|
USER HOST VARIABLE_NAME VARIABLE_VALUE
|
||||||
user1 localhost Handler_delete 0
|
user1 localhost Handler_delete 0
|
||||||
user2 localhost Handler_delete 0
|
user2 localhost Handler_delete 0
|
||||||
user3 localhost Handler_delete 0
|
user3 localhost Handler_delete 0
|
||||||
|
#
|
||||||
SELECT * FROM status_by_host WHERE host IN ('localhost') AND variable_name IN ('handler_delete');
|
SELECT * FROM status_by_host WHERE host IN ('localhost') AND variable_name IN ('handler_delete');
|
||||||
HOST VARIABLE_NAME VARIABLE_VALUE
|
HOST VARIABLE_NAME VARIABLE_VALUE
|
||||||
localhost Handler_delete 0
|
localhost Handler_delete 0
|
||||||
|
#
|
||||||
SELECT * FROM status_by_user WHERE user IN ('user1', 'user2', 'user3') AND variable_name IN ('handler_delete');
|
SELECT * FROM status_by_user WHERE user IN ('user1', 'user2', 'user3') AND variable_name IN ('handler_delete');
|
||||||
USER VARIABLE_NAME VARIABLE_VALUE
|
USER VARIABLE_NAME VARIABLE_VALUE
|
||||||
user1 Handler_delete 0
|
user1 Handler_delete 0
|
||||||
user2 Handler_delete 0
|
user2 Handler_delete 0
|
||||||
user3 Handler_delete 0
|
user3 Handler_delete 0
|
||||||
================================================================================
|
# ================================================================================
|
||||||
CLEANUP
|
# CLEANUP
|
||||||
================================================================================
|
# ================================================================================
|
||||||
DROP TABLE test.t1;
|
DROP TABLE test.t1;
|
||||||
DROP TABLE test.t2;
|
DROP TABLE test.t2;
|
||||||
DROP TABLE test.t3;
|
DROP TABLE test.t3;
|
||||||
@ -527,4 +527,4 @@ DROP TABLE test.status_results;
|
|||||||
DROP USER 'user1'@localhost;
|
DROP USER 'user1'@localhost;
|
||||||
DROP USER 'user2'@localhost;
|
DROP USER 'user2'@localhost;
|
||||||
DROP USER 'user3'@localhost;
|
DROP USER 'user3'@localhost;
|
||||||
|
#
|
||||||
|
@ -11,21 +11,21 @@ SELECT @@port INTO @MY_MASTER_PORT;
|
|||||||
# 1.0 Get the default connection object_instance_begin, thread id and verify
|
# 1.0 Get the default connection object_instance_begin, thread id and verify
|
||||||
# the expected number of client connections.
|
# the expected number of client connections.
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
|
#
|
||||||
# 1.1 Confirm only one client connection
|
# 1.1 Confirm only one client connection
|
||||||
|
#
|
||||||
SELECT COUNT(*) INTO @my_client_connections
|
SELECT COUNT(*) INTO @my_client_connections
|
||||||
FROM performance_schema.socket_instances
|
FROM performance_schema.socket_instances
|
||||||
WHERE EVENT_NAME LIKE "%client_connection%";
|
WHERE EVENT_NAME LIKE "%client_connection%";
|
||||||
|
#
|
||||||
# 1.2 Get the default THREAD_ID;
|
# 1.2 Get the default THREAD_ID;
|
||||||
|
#
|
||||||
SELECT THREAD_ID INTO @my_thread_id
|
SELECT THREAD_ID INTO @my_thread_id
|
||||||
FROM performance_schema.threads
|
FROM performance_schema.threads
|
||||||
WHERE PROCESSLIST_ID = CONNECTION_ID();
|
WHERE PROCESSLIST_ID = CONNECTION_ID();
|
||||||
|
#
|
||||||
# 1.3 Get the default OBJECT_INSTANCE_BEGIN
|
# 1.3 Get the default OBJECT_INSTANCE_BEGIN
|
||||||
|
#
|
||||||
SELECT OBJECT_INSTANCE_BEGIN INTO @my_object_instance_begin
|
SELECT OBJECT_INSTANCE_BEGIN INTO @my_object_instance_begin
|
||||||
FROM performance_schema.socket_instances
|
FROM performance_schema.socket_instances
|
||||||
WHERE THREAD_ID = @my_thread_id;
|
WHERE THREAD_ID = @my_thread_id;
|
||||||
@ -33,27 +33,27 @@ WHERE THREAD_ID = @my_thread_id;
|
|||||||
# 2.0 ESTABLISH TCP/IP CONNECTION 1
|
# 2.0 ESTABLISH TCP/IP CONNECTION 1
|
||||||
# Connect with IP = localhost (127.0.0.1 or ::1)
|
# Connect with IP = localhost (127.0.0.1 or ::1)
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
|
#
|
||||||
# 2.1 Get the connection thread id
|
# 2.1 Get the connection thread id
|
||||||
|
#
|
||||||
SELECT THREAD_ID INTO @my_thread_id
|
SELECT THREAD_ID INTO @my_thread_id
|
||||||
FROM performance_schema.threads
|
FROM performance_schema.threads
|
||||||
WHERE PROCESSLIST_ID = CONNECTION_ID();
|
WHERE PROCESSLIST_ID = CONNECTION_ID();
|
||||||
|
#
|
||||||
# 2.2 Get the connection object instance begin
|
# 2.2 Get the connection object instance begin
|
||||||
|
#
|
||||||
SELECT OBJECT_INSTANCE_BEGIN INTO @my_object_instance_begin
|
SELECT OBJECT_INSTANCE_BEGIN INTO @my_object_instance_begin
|
||||||
FROM performance_schema.socket_instances
|
FROM performance_schema.socket_instances
|
||||||
WHERE THREAD_ID = @my_thread_id;
|
WHERE THREAD_ID = @my_thread_id;
|
||||||
|
#
|
||||||
# 2.3 Get the connection port
|
# 2.3 Get the connection port
|
||||||
|
#
|
||||||
SELECT PORT INTO @my_port
|
SELECT PORT INTO @my_port
|
||||||
FROM performance_schema.socket_instances
|
FROM performance_schema.socket_instances
|
||||||
WHERE THREAD_ID = @my_thread_id;
|
WHERE THREAD_ID = @my_thread_id;
|
||||||
|
#
|
||||||
# 2.4 Verify that the connection is 127.0.0.1 or ::1
|
# 2.4 Verify that the connection is 127.0.0.1 or ::1
|
||||||
|
#
|
||||||
SELECT COUNT(*) = 1 AS 'Expect 1'
|
SELECT COUNT(*) = 1 AS 'Expect 1'
|
||||||
FROM performance_schema.socket_instances
|
FROM performance_schema.socket_instances
|
||||||
WHERE EVENT_NAME LIKE '%client_connection%'
|
WHERE EVENT_NAME LIKE '%client_connection%'
|
||||||
@ -62,44 +62,44 @@ AND PORT= @con1_port
|
|||||||
AND OBJECT_INSTANCE_BEGIN= @con1_object_id;
|
AND OBJECT_INSTANCE_BEGIN= @con1_object_id;
|
||||||
Expect 1
|
Expect 1
|
||||||
1
|
1
|
||||||
|
#
|
||||||
# 2.5 Verify that the same connection is in the summary instance table
|
# 2.5 Verify that the same connection is in the summary instance table
|
||||||
|
#
|
||||||
SELECT COUNT(*) = 1 AS 'Expect 1'
|
SELECT COUNT(*) = 1 AS 'Expect 1'
|
||||||
FROM performance_schema.socket_summary_by_instance
|
FROM performance_schema.socket_summary_by_instance
|
||||||
WHERE EVENT_NAME LIKE '%client_connection%'
|
WHERE EVENT_NAME LIKE '%client_connection%'
|
||||||
AND OBJECT_INSTANCE_BEGIN= @con1_object_id;
|
AND OBJECT_INSTANCE_BEGIN= @con1_object_id;
|
||||||
Expect 1
|
Expect 1
|
||||||
1
|
1
|
||||||
|
#
|
||||||
# Switch to connection default
|
# Switch to connection default
|
||||||
|
#
|
||||||
connection default;
|
connection default;
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
# 3.0 ESTABLISH TCP/IP CONNECTION 2
|
# 3.0 ESTABLISH TCP/IP CONNECTION 2
|
||||||
# Connect with IP = localhost (127.0.0.1 or ::1)
|
# Connect with IP = localhost (127.0.0.1 or ::1)
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
|
#
|
||||||
# 3.1 Get the connection thread id
|
# 3.1 Get the connection thread id
|
||||||
|
#
|
||||||
SELECT THREAD_ID INTO @my_thread_id
|
SELECT THREAD_ID INTO @my_thread_id
|
||||||
FROM performance_schema.threads
|
FROM performance_schema.threads
|
||||||
WHERE PROCESSLIST_ID = CONNECTION_ID();
|
WHERE PROCESSLIST_ID = CONNECTION_ID();
|
||||||
|
#
|
||||||
# 3.2 Get the connection object instance begin
|
# 3.2 Get the connection object instance begin
|
||||||
|
#
|
||||||
SELECT OBJECT_INSTANCE_BEGIN INTO @my_object_instance_begin
|
SELECT OBJECT_INSTANCE_BEGIN INTO @my_object_instance_begin
|
||||||
FROM performance_schema.socket_instances
|
FROM performance_schema.socket_instances
|
||||||
WHERE THREAD_ID = @my_thread_id;
|
WHERE THREAD_ID = @my_thread_id;
|
||||||
|
#
|
||||||
# 3.3 Get the connection port
|
# 3.3 Get the connection port
|
||||||
|
#
|
||||||
SELECT PORT INTO @my_port
|
SELECT PORT INTO @my_port
|
||||||
FROM performance_schema.socket_instances
|
FROM performance_schema.socket_instances
|
||||||
WHERE THREAD_ID = @my_thread_id;
|
WHERE THREAD_ID = @my_thread_id;
|
||||||
|
#
|
||||||
# 3.4 Verify that the connection is 127.0.0.1 or ::1
|
# 3.4 Verify that the connection is 127.0.0.1 or ::1
|
||||||
|
#
|
||||||
SELECT COUNT(*) = 1 AS 'Expect 1'
|
SELECT COUNT(*) = 1 AS 'Expect 1'
|
||||||
FROM performance_schema.socket_instances
|
FROM performance_schema.socket_instances
|
||||||
WHERE EVENT_NAME LIKE '%client_connection%'
|
WHERE EVENT_NAME LIKE '%client_connection%'
|
||||||
@ -108,18 +108,18 @@ AND PORT= @con2_port
|
|||||||
AND OBJECT_INSTANCE_BEGIN= @con2_object_id;
|
AND OBJECT_INSTANCE_BEGIN= @con2_object_id;
|
||||||
Expect 1
|
Expect 1
|
||||||
1
|
1
|
||||||
|
#
|
||||||
# 3.5 Verify that the same connection is in the summary instance table
|
# 3.5 Verify that the same connection is in the summary instance table
|
||||||
|
#
|
||||||
SELECT COUNT(*) = 1 AS 'Expect 1'
|
SELECT COUNT(*) = 1 AS 'Expect 1'
|
||||||
FROM performance_schema.socket_summary_by_instance
|
FROM performance_schema.socket_summary_by_instance
|
||||||
WHERE EVENT_NAME LIKE '%client_connection%'
|
WHERE EVENT_NAME LIKE '%client_connection%'
|
||||||
AND OBJECT_INSTANCE_BEGIN= @con2_object_id;
|
AND OBJECT_INSTANCE_BEGIN= @con2_object_id;
|
||||||
Expect 1
|
Expect 1
|
||||||
1
|
1
|
||||||
|
#
|
||||||
# 3.6 Verify that the connection is 127.0.0.1 or ::1
|
# 3.6 Verify that the connection is 127.0.0.1 or ::1
|
||||||
|
#
|
||||||
SELECT COUNT(*) = 1 AS 'Expect 1'
|
SELECT COUNT(*) = 1 AS 'Expect 1'
|
||||||
FROM performance_schema.socket_instances
|
FROM performance_schema.socket_instances
|
||||||
WHERE EVENT_NAME LIKE '%client_connection%'
|
WHERE EVENT_NAME LIKE '%client_connection%'
|
||||||
@ -132,9 +132,9 @@ Expect 1
|
|||||||
# 4.0 Verify both connections exist in the instance tables
|
# 4.0 Verify both connections exist in the instance tables
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
connection default;
|
connection default;
|
||||||
|
#
|
||||||
# 4.1 Verify that there are two TCP/IP connections in the socket instance table
|
# 4.1 Verify that there are two TCP/IP connections in the socket instance table
|
||||||
|
#
|
||||||
SELECT COUNT(*) = 2 AS 'Expect 1'
|
SELECT COUNT(*) = 2 AS 'Expect 1'
|
||||||
FROM performance_schema.socket_instances
|
FROM performance_schema.socket_instances
|
||||||
WHERE EVENT_NAME LIKE '%client_connection%'
|
WHERE EVENT_NAME LIKE '%client_connection%'
|
||||||
@ -142,9 +142,9 @@ WHERE EVENT_NAME LIKE '%client_connection%'
|
|||||||
AND (IP LIKE '%127.0.0.1' OR IP LIKE '%::1');
|
AND (IP LIKE '%127.0.0.1' OR IP LIKE '%::1');
|
||||||
Expect 1
|
Expect 1
|
||||||
1
|
1
|
||||||
|
#
|
||||||
# 4.2 Verify that there are two TCP/IP connections in the summary instance table
|
# 4.2 Verify that there are two TCP/IP connections in the summary instance table
|
||||||
|
#
|
||||||
SELECT COUNT(*) = 2 AS 'Expect 1'
|
SELECT COUNT(*) = 2 AS 'Expect 1'
|
||||||
FROM performance_schema.socket_summary_by_instance
|
FROM performance_schema.socket_summary_by_instance
|
||||||
WHERE EVENT_NAME LIKE '%client_connection%'
|
WHERE EVENT_NAME LIKE '%client_connection%'
|
||||||
@ -164,9 +164,9 @@ connection default;
|
|||||||
#==============================================================================
|
#==============================================================================
|
||||||
# 6.0 Verify sockets were removed from the instance tables
|
# 6.0 Verify sockets were removed from the instance tables
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
|
#
|
||||||
# 6.1 Verify that there are no TCP/IP connections in the socket instance table
|
# 6.1 Verify that there are no TCP/IP connections in the socket instance table
|
||||||
|
#
|
||||||
|
#
|
||||||
# 6.2 Verify that there are no TCP/IP connections in the summary instance table
|
# 6.2 Verify that there are no TCP/IP connections in the summary instance table
|
||||||
|
#
|
||||||
|
@ -10,123 +10,123 @@ SELECT @@port INTO @MY_MASTER_PORT;
|
|||||||
#==============================================================================
|
#==============================================================================
|
||||||
# 1.0 TEST INITIALIZATION
|
# 1.0 TEST INITIALIZATION
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
|
#
|
||||||
# 1.1 Disable instrumentation of the default (this) connection
|
# 1.1 Disable instrumentation of the default (this) connection
|
||||||
|
#
|
||||||
connection default;
|
connection default;
|
||||||
UPDATE performance_schema.threads
|
UPDATE performance_schema.threads
|
||||||
SET INSTRUMENTED='NO' WHERE PROCESSLIST_ID = CONNECTION_ID();
|
SET INSTRUMENTED='NO' WHERE PROCESSLIST_ID = CONNECTION_ID();
|
||||||
|
#
|
||||||
# 1.2 Get the default THREAD_ID;
|
# 1.2 Get the default THREAD_ID;
|
||||||
|
#
|
||||||
SELECT THREAD_ID INTO @my_thread_id
|
SELECT THREAD_ID INTO @my_thread_id
|
||||||
FROM performance_schema.threads
|
FROM performance_schema.threads
|
||||||
WHERE PROCESSLIST_ID = CONNECTION_ID();
|
WHERE PROCESSLIST_ID = CONNECTION_ID();
|
||||||
|
#
|
||||||
# 1.3 Get the default OBJECT_INSTANCE_BEGIN
|
# 1.3 Get the default OBJECT_INSTANCE_BEGIN
|
||||||
|
#
|
||||||
SELECT OBJECT_INSTANCE_BEGIN INTO @my_object_instance_begin
|
SELECT OBJECT_INSTANCE_BEGIN INTO @my_object_instance_begin
|
||||||
FROM performance_schema.socket_instances
|
FROM performance_schema.socket_instances
|
||||||
WHERE THREAD_ID = @my_thread_id;
|
WHERE THREAD_ID = @my_thread_id;
|
||||||
|
#
|
||||||
# 1.4 Create a test database
|
# 1.4 Create a test database
|
||||||
|
#
|
||||||
CREATE SCHEMA mysqltest;
|
CREATE SCHEMA mysqltest;
|
||||||
|
#
|
||||||
# 1.5 Create a table to store summary values from socket_summary_by_instance
|
# 1.5 Create a table to store summary values from socket_summary_by_instance
|
||||||
and socket_summary_by_event_name
|
and socket_summary_by_event_name
|
||||||
|
#
|
||||||
CREATE TABLE mysqltest.my_socket_summary AS
|
CREATE TABLE mysqltest.my_socket_summary AS
|
||||||
SELECT * FROM performance_schema.socket_summary_by_instance
|
SELECT * FROM performance_schema.socket_summary_by_instance
|
||||||
WHERE 1 = 0;
|
WHERE 1 = 0;
|
||||||
|
#
|
||||||
# 1.6 Drop object_instance_begin from my_socket_summary
|
# 1.6 Drop object_instance_begin from my_socket_summary
|
||||||
|
#
|
||||||
ALTER TABLE mysqltest.my_socket_summary
|
ALTER TABLE mysqltest.my_socket_summary
|
||||||
DROP COLUMN OBJECT_INSTANCE_BEGIN;
|
DROP COLUMN OBJECT_INSTANCE_BEGIN;
|
||||||
|
#
|
||||||
# 1.7 Add an auto_inc column to my_socket_summary
|
# 1.7 Add an auto_inc column to my_socket_summary
|
||||||
|
#
|
||||||
ALTER TABLE mysqltest.my_socket_summary
|
ALTER TABLE mysqltest.my_socket_summary
|
||||||
ADD COLUMN (n INT AUTO_INCREMENT, PRIMARY KEY(n));
|
ADD COLUMN (n INT AUTO_INCREMENT, PRIMARY KEY(n));
|
||||||
|
#
|
||||||
# 1.8 Create test tables
|
# 1.8 Create test tables
|
||||||
|
#
|
||||||
CREATE TABLE mysqltest.t1 (n INT AUTO_INCREMENT, s1 VARCHAR(1024), PRIMARY KEY(n));
|
CREATE TABLE mysqltest.t1 (n INT AUTO_INCREMENT, s1 VARCHAR(1024), PRIMARY KEY(n));
|
||||||
CREATE TABLE mysqltest.t2 (n INT AUTO_INCREMENT, s1 VARCHAR(1024), PRIMARY KEY(n));
|
CREATE TABLE mysqltest.t2 (n INT AUTO_INCREMENT, s1 VARCHAR(1024), PRIMARY KEY(n));
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
# 2.0 ESTABLISH CLIENT CONNECTIONS
|
# 2.0 ESTABLISH CLIENT CONNECTIONS
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
|
#
|
||||||
# 2.1 Connection 1 (tcp/ip, 127.0.0.1 or ::1)
|
# 2.1 Connection 1 (tcp/ip, 127.0.0.1 or ::1)
|
||||||
|
#
|
||||||
|
#
|
||||||
# 2.2 Connection 2 (localhost or unix domain socket)
|
# 2.2 Connection 2 (localhost or unix domain socket)
|
||||||
|
#
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
# 3.0 RUN THE TESTS
|
# 3.0 RUN THE TESTS
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
|
#
|
||||||
# 3.1 Clear performance schema tables
|
# 3.1 Clear performance schema tables
|
||||||
|
#
|
||||||
TRUNCATE performance_schema.socket_summary_by_instance;
|
TRUNCATE performance_schema.socket_summary_by_instance;
|
||||||
TRUNCATE performance_schema.socket_summary_by_event_name;
|
TRUNCATE performance_schema.socket_summary_by_event_name;
|
||||||
|
#
|
||||||
# 3.2 Get the 'before' sum of bytes written from socket_summary_by_instance
|
# 3.2 Get the 'before' sum of bytes written from socket_summary_by_instance
|
||||||
for later comparison to the 'after' byte count as a simple confirmation
|
for later comparison to the 'after' byte count as a simple confirmation
|
||||||
that the table was updated.
|
that the table was updated.
|
||||||
|
#
|
||||||
connection default;
|
connection default;
|
||||||
SELECT sum(SUM_NUMBER_OF_BYTES_WRITE) INTO @my_write_count
|
SELECT sum(SUM_NUMBER_OF_BYTES_WRITE) INTO @my_write_count
|
||||||
FROM performance_schema.socket_summary_by_instance;
|
FROM performance_schema.socket_summary_by_instance;
|
||||||
|
#
|
||||||
# 3.3 From connection 1, insert one a 1K row of data into t1
|
# 3.3 From connection 1, insert one a 1K row of data into t1
|
||||||
|
#
|
||||||
connection con1;
|
connection con1;
|
||||||
USE mysqltest;
|
USE mysqltest;
|
||||||
INSERT INTO t1 (s1) VALUES (REPEAT('a', 1024));
|
INSERT INTO t1 (s1) VALUES (REPEAT('a', 1024));
|
||||||
INSERT INTO t1 (s1) SELECT s1 FROM t1;
|
INSERT INTO t1 (s1) SELECT s1 FROM t1;
|
||||||
|
#
|
||||||
# 3.4 From connection 2, insert one a 1K row of data into t2
|
# 3.4 From connection 2, insert one a 1K row of data into t2
|
||||||
|
#
|
||||||
connection con2;
|
connection con2;
|
||||||
USE mysqltest;
|
USE mysqltest;
|
||||||
INSERT INTO t2 (s1) VALUES (REPEAT('a', 1024));
|
INSERT INTO t2 (s1) VALUES (REPEAT('a', 1024));
|
||||||
INSERT INTO t2 (s1) SELECT s1 FROM t2;
|
INSERT INTO t2 (s1) SELECT s1 FROM t2;
|
||||||
|
#
|
||||||
# 3.5 Get the 'after' sum of bytes written from socket_summary_by_instance
|
# 3.5 Get the 'after' sum of bytes written from socket_summary_by_instance
|
||||||
|
#
|
||||||
connection default;
|
connection default;
|
||||||
SELECT sum(SUM_NUMBER_OF_BYTES_WRITE) INTO @my_write_count
|
SELECT sum(SUM_NUMBER_OF_BYTES_WRITE) INTO @my_write_count
|
||||||
FROM performance_schema.socket_summary_by_instance;
|
FROM performance_schema.socket_summary_by_instance;
|
||||||
|
#
|
||||||
# 3.6 Verify that SUM_NUMBER_OF_BYTES_WRITE increased
|
# 3.6 Verify that SUM_NUMBER_OF_BYTES_WRITE increased
|
||||||
|
#
|
||||||
|
#
|
||||||
# socket_summary_by_instance was updated
|
# socket_summary_by_instance was updated
|
||||||
|
#
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
# 4.0 VERIFY RESULTS
|
# 4.0 VERIFY RESULTS
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
|
#
|
||||||
# 4.1 Verify that the totals in socket_summary_by_event_name are
|
# 4.1 Verify that the totals in socket_summary_by_event_name are
|
||||||
consistent with totals in socket_summary_by_instance
|
consistent with totals in socket_summary_by_instance
|
||||||
|
#
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
# 5.0 Clean up
|
# 5.0 Clean up
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
|
#
|
||||||
# 5.1 Disconnect con1
|
# 5.1 Disconnect con1
|
||||||
|
#
|
||||||
connection con1;
|
connection con1;
|
||||||
disconnect con1;
|
disconnect con1;
|
||||||
|
#
|
||||||
# 5.2 Disconnect con2
|
# 5.2 Disconnect con2
|
||||||
|
#
|
||||||
connection con2;
|
connection con2;
|
||||||
disconnect con2;
|
disconnect con2;
|
||||||
|
#
|
||||||
# 5.3 Drop mysqltest
|
# 5.3 Drop mysqltest
|
||||||
|
#
|
||||||
connection default;
|
connection default;
|
||||||
DROP DATABASE mysqltest;
|
DROP DATABASE mysqltest;
|
||||||
|
@ -140,47 +140,47 @@ connection default;
|
|||||||
# 4.4.4 Compare impact of statements
|
# 4.4.4 Compare impact of statements
|
||||||
# SELECT col2 FROM does_not_exist WHERE col1 = 0
|
# SELECT col2 FROM does_not_exist WHERE col1 = 0
|
||||||
# SELECT col2 FROM does_not_exist
|
# SELECT col2 FROM does_not_exist
|
||||||
# One statement is longer than the other.
|
# # One statement is longer than the other.
|
||||||
# Both statements fail with the same error message (table does not exist)
|
# Both statements fail with the same error message (table does not exist)
|
||||||
# 4.4.5 Compare impact of statements
|
# 4.4.5 Compare impact of statements
|
||||||
# SELECT col2 FROM does_not_exist WHERE col1 A 0
|
# SELECT col2 FROM does_not_exist WHERE col1 A 0
|
||||||
# SELECT col2 FROM does_not_exist WHERE col1 = 0
|
# SELECT col2 FROM does_not_exist WHERE col1 = 0
|
||||||
# Both statements have the same length and fail.
|
# # Both statements have the same length and fail.
|
||||||
# The length of the error messages differs.
|
# The length of the error messages differs.
|
||||||
# 4.4.6 Compare impact of statements
|
# 4.4.6 Compare impact of statements
|
||||||
# SELECT col2 FROM does_not_exist0123
|
# SELECT col2 FROM does_not_exist0123
|
||||||
# SELECT col2 FROM does_not_exist
|
# SELECT col2 FROM does_not_exist
|
||||||
# Both statements fail (table does not exist).
|
# # Both statements fail (table does not exist).
|
||||||
# The length of the statement and the length of the error messages differs.
|
# The length of the statement and the length of the error messages differs.
|
||||||
# Reason for both differences is the length of the table name.
|
# Reason for both differences is the length of the table name.
|
||||||
# 4.4.7 Compare impact of statements
|
# 4.4.7 Compare impact of statements
|
||||||
# SELECT col2 AS my_super_col FROM mysqltest.my_aux WHERE col1 = -1
|
# SELECT col2 AS my_super_col FROM mysqltest.my_aux WHERE col1 = -1
|
||||||
# SELECT col2 FROM mysqltest.my_aux WHERE col1 = -1
|
# SELECT col2 FROM mysqltest.my_aux WHERE col1 = -1
|
||||||
# Both statements get an empty result set.
|
# # Both statements get an empty result set.
|
||||||
# The length of the statements and the length of the result sets differs.
|
# The length of the statements and the length of the result sets differs.
|
||||||
# Reason for both differences is the length of the some column name.
|
# Reason for both differences is the length of the some column name.
|
||||||
# 4.4.8 Compare impact of statements
|
# 4.4.8 Compare impact of statements
|
||||||
# SELECT col2 FROM mysqltest.my_aux WHERE col1 = 1
|
# SELECT col2 FROM mysqltest.my_aux WHERE col1 = 1
|
||||||
# SELECT col2 FROM mysqltest.my_aux WHERE col1 = -1
|
# SELECT col2 FROM mysqltest.my_aux WHERE col1 = -1
|
||||||
# Both statements differ in the statement length.
|
# # Both statements differ in the statement length.
|
||||||
# One statement earns an empty result set.
|
# One statement earns an empty result set.
|
||||||
# The other statement earns one row containing an empty string.
|
# The other statement earns one row containing an empty string.
|
||||||
# 4.4.9 Compare impact of statements
|
# 4.4.9 Compare impact of statements
|
||||||
# SELECT col2 FROM mysqltest.my_aux WHERE col1 = 2
|
# SELECT col2 FROM mysqltest.my_aux WHERE col1 = 2
|
||||||
# SELECT col2 FROM mysqltest.my_aux WHERE col1 = 1
|
# SELECT col2 FROM mysqltest.my_aux WHERE col1 = 1
|
||||||
# Both statements have the same length.
|
# # Both statements have the same length.
|
||||||
# One statement earns an one row containing an empty string.
|
# One statement earns an one row containing an empty string.
|
||||||
# The other statement earns one row containing a string 1 byte long.
|
# The other statement earns one row containing a string 1 byte long.
|
||||||
# 4.4.10 Compare impact of statements
|
# 4.4.10 Compare impact of statements
|
||||||
# SELECT col2 FROM mysqltest.my_aux WHERE col1 = 3
|
# SELECT col2 FROM mysqltest.my_aux WHERE col1 = 3
|
||||||
# SELECT col2 FROM mysqltest.my_aux WHERE col1 = 1
|
# SELECT col2 FROM mysqltest.my_aux WHERE col1 = 1
|
||||||
# Both statements have the same length.
|
# # Both statements have the same length.
|
||||||
# One statement earns an one row containing an empty string.
|
# One statement earns an one row containing an empty string.
|
||||||
# The other statement earns one row containing a string 1024 byte long.
|
# The other statement earns one row containing a string 1024 byte long.
|
||||||
# 4.4.11 Compare impact of statements
|
# 4.4.11 Compare impact of statements
|
||||||
# SELECT col2 FROM mysqltest.my_aux WHERE col1 < 2
|
# SELECT col2 FROM mysqltest.my_aux WHERE col1 < 2
|
||||||
# SELECT col2 FROM mysqltest.my_aux WHERE col1 = 1
|
# SELECT col2 FROM mysqltest.my_aux WHERE col1 = 1
|
||||||
# Both statements have the same length.
|
# # Both statements have the same length.
|
||||||
# One statement earns an one row containing an empty string.
|
# One statement earns an one row containing an empty string.
|
||||||
# The other statement earns two rows containing an empty string.
|
# The other statement earns two rows containing an empty string.
|
||||||
# 4.5 Check the differences caused by Connects
|
# 4.5 Check the differences caused by Connects
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
|
#
|
||||||
#
|
#
|
||||||
# TEST 1: Normal tables prefixed with "#sql" and "sql".
|
# TEST 1: Normal tables prefixed with "#sql" and "sql".
|
||||||
#
|
#
|
||||||
USE test;
|
USE test;
|
||||||
CREATE TABLE `#sql_1` (a int, b text);
|
CREATE TABLE `#sql_1` (a int, b text);
|
||||||
INSERT INTO `#sql_1` VALUES(1,'one');
|
INSERT INTO `#sql_1` VALUES(1,'one');
|
||||||
|
#
|
||||||
CREATE TABLE `sql_1` (a int, b text);
|
CREATE TABLE `sql_1` (a int, b text);
|
||||||
INSERT INTO `sql_1` VALUES(1,'one');
|
INSERT INTO `sql_1` VALUES(1,'one');
|
||||||
|
#
|
||||||
# Verify that the tables are treated as normal tables .
|
# Verify that the tables are treated as normal tables .
|
||||||
|
#
|
||||||
SELECT object_type, object_schema, object_name
|
SELECT object_type, object_schema, object_name
|
||||||
FROM performance_schema.objects_summary_global_by_type
|
FROM performance_schema.objects_summary_global_by_type
|
||||||
WHERE object_schema="test"
|
WHERE object_schema="test"
|
||||||
@ -18,46 +18,46 @@ ORDER BY object_name;
|
|||||||
object_type object_schema object_name
|
object_type object_schema object_name
|
||||||
TABLE test #sql_1
|
TABLE test #sql_1
|
||||||
TABLE test sql_1
|
TABLE test sql_1
|
||||||
|
#
|
||||||
# Drop the tables, verify that the table objects are removed.
|
# Drop the tables, verify that the table objects are removed.
|
||||||
|
#
|
||||||
DROP TABLE `#sql_1`;
|
DROP TABLE `#sql_1`;
|
||||||
DROP TABLE `sql_1`;
|
DROP TABLE `sql_1`;
|
||||||
|
#
|
||||||
SELECT object_type, object_schema, object_name
|
SELECT object_type, object_schema, object_name
|
||||||
FROM performance_schema.objects_summary_global_by_type
|
FROM performance_schema.objects_summary_global_by_type
|
||||||
WHERE object_schema="test"
|
WHERE object_schema="test"
|
||||||
ORDER BY object_name;
|
ORDER BY object_name;
|
||||||
object_type object_schema object_name
|
object_type object_schema object_name
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# TEST 2: Temporary tables, no special prefix.
|
# TEST 2: Temporary tables, no special prefix.
|
||||||
#
|
#
|
||||||
CREATE TEMPORARY TABLE sql_temp2_myisam (a int, b text) ENGINE=MYISAM;
|
CREATE TEMPORARY TABLE sql_temp2_myisam (a int, b text) ENGINE=MYISAM;
|
||||||
INSERT INTO sql_temp2_myisam VALUES(1,'one');
|
INSERT INTO sql_temp2_myisam VALUES(1,'one');
|
||||||
|
#
|
||||||
CREATE TEMPORARY TABLE sql_temp2_innodb (a int, b text) ENGINE=INNODB;
|
CREATE TEMPORARY TABLE sql_temp2_innodb (a int, b text) ENGINE=INNODB;
|
||||||
INSERT INTO sql_temp2_innodb VALUES(1,'one');
|
INSERT INTO sql_temp2_innodb VALUES(1,'one');
|
||||||
|
#
|
||||||
# Confirm that the temporary tables are ignored.
|
# Confirm that the temporary tables are ignored.
|
||||||
|
#
|
||||||
SELECT object_type, object_schema, object_name
|
SELECT object_type, object_schema, object_name
|
||||||
FROM performance_schema.objects_summary_global_by_type
|
FROM performance_schema.objects_summary_global_by_type
|
||||||
WHERE object_schema="test"
|
WHERE object_schema="test"
|
||||||
ORDER BY object_name;
|
ORDER BY object_name;
|
||||||
object_type object_schema object_name
|
object_type object_schema object_name
|
||||||
|
#
|
||||||
# Drop the tables, verify that the table objects are not created.
|
# Drop the tables, verify that the table objects are not created.
|
||||||
|
#
|
||||||
DROP TABLE sql_temp2_myisam;
|
DROP TABLE sql_temp2_myisam;
|
||||||
DROP TABLE sql_temp2_innodb;
|
DROP TABLE sql_temp2_innodb;
|
||||||
|
#
|
||||||
SELECT object_type, object_schema, object_name
|
SELECT object_type, object_schema, object_name
|
||||||
FROM performance_schema.objects_summary_global_by_type
|
FROM performance_schema.objects_summary_global_by_type
|
||||||
WHERE object_schema="test"
|
WHERE object_schema="test"
|
||||||
ORDER BY object_name;
|
ORDER BY object_name;
|
||||||
object_type object_schema object_name
|
object_type object_schema object_name
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# TEST 3: Temporary tables with the "#sql" prefix.
|
# TEST 3: Temporary tables with the "#sql" prefix.
|
||||||
#
|
#
|
||||||
@ -66,78 +66,78 @@ CHECK TABLE `#sql_temp3_myisam`;
|
|||||||
Table Op Msg_type Msg_text
|
Table Op Msg_type Msg_text
|
||||||
test.#sql_temp3_myisam check status OK
|
test.#sql_temp3_myisam check status OK
|
||||||
INSERT INTO `#sql_temp3_myisam` VALUES(1,'one');
|
INSERT INTO `#sql_temp3_myisam` VALUES(1,'one');
|
||||||
|
#
|
||||||
CREATE TEMPORARY TABLE `#sql_temp3_innodb` (a int, b text) ENGINE=INNODB;
|
CREATE TEMPORARY TABLE `#sql_temp3_innodb` (a int, b text) ENGINE=INNODB;
|
||||||
CHECK TABLE `#sql_temp3_innodb`;
|
CHECK TABLE `#sql_temp3_innodb`;
|
||||||
Table Op Msg_type Msg_text
|
Table Op Msg_type Msg_text
|
||||||
test.#sql_temp3_innodb check status OK
|
test.#sql_temp3_innodb check status OK
|
||||||
INSERT INTO `#sql_temp3_innodb` VALUES(1,'one');
|
INSERT INTO `#sql_temp3_innodb` VALUES(1,'one');
|
||||||
|
#
|
||||||
# Confirm that the temporary tables are ignored.
|
# Confirm that the temporary tables are ignored.
|
||||||
|
#
|
||||||
SELECT object_type, object_schema, object_name
|
SELECT object_type, object_schema, object_name
|
||||||
FROM performance_schema.objects_summary_global_by_type
|
FROM performance_schema.objects_summary_global_by_type
|
||||||
WHERE object_schema="test"
|
WHERE object_schema="test"
|
||||||
ORDER BY object_name;
|
ORDER BY object_name;
|
||||||
object_type object_schema object_name
|
object_type object_schema object_name
|
||||||
|
#
|
||||||
# Drop the temporary tables.
|
# Drop the temporary tables.
|
||||||
|
#
|
||||||
DROP TABLE `#sql_temp3_myisam`;
|
DROP TABLE `#sql_temp3_myisam`;
|
||||||
DROP TABLE `#sql_temp3_innodb`;
|
DROP TABLE `#sql_temp3_innodb`;
|
||||||
|
#
|
||||||
# Confirm that the temporary tables are still ignored.
|
# Confirm that the temporary tables are still ignored.
|
||||||
|
#
|
||||||
SELECT object_type, object_schema, object_name
|
SELECT object_type, object_schema, object_name
|
||||||
FROM performance_schema.objects_summary_global_by_type
|
FROM performance_schema.objects_summary_global_by_type
|
||||||
WHERE object_schema="test"
|
WHERE object_schema="test"
|
||||||
ORDER BY object_name;
|
ORDER BY object_name;
|
||||||
object_type object_schema object_name
|
object_type object_schema object_name
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# TEST 4: Special case: MyISAM temporary tables are recreated as non-temporary
|
# TEST 4: Special case: MyISAM temporary tables are recreated as non-temporary
|
||||||
# when they are truncated.
|
# when they are truncated.
|
||||||
#
|
#
|
||||||
CREATE TEMPORARY TABLE `sql_temp4_myisam` (a int, b text) ENGINE=MYISAM;
|
CREATE TEMPORARY TABLE `sql_temp4_myisam` (a int, b text) ENGINE=MYISAM;
|
||||||
INSERT INTO `sql_temp4_myisam` VALUES(1,'one');
|
INSERT INTO `sql_temp4_myisam` VALUES(1,'one');
|
||||||
|
#
|
||||||
CREATE TEMPORARY TABLE `#sql_temp4_myisam` (a int, b text) ENGINE=MYISAM;
|
CREATE TEMPORARY TABLE `#sql_temp4_myisam` (a int, b text) ENGINE=MYISAM;
|
||||||
INSERT INTO `#sql_temp4_myisam` VALUES(1,'one');
|
INSERT INTO `#sql_temp4_myisam` VALUES(1,'one');
|
||||||
|
#
|
||||||
# Confirm that the MyISAM temporary tables are ignored.
|
# Confirm that the MyISAM temporary tables are ignored.
|
||||||
|
#
|
||||||
SELECT object_type, object_schema, object_name
|
SELECT object_type, object_schema, object_name
|
||||||
FROM performance_schema.objects_summary_global_by_type
|
FROM performance_schema.objects_summary_global_by_type
|
||||||
WHERE object_schema="test"
|
WHERE object_schema="test"
|
||||||
ORDER BY object_name;
|
ORDER BY object_name;
|
||||||
object_type object_schema object_name
|
object_type object_schema object_name
|
||||||
|
#
|
||||||
# Truncate the MyISAM temporary tables, forcing them to be recreated as non-temporary.
|
# Truncate the MyISAM temporary tables, forcing them to be recreated as non-temporary.
|
||||||
|
#
|
||||||
TRUNCATE TABLE `sql_temp4_myisam`;
|
TRUNCATE TABLE `sql_temp4_myisam`;
|
||||||
TRUNCATE TABLE `#sql_temp4_myisam`;
|
TRUNCATE TABLE `#sql_temp4_myisam`;
|
||||||
|
#
|
||||||
# Confirm that the recreated MyISAM tables are still regarded as temporary and ignored.
|
# Confirm that the recreated MyISAM tables are still regarded as temporary and ignored.
|
||||||
|
#
|
||||||
SELECT object_type, object_schema, object_name
|
SELECT object_type, object_schema, object_name
|
||||||
FROM performance_schema.objects_summary_global_by_type
|
FROM performance_schema.objects_summary_global_by_type
|
||||||
WHERE object_schema="test"
|
WHERE object_schema="test"
|
||||||
ORDER BY object_name;
|
ORDER BY object_name;
|
||||||
object_type object_schema object_name
|
object_type object_schema object_name
|
||||||
|
#
|
||||||
# Drop the recreated MyISAM tables;
|
# Drop the recreated MyISAM tables;
|
||||||
|
#
|
||||||
DROP TABLE `sql_temp4_myisam`;
|
DROP TABLE `sql_temp4_myisam`;
|
||||||
DROP TABLE `#sql_temp4_myisam`;
|
DROP TABLE `#sql_temp4_myisam`;
|
||||||
|
#
|
||||||
# Confirm that the recreated temporary tables are still ignored.
|
# Confirm that the recreated temporary tables are still ignored.
|
||||||
|
#
|
||||||
SELECT object_type, object_schema, object_name
|
SELECT object_type, object_schema, object_name
|
||||||
FROM performance_schema.objects_summary_global_by_type
|
FROM performance_schema.objects_summary_global_by_type
|
||||||
WHERE object_schema="test"
|
WHERE object_schema="test"
|
||||||
ORDER BY object_name;
|
ORDER BY object_name;
|
||||||
object_type object_schema object_name
|
object_type object_schema object_name
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# TEST 5: Generate temporary tables with ALTER MyISAM table.
|
# TEST 5: Generate temporary tables with ALTER MyISAM table.
|
||||||
#
|
#
|
||||||
@ -145,21 +145,21 @@ USE test;
|
|||||||
CREATE TABLE t1 (a int) ENGINE=MYISAM;
|
CREATE TABLE t1 (a int) ENGINE=MYISAM;
|
||||||
INSERT INTO t1 VALUES (1), (2), (3);
|
INSERT INTO t1 VALUES (1), (2), (3);
|
||||||
ALTER TABLE t1 ADD COLUMN (b int);
|
ALTER TABLE t1 ADD COLUMN (b int);
|
||||||
|
#
|
||||||
# Confirm that the recreated temporary tables are still ignored.
|
# Confirm that the recreated temporary tables are still ignored.
|
||||||
|
#
|
||||||
SELECT object_type, object_schema, object_name
|
SELECT object_type, object_schema, object_name
|
||||||
FROM performance_schema.objects_summary_global_by_type
|
FROM performance_schema.objects_summary_global_by_type
|
||||||
WHERE object_schema="test"
|
WHERE object_schema="test"
|
||||||
ORDER BY object_name;
|
ORDER BY object_name;
|
||||||
object_type object_schema object_name
|
object_type object_schema object_name
|
||||||
|
#
|
||||||
# Drop the MyISAM table
|
# Drop the MyISAM table
|
||||||
|
#
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
# Confirm that no tables remain;
|
# Confirm that no tables remain;
|
||||||
|
#
|
||||||
SELECT object_type, object_schema, object_name
|
SELECT object_type, object_schema, object_name
|
||||||
FROM performance_schema.objects_summary_global_by_type
|
FROM performance_schema.objects_summary_global_by_type
|
||||||
WHERE object_schema="test"
|
WHERE object_schema="test"
|
||||||
|
@ -1,43 +1,43 @@
|
|||||||
set global binlog_format=ROW;
|
set global binlog_format=ROW;
|
||||||
|
#
|
||||||
========================================================================
|
# ========================================================================
|
||||||
STEP 1 - SETUP
|
# STEP 1 - SETUP
|
||||||
========================================================================
|
# ========================================================================
|
||||||
|
#
|
||||||
# Control thread
|
# Control thread
|
||||||
|
#
|
||||||
connection default;
|
connection default;
|
||||||
SET SESSION AUTOCOMMIT= 1;
|
SET SESSION AUTOCOMMIT= 1;
|
||||||
SELECT thread_id INTO @my_thread_id
|
SELECT thread_id INTO @my_thread_id
|
||||||
FROM performance_schema.threads
|
FROM performance_schema.threads
|
||||||
WHERE processlist_id = connection_id();
|
WHERE processlist_id = connection_id();
|
||||||
|
#
|
||||||
# Connection 1
|
# Connection 1
|
||||||
|
#
|
||||||
connect con1, localhost, root,,;
|
connect con1, localhost, root,,;
|
||||||
SET SESSION AUTOCOMMIT= 0;
|
SET SESSION AUTOCOMMIT= 0;
|
||||||
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ, READ WRITE;
|
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ, READ WRITE;
|
||||||
connection default;
|
connection default;
|
||||||
|
#
|
||||||
# Create test tables, one transactional and one non-transactional
|
# Create test tables, one transactional and one non-transactional
|
||||||
|
#
|
||||||
connection default;
|
connection default;
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
DROP TABLE IF EXISTS nt1;
|
DROP TABLE IF EXISTS nt1;
|
||||||
CREATE TABLE t1 (s1 int, s2 varchar(64)) ENGINE=INNODB;
|
CREATE TABLE t1 (s1 int, s2 varchar(64)) ENGINE=INNODB;
|
||||||
CREATE TABLE nt1 (s1 int, s2 varchar(64)) ENGINE=MYISAM;
|
CREATE TABLE nt1 (s1 int, s2 varchar(64)) ENGINE=MYISAM;
|
||||||
|
#
|
||||||
# Disable all events from the control thread
|
# Disable all events from the control thread
|
||||||
|
#
|
||||||
|
#
|
||||||
# Clear transaction tables
|
# Clear transaction tables
|
||||||
|
#
|
||||||
CALL clear_transaction_tables();
|
CALL clear_transaction_tables();
|
||||||
|
#
|
||||||
========================================================================
|
# ========================================================================
|
||||||
# STEP 2 - BASIC TRANSACTION
|
# STEP 2 - BASIC TRANSACTION
|
||||||
========================================================================
|
# ========================================================================
|
||||||
|
#
|
||||||
connection con1;
|
connection con1;
|
||||||
SELECT @@global.tx_isolation;
|
SELECT @@global.tx_isolation;
|
||||||
@@global.tx_isolation
|
@@global.tx_isolation
|
||||||
@ -57,19 +57,19 @@ SELECT @@autocommit;
|
|||||||
SELECT @@binlog_format;
|
SELECT @@binlog_format;
|
||||||
@@binlog_format
|
@@binlog_format
|
||||||
ROW
|
ROW
|
||||||
|
#
|
||||||
# STEP 2.1 - START/COMMIT
|
# STEP 2.1 - START/COMMIT
|
||||||
|
#
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (101, 'COMMITTED');
|
INSERT INTO t1 VALUES (101, 'COMMITTED');
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
#
|
||||||
# STEP 2.2 - ROLLBACK
|
# STEP 2.2 - ROLLBACK
|
||||||
|
#
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (102, 'ROLLED BACK');
|
INSERT INTO t1 VALUES (102, 'ROLLED BACK');
|
||||||
ROLLBACK;
|
ROLLBACK;
|
||||||
|
#
|
||||||
## Expect 1 committed and 1 rolled back transaction
|
## Expect 1 committed and 1 rolled back transaction
|
||||||
connection default;
|
connection default;
|
||||||
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', 'REPEATABLE READ', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', 'REPEATABLE READ', 'NO', 0, 0, 0, 1);
|
||||||
@ -79,28 +79,28 @@ CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'ROLLED BACK', 0, '
|
|||||||
ACTUAL EXPECTED
|
ACTUAL EXPECTED
|
||||||
1 1
|
1 1
|
||||||
CALL clear_transaction_tables();
|
CALL clear_transaction_tables();
|
||||||
|
#
|
||||||
# STEP 2.3 - COMMIT AND CHAIN
|
# STEP 2.3 - COMMIT AND CHAIN
|
||||||
|
#
|
||||||
connection con1;
|
connection con1;
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (103, 'COMMIT AND CHAIN');
|
INSERT INTO t1 VALUES (103, 'COMMIT AND CHAIN');
|
||||||
COMMIT AND CHAIN;
|
COMMIT AND CHAIN;
|
||||||
INSERT INTO t1 VALUES (104, 'COMMIT AND CHAIN');
|
INSERT INTO t1 VALUES (104, 'COMMIT AND CHAIN');
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
#
|
||||||
## Expect 2 committed transactions
|
## Expect 2 committed transactions
|
||||||
connection default;
|
connection default;
|
||||||
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', 'REPEATABLE READ', 'NO', 0, 0, 0, 2);
|
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', 'REPEATABLE READ', 'NO', 0, 0, 0, 2);
|
||||||
ACTUAL EXPECTED
|
ACTUAL EXPECTED
|
||||||
2 2
|
2 2
|
||||||
CALL clear_transaction_tables();
|
CALL clear_transaction_tables();
|
||||||
|
#
|
||||||
========================================================================
|
# ========================================================================
|
||||||
# STEP 3 - ISOLATION LEVEL
|
# STEP 3 - ISOLATION LEVEL
|
||||||
========================================================================
|
# ========================================================================
|
||||||
|
#
|
||||||
connection con1
|
# connection con1
|
||||||
connection con1;
|
connection con1;
|
||||||
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
|
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
@ -122,7 +122,7 @@ INSERT INTO t1 VALUES (304, 'READ UNCOMMITTED');
|
|||||||
COMMIT;
|
COMMIT;
|
||||||
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
|
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
|
||||||
SET binlog_format= @binlog_save;
|
SET binlog_format= @binlog_save;
|
||||||
|
#
|
||||||
connection default;
|
connection default;
|
||||||
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', 'SERIALIZABLE', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', 'SERIALIZABLE', 'NO', 0, 0, 0, 1);
|
||||||
ACTUAL EXPECTED
|
ACTUAL EXPECTED
|
||||||
@ -137,15 +137,15 @@ CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '',
|
|||||||
ACTUAL EXPECTED
|
ACTUAL EXPECTED
|
||||||
1 1
|
1 1
|
||||||
CALL clear_transaction_tables();
|
CALL clear_transaction_tables();
|
||||||
|
#
|
||||||
========================================================================
|
# ========================================================================
|
||||||
# STEP 4 - ACCESS MODE
|
# STEP 4 - ACCESS MODE
|
||||||
========================================================================
|
# ========================================================================
|
||||||
#
|
#
|
||||||
# STEP 4.1 - READ ONLY, TIMING ENABLED
|
# STEP 4.1 - READ ONLY, TIMING ENABLED
|
||||||
#
|
#
|
||||||
|
#
|
||||||
connection con1
|
# connection con1
|
||||||
connection con1;
|
connection con1;
|
||||||
SET SESSION TRANSACTION READ WRITE;
|
SET SESSION TRANSACTION READ WRITE;
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
@ -170,23 +170,23 @@ s1 s2
|
|||||||
412 READ ONLY
|
412 READ ONLY
|
||||||
413 READ ONLY
|
413 READ ONLY
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
#
|
||||||
## Expect 1 read only, committed transaction in events_transactions_history
|
## Expect 1 read only, committed transaction in events_transactions_history
|
||||||
connection default;
|
connection default;
|
||||||
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ ONLY', 'REPEATABLE READ', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ ONLY', 'REPEATABLE READ', 'NO', 0, 0, 0, 1);
|
||||||
ACTUAL EXPECTED
|
ACTUAL EXPECTED
|
||||||
1 1
|
1 1
|
||||||
CALL clear_transaction_tables();
|
CALL clear_transaction_tables();
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# STEP 4.2 - READ ONLY, TIMING DISABLED
|
# STEP 4.2 - READ ONLY, TIMING DISABLED
|
||||||
#
|
#
|
||||||
|
#
|
||||||
## Disable timing stats for 'transaction'
|
## Disable timing stats for 'transaction'
|
||||||
UPDATE performance_schema.setup_instruments SET timed = 'NO' WHERE name = 'transaction';
|
UPDATE performance_schema.setup_instruments SET timed = 'NO' WHERE name = 'transaction';
|
||||||
|
#
|
||||||
TRUNCATE performance_schema.events_transactions_summary_global_by_event_name;
|
TRUNCATE performance_schema.events_transactions_summary_global_by_event_name;
|
||||||
connection con1
|
# connection con1
|
||||||
connection con1;
|
connection con1;
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
SELECT * FROM t1 ORDER BY s1;
|
SELECT * FROM t1 ORDER BY s1;
|
||||||
@ -203,29 +203,29 @@ s1 s2
|
|||||||
412 READ ONLY
|
412 READ ONLY
|
||||||
413 READ ONLY
|
413 READ ONLY
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
#
|
||||||
SET SESSION TRANSACTION READ WRITE;
|
SET SESSION TRANSACTION READ WRITE;
|
||||||
connection default;
|
connection default;
|
||||||
|
#
|
||||||
## Expect 1 event, 0 stats
|
## Expect 1 event, 0 stats
|
||||||
SELECT * FROM performance_schema.events_transactions_summary_global_by_event_name;
|
SELECT * FROM performance_schema.events_transactions_summary_global_by_event_name;
|
||||||
EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT COUNT_READ_WRITE SUM_TIMER_READ_WRITE MIN_TIMER_READ_WRITE AVG_TIMER_READ_WRITE MAX_TIMER_READ_WRITE COUNT_READ_ONLY SUM_TIMER_READ_ONLY MIN_TIMER_READ_ONLY AVG_TIMER_READ_ONLY MAX_TIMER_READ_ONLY
|
EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT COUNT_READ_WRITE SUM_TIMER_READ_WRITE MIN_TIMER_READ_WRITE AVG_TIMER_READ_WRITE MAX_TIMER_READ_WRITE COUNT_READ_ONLY SUM_TIMER_READ_ONLY MIN_TIMER_READ_ONLY AVG_TIMER_READ_ONLY MAX_TIMER_READ_ONLY
|
||||||
transaction 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0
|
transaction 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0
|
||||||
|
#
|
||||||
## Restore setup_instruments
|
## Restore setup_instruments
|
||||||
UPDATE performance_schema.setup_instruments SET enabled = 'YES' WHERE name = 'transaction';
|
UPDATE performance_schema.setup_instruments SET enabled = 'YES' WHERE name = 'transaction';
|
||||||
|
#
|
||||||
========================================================================
|
# ========================================================================
|
||||||
# STEP 5 - IMPLICIT START
|
# STEP 5 - IMPLICIT START
|
||||||
========================================================================
|
# ========================================================================
|
||||||
# When AUTOCOMMIT is disabled, the first statement following a committed
|
# When AUTOCOMMIT is disabled, the first statement following a committed
|
||||||
# transaction marks the start of a new transaction. Subsequent statements will
|
# transaction marks the start of a new transaction. Subsequent statements will
|
||||||
# be part of the transaction until it is committed.
|
# be part of the transaction until it is committed.
|
||||||
|
#
|
||||||
connection con1;
|
connection con1;
|
||||||
SET SESSION AUTOCOMMIT = 0;
|
SET SESSION AUTOCOMMIT = 0;
|
||||||
INSERT INTO t1 VALUES (501, 'IMPLICIT START');
|
INSERT INTO t1 VALUES (501, 'IMPLICIT START');
|
||||||
|
#
|
||||||
## Expect 1 active transaction in events_transactions_current
|
## Expect 1 active transaction in events_transactions_current
|
||||||
connection default;
|
connection default;
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
@ -234,7 +234,7 @@ ACTUAL EXPECTED
|
|||||||
connection con1;
|
connection con1;
|
||||||
INSERT INTO t1 VALUES (502, 'IMPLICIT START');
|
INSERT INTO t1 VALUES (502, 'IMPLICIT START');
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
#
|
||||||
## Expect one committed transaction in events_transactions_current and history
|
## Expect one committed transaction in events_transactions_current and history
|
||||||
connection default;
|
connection default;
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
@ -244,17 +244,17 @@ CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '',
|
|||||||
ACTUAL EXPECTED
|
ACTUAL EXPECTED
|
||||||
1 1
|
1 1
|
||||||
CALL clear_transaction_tables();
|
CALL clear_transaction_tables();
|
||||||
|
#
|
||||||
========================================================================
|
# ========================================================================
|
||||||
# STEP 6 - IMPLICIT COMMIT (DDL, ETC)
|
# STEP 6 - IMPLICIT COMMIT (DDL, ETC)
|
||||||
========================================================================
|
# ========================================================================
|
||||||
# Transactions are implicitly ended by DDL statements, locking statements
|
# Transactions are implicitly ended by DDL statements, locking statements
|
||||||
# and server administration commands.
|
# and server administration commands.
|
||||||
|
#
|
||||||
connection con1;
|
connection con1;
|
||||||
SET SESSION AUTOCOMMIT = 0;
|
SET SESSION AUTOCOMMIT = 0;
|
||||||
INSERT INTO t1 VALUES (601, 'IMPLICIT COMMIT');
|
INSERT INTO t1 VALUES (601, 'IMPLICIT COMMIT');
|
||||||
|
#
|
||||||
## Expect one active transaction in events_transactions_current, zero events in history
|
## Expect one active transaction in events_transactions_current, zero events in history
|
||||||
connection default;
|
connection default;
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
@ -267,7 +267,7 @@ connection con1;
|
|||||||
INSERT INTO t1 VALUES (602, 'IMPLICIT COMMIT');
|
INSERT INTO t1 VALUES (602, 'IMPLICIT COMMIT');
|
||||||
## Issue a DDL statement to force a commmit
|
## Issue a DDL statement to force a commmit
|
||||||
CREATE TABLE t2 (s1 INT, s2 VARCHAR(64)) ENGINE=INNODB;
|
CREATE TABLE t2 (s1 INT, s2 VARCHAR(64)) ENGINE=INNODB;
|
||||||
|
#
|
||||||
## Expect 0 active transactions, 1 committed transaction
|
## Expect 0 active transactions, 1 committed transaction
|
||||||
connection default;
|
connection default;
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 0);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 0);
|
||||||
@ -281,52 +281,52 @@ ACTUAL EXPECTED
|
|||||||
1 1
|
1 1
|
||||||
CALL clear_transaction_tables();
|
CALL clear_transaction_tables();
|
||||||
DROP TABLE test.t2;
|
DROP TABLE test.t2;
|
||||||
|
#
|
||||||
========================================================================
|
# ========================================================================
|
||||||
STEP 7 - XA TRANSACTIONS
|
# STEP 7 - XA TRANSACTIONS
|
||||||
========================================================================
|
# ========================================================================
|
||||||
#
|
#
|
||||||
# STEP 7.1 - XA START
|
# STEP 7.1 - XA START
|
||||||
#
|
#
|
||||||
connection con1;
|
connection con1;
|
||||||
XA START 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 1234567890;
|
XA START 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 1234567890;
|
||||||
|
#
|
||||||
## Expect 1 active XA transaction, state ACTIVE
|
## Expect 1 active XA transaction, state ACTIVE
|
||||||
connection default;
|
connection default;
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 1234567890, 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 'ACTIVE', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 1234567890, 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 'ACTIVE', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
ACTUAL EXPECTED
|
ACTUAL EXPECTED
|
||||||
1 1
|
1 1
|
||||||
|
#
|
||||||
# STEP 7.2 - XA END
|
# STEP 7.2 - XA END
|
||||||
|
#
|
||||||
connection con1;
|
connection con1;
|
||||||
INSERT INTO t1 VALUES (701, 'XA');
|
INSERT INTO t1 VALUES (701, 'XA');
|
||||||
XA END 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 1234567890;
|
XA END 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 1234567890;
|
||||||
|
#
|
||||||
## Expect 1 active XA transaction, state IDLE
|
## Expect 1 active XA transaction, state IDLE
|
||||||
connection default;
|
connection default;
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 1234567890, 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 'IDLE', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 1234567890, 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 'IDLE', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
ACTUAL EXPECTED
|
ACTUAL EXPECTED
|
||||||
1 1
|
1 1
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# STEP 7.3 - XA PREPARE
|
# STEP 7.3 - XA PREPARE
|
||||||
#
|
#
|
||||||
connection con1;
|
connection con1;
|
||||||
XA PREPARE 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 1234567890;
|
XA PREPARE 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 1234567890;
|
||||||
|
#
|
||||||
## Expect 1 active XA transaction, state PREPARED
|
## Expect 1 active XA transaction, state PREPARED
|
||||||
connection default;
|
connection default;
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 1234567890, 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 'PREPARED', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 1234567890, 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 'PREPARED', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
ACTUAL EXPECTED
|
ACTUAL EXPECTED
|
||||||
1 1
|
1 1
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# STEP 7.4 - XA COMMIT
|
# STEP 7.4 - XA COMMIT
|
||||||
#
|
#
|
||||||
connection con1;
|
connection con1;
|
||||||
XA COMMIT 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 1234567890;
|
XA COMMIT 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 1234567890;
|
||||||
|
#
|
||||||
## Expect 1 committed XA transaction, state COMMITTED in current and history
|
## Expect 1 committed XA transaction, state COMMITTED in current and history
|
||||||
connection default;
|
connection default;
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'COMMITTED', 1234567890, 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 'COMMITTED', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'COMMITTED', 1234567890, 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 'COMMITTED', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
@ -336,7 +336,7 @@ CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 123456
|
|||||||
ACTUAL EXPECTED
|
ACTUAL EXPECTED
|
||||||
1 1
|
1 1
|
||||||
CALL clear_transaction_tables();
|
CALL clear_transaction_tables();
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# STEP 7.5 - XA ROLLBACK
|
# STEP 7.5 - XA ROLLBACK
|
||||||
#
|
#
|
||||||
@ -345,7 +345,7 @@ XA START 'XA_CON1_002';
|
|||||||
INSERT INTO t1 VALUES (702, 'XA');
|
INSERT INTO t1 VALUES (702, 'XA');
|
||||||
XA END 'XA_CON1_002';
|
XA END 'XA_CON1_002';
|
||||||
XA PREPARE 'XA_CON1_002';
|
XA PREPARE 'XA_CON1_002';
|
||||||
|
#
|
||||||
## Expect 1 active XA transaction, state PREPARED
|
## Expect 1 active XA transaction, state PREPARED
|
||||||
connection default;
|
connection default;
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, 'XA_CON1_002', '', 'PREPARED', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, 'XA_CON1_002', '', 'PREPARED', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
@ -353,7 +353,7 @@ ACTUAL EXPECTED
|
|||||||
1 1
|
1 1
|
||||||
connection con1;
|
connection con1;
|
||||||
XA ROLLBACK 'XA_CON1_002';
|
XA ROLLBACK 'XA_CON1_002';
|
||||||
|
#
|
||||||
## Expect 1 XA transaction, state ROLLBACK ONLY in current and history
|
## Expect 1 XA transaction, state ROLLBACK ONLY in current and history
|
||||||
connection default;
|
connection default;
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ROLLED BACK', 0, 'XA_CON1_002', '', 'ROLLBACK ONLY', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ROLLED BACK', 0, 'XA_CON1_002', '', 'ROLLBACK ONLY', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
@ -374,7 +374,7 @@ INSERT INTO t1 VALUES (703, 'XA LONG');
|
|||||||
XA END 'GTRID_6789012345678901234567890123456789012345678901234567890123','BQUAL_6789012345678901234567890123456789012345678901234567890123',1234567890;
|
XA END 'GTRID_6789012345678901234567890123456789012345678901234567890123','BQUAL_6789012345678901234567890123456789012345678901234567890123',1234567890;
|
||||||
XA PREPARE 'GTRID_6789012345678901234567890123456789012345678901234567890123','BQUAL_6789012345678901234567890123456789012345678901234567890123',1234567890;
|
XA PREPARE 'GTRID_6789012345678901234567890123456789012345678901234567890123','BQUAL_6789012345678901234567890123456789012345678901234567890123',1234567890;
|
||||||
XA COMMIT 'GTRID_6789012345678901234567890123456789012345678901234567890123','BQUAL_6789012345678901234567890123456789012345678901234567890123',1234567890;
|
XA COMMIT 'GTRID_6789012345678901234567890123456789012345678901234567890123','BQUAL_6789012345678901234567890123456789012345678901234567890123',1234567890;
|
||||||
|
#
|
||||||
## Expect 1 committed XA transaction, state COMMITTED in current and history
|
## Expect 1 committed XA transaction, state COMMITTED in current and history
|
||||||
connection default;
|
connection default;
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'COMMITTED', 1234567890, 'GTRID_6789012345678901234567890123456789012345678901234567890123', 'BQUAL_6789012345678901234567890123456789012345678901234567890123', 'COMMITTED', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'COMMITTED', 1234567890, 'GTRID_6789012345678901234567890123456789012345678901234567890123', 'BQUAL_6789012345678901234567890123456789012345678901234567890123', 'COMMITTED', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
@ -393,7 +393,7 @@ INSERT INTO t1 VALUES (704, 'XA LONG/BINARY');
|
|||||||
XA END 'GTRID_6789012345678901234567890123456789012345678901234567890123',0x425155414C5FA5A53839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233,1234567890;
|
XA END 'GTRID_6789012345678901234567890123456789012345678901234567890123',0x425155414C5FA5A53839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233,1234567890;
|
||||||
XA PREPARE 'GTRID_6789012345678901234567890123456789012345678901234567890123',0x425155414C5FA5A53839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233,1234567890;
|
XA PREPARE 'GTRID_6789012345678901234567890123456789012345678901234567890123',0x425155414C5FA5A53839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233,1234567890;
|
||||||
XA COMMIT 'GTRID_6789012345678901234567890123456789012345678901234567890123',0x425155414C5FA5A53839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233,1234567890;
|
XA COMMIT 'GTRID_6789012345678901234567890123456789012345678901234567890123',0x425155414C5FA5A53839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233,1234567890;
|
||||||
|
#
|
||||||
## Expect 1 committed XA transaction, state COMMITTED in current and history
|
## Expect 1 committed XA transaction, state COMMITTED in current and history
|
||||||
connection default;
|
connection default;
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'COMMITTED', 1234567890, 'GTRID_6789012345678901234567890123456789012345678901234567890123', '0x425155414C5FA5A53839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233', 'COMMITTED', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'COMMITTED', 1234567890, 'GTRID_6789012345678901234567890123456789012345678901234567890123', '0x425155414C5FA5A53839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233', 'COMMITTED', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
@ -403,23 +403,23 @@ CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 123456
|
|||||||
ACTUAL EXPECTED
|
ACTUAL EXPECTED
|
||||||
1 1
|
1 1
|
||||||
CALL clear_transaction_tables();
|
CALL clear_transaction_tables();
|
||||||
|
#
|
||||||
========================================================================
|
# ========================================================================
|
||||||
# STEP 8 - TRANSACTIONAL AND NON-TRANSACTIONAL TABLES
|
# STEP 8 - TRANSACTIONAL AND NON-TRANSACTIONAL TABLES
|
||||||
========================================================================
|
# ========================================================================
|
||||||
|
#
|
||||||
## MariaDB bug: MDEV-6012? MDEV-14436?
|
## MariaDB bug: MDEV-6012? MDEV-14436?
|
||||||
set @mariadb_bug=1;
|
set @mariadb_bug=1;
|
||||||
connection con1;
|
connection con1;
|
||||||
SET SESSION AUTOCOMMIT = 0;
|
SET SESSION AUTOCOMMIT = 0;
|
||||||
SELECT * FROM performance_schema.events_transactions_current ORDER BY event_id;
|
SELECT * FROM performance_schema.events_transactions_current ORDER BY event_id;
|
||||||
THREAD_ID EVENT_ID END_EVENT_ID EVENT_NAME STATE TRX_ID GTID XID_FORMAT_ID XID_GTRID XID_BQUAL XA_STATE SOURCE TIMER_START TIMER_END TIMER_WAIT ACCESS_MODE ISOLATION_LEVEL AUTOCOMMIT NUMBER_OF_SAVEPOINTS NUMBER_OF_ROLLBACK_TO_SAVEPOINT NUMBER_OF_RELEASE_SAVEPOINT OBJECT_INSTANCE_BEGIN NESTING_EVENT_ID NESTING_EVENT_TYPE
|
THREAD_ID EVENT_ID END_EVENT_ID EVENT_NAME STATE TRX_ID GTID XID_FORMAT_ID XID_GTRID XID_BQUAL XA_STATE SOURCE TIMER_START TIMER_END TIMER_WAIT ACCESS_MODE ISOLATION_LEVEL AUTOCOMMIT NUMBER_OF_SAVEPOINTS NUMBER_OF_ROLLBACK_TO_SAVEPOINT NUMBER_OF_RELEASE_SAVEPOINT OBJECT_INSTANCE_BEGIN NESTING_EVENT_ID NESTING_EVENT_TYPE
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# STEP 8.1 - UPDATE NON-TRANSACTIONAL TABLE
|
# STEP 8.1 - UPDATE NON-TRANSACTIONAL TABLE
|
||||||
#
|
#
|
||||||
INSERT INTO nt1 VALUES (801, 'NON-TRANSACTIONAL');
|
INSERT INTO nt1 VALUES (801, 'NON-TRANSACTIONAL');
|
||||||
|
#
|
||||||
## Expect 0 transactions in events_transactions_current
|
## Expect 0 transactions in events_transactions_current
|
||||||
connection default;
|
connection default;
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', '', 0, '', '', '', '', '', '', '', 0, 0, 0, @mariadb_bug);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', '', 0, '', '', '', '', '', '', '', 0, 0, 0, @mariadb_bug);
|
||||||
@ -427,41 +427,41 @@ ACTUAL EXPECTED
|
|||||||
1 1
|
1 1
|
||||||
connection con1;
|
connection con1;
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
#
|
||||||
## Expect 0 transactions in events_transactions_history
|
## Expect 0 transactions in events_transactions_history
|
||||||
connection default;
|
connection default;
|
||||||
CALL transaction_verifier(1, @con1_thread_id, 'transaction', '', 0, '', '', '', '', '', '', '', 0, 0, 0, @mariadb_bug);
|
CALL transaction_verifier(1, @con1_thread_id, 'transaction', '', 0, '', '', '', '', '', '', '', 0, 0, 0, @mariadb_bug);
|
||||||
ACTUAL EXPECTED
|
ACTUAL EXPECTED
|
||||||
1 1
|
1 1
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# STEP 8.2 - UPDATE TRANSACTIONAL AND NON-TRANSACTIONAL TABLES
|
# STEP 8.2 - UPDATE TRANSACTIONAL AND NON-TRANSACTIONAL TABLES
|
||||||
#
|
#
|
||||||
|
#
|
||||||
## First non-transactional...
|
## First non-transactional...
|
||||||
|
#
|
||||||
connection con1;
|
connection con1;
|
||||||
INSERT INTO nt1 VALUES (802, 'NON-TRANSACTIONAL');
|
INSERT INTO nt1 VALUES (802, 'NON-TRANSACTIONAL');
|
||||||
|
#
|
||||||
## Expect 0 transactions in events_transactions_current
|
## Expect 0 transactions in events_transactions_current
|
||||||
connection default;
|
connection default;
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', '', 0, '', '', '', '', '', '', '', 0, 0, 0, @mariadb_bug);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', '', 0, '', '', '', '', '', '', '', 0, 0, 0, @mariadb_bug);
|
||||||
ACTUAL EXPECTED
|
ACTUAL EXPECTED
|
||||||
1 1
|
1 1
|
||||||
|
#
|
||||||
## Now transactional. Transaction should be started.
|
## Now transactional. Transaction should be started.
|
||||||
connection con1;
|
connection con1;
|
||||||
INSERT INTO t1 VALUES (802, 'TRANSACTIONAL');
|
INSERT INTO t1 VALUES (802, 'TRANSACTIONAL');
|
||||||
|
#
|
||||||
## Expect 1 transaction in events_transactions_current
|
## Expect 1 transaction in events_transactions_current
|
||||||
connection default;
|
connection default;
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
ACTUAL EXPECTED
|
ACTUAL EXPECTED
|
||||||
1 1
|
1 1
|
||||||
|
#
|
||||||
connection con1;
|
connection con1;
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
#
|
||||||
## Expect 1 committed transaction in events_transactions_current and history
|
## Expect 1 committed transaction in events_transactions_current and history
|
||||||
connection default;
|
connection default;
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
@ -471,10 +471,10 @@ CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '',
|
|||||||
ACTUAL EXPECTED
|
ACTUAL EXPECTED
|
||||||
2 2
|
2 2
|
||||||
CALL clear_transaction_tables();
|
CALL clear_transaction_tables();
|
||||||
|
#
|
||||||
========================================================================
|
# ========================================================================
|
||||||
# STEP 9 - SAVEPOINTS
|
# STEP 9 - SAVEPOINTS
|
||||||
========================================================================
|
# ========================================================================
|
||||||
#
|
#
|
||||||
# STEP 9.1 - SAVEPOINT 1
|
# STEP 9.1 - SAVEPOINT 1
|
||||||
#
|
#
|
||||||
@ -482,13 +482,13 @@ connection con1;
|
|||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (901, 'SAVEPOINT');
|
INSERT INTO t1 VALUES (901, 'SAVEPOINT');
|
||||||
SAVEPOINT SVP001;
|
SAVEPOINT SVP001;
|
||||||
|
#
|
||||||
## Expect 1 active transaction with 1 savepoint
|
## Expect 1 active transaction with 1 savepoint
|
||||||
connection default;
|
connection default;
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 1, 0, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 1, 0, 0, 1);
|
||||||
ACTUAL EXPECTED
|
ACTUAL EXPECTED
|
||||||
1 1
|
1 1
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# STEP 9.2 - SAVEPOINTS 2 and 3
|
# STEP 9.2 - SAVEPOINTS 2 and 3
|
||||||
#
|
#
|
||||||
@ -501,25 +501,25 @@ INSERT INTO t1 VALUES (904, 'SAVEPOINT');
|
|||||||
SELECT COUNT(*) FROM t1 WHERE s1 > 900;
|
SELECT COUNT(*) FROM t1 WHERE s1 > 900;
|
||||||
COUNT(*)
|
COUNT(*)
|
||||||
4
|
4
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# STEP 9.3 - ROLLBACK TO SAVEPOINT 2
|
# STEP 9.3 - ROLLBACK TO SAVEPOINT 2
|
||||||
#
|
#
|
||||||
connection con1;
|
connection con1;
|
||||||
ROLLBACK TO SVP002;
|
ROLLBACK TO SVP002;
|
||||||
|
#
|
||||||
## Expect 1 active transaction with 3 savepoints, 1 rollback to savepoint
|
## Expect 1 active transaction with 3 savepoints, 1 rollback to savepoint
|
||||||
connection default;
|
connection default;
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 3, 1, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 3, 1, 0, 1);
|
||||||
ACTUAL EXPECTED
|
ACTUAL EXPECTED
|
||||||
1 1
|
1 1
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# STEP 9.4 - RELEASE SAVEPOINT 1
|
# STEP 9.4 - RELEASE SAVEPOINT 1
|
||||||
#
|
#
|
||||||
connection con1;
|
connection con1;
|
||||||
RELEASE SAVEPOINT SVP001;
|
RELEASE SAVEPOINT SVP001;
|
||||||
|
#
|
||||||
## Expect 1 active transaction with 3 savepoints, 1 rollback to savepoint, 1 release savepoint
|
## Expect 1 active transaction with 3 savepoints, 1 rollback to savepoint, 1 release savepoint
|
||||||
connection default;
|
connection default;
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 3, 1, 1, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 3, 1, 1, 1);
|
||||||
@ -530,50 +530,50 @@ ACTUAL EXPECTED
|
|||||||
#
|
#
|
||||||
connection con1;
|
connection con1;
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
#
|
||||||
## Expect 1 committed transaction with 3 savepoints, 1 rollback to savepoint, 1 release savepoint
|
## Expect 1 committed transaction with 3 savepoints, 1 rollback to savepoint, 1 release savepoint
|
||||||
connection default;
|
connection default;
|
||||||
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', '', 'NO', 3, 1, 1, 1);
|
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', '', 'NO', 3, 1, 1, 1);
|
||||||
ACTUAL EXPECTED
|
ACTUAL EXPECTED
|
||||||
1 1
|
1 1
|
||||||
CALL clear_transaction_tables();
|
CALL clear_transaction_tables();
|
||||||
|
#
|
||||||
========================================================================
|
# ========================================================================
|
||||||
# STEP 10 - GTIDs
|
# STEP 10 - GTIDs
|
||||||
========================================================================
|
# ========================================================================
|
||||||
GTIDs are tested in transaction_gtid.test.
|
# GTIDs are tested in transaction_gtid.test.
|
||||||
|
#
|
||||||
========================================================================
|
# ========================================================================
|
||||||
# STEP 11 - MISCELLANY
|
# STEP 11 - MISCELLANY
|
||||||
========================================================================
|
# ========================================================================
|
||||||
#
|
#
|
||||||
# STEP 11.1 - TRUNCATE DURING ACTIVE TRANSACTION
|
# STEP 11.1 - TRUNCATE DURING ACTIVE TRANSACTION
|
||||||
#
|
#
|
||||||
|
#
|
||||||
# Verify that truncating events_transactions_current during an active transaction
|
# Verify that truncating events_transactions_current during an active transaction
|
||||||
# does not leave an orphaned transaction event, and that the row index to
|
# does not leave an orphaned transaction event, and that the row index to
|
||||||
# events_transactions_history is reset to 0.
|
# events_transactions_history is reset to 0.
|
||||||
|
#
|
||||||
connection con1;
|
connection con1;
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (1110, 'INSERT 1110');
|
INSERT INTO t1 VALUES (1110, 'INSERT 1110');
|
||||||
connection default;
|
connection default;
|
||||||
TRUNCATE performance_schema.events_transactions_current;
|
TRUNCATE performance_schema.events_transactions_current;
|
||||||
connection con1;
|
connection con1;
|
||||||
|
#
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
#
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (1111, 'INSERT 1111');
|
INSERT INTO t1 VALUES (1111, 'INSERT 1111');
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
#
|
||||||
## Expect 1 transaction for connection 1
|
## Expect 1 transaction for connection 1
|
||||||
connection default;
|
connection default;
|
||||||
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', '', '', '', 0, 0, 0, 1);
|
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', '', '', '', 0, 0, 0, 1);
|
||||||
ACTUAL EXPECTED
|
ACTUAL EXPECTED
|
||||||
1 1
|
1 1
|
||||||
CALL clear_transaction_tables();
|
CALL clear_transaction_tables();
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# STEP 11.2 - DISABLE THREAD INSTRUMENTATION
|
# STEP 11.2 - DISABLE THREAD INSTRUMENTATION
|
||||||
#
|
#
|
||||||
@ -581,93 +581,93 @@ connection default;
|
|||||||
UPDATE performance_schema.setup_consumers
|
UPDATE performance_schema.setup_consumers
|
||||||
SET enabled = 'NO'
|
SET enabled = 'NO'
|
||||||
WHERE name = 'thread_instrumentation';
|
WHERE name = 'thread_instrumentation';
|
||||||
|
#
|
||||||
TRUNCATE performance_schema.events_transactions_summary_global_by_event_name;
|
TRUNCATE performance_schema.events_transactions_summary_global_by_event_name;
|
||||||
connection con1;
|
connection con1;
|
||||||
|
#
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (1120, 'INSERT 1120');
|
INSERT INTO t1 VALUES (1120, 'INSERT 1120');
|
||||||
COMMIT;
|
COMMIT;
|
||||||
connection default;
|
connection default;
|
||||||
|
#
|
||||||
## Expect 1 event with non-zero summary stats
|
## Expect 1 event with non-zero summary stats
|
||||||
SELECT EVENT_NAME, COUNT_STAR, SUM_TIMER_WAIT, MIN_TIMER_WAIT, AVG_TIMER_WAIT, COUNT_READ_WRITE
|
SELECT EVENT_NAME, COUNT_STAR, SUM_TIMER_WAIT, MIN_TIMER_WAIT, AVG_TIMER_WAIT, COUNT_READ_WRITE
|
||||||
FROM performance_schema.events_transactions_summary_global_by_event_name
|
FROM performance_schema.events_transactions_summary_global_by_event_name
|
||||||
WHERE count_star = 1 and sum_timer_wait != 0;
|
WHERE count_star = 1 and sum_timer_wait != 0;
|
||||||
EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT COUNT_READ_WRITE
|
EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT COUNT_READ_WRITE
|
||||||
|
#
|
||||||
## Disable timing stats for 'transaction'
|
## Disable timing stats for 'transaction'
|
||||||
UPDATE performance_schema.setup_instruments SET timed = 'NO' WHERE name = 'transaction';
|
UPDATE performance_schema.setup_instruments SET timed = 'NO' WHERE name = 'transaction';
|
||||||
|
#
|
||||||
TRUNCATE performance_schema.events_transactions_summary_global_by_event_name;
|
TRUNCATE performance_schema.events_transactions_summary_global_by_event_name;
|
||||||
connection default;
|
connection default;
|
||||||
|
#
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (1121, 'INSERT 1121');
|
INSERT INTO t1 VALUES (1121, 'INSERT 1121');
|
||||||
COMMIT;
|
COMMIT;
|
||||||
connection default;
|
connection default;
|
||||||
|
#
|
||||||
## Expect 1 event, 0 stats
|
## Expect 1 event, 0 stats
|
||||||
SELECT * FROM performance_schema.events_transactions_summary_global_by_event_name;
|
SELECT * FROM performance_schema.events_transactions_summary_global_by_event_name;
|
||||||
EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT COUNT_READ_WRITE SUM_TIMER_READ_WRITE MIN_TIMER_READ_WRITE AVG_TIMER_READ_WRITE MAX_TIMER_READ_WRITE COUNT_READ_ONLY SUM_TIMER_READ_ONLY MIN_TIMER_READ_ONLY AVG_TIMER_READ_ONLY MAX_TIMER_READ_ONLY
|
EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT COUNT_READ_WRITE SUM_TIMER_READ_WRITE MIN_TIMER_READ_WRITE AVG_TIMER_READ_WRITE MAX_TIMER_READ_WRITE COUNT_READ_ONLY SUM_TIMER_READ_ONLY MIN_TIMER_READ_ONLY AVG_TIMER_READ_ONLY MAX_TIMER_READ_ONLY
|
||||||
transaction 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0
|
transaction 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0
|
||||||
|
#
|
||||||
## Restore setup_consumers and setup_instruments
|
## Restore setup_consumers and setup_instruments
|
||||||
UPDATE performance_schema.setup_consumers SET enabled = 'YES' WHERE name = 'thread_instrumentation';
|
UPDATE performance_schema.setup_consumers SET enabled = 'YES' WHERE name = 'thread_instrumentation';
|
||||||
UPDATE performance_schema.setup_instruments SET enabled = 'YES' WHERE name = 'transaction';
|
UPDATE performance_schema.setup_instruments SET enabled = 'YES' WHERE name = 'transaction';
|
||||||
|
#
|
||||||
DELETE FROM t1;
|
DELETE FROM t1;
|
||||||
CALL clear_history();
|
CALL clear_history();
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# STEP 11.3 - STATEMENT ROLLBACK - AUTOCOMMIT OFF - BINLOG FORMAT 'STATEMENT'
|
# STEP 11.3 - STATEMENT ROLLBACK - AUTOCOMMIT OFF - BINLOG FORMAT 'STATEMENT'
|
||||||
#
|
#
|
||||||
connection con1;
|
connection con1;
|
||||||
SET SESSION binlog_format = STATEMENT;
|
SET SESSION binlog_format = STATEMENT;
|
||||||
SET SESSION AUTOCOMMIT = 0;
|
SET SESSION AUTOCOMMIT = 0;
|
||||||
|
#
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (1130, 'INSERT 1130');
|
INSERT INTO t1 VALUES (1130, 'INSERT 1130');
|
||||||
|
#
|
||||||
## Expect binlog statement mode error
|
## Expect binlog statement mode error
|
||||||
UPDATE t1, performance_schema.setup_instruments pfs
|
UPDATE t1, performance_schema.setup_instruments pfs
|
||||||
SET t1.s1 = 1, pfs.timed = 'NO';
|
SET t1.s1 = 1, pfs.timed = 'NO';
|
||||||
|
#
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
#
|
||||||
SET SESSION AUTOCOMMIT = 1;
|
SET SESSION AUTOCOMMIT = 1;
|
||||||
|
#
|
||||||
## Expect 1 committed transaction
|
## Expect 1 committed transaction
|
||||||
connection default;
|
connection default;
|
||||||
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', '', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', '', '', 'NO', 0, 0, 0, 1);
|
||||||
ACTUAL EXPECTED
|
ACTUAL EXPECTED
|
||||||
1 1
|
1 1
|
||||||
|
#
|
||||||
DELETE FROM t1;
|
DELETE FROM t1;
|
||||||
CALL clear_history();
|
CALL clear_history();
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# STEP 11.4 - STATEMENT ROLLBACK - AUTOCOMMIT ON - BINLOG FORMAT 'STATEMENT'
|
# STEP 11.4 - STATEMENT ROLLBACK - AUTOCOMMIT ON - BINLOG FORMAT 'STATEMENT'
|
||||||
#
|
#
|
||||||
connection con1;
|
connection con1;
|
||||||
SET SESSION binlog_format = STATEMENT;
|
SET SESSION binlog_format = STATEMENT;
|
||||||
SET SESSION AUTOCOMMIT = 1;
|
SET SESSION AUTOCOMMIT = 1;
|
||||||
|
#
|
||||||
## Expect binlog statement mode error
|
## Expect binlog statement mode error
|
||||||
UPDATE t1, performance_schema.setup_instruments pfs
|
UPDATE t1, performance_schema.setup_instruments pfs
|
||||||
SET t1.s1 = 1, pfs.timed = 'NO';
|
SET t1.s1 = 1, pfs.timed = 'NO';
|
||||||
|
#
|
||||||
## Expect 1 rolled back transaction
|
## Expect 1 rolled back transaction
|
||||||
connection default;
|
connection default;
|
||||||
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'ROLLED BACK', 0, '', '', '', '', '', '', 'YES', 0, 0, 0, 1);
|
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'ROLLED BACK', 0, '', '', '', '', '', '', 'YES', 0, 0, 0, 1);
|
||||||
ACTUAL EXPECTED
|
ACTUAL EXPECTED
|
||||||
1 1
|
1 1
|
||||||
CALL clear_history();
|
CALL clear_history();
|
||||||
|
#
|
||||||
========================================================================
|
# ========================================================================
|
||||||
# CLEAN UP
|
# CLEAN UP
|
||||||
========================================================================
|
# ========================================================================
|
||||||
|
#
|
||||||
disconnect con1;
|
disconnect con1;
|
||||||
connection default;
|
connection default;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
@ -1,20 +1,20 @@
|
|||||||
|
#
|
||||||
#========================================================================
|
#========================================================================
|
||||||
# STEP 1 - SETUP
|
# STEP 1 - SETUP
|
||||||
#========================================================================
|
#========================================================================
|
||||||
|
#
|
||||||
## Setup control thread
|
## Setup control thread
|
||||||
|
#
|
||||||
connection default;
|
connection default;
|
||||||
SET SESSION AUTOCOMMIT= 1;
|
SET SESSION AUTOCOMMIT= 1;
|
||||||
USE test;
|
USE test;
|
||||||
DROP DATABASE IF EXISTS db;
|
DROP DATABASE IF EXISTS db;
|
||||||
|
#
|
||||||
## Create test database, test tables, one transactional and one non-transactional
|
## Create test database, test tables, one transactional and one non-transactional
|
||||||
CREATE DATABASE db;
|
CREATE DATABASE db;
|
||||||
CREATE TABLE db.t1 (s1 int, s2 varchar(64)) ENGINE=INNODB;
|
CREATE TABLE db.t1 (s1 int, s2 varchar(64)) ENGINE=INNODB;
|
||||||
CREATE TABLE db.nt1 (s1 int, s2 varchar(64)) ENGINE=MYISAM;
|
CREATE TABLE db.nt1 (s1 int, s2 varchar(64)) ENGINE=MYISAM;
|
||||||
|
#
|
||||||
## Setup connection 1
|
## Setup connection 1
|
||||||
connect con1, localhost, root,,;
|
connect con1, localhost, root,,;
|
||||||
USE db;
|
USE db;
|
||||||
@ -23,19 +23,19 @@ SELECT thread_id INTO @my_thread_id
|
|||||||
FROM performance_schema.threads
|
FROM performance_schema.threads
|
||||||
WHERE processlist_id = connection_id();
|
WHERE processlist_id = connection_id();
|
||||||
connection default;
|
connection default;
|
||||||
|
#
|
||||||
## Disable events from the control (default) connection
|
## Disable events from the control (default) connection
|
||||||
UPDATE performance_schema.threads SET instrumented = 'NO' WHERE processlist_id = CONNECTION_ID();
|
UPDATE performance_schema.threads SET instrumented = 'NO' WHERE processlist_id = CONNECTION_ID();
|
||||||
SET @all_threads= 0;
|
SET @all_threads= 0;
|
||||||
|
#
|
||||||
## Enable only transaction and statement instruments
|
## Enable only transaction and statement instruments
|
||||||
UPDATE performance_schema.setup_instruments SET enabled='NO', timed='NO';
|
UPDATE performance_schema.setup_instruments SET enabled='NO', timed='NO';
|
||||||
UPDATE performance_schema.setup_instruments SET enabled='YES'
|
UPDATE performance_schema.setup_instruments SET enabled='YES'
|
||||||
WHERE name LIKE ('statement/%') OR name = 'transaction';
|
WHERE name LIKE ('statement/%') OR name = 'transaction';
|
||||||
|
#
|
||||||
## Clear statement and transaction history
|
## Clear statement and transaction history
|
||||||
CALL test.clear_history();
|
CALL test.clear_history();
|
||||||
|
#
|
||||||
#========================================================================
|
#========================================================================
|
||||||
# STEP 2 - BASIC TRANSACTION
|
# STEP 2 - BASIC TRANSACTION
|
||||||
#========================================================================
|
#========================================================================
|
||||||
@ -62,8 +62,9 @@ select if(@base_tx_event_id < @base_stmt_event_id,
|
|||||||
@base_tx_event_id - 1,
|
@base_tx_event_id - 1,
|
||||||
@base_stmt_event_id - 1)
|
@base_stmt_event_id - 1)
|
||||||
into @base_event_id;
|
into @base_event_id;
|
||||||
EVENTS_TRANSACTIONS_CURRENT
|
#
|
||||||
|
# EVENTS_TRANSACTIONS_CURRENT
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -79,9 +80,9 @@ WHERE ((THREAD_ID = @con1_thread_id) OR (@all_threads = 1))
|
|||||||
ORDER BY thread_id, event_id;
|
ORDER BY thread_id, event_id;
|
||||||
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
|
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
|
||||||
thread_id 8 8 transaction COMMITTED READ WRITE REPEATABLE READ YES 7 STATEMENT
|
thread_id 8 8 transaction COMMITTED READ WRITE REPEATABLE READ YES 7 STATEMENT
|
||||||
|
#
|
||||||
EVENTS_TRANSACTIONS_HISTORY_LONG
|
# EVENTS_TRANSACTIONS_HISTORY_LONG
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -100,9 +101,9 @@ thread_id 2 2 transaction COMMITTED READ WRITE REPEATABLE
|
|||||||
thread_id 4 4 transaction COMMITTED READ WRITE REPEATABLE READ YES 3 STATEMENT
|
thread_id 4 4 transaction COMMITTED READ WRITE REPEATABLE READ YES 3 STATEMENT
|
||||||
thread_id 6 6 transaction COMMITTED READ WRITE REPEATABLE READ YES 5 STATEMENT
|
thread_id 6 6 transaction COMMITTED READ WRITE REPEATABLE READ YES 5 STATEMENT
|
||||||
thread_id 8 8 transaction COMMITTED READ WRITE REPEATABLE READ YES 7 STATEMENT
|
thread_id 8 8 transaction COMMITTED READ WRITE REPEATABLE READ YES 7 STATEMENT
|
||||||
|
#
|
||||||
EVENTS_STATEMENTS_HISTORY_LONG
|
# EVENTS_STATEMENTS_HISTORY_LONG
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -120,11 +121,11 @@ thread_id 1 2 statement/sql/insert NULL
|
|||||||
thread_id 3 4 statement/sql/insert NULL NULL NULL 0 INSERT INTO t1 VALUES (211, "INSERT 211")
|
thread_id 3 4 statement/sql/insert NULL NULL NULL 0 INSERT INTO t1 VALUES (211, "INSERT 211")
|
||||||
thread_id 5 6 statement/sql/insert NULL NULL NULL 0 INSERT INTO t1 VALUES (212, "INSERT 212")
|
thread_id 5 6 statement/sql/insert NULL NULL NULL 0 INSERT INTO t1 VALUES (212, "INSERT 212")
|
||||||
thread_id 7 8 statement/sql/update NULL NULL NULL 0 UPDATE t1 SET s1 = s1 + 1 WHERE s1 = 212
|
thread_id 7 8 statement/sql/update NULL NULL NULL 0 UPDATE t1 SET s1 = s1 + 1 WHERE s1 = 212
|
||||||
|
#
|
||||||
## Combined statement and transaction event history ordered by event id
|
### Combined statement and transaction event history ordered by event id
|
||||||
|
#
|
||||||
EVENTS_STATEMENTS_HISTORY_LONG + EVENTS_TRANSACTIONS_HISTORY_LONG
|
#EVENTS_STATEMENTS_HISTORY_LONG + EVENTS_TRANSACTIONS_HISTORY_LONG
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -154,13 +155,13 @@ thread_id 5 6 statement/sql/insert NULL
|
|||||||
thread_id 6 6 transaction 5 STATEMENT <transaction started>
|
thread_id 6 6 transaction 5 STATEMENT <transaction started>
|
||||||
thread_id 7 8 statement/sql/update NULL NULL UPDATE t1 SET s1 = s1 + 1 WHERE s1 = 212
|
thread_id 7 8 statement/sql/update NULL NULL UPDATE t1 SET s1 = s1 + 1 WHERE s1 = 212
|
||||||
thread_id 8 8 transaction 7 STATEMENT <transaction started>
|
thread_id 8 8 transaction 7 STATEMENT <transaction started>
|
||||||
|
#
|
||||||
## Clear statement and transaction history
|
### Clear statement and transaction history
|
||||||
CALL test.clear_history();
|
# CALL test.clear_history();
|
||||||
CALL test.clear_history();
|
CALL test.clear_history();
|
||||||
## Reset db.t1
|
## Reset db.t1
|
||||||
DELETE FROM db.t1;
|
DELETE FROM db.t1;
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# STEP 2.2 - EXPLICIT
|
# STEP 2.2 - EXPLICIT
|
||||||
#
|
#
|
||||||
@ -184,8 +185,9 @@ select if(@base_tx_event_id < @base_stmt_event_id,
|
|||||||
@base_tx_event_id - 1,
|
@base_tx_event_id - 1,
|
||||||
@base_stmt_event_id - 1)
|
@base_stmt_event_id - 1)
|
||||||
into @base_event_id;
|
into @base_event_id;
|
||||||
EVENTS_TRANSACTIONS_CURRENT
|
#
|
||||||
|
# EVENTS_TRANSACTIONS_CURRENT
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -201,9 +203,9 @@ WHERE ((THREAD_ID = @con1_thread_id) OR (@all_threads = 1))
|
|||||||
ORDER BY thread_id, event_id;
|
ORDER BY thread_id, event_id;
|
||||||
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
|
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
|
||||||
thread_id 2 5 transaction COMMITTED READ WRITE REPEATABLE READ NO 1 STATEMENT
|
thread_id 2 5 transaction COMMITTED READ WRITE REPEATABLE READ NO 1 STATEMENT
|
||||||
|
#
|
||||||
EVENTS_TRANSACTIONS_HISTORY_LONG
|
# EVENTS_TRANSACTIONS_HISTORY_LONG
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -219,9 +221,9 @@ WHERE ((THREAD_ID = @con1_thread_id) OR (@all_threads = 1))
|
|||||||
ORDER BY thread_id, event_id;
|
ORDER BY thread_id, event_id;
|
||||||
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
|
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
|
||||||
thread_id 2 5 transaction COMMITTED READ WRITE REPEATABLE READ NO 1 STATEMENT
|
thread_id 2 5 transaction COMMITTED READ WRITE REPEATABLE READ NO 1 STATEMENT
|
||||||
|
#
|
||||||
EVENTS_STATEMENTS_HISTORY_LONG
|
# EVENTS_STATEMENTS_HISTORY_LONG
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -239,11 +241,11 @@ thread_id 1 2 statement/sql/begin NULL
|
|||||||
thread_id 3 3 statement/sql/insert NULL 2 TRANSACTION 0 INSERT INTO t1 VALUES (220, "INSERT 220"), (221, "INSERT 221")
|
thread_id 3 3 statement/sql/insert NULL 2 TRANSACTION 0 INSERT INTO t1 VALUES (220, "INSERT 220"), (221, "INSERT 221")
|
||||||
thread_id 4 4 statement/sql/update NULL 2 TRANSACTION 0 UPDATE t1 SET s2 = "UPDATE 221" WHERE s1 = 221
|
thread_id 4 4 statement/sql/update NULL 2 TRANSACTION 0 UPDATE t1 SET s2 = "UPDATE 221" WHERE s1 = 221
|
||||||
thread_id 5 5 statement/sql/commit NULL 2 TRANSACTION 0 COMMIT
|
thread_id 5 5 statement/sql/commit NULL 2 TRANSACTION 0 COMMIT
|
||||||
|
#
|
||||||
## Combined statement and transaction event history ordered by event id
|
### Combined statement and transaction event history ordered by event id
|
||||||
|
#
|
||||||
EVENTS_STATEMENTS_HISTORY_LONG + EVENTS_TRANSACTIONS_HISTORY_LONG
|
#EVENTS_STATEMENTS_HISTORY_LONG + EVENTS_TRANSACTIONS_HISTORY_LONG
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -270,13 +272,13 @@ thread_id 2 5 transaction 1
|
|||||||
thread_id 3 3 statement/sql/insert 2 TRANSACTION INSERT INTO t1 VALUES (220, "INSERT 220"), (221, "INSERT 221")
|
thread_id 3 3 statement/sql/insert 2 TRANSACTION INSERT INTO t1 VALUES (220, "INSERT 220"), (221, "INSERT 221")
|
||||||
thread_id 4 4 statement/sql/update 2 TRANSACTION UPDATE t1 SET s2 = "UPDATE 221" WHERE s1 = 221
|
thread_id 4 4 statement/sql/update 2 TRANSACTION UPDATE t1 SET s2 = "UPDATE 221" WHERE s1 = 221
|
||||||
thread_id 5 5 statement/sql/commit 2 TRANSACTION COMMIT
|
thread_id 5 5 statement/sql/commit 2 TRANSACTION COMMIT
|
||||||
|
#
|
||||||
## Clear statement and transaction history
|
### Clear statement and transaction history
|
||||||
CALL test.clear_history();
|
# CALL test.clear_history();
|
||||||
CALL test.clear_history();
|
CALL test.clear_history();
|
||||||
## Reset db.t1
|
## Reset db.t1
|
||||||
DELETE FROM db.t1;
|
DELETE FROM db.t1;
|
||||||
|
#
|
||||||
#========================================================================
|
#========================================================================
|
||||||
# STEP 3 - TRANSACTIONS AND STORED PROCEDURES
|
# STEP 3 - TRANSACTIONS AND STORED PROCEDURES
|
||||||
#========================================================================
|
#========================================================================
|
||||||
@ -285,7 +287,7 @@ DELETE FROM db.t1;
|
|||||||
#
|
#
|
||||||
connection con1;
|
connection con1;
|
||||||
CREATE PROCEDURE tp_update() UPDATE t1 SET s1 = s1 + 1;
|
CREATE PROCEDURE tp_update() UPDATE t1 SET s1 = s1 + 1;
|
||||||
|
#
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (310, "INSERT 310");
|
INSERT INTO t1 VALUES (310, "INSERT 310");
|
||||||
INSERT INTO t1 VALUES (311, "INSERT 311");
|
INSERT INTO t1 VALUES (311, "INSERT 311");
|
||||||
@ -308,8 +310,9 @@ select if(@base_tx_event_id < @base_stmt_event_id,
|
|||||||
@base_tx_event_id - 1,
|
@base_tx_event_id - 1,
|
||||||
@base_stmt_event_id - 1)
|
@base_stmt_event_id - 1)
|
||||||
into @base_event_id;
|
into @base_event_id;
|
||||||
EVENTS_TRANSACTIONS_CURRENT
|
#
|
||||||
|
# EVENTS_TRANSACTIONS_CURRENT
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -325,9 +328,9 @@ WHERE ((THREAD_ID = @con1_thread_id) OR (@all_threads = 1))
|
|||||||
ORDER BY thread_id, event_id;
|
ORDER BY thread_id, event_id;
|
||||||
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
|
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
|
||||||
thread_id 3 10 transaction COMMITTED READ WRITE REPEATABLE READ NO 2 STATEMENT
|
thread_id 3 10 transaction COMMITTED READ WRITE REPEATABLE READ NO 2 STATEMENT
|
||||||
|
#
|
||||||
EVENTS_TRANSACTIONS_HISTORY_LONG
|
# EVENTS_TRANSACTIONS_HISTORY_LONG
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -343,9 +346,9 @@ WHERE ((THREAD_ID = @con1_thread_id) OR (@all_threads = 1))
|
|||||||
ORDER BY thread_id, event_id;
|
ORDER BY thread_id, event_id;
|
||||||
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
|
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
|
||||||
thread_id 3 10 transaction COMMITTED READ WRITE REPEATABLE READ NO 2 STATEMENT
|
thread_id 3 10 transaction COMMITTED READ WRITE REPEATABLE READ NO 2 STATEMENT
|
||||||
|
#
|
||||||
EVENTS_STATEMENTS_HISTORY_LONG
|
# EVENTS_STATEMENTS_HISTORY_LONG
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -368,11 +371,11 @@ thread_id 7 7 statement/sql/insert NULL
|
|||||||
thread_id 8 9 statement/sql/call_procedure NULL 3 TRANSACTION 0 CALL tp_update()
|
thread_id 8 9 statement/sql/call_procedure NULL 3 TRANSACTION 0 CALL tp_update()
|
||||||
thread_id 9 9 statement/sp/stmt tp_update 8 STATEMENT 1 UPDATE t1 SET s1 = s1 + 1
|
thread_id 9 9 statement/sp/stmt tp_update 8 STATEMENT 1 UPDATE t1 SET s1 = s1 + 1
|
||||||
thread_id 10 10 statement/sql/commit NULL 3 TRANSACTION 0 COMMIT
|
thread_id 10 10 statement/sql/commit NULL 3 TRANSACTION 0 COMMIT
|
||||||
|
#
|
||||||
## Combined statement and transaction event history ordered by event id
|
### Combined statement and transaction event history ordered by event id
|
||||||
|
#
|
||||||
EVENTS_STATEMENTS_HISTORY_LONG + EVENTS_TRANSACTIONS_HISTORY_LONG
|
#EVENTS_STATEMENTS_HISTORY_LONG + EVENTS_TRANSACTIONS_HISTORY_LONG
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -404,24 +407,24 @@ thread_id 7 7 statement/sql/insert 3
|
|||||||
thread_id 8 9 statement/sql/call_proced 3 TRANSACTION CALL tp_update()
|
thread_id 8 9 statement/sql/call_proced 3 TRANSACTION CALL tp_update()
|
||||||
thread_id 9 9 statement/sp/stmt 8 STATEMENT UPDATE t1 SET s1 = s1 + 1
|
thread_id 9 9 statement/sp/stmt 8 STATEMENT UPDATE t1 SET s1 = s1 + 1
|
||||||
thread_id 10 10 statement/sql/commit 3 TRANSACTION COMMIT
|
thread_id 10 10 statement/sql/commit 3 TRANSACTION COMMIT
|
||||||
|
#
|
||||||
## Clear statement and transaction history
|
### Clear statement and transaction history
|
||||||
CALL test.clear_history();
|
# CALL test.clear_history();
|
||||||
CALL test.clear_history();
|
CALL test.clear_history();
|
||||||
## Reset db.t1
|
## Reset db.t1
|
||||||
DELETE FROM db.t1;
|
DELETE FROM db.t1;
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# STEP 3.2 - TRANSACTION STARTED WITHIN STORED PROCEDURE
|
# STEP 3.2 - TRANSACTION STARTED WITHIN STORED PROCEDURE
|
||||||
#
|
#
|
||||||
connection con1;
|
connection con1;
|
||||||
CREATE PROCEDURE tp_start() START TRANSACTION;
|
CREATE PROCEDURE tp_start() START TRANSACTION;
|
||||||
|
#
|
||||||
CALL tp_start();
|
CALL tp_start();
|
||||||
INSERT INTO t1 VALUES (320, "INSERT 320"),(321, "INSERT 321");
|
INSERT INTO t1 VALUES (320, "INSERT 320"),(321, "INSERT 321");
|
||||||
INSERT INTO t1 VALUES (322, "INSERT 322"),(323, "INSERT 323");
|
INSERT INTO t1 VALUES (322, "INSERT 322"),(323, "INSERT 323");
|
||||||
UPDATE t1 SET s1 = s1 + 1 WHERE s1 > 320;
|
UPDATE t1 SET s1 = s1 + 1 WHERE s1 > 320;
|
||||||
|
#
|
||||||
SELECT * FROM t1 ORDER BY s1;
|
SELECT * FROM t1 ORDER BY s1;
|
||||||
s1 s2
|
s1 s2
|
||||||
320 INSERT 320
|
320 INSERT 320
|
||||||
@ -444,8 +447,9 @@ select if(@base_tx_event_id < @base_stmt_event_id,
|
|||||||
@base_tx_event_id - 1,
|
@base_tx_event_id - 1,
|
||||||
@base_stmt_event_id - 1)
|
@base_stmt_event_id - 1)
|
||||||
into @base_event_id;
|
into @base_event_id;
|
||||||
EVENTS_TRANSACTIONS_CURRENT
|
#
|
||||||
|
# EVENTS_TRANSACTIONS_CURRENT
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -461,9 +465,9 @@ WHERE ((THREAD_ID = @con1_thread_id) OR (@all_threads = 1))
|
|||||||
ORDER BY thread_id, event_id;
|
ORDER BY thread_id, event_id;
|
||||||
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
|
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
|
||||||
thread_id 4 9 transaction COMMITTED READ WRITE REPEATABLE READ NO 3 STATEMENT
|
thread_id 4 9 transaction COMMITTED READ WRITE REPEATABLE READ NO 3 STATEMENT
|
||||||
|
#
|
||||||
EVENTS_TRANSACTIONS_HISTORY_LONG
|
# EVENTS_TRANSACTIONS_HISTORY_LONG
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -479,9 +483,9 @@ WHERE ((THREAD_ID = @con1_thread_id) OR (@all_threads = 1))
|
|||||||
ORDER BY thread_id, event_id;
|
ORDER BY thread_id, event_id;
|
||||||
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
|
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
|
||||||
thread_id 4 9 transaction COMMITTED READ WRITE REPEATABLE READ NO 3 STATEMENT
|
thread_id 4 9 transaction COMMITTED READ WRITE REPEATABLE READ NO 3 STATEMENT
|
||||||
|
#
|
||||||
EVENTS_STATEMENTS_HISTORY_LONG
|
# EVENTS_STATEMENTS_HISTORY_LONG
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -503,11 +507,11 @@ thread_id 6 6 statement/sql/insert NULL
|
|||||||
thread_id 7 7 statement/sql/update NULL 4 TRANSACTION 0 UPDATE t1 SET s1 = s1 + 1 WHERE s1 > 320
|
thread_id 7 7 statement/sql/update NULL 4 TRANSACTION 0 UPDATE t1 SET s1 = s1 + 1 WHERE s1 > 320
|
||||||
thread_id 8 8 statement/sql/select NULL 4 TRANSACTION 0 SELECT * FROM t1 ORDER BY s1
|
thread_id 8 8 statement/sql/select NULL 4 TRANSACTION 0 SELECT * FROM t1 ORDER BY s1
|
||||||
thread_id 9 9 statement/sql/commit NULL 4 TRANSACTION 0 COMMIT
|
thread_id 9 9 statement/sql/commit NULL 4 TRANSACTION 0 COMMIT
|
||||||
|
#
|
||||||
## Combined statement and transaction event history ordered by event id
|
### Combined statement and transaction event history ordered by event id
|
||||||
|
#
|
||||||
EVENTS_STATEMENTS_HISTORY_LONG + EVENTS_TRANSACTIONS_HISTORY_LONG
|
#EVENTS_STATEMENTS_HISTORY_LONG + EVENTS_TRANSACTIONS_HISTORY_LONG
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -538,37 +542,37 @@ thread_id 6 6 statement/sql/insert 4
|
|||||||
thread_id 7 7 statement/sql/update 4 TRANSACTION UPDATE t1 SET s1 = s1 + 1 WHERE s1 > 320
|
thread_id 7 7 statement/sql/update 4 TRANSACTION UPDATE t1 SET s1 = s1 + 1 WHERE s1 > 320
|
||||||
thread_id 8 8 statement/sql/select 4 TRANSACTION SELECT * FROM t1 ORDER BY s1
|
thread_id 8 8 statement/sql/select 4 TRANSACTION SELECT * FROM t1 ORDER BY s1
|
||||||
thread_id 9 9 statement/sql/commit 4 TRANSACTION COMMIT
|
thread_id 9 9 statement/sql/commit 4 TRANSACTION COMMIT
|
||||||
|
#
|
||||||
## Clear statement and transaction history
|
### Clear statement and transaction history
|
||||||
CALL test.clear_history();
|
# CALL test.clear_history();
|
||||||
CALL test.clear_history();
|
CALL test.clear_history();
|
||||||
## Reset db.t1
|
## Reset db.t1
|
||||||
DELETE FROM db.t1;
|
DELETE FROM db.t1;
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# STEP 3.3 - TRANSACTION ENDED WITHIN STORED PROCEDURE
|
# STEP 3.3 - TRANSACTION ENDED WITHIN STORED PROCEDURE
|
||||||
#
|
#
|
||||||
connection con1;
|
connection con1;
|
||||||
CREATE PROCEDURE tp_rollback() ROLLBACK;
|
CREATE PROCEDURE tp_rollback() ROLLBACK;
|
||||||
CREATE PROCEDURE tp_commit() COMMIT;
|
CREATE PROCEDURE tp_commit() COMMIT;
|
||||||
|
#
|
||||||
## COMMIT within stored procedure
|
## COMMIT within stored procedure
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (330, "INSERT 330"),(331, "INSERT 331");
|
INSERT INTO t1 VALUES (330, "INSERT 330"),(331, "INSERT 331");
|
||||||
INSERT INTO t1 VALUES (332, "INSERT 332"),(333, "INSERT 333");
|
INSERT INTO t1 VALUES (332, "INSERT 332"),(333, "INSERT 333");
|
||||||
DELETE FROM t1 WHERE s1 > 331;
|
DELETE FROM t1 WHERE s1 > 331;
|
||||||
CALL tp_commit();
|
CALL tp_commit();
|
||||||
|
#
|
||||||
SELECT * FROM t1 ORDER BY s1;
|
SELECT * FROM t1 ORDER BY s1;
|
||||||
s1 s2
|
s1 s2
|
||||||
330 INSERT 330
|
330 INSERT 330
|
||||||
331 INSERT 331
|
331 INSERT 331
|
||||||
|
#
|
||||||
## ROLLBACK within stored procedure
|
## ROLLBACK within stored procedure
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
UPDATE t1 SET s1 = s1*2 WHERE s1 > 331;
|
UPDATE t1 SET s1 = s1*2 WHERE s1 > 331;
|
||||||
CALL tp_rollback();
|
CALL tp_rollback();
|
||||||
|
#
|
||||||
SELECT * FROM t1 ORDER BY s1;
|
SELECT * FROM t1 ORDER BY s1;
|
||||||
s1 s2
|
s1 s2
|
||||||
330 INSERT 330
|
330 INSERT 330
|
||||||
@ -588,8 +592,9 @@ select if(@base_tx_event_id < @base_stmt_event_id,
|
|||||||
@base_tx_event_id - 1,
|
@base_tx_event_id - 1,
|
||||||
@base_stmt_event_id - 1)
|
@base_stmt_event_id - 1)
|
||||||
into @base_event_id;
|
into @base_event_id;
|
||||||
EVENTS_TRANSACTIONS_CURRENT
|
#
|
||||||
|
# EVENTS_TRANSACTIONS_CURRENT
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -605,9 +610,9 @@ WHERE ((THREAD_ID = @con1_thread_id) OR (@all_threads = 1))
|
|||||||
ORDER BY thread_id, event_id;
|
ORDER BY thread_id, event_id;
|
||||||
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
|
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
|
||||||
thread_id 18 18 transaction COMMITTED READ WRITE REPEATABLE READ YES 17 STATEMENT
|
thread_id 18 18 transaction COMMITTED READ WRITE REPEATABLE READ YES 17 STATEMENT
|
||||||
|
#
|
||||||
EVENTS_TRANSACTIONS_HISTORY_LONG
|
# EVENTS_TRANSACTIONS_HISTORY_LONG
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -626,9 +631,9 @@ thread_id 4 9 transaction COMMITTED READ WRITE REPEATABLE
|
|||||||
thread_id 11 11 transaction COMMITTED READ WRITE REPEATABLE READ YES 10 STATEMENT
|
thread_id 11 11 transaction COMMITTED READ WRITE REPEATABLE READ YES 10 STATEMENT
|
||||||
thread_id 13 16 transaction ROLLED BACK READ WRITE REPEATABLE READ NO 12 STATEMENT
|
thread_id 13 16 transaction ROLLED BACK READ WRITE REPEATABLE READ NO 12 STATEMENT
|
||||||
thread_id 18 18 transaction COMMITTED READ WRITE REPEATABLE READ YES 17 STATEMENT
|
thread_id 18 18 transaction COMMITTED READ WRITE REPEATABLE READ YES 17 STATEMENT
|
||||||
|
#
|
||||||
EVENTS_STATEMENTS_HISTORY_LONG
|
# EVENTS_STATEMENTS_HISTORY_LONG
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -656,11 +661,11 @@ thread_id 14 14 statement/sql/update NULL
|
|||||||
thread_id 15 16 statement/sql/call_procedure NULL 13 TRANSACTION 0 CALL tp_rollback()
|
thread_id 15 16 statement/sql/call_procedure NULL 13 TRANSACTION 0 CALL tp_rollback()
|
||||||
thread_id 16 16 statement/sp/stmt tp_rollback 15 STATEMENT 1 ROLLBACK
|
thread_id 16 16 statement/sp/stmt tp_rollback 15 STATEMENT 1 ROLLBACK
|
||||||
thread_id 17 18 statement/sql/select NULL NULL NULL 0 SELECT * FROM t1 ORDER BY s1
|
thread_id 17 18 statement/sql/select NULL NULL NULL 0 SELECT * FROM t1 ORDER BY s1
|
||||||
|
#
|
||||||
## Combined statement and transaction event history ordered by event id
|
### Combined statement and transaction event history ordered by event id
|
||||||
|
#
|
||||||
EVENTS_STATEMENTS_HISTORY_LONG + EVENTS_TRANSACTIONS_HISTORY_LONG
|
#EVENTS_STATEMENTS_HISTORY_LONG + EVENTS_TRANSACTIONS_HISTORY_LONG
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -700,17 +705,17 @@ thread_id 15 16 statement/sql/call_proced 13
|
|||||||
thread_id 16 16 statement/sp/stmt 15 STATEMENT ROLLBACK
|
thread_id 16 16 statement/sp/stmt 15 STATEMENT ROLLBACK
|
||||||
thread_id 17 18 statement/sql/select NULL NULL SELECT * FROM t1 ORDER BY s1
|
thread_id 17 18 statement/sql/select NULL NULL SELECT * FROM t1 ORDER BY s1
|
||||||
thread_id 18 18 transaction 17 STATEMENT <transaction started>
|
thread_id 18 18 transaction 17 STATEMENT <transaction started>
|
||||||
|
#
|
||||||
## Clear statement and transaction history
|
### Clear statement and transaction history
|
||||||
CALL test.clear_history();
|
# CALL test.clear_history();
|
||||||
CALL test.clear_history();
|
CALL test.clear_history();
|
||||||
## Reset db.t1
|
## Reset db.t1
|
||||||
DELETE FROM db.t1;
|
DELETE FROM db.t1;
|
||||||
|
#
|
||||||
#========================================================================
|
#========================================================================
|
||||||
# STEP 4 - TRANSACTIONS AND STORED FUNCTIONS
|
# STEP 4 - TRANSACTIONS AND STORED FUNCTIONS
|
||||||
#========================================================================
|
#========================================================================
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# STEP 4.1 - FUNCTION WITHIN A TRANSACTION
|
# STEP 4.1 - FUNCTION WITHIN A TRANSACTION
|
||||||
#
|
#
|
||||||
@ -720,27 +725,27 @@ BEGIN
|
|||||||
INSERT INTO t1 VALUES (x, "INSERT x"),(y, "INSERT y");
|
INSERT INTO t1 VALUES (x, "INSERT x"),(y, "INSERT y");
|
||||||
RETURN x+y;
|
RETURN x+y;
|
||||||
END |
|
END |
|
||||||
|
#
|
||||||
## Clear history
|
## Clear history
|
||||||
connection default;
|
connection default;
|
||||||
CALL test.clear_history();
|
CALL test.clear_history();
|
||||||
connection con1;
|
connection con1;
|
||||||
|
#
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (410, "INSERT 410");
|
INSERT INTO t1 VALUES (410, "INSERT 410");
|
||||||
INSERT INTO t1 VALUES (411, "INSERT 411");
|
INSERT INTO t1 VALUES (411, "INSERT 411");
|
||||||
INSERT INTO t1 VALUES (412, "INSERT 412");
|
INSERT INTO t1 VALUES (412, "INSERT 412");
|
||||||
DELETE FROM t1 WHERE s1 > 410;
|
DELETE FROM t1 WHERE s1 > 410;
|
||||||
|
#
|
||||||
SELECT * FROM t1 ORDER BY s1;
|
SELECT * FROM t1 ORDER BY s1;
|
||||||
s1 s2
|
s1 s2
|
||||||
410 INSERT 410
|
410 INSERT 410
|
||||||
|
#
|
||||||
SELECT fn_add(413, 414);
|
SELECT fn_add(413, 414);
|
||||||
fn_add(413, 414)
|
fn_add(413, 414)
|
||||||
827
|
827
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
#
|
||||||
SELECT * FROM t1 ORDER BY s1;
|
SELECT * FROM t1 ORDER BY s1;
|
||||||
s1 s2
|
s1 s2
|
||||||
410 INSERT 410
|
410 INSERT 410
|
||||||
@ -761,8 +766,9 @@ select if(@base_tx_event_id < @base_stmt_event_id,
|
|||||||
@base_tx_event_id - 1,
|
@base_tx_event_id - 1,
|
||||||
@base_stmt_event_id - 1)
|
@base_stmt_event_id - 1)
|
||||||
into @base_event_id;
|
into @base_event_id;
|
||||||
EVENTS_TRANSACTIONS_CURRENT
|
#
|
||||||
|
# EVENTS_TRANSACTIONS_CURRENT
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -778,9 +784,9 @@ WHERE ((THREAD_ID = @con1_thread_id) OR (@all_threads = 1))
|
|||||||
ORDER BY thread_id, event_id;
|
ORDER BY thread_id, event_id;
|
||||||
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
|
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
|
||||||
thread_id 13 13 transaction COMMITTED READ WRITE REPEATABLE READ YES 12 STATEMENT
|
thread_id 13 13 transaction COMMITTED READ WRITE REPEATABLE READ YES 12 STATEMENT
|
||||||
|
#
|
||||||
EVENTS_TRANSACTIONS_HISTORY_LONG
|
# EVENTS_TRANSACTIONS_HISTORY_LONG
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -797,9 +803,9 @@ ORDER BY thread_id, event_id;
|
|||||||
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
|
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
|
||||||
thread_id 2 11 transaction COMMITTED READ WRITE REPEATABLE READ NO 1 STATEMENT
|
thread_id 2 11 transaction COMMITTED READ WRITE REPEATABLE READ NO 1 STATEMENT
|
||||||
thread_id 13 13 transaction COMMITTED READ WRITE REPEATABLE READ YES 12 STATEMENT
|
thread_id 13 13 transaction COMMITTED READ WRITE REPEATABLE READ YES 12 STATEMENT
|
||||||
|
#
|
||||||
EVENTS_STATEMENTS_HISTORY_LONG
|
# EVENTS_STATEMENTS_HISTORY_LONG
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -824,11 +830,11 @@ thread_id 9 9 statement/sp/stmt fn_add
|
|||||||
thread_id 10 10 statement/sp/freturn fn_add 8 STATEMENT 1 NULL
|
thread_id 10 10 statement/sp/freturn fn_add 8 STATEMENT 1 NULL
|
||||||
thread_id 11 11 statement/sql/commit NULL 2 TRANSACTION 0 COMMIT
|
thread_id 11 11 statement/sql/commit NULL 2 TRANSACTION 0 COMMIT
|
||||||
thread_id 12 13 statement/sql/select NULL NULL NULL 0 SELECT * FROM t1 ORDER BY s1
|
thread_id 12 13 statement/sql/select NULL NULL NULL 0 SELECT * FROM t1 ORDER BY s1
|
||||||
|
#
|
||||||
## Combined statement and transaction event history ordered by event id
|
### Combined statement and transaction event history ordered by event id
|
||||||
|
#
|
||||||
EVENTS_STATEMENTS_HISTORY_LONG + EVENTS_TRANSACTIONS_HISTORY_LONG
|
#EVENTS_STATEMENTS_HISTORY_LONG + EVENTS_TRANSACTIONS_HISTORY_LONG
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -863,24 +869,24 @@ thread_id 10 10 statement/sp/freturn 8
|
|||||||
thread_id 11 11 statement/sql/commit 2 TRANSACTION COMMIT
|
thread_id 11 11 statement/sql/commit 2 TRANSACTION COMMIT
|
||||||
thread_id 12 13 statement/sql/select NULL NULL SELECT * FROM t1 ORDER BY s1
|
thread_id 12 13 statement/sql/select NULL NULL SELECT * FROM t1 ORDER BY s1
|
||||||
thread_id 13 13 transaction 12 STATEMENT <transaction started>
|
thread_id 13 13 transaction 12 STATEMENT <transaction started>
|
||||||
|
#
|
||||||
## Clear statement and transaction history
|
### Clear statement and transaction history
|
||||||
CALL test.clear_history();
|
# CALL test.clear_history();
|
||||||
CALL test.clear_history();
|
CALL test.clear_history();
|
||||||
## Reset db.t1
|
## Reset db.t1
|
||||||
DELETE FROM db.t1;
|
DELETE FROM db.t1;
|
||||||
|
#
|
||||||
connection con1;
|
connection con1;
|
||||||
|
#
|
||||||
## Again, but this time with a rollback
|
## Again, but this time with a rollback
|
||||||
|
#
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
SELECT fn_add(415, 416);
|
SELECT fn_add(415, 416);
|
||||||
fn_add(415, 416)
|
fn_add(415, 416)
|
||||||
831
|
831
|
||||||
|
#
|
||||||
ROLLBACK;
|
ROLLBACK;
|
||||||
|
#
|
||||||
SELECT * FROM t1 ORDER BY s1;
|
SELECT * FROM t1 ORDER BY s1;
|
||||||
s1 s2
|
s1 s2
|
||||||
connection default;
|
connection default;
|
||||||
@ -898,8 +904,9 @@ select if(@base_tx_event_id < @base_stmt_event_id,
|
|||||||
@base_tx_event_id - 1,
|
@base_tx_event_id - 1,
|
||||||
@base_stmt_event_id - 1)
|
@base_stmt_event_id - 1)
|
||||||
into @base_event_id;
|
into @base_event_id;
|
||||||
EVENTS_TRANSACTIONS_CURRENT
|
#
|
||||||
|
# EVENTS_TRANSACTIONS_CURRENT
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -915,9 +922,9 @@ WHERE ((THREAD_ID = @con1_thread_id) OR (@all_threads = 1))
|
|||||||
ORDER BY thread_id, event_id;
|
ORDER BY thread_id, event_id;
|
||||||
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
|
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
|
||||||
thread_id 8 8 transaction COMMITTED READ WRITE REPEATABLE READ YES 7 STATEMENT
|
thread_id 8 8 transaction COMMITTED READ WRITE REPEATABLE READ YES 7 STATEMENT
|
||||||
|
#
|
||||||
EVENTS_TRANSACTIONS_HISTORY_LONG
|
# EVENTS_TRANSACTIONS_HISTORY_LONG
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -934,9 +941,9 @@ ORDER BY thread_id, event_id;
|
|||||||
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
|
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
|
||||||
thread_id 2 6 transaction ROLLED BACK READ WRITE REPEATABLE READ NO 1 STATEMENT
|
thread_id 2 6 transaction ROLLED BACK READ WRITE REPEATABLE READ NO 1 STATEMENT
|
||||||
thread_id 8 8 transaction COMMITTED READ WRITE REPEATABLE READ YES 7 STATEMENT
|
thread_id 8 8 transaction COMMITTED READ WRITE REPEATABLE READ YES 7 STATEMENT
|
||||||
|
#
|
||||||
EVENTS_STATEMENTS_HISTORY_LONG
|
# EVENTS_STATEMENTS_HISTORY_LONG
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -956,11 +963,11 @@ thread_id 4 4 statement/sp/stmt fn_add
|
|||||||
thread_id 5 5 statement/sp/freturn fn_add 3 STATEMENT 1 NULL
|
thread_id 5 5 statement/sp/freturn fn_add 3 STATEMENT 1 NULL
|
||||||
thread_id 6 6 statement/sql/rollback NULL 2 TRANSACTION 0 ROLLBACK
|
thread_id 6 6 statement/sql/rollback NULL 2 TRANSACTION 0 ROLLBACK
|
||||||
thread_id 7 8 statement/sql/select NULL NULL NULL 0 SELECT * FROM t1 ORDER BY s1
|
thread_id 7 8 statement/sql/select NULL NULL NULL 0 SELECT * FROM t1 ORDER BY s1
|
||||||
|
#
|
||||||
## Combined statement and transaction event history ordered by event id
|
### Combined statement and transaction event history ordered by event id
|
||||||
|
#
|
||||||
EVENTS_STATEMENTS_HISTORY_LONG + EVENTS_TRANSACTIONS_HISTORY_LONG
|
#EVENTS_STATEMENTS_HISTORY_LONG + EVENTS_TRANSACTIONS_HISTORY_LONG
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -990,67 +997,67 @@ thread_id 5 5 statement/sp/freturn 3
|
|||||||
thread_id 6 6 statement/sql/rollback 2 TRANSACTION ROLLBACK
|
thread_id 6 6 statement/sql/rollback 2 TRANSACTION ROLLBACK
|
||||||
thread_id 7 8 statement/sql/select NULL NULL SELECT * FROM t1 ORDER BY s1
|
thread_id 7 8 statement/sql/select NULL NULL SELECT * FROM t1 ORDER BY s1
|
||||||
thread_id 8 8 transaction 7 STATEMENT <transaction started>
|
thread_id 8 8 transaction 7 STATEMENT <transaction started>
|
||||||
|
#
|
||||||
## Clear statement and transaction history
|
### Clear statement and transaction history
|
||||||
CALL test.clear_history();
|
# CALL test.clear_history();
|
||||||
CALL test.clear_history();
|
CALL test.clear_history();
|
||||||
## Reset db.t1
|
## Reset db.t1
|
||||||
DELETE FROM db.t1;
|
DELETE FROM db.t1;
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# STEP 4.2 - TRANSACTION CANNOT BE STARTED OR ENDED WITHIN FUNCTION
|
# STEP 4.2 - TRANSACTION CANNOT BE STARTED OR ENDED WITHIN FUNCTION
|
||||||
#
|
#
|
||||||
connection con1;
|
connection con1;
|
||||||
CREATE FUNCTION fn_err1() RETURNS VARCHAR(10) BEGIN START TRANSACTION ; RETURN 'invalid' ; END|
|
CREATE FUNCTION fn_err1() RETURNS VARCHAR(10) BEGIN START TRANSACTION ; RETURN 'invalid' ; END|
|
||||||
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger
|
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger
|
||||||
|
#
|
||||||
## Expect 0 transactions
|
## Expect 0 transactions
|
||||||
connection default;
|
connection default;
|
||||||
SELECT COUNT(*) FROM performance_schema.events_transactions_history;
|
SELECT COUNT(*) FROM performance_schema.events_transactions_history;
|
||||||
COUNT(*)
|
COUNT(*)
|
||||||
0
|
0
|
||||||
connection con1;
|
connection con1;
|
||||||
|
#
|
||||||
## Expect stored function does not exist
|
## Expect stored function does not exist
|
||||||
|
#
|
||||||
SELECT fn_err1();
|
SELECT fn_err1();
|
||||||
ERROR 42000: FUNCTION db.fn_err1 does not exist
|
ERROR 42000: FUNCTION db.fn_err1 does not exist
|
||||||
|
#
|
||||||
## Expect 0 transactions
|
## Expect 0 transactions
|
||||||
connection default;
|
connection default;
|
||||||
SELECT COUNT(*) FROM performance_schema.events_transactions_history;
|
SELECT COUNT(*) FROM performance_schema.events_transactions_history;
|
||||||
COUNT(*)
|
COUNT(*)
|
||||||
0
|
0
|
||||||
connection con1;
|
connection con1;
|
||||||
|
#
|
||||||
CREATE FUNCTION fn_err2() RETURNS VARCHAR(10) BEGIN COMMIT; RETURN 'invalid' ; END|
|
CREATE FUNCTION fn_err2() RETURNS VARCHAR(10) BEGIN COMMIT; RETURN 'invalid' ; END|
|
||||||
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger
|
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger
|
||||||
|
#
|
||||||
## Expect stored function does not exist
|
## Expect stored function does not exist
|
||||||
|
#
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
DELETE FROM t1 WHERE s1 > 320;
|
DELETE FROM t1 WHERE s1 > 320;
|
||||||
SELECT fn_err2();
|
SELECT fn_err2();
|
||||||
ERROR 42000: FUNCTION db.fn_err2 does not exist
|
ERROR 42000: FUNCTION db.fn_err2 does not exist
|
||||||
|
#
|
||||||
## Expect 0 transactions
|
## Expect 0 transactions
|
||||||
connection default;
|
connection default;
|
||||||
SELECT COUNT(*) FROM performance_schema.events_transactions_history;
|
SELECT COUNT(*) FROM performance_schema.events_transactions_history;
|
||||||
COUNT(*)
|
COUNT(*)
|
||||||
0
|
0
|
||||||
|
#
|
||||||
## Clear transaction and statement tables
|
## Clear transaction and statement tables
|
||||||
CALL test.clear_history();
|
CALL test.clear_history();
|
||||||
#========================================================================
|
#========================================================================
|
||||||
# STEP 5 - TRANSACTIONS AND TRIGGERS
|
# STEP 5 - TRANSACTIONS AND TRIGGERS
|
||||||
#========================================================================
|
#========================================================================
|
||||||
|
#
|
||||||
#
|
#
|
||||||
# STEP 5.1 - FORCE STATEMENT ROLLBACK FROM TRIGGER
|
# STEP 5.1 - FORCE STATEMENT ROLLBACK FROM TRIGGER
|
||||||
#
|
#
|
||||||
connection con1;
|
connection con1;
|
||||||
## Create a trigger to force statement rollback
|
## Create a trigger to force statement rollback
|
||||||
|
#
|
||||||
CREATE TRIGGER trigger_before_update BEFORE UPDATE ON t1
|
CREATE TRIGGER trigger_before_update BEFORE UPDATE ON t1
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -1058,15 +1065,15 @@ IF OLD.s1 >= 505 THEN
|
|||||||
SIGNAL sqlstate '45001' SET message_text = "FORCE ERROR";
|
SIGNAL sqlstate '45001' SET message_text = "FORCE ERROR";
|
||||||
END IF;
|
END IF;
|
||||||
END;|
|
END;|
|
||||||
|
#
|
||||||
## Clear history
|
## Clear history
|
||||||
connection default;
|
connection default;
|
||||||
CALL test.clear_history();
|
CALL test.clear_history();
|
||||||
connection con1;
|
connection con1;
|
||||||
|
#
|
||||||
## Insert multiple rows, then update. Trigger will force rollback the
|
## Insert multiple rows, then update. Trigger will force rollback the
|
||||||
## UPDATE statement, but the transaction should not roll back.
|
## UPDATE statement, but the transaction should not roll back.
|
||||||
|
#
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (500, "INSERT 500");
|
INSERT INTO t1 VALUES (500, "INSERT 500");
|
||||||
INSERT INTO t1 VALUES (501, "INSERT 501");
|
INSERT INTO t1 VALUES (501, "INSERT 501");
|
||||||
@ -1074,7 +1081,7 @@ INSERT INTO t1 VALUES (502, "INSERT 502");
|
|||||||
INSERT INTO t1 VALUES (503, "INSERT 503");
|
INSERT INTO t1 VALUES (503, "INSERT 503");
|
||||||
INSERT INTO t1 VALUES (504, "INSERT 504");
|
INSERT INTO t1 VALUES (504, "INSERT 504");
|
||||||
INSERT INTO t1 VALUES (505, "INSERT 505");
|
INSERT INTO t1 VALUES (505, "INSERT 505");
|
||||||
|
#
|
||||||
SELECT * FROM t1 ORDER BY s1;
|
SELECT * FROM t1 ORDER BY s1;
|
||||||
s1 s2
|
s1 s2
|
||||||
500 INSERT 500
|
500 INSERT 500
|
||||||
@ -1083,14 +1090,14 @@ s1 s2
|
|||||||
503 INSERT 503
|
503 INSERT 503
|
||||||
504 INSERT 504
|
504 INSERT 504
|
||||||
505 INSERT 505
|
505 INSERT 505
|
||||||
|
#
|
||||||
## Expect error when UPDATE hits record 505
|
## Expect error when UPDATE hits record 505
|
||||||
|
#
|
||||||
UPDATE t1 SET s1 = s1 * 2 WHERE s1 >= 500;
|
UPDATE t1 SET s1 = s1 * 2 WHERE s1 >= 500;
|
||||||
ERROR 45001: FORCE ERROR
|
ERROR 45001: FORCE ERROR
|
||||||
|
#
|
||||||
## Verify that INSERT succeeded, UPDATE failed and transaction did not rollback
|
## Verify that INSERT succeeded, UPDATE failed and transaction did not rollback
|
||||||
|
#
|
||||||
SELECT * FROM t1 ORDER BY s1;
|
SELECT * FROM t1 ORDER BY s1;
|
||||||
s1 s2
|
s1 s2
|
||||||
500 INSERT 500
|
500 INSERT 500
|
||||||
@ -1100,7 +1107,7 @@ s1 s2
|
|||||||
504 INSERT 504
|
504 INSERT 504
|
||||||
505 INSERT 505
|
505 INSERT 505
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
#
|
||||||
DROP TRIGGER trigger_before_update;
|
DROP TRIGGER trigger_before_update;
|
||||||
connection default;
|
connection default;
|
||||||
#========================================================================
|
#========================================================================
|
||||||
@ -1117,8 +1124,9 @@ select if(@base_tx_event_id < @base_stmt_event_id,
|
|||||||
@base_tx_event_id - 1,
|
@base_tx_event_id - 1,
|
||||||
@base_stmt_event_id - 1)
|
@base_stmt_event_id - 1)
|
||||||
into @base_event_id;
|
into @base_event_id;
|
||||||
EVENTS_TRANSACTIONS_CURRENT
|
#
|
||||||
|
# EVENTS_TRANSACTIONS_CURRENT
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -1134,9 +1142,9 @@ WHERE ((THREAD_ID = @con1_thread_id) OR (@all_threads = 1))
|
|||||||
ORDER BY thread_id, event_id;
|
ORDER BY thread_id, event_id;
|
||||||
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
|
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
|
||||||
thread_id 21 21 transaction COMMITTED READ WRITE REPEATABLE READ YES 20 STATEMENT
|
thread_id 21 21 transaction COMMITTED READ WRITE REPEATABLE READ YES 20 STATEMENT
|
||||||
|
#
|
||||||
EVENTS_TRANSACTIONS_HISTORY_LONG
|
# EVENTS_TRANSACTIONS_HISTORY_LONG
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -1153,9 +1161,9 @@ ORDER BY thread_id, event_id;
|
|||||||
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
|
THREAD_ID R_EVENT_ID R_END_EVENT_ID EVENT_NAME STATE ACCESS_MODE ISOLATION_LEVEL AUTO R_NESTING_EVENT_ID NESTING_EVENT_TYPE
|
||||||
thread_id 2 19 transaction COMMITTED READ WRITE REPEATABLE READ NO 1 STATEMENT
|
thread_id 2 19 transaction COMMITTED READ WRITE REPEATABLE READ NO 1 STATEMENT
|
||||||
thread_id 21 21 transaction COMMITTED READ WRITE REPEATABLE READ YES 20 STATEMENT
|
thread_id 21 21 transaction COMMITTED READ WRITE REPEATABLE READ YES 20 STATEMENT
|
||||||
|
#
|
||||||
EVENTS_STATEMENTS_HISTORY_LONG
|
# EVENTS_STATEMENTS_HISTORY_LONG
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -1188,11 +1196,11 @@ thread_id 17 17 statement/sp/stmt trigger_befo
|
|||||||
thread_id 18 18 statement/sql/select NULL 2 TRANSACTION 0 SELECT * FROM t1 ORDER BY s1
|
thread_id 18 18 statement/sql/select NULL 2 TRANSACTION 0 SELECT * FROM t1 ORDER BY s1
|
||||||
thread_id 19 19 statement/sql/commit NULL 2 TRANSACTION 0 COMMIT
|
thread_id 19 19 statement/sql/commit NULL 2 TRANSACTION 0 COMMIT
|
||||||
thread_id 20 21 statement/sql/drop_trigger NULL NULL NULL 0 DROP TRIGGER trigger_before_update
|
thread_id 20 21 statement/sql/drop_trigger NULL NULL NULL 0 DROP TRIGGER trigger_before_update
|
||||||
|
#
|
||||||
## Combined statement and transaction event history ordered by event id
|
### Combined statement and transaction event history ordered by event id
|
||||||
|
#
|
||||||
EVENTS_STATEMENTS_HISTORY_LONG + EVENTS_TRANSACTIONS_HISTORY_LONG
|
#EVENTS_STATEMENTS_HISTORY_LONG + EVENTS_TRANSACTIONS_HISTORY_LONG
|
||||||
|
#
|
||||||
SELECT THREAD_ID,
|
SELECT THREAD_ID,
|
||||||
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
LPAD(EVENT_ID - @base_event_id, 11, ' ') as R_EVENT_ID,
|
||||||
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
LPAD(END_EVENT_ID - @base_event_id, 11, ' ') as R_END_EVENT_ID,
|
||||||
@ -1235,13 +1243,13 @@ thread_id 18 18 statement/sql/select 2
|
|||||||
thread_id 19 19 statement/sql/commit 2 TRANSACTION COMMIT
|
thread_id 19 19 statement/sql/commit 2 TRANSACTION COMMIT
|
||||||
thread_id 20 21 statement/sql/drop_trigge NULL NULL DROP TRIGGER trigger_before_update
|
thread_id 20 21 statement/sql/drop_trigge NULL NULL DROP TRIGGER trigger_before_update
|
||||||
thread_id 21 21 transaction 20 STATEMENT <transaction started>
|
thread_id 21 21 transaction 20 STATEMENT <transaction started>
|
||||||
|
#
|
||||||
## Clear statement and transaction history
|
### Clear statement and transaction history
|
||||||
CALL test.clear_history();
|
# CALL test.clear_history();
|
||||||
CALL test.clear_history();
|
CALL test.clear_history();
|
||||||
## Reset db.t1
|
## Reset db.t1
|
||||||
DELETE FROM db.t1;
|
DELETE FROM db.t1;
|
||||||
|
#
|
||||||
# TODO: Detect statement events from scheduled event
|
# TODO: Detect statement events from scheduled event
|
||||||
#=======================================================================
|
#=======================================================================
|
||||||
# Cleanup
|
# Cleanup
|
||||||
|
@ -120,7 +120,7 @@ select "After payload";
|
|||||||
|
|
||||||
--connection default
|
--connection default
|
||||||
|
|
||||||
--echo Dumping ALTER TABLE stages
|
--echo # Dumping ALTER TABLE stages
|
||||||
|
|
||||||
# Print all stages for this ALTER TABLE statement
|
# Print all stages for this ALTER TABLE statement
|
||||||
select EVENT_NAME, WORK_COMPLETED, WORK_ESTIMATED
|
select EVENT_NAME, WORK_COMPLETED, WORK_ESTIMATED
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
--source include/have_debug.inc
|
--source include/have_debug.inc
|
||||||
--source include/have_perfschema.inc
|
--source include/have_perfschema.inc
|
||||||
|
|
||||||
--echo "Default connection"
|
--echo # Default connection
|
||||||
|
|
||||||
--vertical_results
|
--vertical_results
|
||||||
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
||||||
@ -35,8 +35,6 @@ SET GLOBAL general_log= 'ON';
|
|||||||
|
|
||||||
connect(con1, localhost, root,,);
|
connect(con1, localhost, root,,);
|
||||||
|
|
||||||
--echo "Connection con1"
|
|
||||||
|
|
||||||
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
||||||
from performance_schema.threads
|
from performance_schema.threads
|
||||||
where PROCESSLIST_ID = connection_id();
|
where PROCESSLIST_ID = connection_id();
|
||||||
@ -45,8 +43,6 @@ select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
|||||||
|
|
||||||
connect(con2, "127.0.0.1", root,,test,$MASTER_MYPORT,);
|
connect(con2, "127.0.0.1", root,,test,$MASTER_MYPORT,);
|
||||||
|
|
||||||
--echo "Connection con2"
|
|
||||||
|
|
||||||
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
||||||
from performance_schema.threads
|
from performance_schema.threads
|
||||||
where PROCESSLIST_ID = connection_id();
|
where PROCESSLIST_ID = connection_id();
|
||||||
@ -55,8 +51,6 @@ select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
|||||||
|
|
||||||
connect(con3, "127.0.0.1", rootssl,,test,$MASTER_MYPORT,,SSL);
|
connect(con3, "127.0.0.1", rootssl,,test,$MASTER_MYPORT,,SSL);
|
||||||
|
|
||||||
--echo "Connection con3"
|
|
||||||
|
|
||||||
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
||||||
from performance_schema.threads
|
from performance_schema.threads
|
||||||
where PROCESSLIST_ID = connection_id();
|
where PROCESSLIST_ID = connection_id();
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
--source include/have_debug.inc
|
--source include/have_debug.inc
|
||||||
--source include/have_perfschema.inc
|
--source include/have_perfschema.inc
|
||||||
|
|
||||||
--echo "Default connection"
|
--echo # Default connection
|
||||||
|
|
||||||
--vertical_results
|
--vertical_results
|
||||||
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
||||||
@ -34,8 +34,6 @@ SET GLOBAL general_log= 'ON';
|
|||||||
|
|
||||||
connect(con1, localhost, root,,);
|
connect(con1, localhost, root,,);
|
||||||
|
|
||||||
--echo "Connection con1"
|
|
||||||
|
|
||||||
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
||||||
from performance_schema.threads
|
from performance_schema.threads
|
||||||
where PROCESSLIST_ID = connection_id();
|
where PROCESSLIST_ID = connection_id();
|
||||||
@ -44,8 +42,6 @@ select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
|||||||
|
|
||||||
connect(con2, "127.0.0.1", root,,test,$MASTER_MYPORT,);
|
connect(con2, "127.0.0.1", root,,test,$MASTER_MYPORT,);
|
||||||
|
|
||||||
--echo "Connection con2"
|
|
||||||
|
|
||||||
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
||||||
from performance_schema.threads
|
from performance_schema.threads
|
||||||
where PROCESSLIST_ID = connection_id();
|
where PROCESSLIST_ID = connection_id();
|
||||||
@ -54,8 +50,6 @@ select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
|||||||
|
|
||||||
connect(con3, "127.0.0.1", rootssl,,test,$MASTER_MYPORT,,SSL);
|
connect(con3, "127.0.0.1", rootssl,,test,$MASTER_MYPORT,,SSL);
|
||||||
|
|
||||||
--echo "Connection con3"
|
|
||||||
|
|
||||||
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
select NAME, PROCESSLIST_USER, PROCESSLIST_HOST, CONNECTION_TYPE
|
||||||
from performance_schema.threads
|
from performance_schema.threads
|
||||||
where PROCESSLIST_ID = connection_id();
|
where PROCESSLIST_ID = connection_id();
|
||||||
|
@ -12,9 +12,9 @@
|
|||||||
# which should return error 1031, "Table storage engine for '<table name>'
|
# which should return error 1031, "Table storage engine for '<table name>'
|
||||||
# doesn't have this option."
|
# doesn't have this option."
|
||||||
#
|
#
|
||||||
--echo
|
--echo #
|
||||||
--echo # Create a temporary table of performance schema table names
|
--echo # Create a temporary table of performance schema table names
|
||||||
--echo
|
--echo #
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE table_list (id INT AUTO_INCREMENT, PRIMARY KEY (id)) AS
|
CREATE TEMPORARY TABLE table_list (id INT AUTO_INCREMENT, PRIMARY KEY (id)) AS
|
||||||
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
|
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
|
||||||
@ -25,10 +25,10 @@ SELECT COUNT(*) FROM table_list INTO @table_count;
|
|||||||
|
|
||||||
let $count=`SELECT @table_count`;
|
let $count=`SELECT @table_count`;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # For each table in the performance schema, attempt HANDLER...OPEN,
|
--echo # For each table in the performance schema, attempt HANDLER...OPEN,
|
||||||
--echo # which should fail with an error 1031, ER_ILLEGAL_HA.
|
--echo # which should fail with an error 1031, ER_ILLEGAL_HA.
|
||||||
--echo
|
--echo #
|
||||||
|
|
||||||
while ($count > 0)
|
while ($count > 0)
|
||||||
{
|
{
|
||||||
|
@ -90,10 +90,10 @@ UNLOCK TABLES;
|
|||||||
LOCK TABLES performance_schema.setup_instruments WRITE;
|
LOCK TABLES performance_schema.setup_instruments WRITE;
|
||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # Bug#13813193 ASSERTION `TABLE->READ_SET ==
|
--echo # Bug#13813193 ASSERTION `TABLE->READ_SET ==
|
||||||
--echo # &TABLE->DEF_READ_SET' FAILED / MYSQL_UPDATE
|
--echo # &TABLE->DEF_READ_SET' FAILED / MYSQL_UPDATE
|
||||||
--echo
|
--echo #
|
||||||
UPDATE performance_schema.setup_instruments SET timed='NO'
|
UPDATE performance_schema.setup_instruments SET timed='NO'
|
||||||
ORDER BY RAND();
|
ORDER BY RAND();
|
||||||
|
|
||||||
|
@ -11,9 +11,9 @@
|
|||||||
--source include/not_embedded.inc
|
--source include/not_embedded.inc
|
||||||
--source include/no_protocol.inc
|
--source include/no_protocol.inc
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Connection default
|
--echo ## Connection default
|
||||||
--echo
|
--echo #
|
||||||
--connection default
|
--connection default
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
USE test;
|
USE test;
|
||||||
@ -23,9 +23,9 @@ SELECT @@global.binlog_cache_size;
|
|||||||
SELECT @@global.binlog_stmt_cache_size;
|
SELECT @@global.binlog_stmt_cache_size;
|
||||||
SELECT * FROM performance_schema.setup_instruments WHERE name LIKE "%file/sql/io_cache%";
|
SELECT * FROM performance_schema.setup_instruments WHERE name LIKE "%file/sql/io_cache%";
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Connection con1
|
--echo ## Connection con1
|
||||||
--echo
|
--echo #
|
||||||
connect(con1, localhost, root,,);
|
connect(con1, localhost, root,,);
|
||||||
USE test;
|
USE test;
|
||||||
CREATE TABLE t1 (s1 INT, s2 VARCHAR(4096));
|
CREATE TABLE t1 (s1 INT, s2 VARCHAR(4096));
|
||||||
@ -103,9 +103,9 @@ COMMIT;
|
|||||||
SELECT COUNT(*) FROM t1;
|
SELECT COUNT(*) FROM t1;
|
||||||
--disconnect con1
|
--disconnect con1
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Connection default
|
--echo ## Connection default
|
||||||
--echo
|
--echo #
|
||||||
--connection default
|
--connection default
|
||||||
SELECT COUNT(*) FROM test.t1;
|
SELECT COUNT(*) FROM test.t1;
|
||||||
|
|
||||||
|
@ -204,7 +204,7 @@ select * from t1;
|
|||||||
select mysql_errno, returned_sqlstate, message_text, errors, warnings
|
select mysql_errno, returned_sqlstate, message_text, errors, warnings
|
||||||
from performance_schema.events_statements_history where errors > 0;
|
from performance_schema.events_statements_history where errors > 0;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
select mysql_errno, returned_sqlstate, message_text, errors, warnings from
|
select mysql_errno, returned_sqlstate, message_text, errors, warnings from
|
||||||
performance_schema.events_statements_history_long where errors > 0;
|
performance_schema.events_statements_history_long where errors > 0;
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
let $MYSQLD_DATADIR= `SELECT @@datadir`;
|
let $MYSQLD_DATADIR= `SELECT @@datadir`;
|
||||||
|
|
||||||
--echo "Testing mysql_upgrade with EVENT performance_schema.user_event"
|
--echo # Testing mysql_upgrade with EVENT performance_schema.user_event
|
||||||
|
|
||||||
create event test.user_event on schedule every 1 day do
|
create event test.user_event on schedule every 1 day do
|
||||||
select "not supposed to be here";
|
select "not supposed to be here";
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
let $MYSQLD_DATADIR= `SELECT @@datadir`;
|
let $MYSQLD_DATADIR= `SELECT @@datadir`;
|
||||||
|
|
||||||
--echo "Testing mysql_upgrade with FUNCTION performance_schema.user_func"
|
--echo # Testing mysql_upgrade with FUNCTION performance_schema.user_func
|
||||||
|
|
||||||
create function test.user_func() returns integer
|
create function test.user_func() returns integer
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
let $MYSQLD_DATADIR= `SELECT @@datadir`;
|
let $MYSQLD_DATADIR= `SELECT @@datadir`;
|
||||||
|
|
||||||
--echo "Testing mysql_upgrade with PROCEDURE performance_schema.user_proc"
|
--echo # Testing mysql_upgrade with PROCEDURE performance_schema.user_proc
|
||||||
|
|
||||||
create procedure test.user_proc()
|
create procedure test.user_proc()
|
||||||
select "Not supposed to be here";
|
select "Not supposed to be here";
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
let $MYSQLD_DATADIR= `SELECT @@datadir`;
|
let $MYSQLD_DATADIR= `SELECT @@datadir`;
|
||||||
|
|
||||||
--echo "Testing mysql_upgrade with TABLE performance_schema.user_table"
|
--echo # Testing mysql_upgrade with TABLE performance_schema.user_table
|
||||||
|
|
||||||
create table test.user_table(a int);
|
create table test.user_table(a int);
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
let $MYSQLD_DATADIR= `SELECT @@datadir`;
|
let $MYSQLD_DATADIR= `SELECT @@datadir`;
|
||||||
|
|
||||||
--echo "Testing mysql_upgrade with VIEW performance_schema.user_view"
|
--echo # Testing mysql_upgrade with VIEW performance_schema.user_view
|
||||||
|
|
||||||
create view test.user_view as select "Not supposed to be here";
|
create view test.user_view as select "Not supposed to be here";
|
||||||
|
|
||||||
|
@ -49,16 +49,16 @@ let $column_list=
|
|||||||
# Define instrument name for enable/disable instruments
|
# Define instrument name for enable/disable instruments
|
||||||
let $pfs_instrument='%statement/%';
|
let $pfs_instrument='%statement/%';
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # STEP 1 - CREATE AND REPLICATE TEST TABLES
|
--echo # STEP 1 - CREATE AND REPLICATE TEST TABLES
|
||||||
--echo #
|
--echo #
|
||||||
|
|
||||||
connection master;
|
connection master;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo *** Create test tables
|
--echo # *** Create test tables
|
||||||
--echo
|
--echo #
|
||||||
|
|
||||||
show global variables like 'binlog_format%';
|
show global variables like 'binlog_format%';
|
||||||
|
|
||||||
@ -72,26 +72,26 @@ create table test.marker(s1 int) engine=innodb;
|
|||||||
|
|
||||||
sync_slave_with_master;
|
sync_slave_with_master;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo *** Clear statement events
|
--echo # *** Clear statement events
|
||||||
--source ../include/rpl_statements_truncate.inc
|
--source ../include/rpl_statements_truncate.inc
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # STEP 2 - REPLICATE ONE ROW ON MASTER TO GET REPLICATION THREAD ID ON SLAVE
|
--echo # STEP 2 - REPLICATE ONE ROW ON MASTER TO GET REPLICATION THREAD ID ON SLAVE
|
||||||
--echo #
|
--echo #
|
||||||
|
|
||||||
connection master;
|
connection master;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
insert into test.marker values (0);
|
insert into test.marker values (0);
|
||||||
--echo
|
--echo #
|
||||||
|
|
||||||
sync_slave_with_master;
|
sync_slave_with_master;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo *** Verify row, get replication thread id, clear statement events
|
--echo # *** Verify row, get replication thread id, clear statement events
|
||||||
--echo
|
--echo #
|
||||||
|
|
||||||
# TODO: Get slave thread id from threads using thread/sql/slave_sql event name
|
# TODO: Get slave thread id from threads using thread/sql/slave_sql event name
|
||||||
|
|
||||||
@ -99,82 +99,82 @@ select thread_id into @slave_thread_id from performance_schema.events_statements
|
|||||||
where sql_text like '%marker%';
|
where sql_text like '%marker%';
|
||||||
let $slave_thread_id= `select @slave_thread_id`;
|
let $slave_thread_id= `select @slave_thread_id`;
|
||||||
|
|
||||||
--echo *** Verify row inserted on master was replicated
|
--echo # *** Verify row inserted on master was replicated
|
||||||
select count(*) = 1 as 'Expect 1' from test.marker;
|
select count(*) = 1 as 'Expect 1' from test.marker;
|
||||||
|
|
||||||
--echo *** Clear statement events
|
--echo # *** Clear statement events
|
||||||
--source ../include/rpl_statements_truncate.inc
|
--source ../include/rpl_statements_truncate.inc
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # STEP 3 - PERFORM DML STATEMENTS ON MASTER
|
--echo # STEP 3 - PERFORM DML STATEMENTS ON MASTER
|
||||||
--echo #
|
--echo #
|
||||||
|
|
||||||
connection master;
|
connection master;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
show global variables like 'binlog_format%';
|
show global variables like 'binlog_format%';
|
||||||
|
|
||||||
--echo *** Clear statement events
|
--echo # *** Clear statement events
|
||||||
--source ../include/rpl_statements_truncate.inc
|
--source ../include/rpl_statements_truncate.inc
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo *** Create/drop table, create/drop database
|
--echo # *** Create/drop table, create/drop database
|
||||||
--echo
|
--echo #
|
||||||
create database marker1_db;
|
create database marker1_db;
|
||||||
create database marker2_db;
|
create database marker2_db;
|
||||||
create table marker1_db.table1 (s1 int) engine=innodb;
|
create table marker1_db.table1 (s1 int) engine=innodb;
|
||||||
create table marker2_db.table1 (s1 int) engine=innodb;
|
create table marker2_db.table1 (s1 int) engine=innodb;
|
||||||
create table marker2_db.table2 (s1 int) engine=innodb;
|
create table marker2_db.table2 (s1 int) engine=innodb;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo *** Transaction
|
--echo # *** Transaction
|
||||||
start transaction;
|
start transaction;
|
||||||
insert into marker1_db.table1 values (1), (2), (3);
|
insert into marker1_db.table1 values (1), (2), (3);
|
||||||
insert into marker2_db.table1 values (1), (2), (3);
|
insert into marker2_db.table1 values (1), (2), (3);
|
||||||
commit;
|
commit;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo *** Alter
|
--echo # *** Alter
|
||||||
alter table marker1_db.table1 add column (s2 varchar(32));
|
alter table marker1_db.table1 add column (s2 varchar(32));
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo *** Insert, Update
|
--echo # *** Insert, Update
|
||||||
start transaction;
|
start transaction;
|
||||||
insert into marker1_db.table1 values (4, 'four'), (5, 'five'), (6, 'six');
|
insert into marker1_db.table1 values (4, 'four'), (5, 'five'), (6, 'six');
|
||||||
update marker1_db.table1 set s1 = s1 + 1;
|
update marker1_db.table1 set s1 = s1 + 1;
|
||||||
commit;
|
commit;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo *** Rollback
|
--echo # *** Rollback
|
||||||
start transaction;
|
start transaction;
|
||||||
insert into marker1_db.table1 values (7, 'seven'), (8, 'eight'), (9, 'nine');
|
insert into marker1_db.table1 values (7, 'seven'), (8, 'eight'), (9, 'nine');
|
||||||
rollback;
|
rollback;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo *** Autocommit, Delete, Drop
|
--echo # *** Autocommit, Delete, Drop
|
||||||
delete from marker1_db.table1 where s1 > 4;
|
delete from marker1_db.table1 where s1 > 4;
|
||||||
drop table marker2_db.table1;
|
drop table marker2_db.table1;
|
||||||
drop database marker2_db;
|
drop database marker2_db;
|
||||||
|
|
||||||
--source ../include/disable_instruments.inc
|
--source ../include/disable_instruments.inc
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo *** Examine statements events that will be compared on the slave
|
--echo # *** Examine statements events that will be compared on the slave
|
||||||
--echo
|
--echo #
|
||||||
|
|
||||||
--replace_column 1 [THREAD_ID] 2 [EVENT_ID]
|
--replace_column 1 [THREAD_ID] 2 [EVENT_ID]
|
||||||
|
|
||||||
eval select $column_list from performance_schema.events_statements_history_long
|
eval select $column_list from performance_schema.events_statements_history_long
|
||||||
where sql_text like '%marker%' order by event_id;
|
where sql_text like '%marker%' order by event_id;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # STEP 4 - REPLICATE STATEMENT EVENTS ON MASTER TO SLAVE
|
--echo # STEP 4 - REPLICATE STATEMENT EVENTS ON MASTER TO SLAVE
|
||||||
--echo #
|
--echo #
|
||||||
--echo
|
--echo #
|
||||||
--echo *** Store statement events in holding table, then replicate
|
--echo # *** Store statement events in holding table, then replicate
|
||||||
--echo
|
--echo #
|
||||||
|
|
||||||
--source ../include/disable_instruments.inc
|
--source ../include/disable_instruments.inc
|
||||||
|
|
||||||
@ -189,7 +189,7 @@ create table test.master_events_statements_history_long as
|
|||||||
|
|
||||||
--source ../include/enable_instruments.inc
|
--source ../include/enable_instruments.inc
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # STEP 5 - VERIFY DML AND DDL STATEMENT EVENTS ON SLAVE
|
--echo # STEP 5 - VERIFY DML AND DDL STATEMENT EVENTS ON SLAVE
|
||||||
--echo #
|
--echo #
|
||||||
@ -198,24 +198,24 @@ sync_slave_with_master;
|
|||||||
|
|
||||||
--source ../include/disable_instruments.inc
|
--source ../include/disable_instruments.inc
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo *** List statement events from master
|
--echo # *** List statement events from master
|
||||||
--echo
|
--echo #
|
||||||
--replace_column 1 [THREAD_ID] 2 [EVENT_ID]
|
--replace_column 1 [THREAD_ID] 2 [EVENT_ID]
|
||||||
eval select $column_list from master_events_statements_history_long order by event_id;
|
eval select $column_list from master_events_statements_history_long order by event_id;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo *** List statement events on slave
|
--echo # *** List statement events on slave
|
||||||
--echo
|
--echo #
|
||||||
|
|
||||||
--replace_column 1 [THREAD_ID] 2 [EVENT_ID]
|
--replace_column 1 [THREAD_ID] 2 [EVENT_ID]
|
||||||
|
|
||||||
eval select $column_list from performance_schema.events_statements_history_long
|
eval select $column_list from performance_schema.events_statements_history_long
|
||||||
where thread_id = @slave_thread_id and sql_text like '%marker%' order by event_id;
|
where thread_id = @slave_thread_id and sql_text like '%marker%' order by event_id;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo *** Compare master and slave events
|
--echo # *** Compare master and slave events
|
||||||
--echo
|
--echo #
|
||||||
|
|
||||||
# Note: The statement digest provides a more robust comparison than the
|
# Note: The statement digest provides a more robust comparison than the
|
||||||
# event name. However, in some cases, e.g. DROP TABLE, the server generates
|
# event name. However, in some cases, e.g. DROP TABLE, the server generates
|
||||||
@ -224,7 +224,7 @@ eval select $column_list from performance_schema.events_statements_history_long
|
|||||||
# statements, so we use both methods to ensure coverage.
|
# statements, so we use both methods to ensure coverage.
|
||||||
|
|
||||||
--echo
|
--echo
|
||||||
--echo *** Event name comparison - expect 0 mismatches
|
--echo # *** Event name comparison - expect 0 mismatches
|
||||||
--echo
|
--echo
|
||||||
|
|
||||||
select thread_id, event_id, event_name, digest_text, sql_text from performance_schema.events_statements_history_long t1
|
select thread_id, event_id, event_name, digest_text, sql_text from performance_schema.events_statements_history_long t1
|
||||||
@ -233,7 +233,7 @@ select thread_id, event_id, event_name, digest_text, sql_text from performance_s
|
|||||||
not exists (select * from master_events_statements_history_long t2 where t2.event_name = t1.event_name);
|
not exists (select * from master_events_statements_history_long t2 where t2.event_name = t1.event_name);
|
||||||
|
|
||||||
--echo
|
--echo
|
||||||
--echo *** Statement digest comparison - expect 1 mismatch for DROP TABLE
|
--echo # *** Statement digest comparison - expect 1 mismatch for DROP TABLE
|
||||||
--echo
|
--echo
|
||||||
|
|
||||||
--replace_column 1 [THREAD_ID] 2 [EVENT_ID] 4 [DIGEST]
|
--replace_column 1 [THREAD_ID] 2 [EVENT_ID] 4 [DIGEST]
|
||||||
@ -243,7 +243,7 @@ select thread_id, event_id, event_name, digest, digest_text, sql_text from perfo
|
|||||||
sql_text like '%marker%' and
|
sql_text like '%marker%' and
|
||||||
not exists (select * from master_events_statements_history_long t2 where t2.digest = t1.digest);
|
not exists (select * from master_events_statements_history_long t2 where t2.digest = t1.digest);
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # STEP 6 - DISABLE REPLICATED STATEMENT EVENTS ON SLAVE
|
--echo # STEP 6 - DISABLE REPLICATED STATEMENT EVENTS ON SLAVE
|
||||||
--echo #
|
--echo #
|
||||||
@ -255,49 +255,49 @@ update performance_schema.setup_instruments set enabled='no', timed='no'
|
|||||||
|
|
||||||
select * from performance_schema.setup_instruments where name like '%statement/abstract/relay_log%';
|
select * from performance_schema.setup_instruments where name like '%statement/abstract/relay_log%';
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # STEP 7 - UPDATE TABLES ON MASTER, REPLICATE
|
--echo # STEP 7 - UPDATE TABLES ON MASTER, REPLICATE
|
||||||
--echo #
|
--echo #
|
||||||
|
|
||||||
connection master;
|
connection master;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo *** Clear statement events
|
--echo # *** Clear statement events
|
||||||
--source ../include/rpl_statements_truncate.inc
|
--source ../include/rpl_statements_truncate.inc
|
||||||
|
|
||||||
--echo *** Update some tables, then replicate
|
--echo # *** Update some tables, then replicate
|
||||||
--echo
|
--echo #
|
||||||
|
|
||||||
insert into marker1_db.table1 values (999, '999'), (998, '998'), (997, '997');
|
insert into marker1_db.table1 values (999, '999'), (998, '998'), (997, '997');
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # STEP 8 - VERIFY TABLE UPDATES FROM MASTER, EXPECT NO STATEMENT EVENTS ON SLAVE
|
--echo # STEP 8 - VERIFY TABLE UPDATES FROM MASTER, EXPECT NO STATEMENT EVENTS ON SLAVE
|
||||||
--echo #
|
--echo #
|
||||||
|
|
||||||
sync_slave_with_master;
|
sync_slave_with_master;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo *** Confirm rows were replicated
|
--echo # *** Confirm rows were replicated
|
||||||
--echo
|
--echo #
|
||||||
|
|
||||||
select * from marker1_db.table1 where s1 > 900 order by s1;
|
select * from marker1_db.table1 where s1 > 900 order by s1;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo *** Confirm that are no statements events from the replication thread
|
--echo # *** Confirm that are no statements events from the replication thread
|
||||||
--echo
|
--echo #
|
||||||
|
|
||||||
select * from performance_schema.events_statements_history_long
|
select * from performance_schema.events_statements_history_long
|
||||||
where thread_id = @slave_thread_id;
|
where thread_id = @slave_thread_id;
|
||||||
|
|
||||||
--source ../include/enable_instruments.inc
|
--source ../include/enable_instruments.inc
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # STEP 9 - CLEAN UP
|
--echo # STEP 9 - CLEAN UP
|
||||||
--echo #
|
--echo #
|
||||||
--echo
|
--echo #
|
||||||
--disable_query_log
|
--disable_query_log
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
|
|
||||||
|
@ -16,12 +16,12 @@
|
|||||||
|
|
||||||
--enable_connect_log
|
--enable_connect_log
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo SETUP
|
--echo # SETUP
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
SET @@session.sql_log_bin=OFF;
|
SET @@session.sql_log_bin=OFF;
|
||||||
--echo
|
--echo #
|
||||||
--echo # CREATE 3 CLIENTS, 3 CONNECTIONS, RESULTS TABLE
|
--echo # CREATE 3 CLIENTS, 3 CONNECTIONS, RESULTS TABLE
|
||||||
connection default;
|
connection default;
|
||||||
USE test;
|
USE test;
|
||||||
@ -31,7 +31,7 @@ USE test;
|
|||||||
flush status;
|
flush status;
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # Create results table
|
--echo # Create results table
|
||||||
CREATE TABLE test.status_results
|
CREATE TABLE test.status_results
|
||||||
(variable_name VARCHAR(64), start INT DEFAULT 0, stop INT DEFAULT 0, delta INT DEFAULT 0,
|
(variable_name VARCHAR(64), start INT DEFAULT 0, stop INT DEFAULT 0, delta INT DEFAULT 0,
|
||||||
@ -50,7 +50,7 @@ CREATE TABLE t1 (s1 int) ENGINE=InnoDB;
|
|||||||
INSERT INTO t1 VALUES (1), (2), (2), (3), (3), (3);
|
INSERT INTO t1 VALUES (1), (2), (2), (3), (3), (3);
|
||||||
CREATE TABLE t2 (s1 int) ENGINE=InnoDB;
|
CREATE TABLE t2 (s1 int) ENGINE=InnoDB;
|
||||||
CREATE TABLE t3 (s1 int) ENGINE=InnoDB;
|
CREATE TABLE t3 (s1 int) ENGINE=InnoDB;
|
||||||
--echo
|
--echo #
|
||||||
set @orig_sql_mode= @@sql_mode;
|
set @orig_sql_mode= @@sql_mode;
|
||||||
set sql_mode= (select replace(@@sql_mode,'NO_AUTO_CREATE_USER',''));
|
set sql_mode= (select replace(@@sql_mode,'NO_AUTO_CREATE_USER',''));
|
||||||
GRANT ALL ON *.* to 'user1'@localhost;
|
GRANT ALL ON *.* to 'user1'@localhost;
|
||||||
@ -58,10 +58,10 @@ GRANT ALL ON *.* to 'user2'@localhost;
|
|||||||
GRANT ALL ON *.* to 'user3'@localhost;
|
GRANT ALL ON *.* to 'user3'@localhost;
|
||||||
set sql_mode= @orig_sql_mode;
|
set sql_mode= @orig_sql_mode;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo CONNECTION 1: DELETE 1, ROLLBACK x 1
|
--echo # CONNECTION 1: DELETE 1, ROLLBACK x 1
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
connect(con1, localhost, user1,,);
|
connect(con1, localhost, user1,,);
|
||||||
SET @@session.sql_log_bin=OFF;
|
SET @@session.sql_log_bin=OFF;
|
||||||
DELETE FROM t1 WHERE s1 = 1;
|
DELETE FROM t1 WHERE s1 = 1;
|
||||||
@ -69,46 +69,46 @@ START TRANSACTION;
|
|||||||
INSERT INTO t1 VALUES (1);
|
INSERT INTO t1 VALUES (1);
|
||||||
ROLLBACK;
|
ROLLBACK;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo CONNECTION 2: DELETE 2, ROLLBACK x 2
|
--echo # CONNECTION 2: DELETE 2, ROLLBACK x 2
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
connect(con2, localhost, user2,,);
|
connect(con2, localhost, user2,,);
|
||||||
SET @@session.sql_log_bin=OFF;
|
SET @@session.sql_log_bin=OFF;
|
||||||
DELETE FROM t1 WHERE s1 = 2;
|
DELETE FROM t1 WHERE s1 = 2;
|
||||||
--echo
|
--echo #
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (2);
|
INSERT INTO t1 VALUES (2);
|
||||||
ROLLBACK;
|
ROLLBACK;
|
||||||
--echo
|
--echo #
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (2);
|
INSERT INTO t1 VALUES (2);
|
||||||
ROLLBACK;
|
ROLLBACK;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo CONNECTION 3: DELETE 3, ROLLBACK x 3
|
--echo # CONNECTION 3: DELETE 3, ROLLBACK x 3
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
connect(con3, localhost, user3,,);
|
connect(con3, localhost, user3,,);
|
||||||
SET @@session.sql_log_bin=OFF;
|
SET @@session.sql_log_bin=OFF;
|
||||||
DELETE FROM t1 WHERE s1 = 3;
|
DELETE FROM t1 WHERE s1 = 3;
|
||||||
--echo
|
--echo #
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (3);
|
INSERT INTO t1 VALUES (3);
|
||||||
ROLLBACK;
|
ROLLBACK;
|
||||||
--echo
|
--echo #
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (3);
|
INSERT INTO t1 VALUES (3);
|
||||||
ROLLBACK;
|
ROLLBACK;
|
||||||
--echo
|
--echo #
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (3);
|
INSERT INTO t1 VALUES (3);
|
||||||
ROLLBACK;
|
ROLLBACK;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo CONNECTION DEFAULT: Gather results, compare session and global status counts
|
--echo # CONNECTION DEFAULT: Gather results, compare session and global status counts
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
connection default;
|
connection default;
|
||||||
--echo # Get thread ids for each connection.
|
--echo # Get thread ids for each connection.
|
||||||
USE performance_schema;
|
USE performance_schema;
|
||||||
@ -122,10 +122,10 @@ SELECT thread_id INTO @con3_id FROM threads WHERE processlist_user IN ('user3');
|
|||||||
#USE test;
|
#USE test;
|
||||||
#SELECT * FROM test.status_results;
|
#SELECT * FROM test.status_results;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 1: STATUS_BY_THREAD: Verify expected status counts per thread (1,2,3)
|
--echo # TEST 1: STATUS_BY_THREAD: Verify expected status counts per thread (1,2,3)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo #
|
--echo #
|
||||||
--echo # Review per-thread status counts
|
--echo # Review per-thread status counts
|
||||||
--echo #
|
--echo #
|
||||||
@ -138,10 +138,10 @@ SELECT * FROM status_by_thread WHERE thread_id IN (@con1_id, @con2_id, @con3_id)
|
|||||||
--echo #
|
--echo #
|
||||||
--replace_column 1 connect_1
|
--replace_column 1 connect_1
|
||||||
SELECT *, IF (variable_value = 1,'OK','ERROR') AS Expected FROM status_by_thread WHERE thread_id = @con1_id AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 1,'OK','ERROR') AS Expected FROM status_by_thread WHERE thread_id = @con1_id AND variable_name IN ('handler_delete');
|
||||||
--echo
|
--echo #
|
||||||
--replace_column 1 connnect_2
|
--replace_column 1 connnect_2
|
||||||
SELECT *, IF (variable_value = 2,'OK','ERROR') AS Expected FROM status_by_thread WHERE thread_id = @con2_id AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 2,'OK','ERROR') AS Expected FROM status_by_thread WHERE thread_id = @con2_id AND variable_name IN ('handler_delete');
|
||||||
--echo
|
--echo #
|
||||||
--replace_column 1 connnect_3
|
--replace_column 1 connnect_3
|
||||||
SELECT *, IF (variable_value = 3,'OK','ERROR') AS Expected FROM status_by_thread WHERE thread_id = @con3_id AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 3,'OK','ERROR') AS Expected FROM status_by_thread WHERE thread_id = @con3_id AND variable_name IN ('handler_delete');
|
||||||
|
|
||||||
@ -152,14 +152,14 @@ SELECT variable_name, t1, t2, t3, delta, thread, IF(thread=delta,'OK','ERROR') E
|
|||||||
FROM test.status_results
|
FROM test.status_results
|
||||||
ORDER BY variable_name;
|
ORDER BY variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 2: STATUS_BY_USER: Verify expected status counts per user (1,2,3)
|
--echo # TEST 2: STATUS_BY_USER: Verify expected status counts per user (1,2,3)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
SELECT *, IF (variable_value = 1,'OK','ERROR') AS Expected FROM status_by_user WHERE user IN ('user1') AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 1,'OK','ERROR') AS Expected FROM status_by_user WHERE user IN ('user1') AND variable_name IN ('handler_delete');
|
||||||
--echo
|
--echo #
|
||||||
SELECT *, IF (variable_value = 2,'OK','ERROR') AS Expected FROM status_by_user WHERE user IN ('user2') AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 2,'OK','ERROR') AS Expected FROM status_by_user WHERE user IN ('user2') AND variable_name IN ('handler_delete');
|
||||||
--echo
|
--echo #
|
||||||
SELECT *, IF (variable_value = 3,'OK','ERROR') AS Expected FROM status_by_user WHERE user IN ('user3') AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 3,'OK','ERROR') AS Expected FROM status_by_user WHERE user IN ('user3') AND variable_name IN ('handler_delete');
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
@ -169,14 +169,14 @@ SELECT variable_name, u1, u2, u3, delta, user, IF(user=delta,'OK','ERROR') Expec
|
|||||||
FROM test.status_results
|
FROM test.status_results
|
||||||
ORDER BY variable_name;
|
ORDER BY variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 3: STATUS_BY_ACCOUNT: Verify expected status counts per user, host (1,2,3)
|
--echo # TEST 3: STATUS_BY_ACCOUNT: Verify expected status counts per user, host (1,2,3)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
SELECT *, IF (variable_value = 1,'OK','ERROR') AS Expected FROM status_by_account WHERE user IN ('user1') AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 1,'OK','ERROR') AS Expected FROM status_by_account WHERE user IN ('user1') AND variable_name IN ('handler_delete');
|
||||||
--echo
|
--echo #
|
||||||
SELECT *, IF (variable_value = 2,'OK','ERROR') AS Expected FROM status_by_account WHERE user IN ('user2') AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 2,'OK','ERROR') AS Expected FROM status_by_account WHERE user IN ('user2') AND variable_name IN ('handler_delete');
|
||||||
--echo
|
--echo #
|
||||||
SELECT *, IF (variable_value = 3,'OK','ERROR') AS Expected FROM status_by_account WHERE user IN ('user3') AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 3,'OK','ERROR') AS Expected FROM status_by_account WHERE user IN ('user3') AND variable_name IN ('handler_delete');
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
@ -186,9 +186,9 @@ SELECT variable_name, a1, a2, a3, delta, acct, IF(acct=delta,'OK','ERROR') Expec
|
|||||||
FROM test.status_results
|
FROM test.status_results
|
||||||
ORDER BY variable_name;
|
ORDER BY variable_name;
|
||||||
|
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 4: STATUS_BY_HOST: Verify expected status counts per host (6)
|
--echo # TEST 4: STATUS_BY_HOST: Verify expected status counts per host (6)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
SELECT *, IF (variable_value = 6,'OK','ERROR') AS Expected FROM status_by_host WHERE host IN ('localhost') AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 6,'OK','ERROR') AS Expected FROM status_by_host WHERE host IN ('localhost') AND variable_name IN ('handler_delete');
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
@ -201,17 +201,17 @@ SELECT variable_name, h1, h2, h3, delta, host, IF(host=delta,'OK','ERROR') Expec
|
|||||||
FROM test.status_results
|
FROM test.status_results
|
||||||
ORDER BY variable_name;
|
ORDER BY variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo DISCONNECT ALL USERS AND RUN THE TESTS AGAIN. RESULTS SHOULD NOT CHANGE.
|
--echo # DISCONNECT ALL USERS AND RUN THE TESTS AGAIN. RESULTS SHOULD NOT CHANGE.
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
connection default;
|
connection default;
|
||||||
disconnect con1;
|
disconnect con1;
|
||||||
disconnect con2;
|
disconnect con2;
|
||||||
disconnect con3;
|
disconnect con3;
|
||||||
--echo
|
--echo #
|
||||||
USE test;
|
USE test;
|
||||||
--echo
|
--echo #
|
||||||
--echo # Clear results table, leave initial global_status counts
|
--echo # Clear results table, leave initial global_status counts
|
||||||
UPDATE test.status_results
|
UPDATE test.status_results
|
||||||
SET stop=0, delta=0,
|
SET stop=0, delta=0,
|
||||||
@ -222,22 +222,22 @@ UPDATE test.status_results
|
|||||||
|
|
||||||
#--echo DEBUG
|
#--echo DEBUG
|
||||||
#SELECT * FROM test.status_results;
|
#SELECT * FROM test.status_results;
|
||||||
--echo
|
--echo #
|
||||||
--source ../include/show_aggregate.inc
|
--source ../include/show_aggregate.inc
|
||||||
|
|
||||||
USE performance_schema;
|
USE performance_schema;
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST X: STATUS_BY_THREAD: Connections are gone--nothing to verify.
|
--echo # TEST X: STATUS_BY_THREAD: Connections are gone--nothing to verify.
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 5: STATUS_BY_USER: Verify expected status counts per user (1,2,3)
|
--echo # TEST 5: STATUS_BY_USER: Verify expected status counts per user (1,2,3)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
SELECT *, IF (variable_value = 1,'OK','ERROR') AS Expected FROM status_by_user WHERE user IN ('user1') AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 1,'OK','ERROR') AS Expected FROM status_by_user WHERE user IN ('user1') AND variable_name IN ('handler_delete');
|
||||||
--echo
|
--echo #
|
||||||
SELECT *, IF (variable_value = 2,'OK','ERROR') AS Expected FROM status_by_user WHERE user IN ('user2') AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 2,'OK','ERROR') AS Expected FROM status_by_user WHERE user IN ('user2') AND variable_name IN ('handler_delete');
|
||||||
--echo
|
--echo #
|
||||||
SELECT *, IF (variable_value = 3,'OK','ERROR') AS Expected FROM status_by_user WHERE user IN ('user3') AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 3,'OK','ERROR') AS Expected FROM status_by_user WHERE user IN ('user3') AND variable_name IN ('handler_delete');
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
@ -247,14 +247,14 @@ SELECT variable_name, u1, u2, u3, delta, user, IF(user=delta,'OK','ERROR') Expec
|
|||||||
FROM test.status_results
|
FROM test.status_results
|
||||||
ORDER BY variable_name;
|
ORDER BY variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 6: STATUS_BY_ACCOUNT: Verify expected status counts per user:host (1,2,3)
|
--echo # TEST 6: STATUS_BY_ACCOUNT: Verify expected status counts per user:host (1,2,3)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
SELECT *, IF (variable_value = 1,'OK','ERROR') AS Expected FROM status_by_account WHERE user IN ('user1') AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 1,'OK','ERROR') AS Expected FROM status_by_account WHERE user IN ('user1') AND variable_name IN ('handler_delete');
|
||||||
--echo
|
--echo #
|
||||||
SELECT *, IF (variable_value = 2,'OK','ERROR') AS Expected FROM status_by_account WHERE user IN ('user2') AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 2,'OK','ERROR') AS Expected FROM status_by_account WHERE user IN ('user2') AND variable_name IN ('handler_delete');
|
||||||
--echo
|
--echo #
|
||||||
SELECT *, IF (variable_value = 3,'OK','ERROR') AS Expected FROM status_by_account WHERE user IN ('user3') AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 3,'OK','ERROR') AS Expected FROM status_by_account WHERE user IN ('user3') AND variable_name IN ('handler_delete');
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
@ -264,9 +264,9 @@ SELECT variable_name, a1, a2, a3, delta, acct, IF(acct=delta,'OK','ERROR') Expec
|
|||||||
FROM test.status_results
|
FROM test.status_results
|
||||||
ORDER BY variable_name;
|
ORDER BY variable_name;
|
||||||
|
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 7: STATUS_BY_HOST: Verify expected status counts per host (6)
|
--echo # TEST 7: STATUS_BY_HOST: Verify expected status counts per host (6)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
SELECT *, IF (variable_value = 6,'OK','ERROR') AS Expected FROM status_by_host WHERE host IN ('localhost') AND variable_name IN ('handler_delete');
|
SELECT *, IF (variable_value = 6,'OK','ERROR') AS Expected FROM status_by_host WHERE host IN ('localhost') AND variable_name IN ('handler_delete');
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
@ -280,22 +280,22 @@ FROM test.status_results
|
|||||||
ORDER BY variable_name;
|
ORDER BY variable_name;
|
||||||
|
|
||||||
|
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 8: FLUSH STATUS should clear account, host and user status
|
--echo # TEST 8: FLUSH STATUS should clear account, host and user status
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo
|
--echo #
|
||||||
FLUSH STATUS;
|
FLUSH STATUS;
|
||||||
--echo
|
--echo #
|
||||||
SELECT * FROM status_by_account WHERE user IN ('user1', 'user2', 'user3') AND variable_name IN ('handler_delete');
|
SELECT * FROM status_by_account WHERE user IN ('user1', 'user2', 'user3') AND variable_name IN ('handler_delete');
|
||||||
--echo
|
--echo #
|
||||||
SELECT * FROM status_by_host WHERE host IN ('localhost') AND variable_name IN ('handler_delete');
|
SELECT * FROM status_by_host WHERE host IN ('localhost') AND variable_name IN ('handler_delete');
|
||||||
--echo
|
--echo #
|
||||||
SELECT * FROM status_by_user WHERE user IN ('user1', 'user2', 'user3') AND variable_name IN ('handler_delete');
|
SELECT * FROM status_by_user WHERE user IN ('user1', 'user2', 'user3') AND variable_name IN ('handler_delete');
|
||||||
|
|
||||||
|
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo CLEANUP
|
--echo # CLEANUP
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
DROP TABLE test.t1;
|
DROP TABLE test.t1;
|
||||||
DROP TABLE test.t2;
|
DROP TABLE test.t2;
|
||||||
DROP TABLE test.t3;
|
DROP TABLE test.t3;
|
||||||
@ -303,4 +303,4 @@ DROP TABLE test.status_results;
|
|||||||
DROP USER 'user1'@localhost;
|
DROP USER 'user1'@localhost;
|
||||||
DROP USER 'user2'@localhost;
|
DROP USER 'user2'@localhost;
|
||||||
DROP USER 'user3'@localhost;
|
DROP USER 'user3'@localhost;
|
||||||
--echo
|
--echo #
|
||||||
|
@ -9,23 +9,23 @@
|
|||||||
--source include/no_protocol.inc
|
--source include/no_protocol.inc
|
||||||
--source include/count_sessions.inc
|
--source include/count_sessions.inc
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # TEST 1
|
--echo # TEST 1
|
||||||
--echo # Handling of SHOW STATUS/VARIABLES ... WHERE
|
--echo # Handling of SHOW STATUS/VARIABLES ... WHERE
|
||||||
--echo #
|
--echo #
|
||||||
SHOW STATUS WHERE VARIABLE_NAME LIKE "foo";
|
SHOW STATUS WHERE VARIABLE_NAME LIKE "foo";
|
||||||
--echo
|
--echo #
|
||||||
SHOW GLOBAL STATUS WHERE VARIABLE_NAME LIKE "foo";
|
SHOW GLOBAL STATUS WHERE VARIABLE_NAME LIKE "foo";
|
||||||
--echo
|
--echo #
|
||||||
SHOW SESSION STATUS WHERE VARIABLE_NAME LIKE "foo";
|
SHOW SESSION STATUS WHERE VARIABLE_NAME LIKE "foo";
|
||||||
--echo
|
--echo #
|
||||||
SHOW VARIABLES WHERE VARIABLE_NAME LIKE "foo";
|
SHOW VARIABLES WHERE VARIABLE_NAME LIKE "foo";
|
||||||
--echo
|
--echo #
|
||||||
SHOW GLOBAL VARIABLES WHERE VARIABLE_NAME LIKE "foo";
|
SHOW GLOBAL VARIABLES WHERE VARIABLE_NAME LIKE "foo";
|
||||||
--echo
|
--echo #
|
||||||
SHOW SESSION VARIABLES WHERE VARIABLE_NAME LIKE "foo";
|
SHOW SESSION VARIABLES WHERE VARIABLE_NAME LIKE "foo";
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # TEST 2
|
--echo # TEST 2
|
||||||
--echo # CREATE..SELECT -- Expect correct ER_WARN_DEPRECATED_SYNTAX
|
--echo # CREATE..SELECT -- Expect correct ER_WARN_DEPRECATED_SYNTAX
|
||||||
--echo #
|
--echo #
|
||||||
@ -33,7 +33,7 @@ USE test;
|
|||||||
CREATE TABLE t0 SELECT * FROM information_schema.global_status WHERE variable_name = 'COM_SELECT';
|
CREATE TABLE t0 SELECT * FROM information_schema.global_status WHERE variable_name = 'COM_SELECT';
|
||||||
DROP TABLE t0;
|
DROP TABLE t0;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # TEST 3
|
--echo # TEST 3
|
||||||
--echo # Select status and system variable tables using ORDER BY to exercise the
|
--echo # Select status and system variable tables using ORDER BY to exercise the
|
||||||
--echo # rnd_pos() method
|
--echo # rnd_pos() method
|
||||||
@ -51,33 +51,33 @@ select * from status_by_host order by variable_name;
|
|||||||
select * from status_by_account order by variable_name;
|
select * from status_by_account order by variable_name;
|
||||||
--enable_result_log
|
--enable_result_log
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # TEST 4
|
--echo # TEST 4
|
||||||
--echo # Handling of SHOW STATUS/VARIABLES ... WHERE
|
--echo # Handling of SHOW STATUS/VARIABLES ... WHERE
|
||||||
--echo #
|
--echo #
|
||||||
SHOW STATUS WHERE VARIABLE_NAME LIKE "foo";
|
SHOW STATUS WHERE VARIABLE_NAME LIKE "foo";
|
||||||
--echo
|
--echo #
|
||||||
SHOW GLOBAL STATUS WHERE VARIABLE_NAME LIKE "foo";
|
SHOW GLOBAL STATUS WHERE VARIABLE_NAME LIKE "foo";
|
||||||
--echo
|
--echo #
|
||||||
SHOW SESSION STATUS WHERE VARIABLE_NAME LIKE "foo";
|
SHOW SESSION STATUS WHERE VARIABLE_NAME LIKE "foo";
|
||||||
--echo
|
--echo #
|
||||||
SHOW VARIABLES WHERE VARIABLE_NAME LIKE "foo";
|
SHOW VARIABLES WHERE VARIABLE_NAME LIKE "foo";
|
||||||
--echo
|
--echo #
|
||||||
SHOW GLOBAL VARIABLES WHERE VARIABLE_NAME LIKE "foo";
|
SHOW GLOBAL VARIABLES WHERE VARIABLE_NAME LIKE "foo";
|
||||||
--echo
|
--echo #
|
||||||
SHOW SESSION VARIABLES WHERE VARIABLE_NAME LIKE "foo";
|
SHOW SESSION VARIABLES WHERE VARIABLE_NAME LIKE "foo";
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # TEST 5
|
--echo # TEST 5
|
||||||
--echo # Confirm FLUSH STATUS resets counters for all threads.
|
--echo # Confirm FLUSH STATUS resets counters for all threads.
|
||||||
--echo #
|
--echo #
|
||||||
--echo
|
--echo #
|
||||||
--echo # Create a new connection
|
--echo # Create a new connection
|
||||||
--connect(con1, localhost, root,,)
|
--connect(con1, localhost, root,,)
|
||||||
--echo
|
--echo #
|
||||||
--echo # Record thread id
|
--echo # Record thread id
|
||||||
let $thread_id= `SELECT THREAD_ID FROM performance_schema.threads WHERE PROCESSLIST_ID = CONNECTION_ID()`;
|
let $thread_id= `SELECT THREAD_ID FROM performance_schema.threads WHERE PROCESSLIST_ID = CONNECTION_ID()`;
|
||||||
--echo
|
--echo #
|
||||||
--echo # Increase bytes_received for new connection
|
--echo # Increase bytes_received for new connection
|
||||||
USE test;
|
USE test;
|
||||||
SHOW TABLES;
|
SHOW TABLES;
|
||||||
@ -87,21 +87,21 @@ USE performance_schema;
|
|||||||
eval SELECT $thread_id INTO @thread_id;
|
eval SELECT $thread_id INTO @thread_id;
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # Record bytes_received for other connection
|
--echo # Record bytes_received for other connection
|
||||||
SELECT variable_value FROM status_by_thread
|
SELECT variable_value FROM status_by_thread
|
||||||
WHERE variable_name = "bytes_received" and thread_id = @thread_id INTO @bytes_before;
|
WHERE variable_name = "bytes_received" and thread_id = @thread_id INTO @bytes_before;
|
||||||
--echo
|
--echo #
|
||||||
--echo # Reset status counters
|
--echo # Reset status counters
|
||||||
FLUSH STATUS;
|
FLUSH STATUS;
|
||||||
--echo
|
--echo #
|
||||||
--echo # Record bytes_received after reset
|
--echo # Record bytes_received after reset
|
||||||
SELECT variable_value FROM status_by_thread
|
SELECT variable_value FROM status_by_thread
|
||||||
WHERE variable_name = "bytes_received" and thread_id = @thread_id INTO @bytes_after;
|
WHERE variable_name = "bytes_received" and thread_id = @thread_id INTO @bytes_after;
|
||||||
--echo
|
--echo #
|
||||||
--echo # Expect bytes_before > bytes_after
|
--echo # Expect bytes_before > bytes_after
|
||||||
SELECT @bytes_before > @bytes_after AS 'Expect 1';
|
SELECT @bytes_before > @bytes_after AS 'Expect 1';
|
||||||
--echo
|
--echo #
|
||||||
--echo # Expect bytes_after is zero
|
--echo # Expect bytes_after is zero
|
||||||
SELECT @bytes_after AS 'Expect 0';
|
SELECT @bytes_after AS 'Expect 0';
|
||||||
|
|
||||||
@ -109,19 +109,19 @@ disconnect con1;
|
|||||||
--source include/wait_until_count_sessions.inc
|
--source include/wait_until_count_sessions.inc
|
||||||
|
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # TEST 6
|
--echo # TEST 6
|
||||||
--echo #
|
--echo #
|
||||||
--echo # Bug#28291258 FLUSH STATUS ADDS TWICE TO GLOBAL VALUES
|
--echo # Bug#28291258 FLUSH STATUS ADDS TWICE TO GLOBAL VALUES
|
||||||
--echo #
|
--echo #
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # Default connection
|
--echo # Default connection
|
||||||
--let $initial_global_value = query_get_value(SHOW GLOBAL STATUS LIKE 'Slow_queries', Value, 1)
|
--let $initial_global_value = query_get_value(SHOW GLOBAL STATUS LIKE 'Slow_queries', Value, 1)
|
||||||
|
|
||||||
--source include/count_sessions.inc
|
--source include/count_sessions.inc
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # First connection
|
--echo # First connection
|
||||||
--connect (con1, localhost, root,,)
|
--connect (con1, localhost, root,,)
|
||||||
|
|
||||||
@ -131,13 +131,13 @@ disconnect con1;
|
|||||||
--let $assert_text = Global value requested from the first session must not change
|
--let $assert_text = Global value requested from the first session must not change
|
||||||
--source include/assert.inc
|
--source include/assert.inc
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # Generate a slow query
|
--echo # Generate a slow query
|
||||||
--echo
|
--echo #
|
||||||
SET long_query_time = 2;
|
SET long_query_time = 2;
|
||||||
SELECT SLEEP(4);
|
SELECT SLEEP(4);
|
||||||
SET long_query_time = @@global.long_query_time;
|
SET long_query_time = @@global.long_query_time;
|
||||||
--echo
|
--echo #
|
||||||
|
|
||||||
## Global value requested from the first session after SLEEP() must increase by 1
|
## Global value requested from the first session after SLEEP() must increase by 1
|
||||||
--let $current_global_value = query_get_value(SHOW GLOBAL STATUS LIKE 'Slow_queries', Value, 1)
|
--let $current_global_value = query_get_value(SHOW GLOBAL STATUS LIKE 'Slow_queries', Value, 1)
|
||||||
@ -153,7 +153,7 @@ SET long_query_time = @@global.long_query_time;
|
|||||||
--disconnect con1
|
--disconnect con1
|
||||||
--source include/wait_until_count_sessions.inc
|
--source include/wait_until_count_sessions.inc
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # Default connection
|
--echo # Default connection
|
||||||
--connection default
|
--connection default
|
||||||
|
|
||||||
@ -169,9 +169,9 @@ SET long_query_time = @@global.long_query_time;
|
|||||||
--let $assert_text = Default session value must remain zero
|
--let $assert_text = Default session value must remain zero
|
||||||
--source include/assert.inc
|
--source include/assert.inc
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
FLUSH STATUS;
|
FLUSH STATUS;
|
||||||
--echo
|
--echo #
|
||||||
|
|
||||||
## Global value requested from the default session after FLUSH must remain the same
|
## Global value requested from the default session after FLUSH must remain the same
|
||||||
--let $current_global_value = query_get_value(SHOW GLOBAL STATUS LIKE 'Slow_queries', Value, 1)
|
--let $current_global_value = query_get_value(SHOW GLOBAL STATUS LIKE 'Slow_queries', Value, 1)
|
||||||
|
@ -10,55 +10,55 @@ SHOW STATUS LIKE 'Last_query_cost';
|
|||||||
flush status;
|
flush status;
|
||||||
SHOW STATUS LIKE 'Created_tmp_tables';
|
SHOW STATUS LIKE 'Created_tmp_tables';
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo Bug#21789221 SHOW STATUS FAILS WITH LOCK TABLES AND SHOW_COMPATIBILITY_56=OFF
|
--echo # Bug#21789221 SHOW STATUS FAILS WITH LOCK TABLES AND SHOW_COMPATIBILITY_56=OFF
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo Verify that SHOW STATUS and SHOW VARIABLES works under LOCK TABLES mode
|
--echo # Verify that SHOW STATUS and SHOW VARIABLES works under LOCK TABLES mode
|
||||||
--echo
|
--echo #
|
||||||
CREATE TABLE test.t1 (s1 INT);
|
CREATE TABLE test.t1 (s1 INT);
|
||||||
LOCK TABLE test.t1 READ;
|
LOCK TABLE test.t1 READ;
|
||||||
--echo
|
--echo #
|
||||||
SHOW GLOBAL STATUS WHERE VARIABLE_NAME LIKE "foo";
|
SHOW GLOBAL STATUS WHERE VARIABLE_NAME LIKE "foo";
|
||||||
--echo
|
--echo #
|
||||||
SHOW SESSION STATUS WHERE VARIABLE_NAME LIKE "foo";
|
SHOW SESSION STATUS WHERE VARIABLE_NAME LIKE "foo";
|
||||||
--echo
|
--echo #
|
||||||
SHOW GLOBAL VARIABLES WHERE VARIABLE_NAME LIKE "foo";
|
SHOW GLOBAL VARIABLES WHERE VARIABLE_NAME LIKE "foo";
|
||||||
--echo
|
--echo #
|
||||||
SHOW SESSION VARIABLES WHERE VARIABLE_NAME LIKE "foo";
|
SHOW SESSION VARIABLES WHERE VARIABLE_NAME LIKE "foo";
|
||||||
--echo
|
--echo #
|
||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
--echo
|
--echo #
|
||||||
LOCK TABLE test.t1 WRITE;
|
LOCK TABLE test.t1 WRITE;
|
||||||
--echo
|
--echo #
|
||||||
SHOW GLOBAL STATUS WHERE VARIABLE_NAME LIKE "foo";
|
SHOW GLOBAL STATUS WHERE VARIABLE_NAME LIKE "foo";
|
||||||
--echo
|
--echo #
|
||||||
SHOW SESSION STATUS WHERE VARIABLE_NAME LIKE "foo";
|
SHOW SESSION STATUS WHERE VARIABLE_NAME LIKE "foo";
|
||||||
--echo
|
--echo #
|
||||||
SHOW GLOBAL VARIABLES WHERE VARIABLE_NAME LIKE "foo";
|
SHOW GLOBAL VARIABLES WHERE VARIABLE_NAME LIKE "foo";
|
||||||
--echo
|
--echo #
|
||||||
SHOW SESSION VARIABLES WHERE VARIABLE_NAME LIKE "foo";
|
SHOW SESSION VARIABLES WHERE VARIABLE_NAME LIKE "foo";
|
||||||
--echo
|
--echo #
|
||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
|
|
||||||
DROP TABLE test.t1;
|
DROP TABLE test.t1;
|
||||||
|
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo Bug#28515475 BOGUS DATA WHEN ORDERING RESULTS FROM VARIABLES_BY_THREAD
|
--echo # Bug#28515475 BOGUS DATA WHEN ORDERING RESULTS FROM VARIABLES_BY_THREAD
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo Verify the results from "WHERE variable_name IN(...)", particularly for those
|
--echo # Verify the results from "WHERE variable_name IN(...)", particularly for those
|
||||||
--echo variables that are listed after the deprecated variable gtid_executed.
|
--echo # variables that are listed after the deprecated variable gtid_executed.
|
||||||
--echo The ORDER BY also forces an additional code path through rnd_pos().
|
--echo # The ORDER BY also forces an additional code path through rnd_pos().
|
||||||
--echo
|
--echo #
|
||||||
|
|
||||||
SELECT variable_name FROM performance_schema.variables_by_thread
|
SELECT variable_name FROM performance_schema.variables_by_thread
|
||||||
WHERE variable_name IN ('interactive_timeout','net_read_timeout','net_write_timeout','wait_timeout')
|
WHERE variable_name IN ('interactive_timeout','net_read_timeout','net_write_timeout','wait_timeout')
|
||||||
ORDER BY variable_name;
|
ORDER BY variable_name;
|
||||||
|
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo CLEAN UP
|
--echo # CLEAN UP
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
|
@ -28,46 +28,46 @@
|
|||||||
|
|
||||||
--enable_connect_log
|
--enable_connect_log
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo SETUP
|
--echo # SETUP
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo # Save the initial number of concurrent sessions
|
--echo # Save the initial number of concurrent sessions
|
||||||
--source include/count_sessions.inc
|
--source include/count_sessions.inc
|
||||||
--echo
|
--echo #
|
||||||
--echo # Verify EXAMPLE plugin is not loaded
|
--echo # Verify EXAMPLE plugin is not loaded
|
||||||
SELECT COUNT(*) = 0 AS "Expect 1" FROM information_schema.plugins WHERE plugin_name = "EXAMPLE";
|
SELECT COUNT(*) = 0 AS "Expect 1" FROM information_schema.plugins WHERE plugin_name = "EXAMPLE";
|
||||||
--echo
|
--echo #
|
||||||
--echo # Create one session to force local and global system variables
|
--echo # Create one session to force local and global system variables
|
||||||
--connect(con0, localhost, root,,)
|
--connect(con0, localhost, root,,)
|
||||||
--connection default
|
--connection default
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 1- NO PLUGIN VARS
|
--echo # TEST 1- NO PLUGIN VARS
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--source ../include/show_plugin_verifier.inc
|
--source ../include/show_plugin_verifier.inc
|
||||||
--echo
|
--echo #
|
||||||
|
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 2 - PLUGIN LOAD, UNLOAD, RELOAD
|
--echo # TEST 2 - PLUGIN LOAD, UNLOAD, RELOAD
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo 2.1 - INSTALL PLUGIN
|
--echo # 2.1 - INSTALL PLUGIN
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
INSTALL PLUGIN example SONAME 'ha_example';
|
INSTALL PLUGIN example SONAME 'ha_example';
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo 2.1a - FORCE SYNC OF LOCAL AND GLOBAL SYSTEM VARS
|
--echo # 2.1a - FORCE SYNC OF LOCAL AND GLOBAL SYSTEM VARS
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--source ../include/show_plugin_verifier.inc
|
--source ../include/show_plugin_verifier.inc
|
||||||
|
|
||||||
--disconnect con0
|
--disconnect con0
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo 2.2 - SET PLUGIN VARS
|
--echo # 2.2 - SET PLUGIN VARS
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo # GLOBAL
|
--echo # GLOBAL
|
||||||
SET GLOBAL example_ulong_var = 100;
|
SET GLOBAL example_ulong_var = 100;
|
||||||
SET GLOBAL example_enum_var = e1;
|
SET GLOBAL example_enum_var = e1;
|
||||||
@ -76,35 +76,35 @@ SET GLOBAL example_double_thdvar = 101.9991;
|
|||||||
--echo # SESSION
|
--echo # SESSION
|
||||||
SET SESSION example_double_thdvar = 102.9992;
|
SET SESSION example_double_thdvar = 102.9992;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo 2.3 - VERIFY UPDATED PLUGIN VARS
|
--echo # 2.3 - VERIFY UPDATED PLUGIN VARS
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--source ../include/show_plugin_verifier.inc
|
--source ../include/show_plugin_verifier.inc
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo 2.4 - UNINSTALL PLUGIN
|
--echo # 2.4 - UNINSTALL PLUGIN
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
UNINSTALL PLUGIN example;
|
UNINSTALL PLUGIN example;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo 2.5 - VERIFY NO PLUGIN VARS
|
--echo # 2.5 - VERIFY NO PLUGIN VARS
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--source ../include/show_plugin_verifier.inc
|
--source ../include/show_plugin_verifier.inc
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo 2.6 - REINSTALL PLUGIN
|
--echo # 2.6 - REINSTALL PLUGIN
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo # Reinstall EXAMPLE plugin
|
--echo # Reinstall EXAMPLE plugin
|
||||||
INSTALL PLUGIN example SONAME 'ha_example';
|
INSTALL PLUGIN example SONAME 'ha_example';
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo 2.7 - SET PLUGIN VARS AGAIN
|
--echo # 2.7 - SET PLUGIN VARS AGAIN
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo # GLOBAL
|
--echo # GLOBAL
|
||||||
SET GLOBAL example_ulong_var = 200;
|
SET GLOBAL example_ulong_var = 200;
|
||||||
SET GLOBAL example_enum_var = e2;
|
SET GLOBAL example_enum_var = e2;
|
||||||
@ -113,38 +113,38 @@ SET GLOBAL example_double_thdvar = 201.8881;
|
|||||||
--echo # SESSION
|
--echo # SESSION
|
||||||
SET SESSION example_double_thdvar = 202.8882;
|
SET SESSION example_double_thdvar = 202.8882;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo 2.8 - VERIFY PLUGIN VARS
|
--echo # 2.8 - VERIFY PLUGIN VARS
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--source ../include/show_plugin_verifier.inc
|
--source ../include/show_plugin_verifier.inc
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo 2.9 - UNINSTALL PLUGIN
|
--echo # 2.9 - UNINSTALL PLUGIN
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
UNINSTALL PLUGIN example;
|
UNINSTALL PLUGIN example;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo 2.10 - VERIFY NO PLUGIN VARS
|
--echo # 2.10 - VERIFY NO PLUGIN VARS
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--source ../include/show_plugin_verifier.inc
|
--source ../include/show_plugin_verifier.inc
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 3 - SESSION PLUGIN VARS ON MULTIPLE CONNECTIONS
|
--echo # TEST 3 - SESSION PLUGIN VARS ON MULTIPLE CONNECTIONS
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo 3.1 - INSTALL PLUGIN
|
--echo # 3.1 - INSTALL PLUGIN
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
INSTALL PLUGIN example SONAME 'ha_example';
|
INSTALL PLUGIN example SONAME 'ha_example';
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo 3.2 - SET GLOBAL AND DEFAULT CONNECTION VARS
|
--echo # 3.2 - SET GLOBAL AND DEFAULT CONNECTION VARS
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--connection default
|
--connection default
|
||||||
SET GLOBAL example_ulong_var = 300;
|
SET GLOBAL example_ulong_var = 300;
|
||||||
SET GLOBAL example_enum_var = e1;
|
SET GLOBAL example_enum_var = e1;
|
||||||
@ -152,35 +152,35 @@ SET GLOBAL example_double_var = 301.0000;
|
|||||||
SET GLOBAL example_double_thdvar = 302.0000;
|
SET GLOBAL example_double_thdvar = 302.0000;
|
||||||
SET SESSION example_double_thdvar = 300.0000;
|
SET SESSION example_double_thdvar = 300.0000;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo 3.3 - CONNECT 3 CLIENTS, SET LOCAL PLUGIN VARS
|
--echo # 3.3 - CONNECT 3 CLIENTS, SET LOCAL PLUGIN VARS
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--connect(con1, localhost, root,,)
|
--connect(con1, localhost, root,,)
|
||||||
SET SESSION example_double_thdvar = 300.1111;
|
SET SESSION example_double_thdvar = 300.1111;
|
||||||
--echo
|
--echo #
|
||||||
--connect(con2, localhost, root,,)
|
--connect(con2, localhost, root,,)
|
||||||
SET SESSION example_double_thdvar = 300.2222;
|
SET SESSION example_double_thdvar = 300.2222;
|
||||||
--echo
|
--echo #
|
||||||
--connect(con3, localhost, root,,)
|
--connect(con3, localhost, root,,)
|
||||||
SET SESSION example_double_thdvar = 300.3333;
|
SET SESSION example_double_thdvar = 300.3333;
|
||||||
--echo
|
--echo #
|
||||||
--connection default
|
--connection default
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo 3.4 - VERIFY GLOBAL AND SESSION PLUGIN VARS
|
--echo # 3.4 - VERIFY GLOBAL AND SESSION PLUGIN VARS
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--source ../include/show_plugin_verifier.inc
|
--source ../include/show_plugin_verifier.inc
|
||||||
--echo
|
--echo #
|
||||||
--echo # Variables by thread
|
--echo # Variables by thread
|
||||||
SELECT variable_name, variable_value FROM performance_schema.variables_by_thread
|
SELECT variable_name, variable_value FROM performance_schema.variables_by_thread
|
||||||
WHERE variable_name LIKE "example_%" ORDER BY variable_value;
|
WHERE variable_name LIKE "example_%" ORDER BY variable_value;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo 3.5 - DISCONNECT CLIENTS
|
--echo # 3.5 - DISCONNECT CLIENTS
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--connection con1
|
--connection con1
|
||||||
--disconnect con1
|
--disconnect con1
|
||||||
--source include/wait_until_disconnected.inc
|
--source include/wait_until_disconnected.inc
|
||||||
@ -195,61 +195,61 @@ WHERE variable_name LIKE "example_%" ORDER BY variable_value;
|
|||||||
|
|
||||||
--connection default
|
--connection default
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo 3.6 - VERIFY SESSION VARS ARE REMOVED
|
--echo # 3.6 - VERIFY SESSION VARS ARE REMOVED
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--source ../include/show_plugin_verifier.inc
|
--source ../include/show_plugin_verifier.inc
|
||||||
--echo
|
--echo #
|
||||||
--echo # Variables by thread
|
--echo # Variables by thread
|
||||||
SELECT variable_name, variable_value FROM performance_schema.variables_by_thread
|
SELECT variable_name, variable_value FROM performance_schema.variables_by_thread
|
||||||
WHERE variable_name LIKE "example_%" ORDER BY variable_value;
|
WHERE variable_name LIKE "example_%" ORDER BY variable_value;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo 3.7 - RECONNECT 3 CLIENTS, SET SESSION VARS FOR EACH
|
--echo # 3.7 - RECONNECT 3 CLIENTS, SET SESSION VARS FOR EACH
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--connect(con1, localhost, root,,)
|
--connect(con1, localhost, root,,)
|
||||||
SET SESSION example_double_thdvar = 311.1111;
|
SET SESSION example_double_thdvar = 311.1111;
|
||||||
--echo
|
--echo #
|
||||||
--connect(con2, localhost, root,,)
|
--connect(con2, localhost, root,,)
|
||||||
SET SESSION example_double_thdvar = 322.2222;
|
SET SESSION example_double_thdvar = 322.2222;
|
||||||
--echo
|
--echo #
|
||||||
--connect(con3, localhost, root,,)
|
--connect(con3, localhost, root,,)
|
||||||
SET SESSION example_double_thdvar = 333.3333;
|
SET SESSION example_double_thdvar = 333.3333;
|
||||||
--echo
|
--echo #
|
||||||
--connection default
|
--connection default
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo 3.8 - VERIFY GLOBAL AND SESSION VARS
|
--echo # 3.8 - VERIFY GLOBAL AND SESSION VARS
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--source ../include/show_plugin_verifier.inc
|
--source ../include/show_plugin_verifier.inc
|
||||||
--echo
|
--echo #
|
||||||
--echo # Variables by thread
|
--echo # Variables by thread
|
||||||
SELECT variable_name, variable_value FROM performance_schema.variables_by_thread
|
SELECT variable_name, variable_value FROM performance_schema.variables_by_thread
|
||||||
WHERE variable_name LIKE "example_%" ORDER BY variable_value;
|
WHERE variable_name LIKE "example_%" ORDER BY variable_value;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo 3.9 - UNINSTALL PLUGIN, LEAVE CLIENTS CONNECTED
|
--echo # 3.9 - UNINSTALL PLUGIN, LEAVE CLIENTS CONNECTED
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
UNINSTALL PLUGIN example;
|
UNINSTALL PLUGIN example;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo 3.10 - VERIFY SESSION VARS ARE REMOVED
|
--echo # 3.10 - VERIFY SESSION VARS ARE REMOVED
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--source ../include/show_plugin_verifier.inc
|
--source ../include/show_plugin_verifier.inc
|
||||||
--echo
|
--echo #
|
||||||
--echo # VARIABLES BY THREAD
|
--echo # VARIABLES BY THREAD
|
||||||
SELECT variable_name, variable_value FROM performance_schema.variables_by_thread
|
SELECT variable_name, variable_value FROM performance_schema.variables_by_thread
|
||||||
WHERE variable_name LIKE "example_%" ORDER BY variable_value;
|
WHERE variable_name LIKE "example_%" ORDER BY variable_value;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo 3.11 - DISCONNECT CLIENTS
|
--echo # 3.11 - DISCONNECT CLIENTS
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--connection con1
|
--connection con1
|
||||||
--disconnect con1
|
--disconnect con1
|
||||||
--source include/wait_until_disconnected.inc
|
--source include/wait_until_disconnected.inc
|
||||||
@ -264,27 +264,27 @@ WHERE variable_name LIKE "example_%" ORDER BY variable_value;
|
|||||||
|
|
||||||
--connection default
|
--connection default
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo 3.12 - VERIFY CLIENTS ARE REMOVED
|
--echo # 3.12 - VERIFY CLIENTS ARE REMOVED
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--source ../include/show_plugin_verifier.inc
|
--source ../include/show_plugin_verifier.inc
|
||||||
--echo
|
--echo #
|
||||||
--echo # VARIABLES BY THREAD
|
--echo # VARIABLES BY THREAD
|
||||||
SELECT variable_name, variable_value FROM performance_schema.variables_by_thread
|
SELECT variable_name, variable_value FROM performance_schema.variables_by_thread
|
||||||
WHERE variable_name LIKE "example_%" ORDER BY variable_value;
|
WHERE variable_name LIKE "example_%" ORDER BY variable_value;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 4 - BUG#18008907: DEADLOCK WITH CHANGE_USER, SHOW VARIABLES, INSTALL PLUGIN
|
--echo # TEST 4 - BUG#18008907: DEADLOCK WITH CHANGE_USER, SHOW VARIABLES, INSTALL PLUGIN
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo
|
--echo #
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 5 - BUG#22225549 MYSQL_CHANGE_USER/MYSQL_RESET_CONNECTION + SET INNODB...
|
--echo # TEST 5 - BUG#22225549 MYSQL_CHANGE_USER/MYSQL_RESET_CONNECTION + SET INNODB...
|
||||||
--echo Update to plugin-defined session variable triggers resync with global
|
--echo Update to plugin-defined session variable triggers resync with global
|
||||||
--echo variables and deadlocks on THD::LOCK_thd_sysvar.
|
--echo variables and deadlocks on THD::LOCK_thd_sysvar.
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
#
|
#
|
||||||
# The deadlock occurs when plugin-defined session variables are resynced with the global
|
# The deadlock occurs when plugin-defined session variables are resynced with the global
|
||||||
# variables. To force a resync, change the user and update a session variable from a
|
# variables. To force a resync, change the user and update a session variable from a
|
||||||
@ -293,29 +293,29 @@ WHERE variable_name LIKE "example_%" ORDER BY variable_value;
|
|||||||
select @@session.innodb_strict_mode;
|
select @@session.innodb_strict_mode;
|
||||||
let $innodb_strict_mode_save = `select @@session.innodb_strict_mode`;
|
let $innodb_strict_mode_save = `select @@session.innodb_strict_mode`;
|
||||||
select user(), current_user();
|
select user(), current_user();
|
||||||
--echo change_user root
|
--echo # change_user root
|
||||||
--change_user root
|
--change_user root
|
||||||
--echo #
|
--echo #
|
||||||
--echo # Trigger a resync of session variables with global variables.
|
--echo # Trigger a resync of session variables with global variables.
|
||||||
--echo #
|
--echo #
|
||||||
set @@session.innodb_strict_mode=off;
|
set @@session.innodb_strict_mode=off;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # Restore
|
--echo # Restore
|
||||||
--echo
|
--echo #
|
||||||
eval set @@session.innodb_strict_mode=$innodb_strict_mode_save;
|
eval set @@session.innodb_strict_mode=$innodb_strict_mode_save;
|
||||||
select @@session.innodb_strict_mode;
|
select @@session.innodb_strict_mode;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo CLEAN UP
|
--echo # CLEAN UP
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--connection default
|
--connection default
|
||||||
--echo
|
--echo #
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--disable_connect_log
|
--disable_connect_log
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # Wait till we reached the initial number of concurrent sessions
|
--echo # Wait till we reached the initial number of concurrent sessions
|
||||||
--source include/wait_until_count_sessions.inc
|
--source include/wait_until_count_sessions.inc
|
||||||
|
@ -130,185 +130,185 @@ set @my_host='localhost';
|
|||||||
# Debug
|
# Debug
|
||||||
# select connection_id(), @my_tid, @my_user, @my_host;
|
# select connection_id(), @my_tid, @my_user, @my_host;
|
||||||
# show plugins
|
# show plugins
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo SHOW_COMPATIBILITY_56 = ON
|
--echo # SHOW_COMPATIBILITY_56 = ON
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
set global show_compatibility_56 = on;
|
set global show_compatibility_56 = on;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 1-1
|
--echo # STEP 1-1
|
||||||
insert into test.sanity
|
insert into test.sanity
|
||||||
select "5.6", "I_S.GLOBAL_VARIABLES", variable_name
|
select "5.6", "I_S.GLOBAL_VARIABLES", variable_name
|
||||||
from information_schema.global_variables;
|
from information_schema.global_variables;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 1-2
|
--echo # STEP 1-2
|
||||||
insert into test.sanity
|
insert into test.sanity
|
||||||
select "5.6", "I_S.SESSION_VARIABLES", variable_name
|
select "5.6", "I_S.SESSION_VARIABLES", variable_name
|
||||||
from information_schema.session_variables;
|
from information_schema.session_variables;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 1-3
|
--echo # STEP 1-3
|
||||||
insert into test.sanity
|
insert into test.sanity
|
||||||
select "5.6", "P_S.GLOBAL_VARIABLES", variable_name
|
select "5.6", "P_S.GLOBAL_VARIABLES", variable_name
|
||||||
from performance_schema.global_variables;
|
from performance_schema.global_variables;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 1-4
|
--echo # STEP 1-4
|
||||||
insert into test.sanity
|
insert into test.sanity
|
||||||
select "5.6", "P_S.VARIABLES_BY_THREAD", variable_name
|
select "5.6", "P_S.VARIABLES_BY_THREAD", variable_name
|
||||||
from performance_schema.variables_by_thread
|
from performance_schema.variables_by_thread
|
||||||
where thread_id = @my_tid;
|
where thread_id = @my_tid;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 1-5
|
--echo # STEP 1-5
|
||||||
insert into test.sanity
|
insert into test.sanity
|
||||||
select "5.6", "P_S.SESSION_VARIABLES", variable_name
|
select "5.6", "P_S.SESSION_VARIABLES", variable_name
|
||||||
from performance_schema.session_variables;
|
from performance_schema.session_variables;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 1-6
|
--echo # STEP 1-6
|
||||||
insert into test.sanity
|
insert into test.sanity
|
||||||
select "5.6", "I_S.GLOBAL_STATUS", variable_name
|
select "5.6", "I_S.GLOBAL_STATUS", variable_name
|
||||||
from information_schema.global_status;
|
from information_schema.global_status;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 1-7
|
--echo # STEP 1-7
|
||||||
insert into test.sanity
|
insert into test.sanity
|
||||||
select "5.6", "I_S.SESSION_STATUS", variable_name
|
select "5.6", "I_S.SESSION_STATUS", variable_name
|
||||||
from information_schema.session_status;
|
from information_schema.session_status;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 1-8
|
--echo # STEP 1-8
|
||||||
insert into test.sanity
|
insert into test.sanity
|
||||||
select "5.6", "P_S.GLOBAL_STATUS", variable_name
|
select "5.6", "P_S.GLOBAL_STATUS", variable_name
|
||||||
from performance_schema.global_status;
|
from performance_schema.global_status;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 1-9
|
--echo # STEP 1-9
|
||||||
--echo # EMPTY, NO WARNINGS (not available in 5.6 mode)
|
--echo # EMPTY, NO WARNINGS (not available in 5.6 mode)
|
||||||
select *
|
select *
|
||||||
from performance_schema.status_by_thread;
|
from performance_schema.status_by_thread;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 1-10
|
--echo # STEP 1-10
|
||||||
insert into test.sanity
|
insert into test.sanity
|
||||||
select "5.6", "P_S.SESSION_STATUS", variable_name
|
select "5.6", "P_S.SESSION_STATUS", variable_name
|
||||||
from performance_schema.session_status;
|
from performance_schema.session_status;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 1-11
|
--echo # STEP 1-11
|
||||||
--echo # EMPTY, NO WARNINGS (not available in 5.6 mode)
|
--echo # EMPTY, NO WARNINGS (not available in 5.6 mode)
|
||||||
select *
|
select *
|
||||||
from performance_schema.status_by_account;
|
from performance_schema.status_by_account;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 1-12
|
--echo # STEP 1-12
|
||||||
--echo # EMPTY, NO WARNINGS (not available in 5.6 mode)
|
--echo # EMPTY, NO WARNINGS (not available in 5.6 mode)
|
||||||
select *
|
select *
|
||||||
from performance_schema.status_by_user;
|
from performance_schema.status_by_user;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 1-13
|
--echo # STEP 1-13
|
||||||
--echo # EMPTY, NO WARNINGS (not available in 5.6 mode)
|
--echo # EMPTY, NO WARNINGS (not available in 5.6 mode)
|
||||||
select *
|
select *
|
||||||
from performance_schema.status_by_host;
|
from performance_schema.status_by_host;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo SHOW_COMPATIBILITY_56 = OFF
|
--echo # SHOW_COMPATIBILITY_56 = OFF
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
set global show_compatibility_56 = off;
|
set global show_compatibility_56 = off;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 2-1
|
--echo # STEP 2-1
|
||||||
--echo # FAILS WITH ERROR
|
--echo # FAILS WITH ERROR
|
||||||
--error ER_FEATURE_DISABLED_SEE_DOC
|
--error ER_FEATURE_DISABLED_SEE_DOC
|
||||||
select *
|
select *
|
||||||
from information_schema.global_variables;
|
from information_schema.global_variables;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 2-2
|
--echo # STEP 2-2
|
||||||
--echo # FAILS WITH ERROR
|
--echo # FAILS WITH ERROR
|
||||||
--error ER_FEATURE_DISABLED_SEE_DOC
|
--error ER_FEATURE_DISABLED_SEE_DOC
|
||||||
select *
|
select *
|
||||||
from information_schema.session_variables;
|
from information_schema.session_variables;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 2-3
|
--echo # STEP 2-3
|
||||||
insert into test.sanity
|
insert into test.sanity
|
||||||
select "5.7", "P_S.GLOBAL_VARIABLES", variable_name
|
select "5.7", "P_S.GLOBAL_VARIABLES", variable_name
|
||||||
from performance_schema.global_variables;
|
from performance_schema.global_variables;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 2-4
|
--echo # STEP 2-4
|
||||||
insert into test.sanity
|
insert into test.sanity
|
||||||
select "5.7", "P_S.VARIABLES_BY_THREAD", variable_name
|
select "5.7", "P_S.VARIABLES_BY_THREAD", variable_name
|
||||||
from performance_schema.variables_by_thread
|
from performance_schema.variables_by_thread
|
||||||
where thread_id = @my_tid;
|
where thread_id = @my_tid;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 2-5
|
--echo # STEP 2-5
|
||||||
insert into test.sanity
|
insert into test.sanity
|
||||||
select "5.7", "P_S.SESSION_VARIABLES", variable_name
|
select "5.7", "P_S.SESSION_VARIABLES", variable_name
|
||||||
from performance_schema.session_variables;
|
from performance_schema.session_variables;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 2-6
|
--echo # STEP 2-6
|
||||||
--echo # FAILS WITH ERROR
|
--echo # FAILS WITH ERROR
|
||||||
--error ER_FEATURE_DISABLED_SEE_DOC
|
--error ER_FEATURE_DISABLED_SEE_DOC
|
||||||
select *
|
select *
|
||||||
from information_schema.global_status;
|
from information_schema.global_status;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 2-7
|
--echo # STEP 2-7
|
||||||
--echo # FAILS WITH ERROR
|
--echo # FAILS WITH ERROR
|
||||||
--error ER_FEATURE_DISABLED_SEE_DOC
|
--error ER_FEATURE_DISABLED_SEE_DOC
|
||||||
select *
|
select *
|
||||||
from information_schema.session_status;
|
from information_schema.session_status;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 2-8
|
--echo # STEP 2-8
|
||||||
insert into test.sanity
|
insert into test.sanity
|
||||||
select "5.7", "P_S.GLOBAL_STATUS", variable_name
|
select "5.7", "P_S.GLOBAL_STATUS", variable_name
|
||||||
from performance_schema.global_status;
|
from performance_schema.global_status;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 2-9
|
--echo # STEP 2-9
|
||||||
insert into test.sanity
|
insert into test.sanity
|
||||||
select "5.7", "P_S.STATUS_BY_THREAD", variable_name
|
select "5.7", "P_S.STATUS_BY_THREAD", variable_name
|
||||||
from performance_schema.status_by_thread
|
from performance_schema.status_by_thread
|
||||||
where thread_id = @my_tid;
|
where thread_id = @my_tid;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 2-10
|
--echo # STEP 2-10
|
||||||
insert into test.sanity
|
insert into test.sanity
|
||||||
select "5.7", "P_S.SESSION_STATUS", variable_name
|
select "5.7", "P_S.SESSION_STATUS", variable_name
|
||||||
from performance_schema.session_status;
|
from performance_schema.session_status;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 2-11
|
--echo # STEP 2-11
|
||||||
insert into test.sanity
|
insert into test.sanity
|
||||||
select "5.7", "P_S.STATUS_BY_ACCOUNT", variable_name
|
select "5.7", "P_S.STATUS_BY_ACCOUNT", variable_name
|
||||||
from performance_schema.status_by_account
|
from performance_schema.status_by_account
|
||||||
where `user` = @my_user and `host` = @my_host;
|
where `user` = @my_user and `host` = @my_host;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 2-12
|
--echo # STEP 2-12
|
||||||
insert into test.sanity
|
insert into test.sanity
|
||||||
select "5.7", "P_S.STATUS_BY_USER", variable_name
|
select "5.7", "P_S.STATUS_BY_USER", variable_name
|
||||||
from performance_schema.status_by_user
|
from performance_schema.status_by_user
|
||||||
where `user` = @my_user;
|
where `user` = @my_user;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 2-13
|
--echo # STEP 2-13
|
||||||
insert into test.sanity
|
insert into test.sanity
|
||||||
select "5.7", "P_S.STATUS_BY_HOST", variable_name
|
select "5.7", "P_S.STATUS_BY_HOST", variable_name
|
||||||
from performance_schema.status_by_host
|
from performance_schema.status_by_host
|
||||||
where `host` = @my_host;
|
where `host` = @my_host;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 2-14
|
--echo # STEP 2-14
|
||||||
--echo # Known global variables in 5.6 that should not display in session queries.
|
--echo # Known global variables in 5.6 that should not display in session queries.
|
||||||
--echo # These should be global-only system variables.
|
--echo # These should be global-only system variables.
|
||||||
@ -725,7 +725,7 @@ insert into test.sanity values
|
|||||||
;
|
;
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 2-15
|
--echo # STEP 2-15
|
||||||
--echo # Known global status in 5.6 that should not exist in session queries.
|
--echo # Known global status in 5.6 that should not exist in session queries.
|
||||||
--echo # These should be global-only status variables.
|
--echo # These should be global-only status variables.
|
||||||
@ -895,7 +895,7 @@ insert into test.sanity values
|
|||||||
;
|
;
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 2-15A
|
--echo # STEP 2-15A
|
||||||
--echo # COM counters appear in I_S.SESSION_STATUS, but not in P_S.SESSION_STATUS
|
--echo # COM counters appear in I_S.SESSION_STATUS, but not in P_S.SESSION_STATUS
|
||||||
--disable_query_log
|
--disable_query_log
|
||||||
@ -1051,7 +1051,7 @@ insert into test.sanity values
|
|||||||
|
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 2-15B
|
--echo # STEP 2-15B
|
||||||
--echo # These slave status counters appear in I_S.SESSION_STATUS, but not in P_S.SESSION_STATUS
|
--echo # These slave status counters appear in I_S.SESSION_STATUS, but not in P_S.SESSION_STATUS
|
||||||
insert into test.sanity values
|
insert into test.sanity values
|
||||||
@ -1062,7 +1062,7 @@ insert into test.sanity values
|
|||||||
("JUNK: SLAVE-ONLY", "I_S.SESSION_STATUS", "SLAVE_RUNNING")
|
("JUNK: SLAVE-ONLY", "I_S.SESSION_STATUS", "SLAVE_RUNNING")
|
||||||
;
|
;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 2-16
|
--echo # STEP 2-16
|
||||||
--echo # Known session-only status in 5.6 that should not exist in global queries.
|
--echo # Known session-only status in 5.6 that should not exist in global queries.
|
||||||
insert into test.sanity values
|
insert into test.sanity values
|
||||||
@ -1071,7 +1071,7 @@ insert into test.sanity values
|
|||||||
("JUNK: SESSION-ONLY", "I_S.GLOBAL_STATUS", "LAST_QUERY_PARTIAL_PLANS")
|
("JUNK: SESSION-ONLY", "I_S.GLOBAL_STATUS", "LAST_QUERY_PARTIAL_PLANS")
|
||||||
;
|
;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 2-16A
|
--echo # STEP 2-16A
|
||||||
--echo # COM counters appear in I_S.GLOBAL_STATUS but not in P_S.GLOBAL_STATUS
|
--echo # COM counters appear in I_S.GLOBAL_STATUS but not in P_S.GLOBAL_STATUS
|
||||||
--disable_query_log
|
--disable_query_log
|
||||||
@ -1227,7 +1227,7 @@ insert into test.sanity values
|
|||||||
|
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 2-16B
|
--echo # STEP 2-16B
|
||||||
--echo # These slave status counters appear in I_S.GLOBAL_STATUS, but not in P_S.GLOBAL_STATUS
|
--echo # These slave status counters appear in I_S.GLOBAL_STATUS, but not in P_S.GLOBAL_STATUS
|
||||||
insert into test.sanity values
|
insert into test.sanity values
|
||||||
@ -1238,7 +1238,7 @@ insert into test.sanity values
|
|||||||
("JUNK: SLAVE-ONLY", "I_S.GLOBAL_STATUS", "SLAVE_RUNNING")
|
("JUNK: SLAVE-ONLY", "I_S.GLOBAL_STATUS", "SLAVE_RUNNING")
|
||||||
;
|
;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 2-17
|
--echo # STEP 2-17
|
||||||
--echo # Status variables that should not exist in queries that aggregate across threads.
|
--echo # Status variables that should not exist in queries that aggregate across threads.
|
||||||
--echo # Criteria: Session-only OR non-aggregatable.
|
--echo # Criteria: Session-only OR non-aggregatable.
|
||||||
@ -1263,12 +1263,12 @@ insert into test.sanity values
|
|||||||
#Debug
|
#Debug
|
||||||
#select * from test.sanity order by show_mode, source, variable_name;
|
#select * from test.sanity order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 1A
|
--echo # TEST 1A
|
||||||
--echo Present in 5.6 P_S.GLOBAL_VARIABLES (1-3)
|
--echo # Present in 5.6 P_S.GLOBAL_VARIABLES (1-3)
|
||||||
--echo Missing in 5.6 I_S.GLOBAL_VARIABLES (1-1)
|
--echo # Missing in 5.6 I_S.GLOBAL_VARIABLES (1-1)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.6"
|
where show_mode = "5.6"
|
||||||
and source = "P_S.GLOBAL_VARIABLES"
|
and source = "P_S.GLOBAL_VARIABLES"
|
||||||
@ -1278,12 +1278,12 @@ select * from test.sanity
|
|||||||
and source = "I_S.GLOBAL_VARIABLES")
|
and source = "I_S.GLOBAL_VARIABLES")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 1B
|
--echo # TEST 1B
|
||||||
--echo Present in 5.7 P_S.GLOBAL_VARIABLES (2-3)
|
--echo # Present in 5.7 P_S.GLOBAL_VARIABLES (2-3)
|
||||||
--echo Missing in 5.6 I_S.GLOBAL_VARIABLES (1-1)
|
--echo # Missing in 5.6 I_S.GLOBAL_VARIABLES (1-1)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.7"
|
where show_mode = "5.7"
|
||||||
and source = "P_S.GLOBAL_VARIABLES"
|
and source = "P_S.GLOBAL_VARIABLES"
|
||||||
@ -1293,12 +1293,12 @@ select * from test.sanity
|
|||||||
and source = "I_S.GLOBAL_VARIABLES")
|
and source = "I_S.GLOBAL_VARIABLES")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 2A
|
--echo # TEST 2A
|
||||||
--echo Present in 5.6 I_S.GLOBAL_VARIABLES (1-1)
|
--echo # Present in 5.6 I_S.GLOBAL_VARIABLES (1-1)
|
||||||
--echo Missing in 5.6 P_S.GLOBAL_VARIABLES (1-3)
|
--echo # Missing in 5.6 P_S.GLOBAL_VARIABLES (1-3)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.6"
|
where show_mode = "5.6"
|
||||||
and source = "I_S.GLOBAL_VARIABLES"
|
and source = "I_S.GLOBAL_VARIABLES"
|
||||||
@ -1308,12 +1308,12 @@ select * from test.sanity
|
|||||||
and source = "P_S.GLOBAL_VARIABLES")
|
and source = "P_S.GLOBAL_VARIABLES")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 2B
|
--echo # TEST 2B
|
||||||
--echo Present in 5.6 I_S.GLOBAL_VARIABLES (1-1)
|
--echo # Present in 5.6 I_S.GLOBAL_VARIABLES (1-1)
|
||||||
--echo Missing in 5.7 P_S.GLOBAL_VARIABLES (2-3)
|
--echo # Missing in 5.7 P_S.GLOBAL_VARIABLES (2-3)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.6"
|
where show_mode = "5.6"
|
||||||
and source = "I_S.GLOBAL_VARIABLES"
|
and source = "I_S.GLOBAL_VARIABLES"
|
||||||
@ -1323,12 +1323,12 @@ select * from test.sanity
|
|||||||
and source = "P_S.GLOBAL_VARIABLES")
|
and source = "P_S.GLOBAL_VARIABLES")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 3A
|
--echo # TEST 3A
|
||||||
--echo Present in 5.6 P_S.SESSION_VARIABLES (1-5)
|
--echo # Present in 5.6 P_S.SESSION_VARIABLES (1-5)
|
||||||
--echo Missing in 5.6 I_S.SESSION_VARIABLES (1-2)
|
--echo # Missing in 5.6 I_S.SESSION_VARIABLES (1-2)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.6"
|
where show_mode = "5.6"
|
||||||
and source = "P_S.SESSION_VARIABLES"
|
and source = "P_S.SESSION_VARIABLES"
|
||||||
@ -1338,12 +1338,12 @@ select * from test.sanity
|
|||||||
and source = "I_S.SESSION_VARIABLES")
|
and source = "I_S.SESSION_VARIABLES")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 3B
|
--echo # TEST 3B
|
||||||
--echo Present in 5.7 P_S.SESSION_VARIABLES (2-5)
|
--echo # Present in 5.7 P_S.SESSION_VARIABLES (2-5)
|
||||||
--echo Missing in 5.6 I_S.SESSION_VARIABLES (1-2)
|
--echo # Missing in 5.6 I_S.SESSION_VARIABLES (1-2)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.7"
|
where show_mode = "5.7"
|
||||||
and source = "P_S.SESSION_VARIABLES"
|
and source = "P_S.SESSION_VARIABLES"
|
||||||
@ -1353,12 +1353,12 @@ select * from test.sanity
|
|||||||
and source = "I_S.SESSION_VARIABLES")
|
and source = "I_S.SESSION_VARIABLES")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 4A
|
--echo # TEST 4A
|
||||||
--echo Present in 5.6 I_S.SESSION_VARIABLES (1-2)
|
--echo # Present in 5.6 I_S.SESSION_VARIABLES (1-2)
|
||||||
--echo Missing in 5.6 P_S.SESSION_VARIABLES (1-5)
|
--echo # Missing in 5.6 P_S.SESSION_VARIABLES (1-5)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.6"
|
where show_mode = "5.6"
|
||||||
and source = "I_S.SESSION_VARIABLES"
|
and source = "I_S.SESSION_VARIABLES"
|
||||||
@ -1368,12 +1368,12 @@ select * from test.sanity
|
|||||||
and source = "P_S.SESSION_VARIABLES")
|
and source = "P_S.SESSION_VARIABLES")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 4B
|
--echo # TEST 4B
|
||||||
--echo Present in 5.6 I_S.SESSION_VARIABLES (1-2)
|
--echo # Present in 5.6 I_S.SESSION_VARIABLES (1-2)
|
||||||
--echo Missing in 5.7 P_S.SESSION_VARIABLES (2-5)
|
--echo # Missing in 5.7 P_S.SESSION_VARIABLES (2-5)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.6"
|
where show_mode = "5.6"
|
||||||
and source = "I_S.SESSION_VARIABLES"
|
and source = "I_S.SESSION_VARIABLES"
|
||||||
@ -1383,12 +1383,12 @@ select * from test.sanity
|
|||||||
and source = "P_S.SESSION_VARIABLES")
|
and source = "P_S.SESSION_VARIABLES")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 5A
|
--echo # TEST 5A
|
||||||
--echo Present in 5.6 P_S.VARIABLES_BY_THREAD (1-4)
|
--echo # Present in 5.6 P_S.VARIABLES_BY_THREAD (1-4)
|
||||||
--echo Missing in 5.6 I_S.SESSION_VARIABLES (1-2)
|
--echo # Missing in 5.6 I_S.SESSION_VARIABLES (1-2)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.6"
|
where show_mode = "5.6"
|
||||||
and source = "P_S.VARIABLES_BY_THREAD"
|
and source = "P_S.VARIABLES_BY_THREAD"
|
||||||
@ -1398,12 +1398,12 @@ select * from test.sanity
|
|||||||
and source = "I_S.SESSION_VARIABLES")
|
and source = "I_S.SESSION_VARIABLES")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 5B
|
--echo # TEST 5B
|
||||||
--echo Present in 5.7 P_S.VARIABLES_BY_THREAD (2-4)
|
--echo # Present in 5.7 P_S.VARIABLES_BY_THREAD (2-4)
|
||||||
--echo Missing in 5.6 I_S.SESSION_VARIABLES (1-2)
|
--echo # Missing in 5.6 I_S.SESSION_VARIABLES (1-2)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.7"
|
where show_mode = "5.7"
|
||||||
and source = "P_S.VARIABLES_BY_THREAD"
|
and source = "P_S.VARIABLES_BY_THREAD"
|
||||||
@ -1413,13 +1413,13 @@ select * from test.sanity
|
|||||||
and source = "I_S.SESSION_VARIABLES")
|
and source = "I_S.SESSION_VARIABLES")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 5C
|
--echo # TEST 5C
|
||||||
--echo Present in 5.6 I_S.SESSION_VARIABLES (1-2)
|
--echo # Present in 5.6 I_S.SESSION_VARIABLES (1-2)
|
||||||
--echo Missing in 5.6 P_S.VARIABLES_BY_THREAD (1-4)
|
--echo # Missing in 5.6 P_S.VARIABLES_BY_THREAD (1-4)
|
||||||
--echo EXPECT NOTHING BESIDE KNOWN GLOBAL VARIABLES (2-14)
|
--echo # EXPECT NOTHING BESIDE KNOWN GLOBAL VARIABLES (2-14)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.6"
|
where show_mode = "5.6"
|
||||||
and source = "I_S.SESSION_VARIABLES"
|
and source = "I_S.SESSION_VARIABLES"
|
||||||
@ -1433,13 +1433,13 @@ select * from test.sanity
|
|||||||
and source = "I_S.SESSION_VARIABLES")
|
and source = "I_S.SESSION_VARIABLES")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 5D
|
--echo # TEST 5D
|
||||||
--echo Present in 5.6 I_S.SESSION_VARIABLES (1-2)
|
--echo # Present in 5.6 I_S.SESSION_VARIABLES (1-2)
|
||||||
--echo Missing in 5.7 P_S.VARIABLES_BY_THREAD (2-5)
|
--echo # Missing in 5.7 P_S.VARIABLES_BY_THREAD (2-5)
|
||||||
--echo EXPECT NOTHING BESIDE KNOWN GLOBAL VARIABLES (2-14)
|
--echo # EXPECT NOTHING BESIDE KNOWN GLOBAL VARIABLES (2-14)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.6"
|
where show_mode = "5.6"
|
||||||
and source = "I_S.SESSION_VARIABLES"
|
and source = "I_S.SESSION_VARIABLES"
|
||||||
@ -1453,12 +1453,12 @@ select * from test.sanity
|
|||||||
and source = "I_S.SESSION_VARIABLES")
|
and source = "I_S.SESSION_VARIABLES")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 5E
|
--echo # TEST 5E
|
||||||
--echo KNOWN GLOBAL VARIABLES (2-14)
|
--echo # KNOWN GLOBAL VARIABLES (2-14)
|
||||||
--echo Expect missing in 5.6 P_S.VARIABLES_BY_THREAD (1-4)
|
--echo # Expect missing in 5.6 P_S.VARIABLES_BY_THREAD (1-4)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "JUNK: GLOBAL-ONLY"
|
where show_mode = "JUNK: GLOBAL-ONLY"
|
||||||
and source = "I_S.SESSION_VARIABLES"
|
and source = "I_S.SESSION_VARIABLES"
|
||||||
@ -1468,12 +1468,12 @@ select * from test.sanity
|
|||||||
and source = "P_S.VARIABLES_BY_THREAD")
|
and source = "P_S.VARIABLES_BY_THREAD")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 5F
|
--echo # TEST 5F
|
||||||
--echo KNOWN GLOBAL VARIABLES (2-14)
|
--echo # KNOWN GLOBAL VARIABLES (2-14)
|
||||||
--echo Expect missing in 5.7 P_S.VARIABLES_BY_THREAD (2-5)
|
--echo # Expect missing in 5.7 P_S.VARIABLES_BY_THREAD (2-5)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "JUNK: GLOBAL-ONLY"
|
where show_mode = "JUNK: GLOBAL-ONLY"
|
||||||
and source = "I_S.SESSION_VARIABLES"
|
and source = "I_S.SESSION_VARIABLES"
|
||||||
@ -1483,13 +1483,13 @@ select * from test.sanity
|
|||||||
and source = "P_S.VARIABLES_BY_THREAD")
|
and source = "P_S.VARIABLES_BY_THREAD")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 6A
|
--echo # TEST 6A
|
||||||
--echo Present in 5.7 P_S.GLOBAL_STATUS (2-8)
|
--echo # Present in 5.7 P_S.GLOBAL_STATUS (2-8)
|
||||||
--echo Missing in 5.6 I_S.GLOBAL_STATUS (1-6)
|
--echo # Missing in 5.6 I_S.GLOBAL_STATUS (1-6)
|
||||||
--echo EXPECT NOTHING
|
--echo # EXPECT NOTHING
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.7"
|
where show_mode = "5.7"
|
||||||
and source = "P_S.GLOBAL_STATUS"
|
and source = "P_S.GLOBAL_STATUS"
|
||||||
@ -1499,13 +1499,13 @@ select * from test.sanity
|
|||||||
and source = "I_S.GLOBAL_STATUS")
|
and source = "I_S.GLOBAL_STATUS")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 6B
|
--echo # TEST 6B
|
||||||
--echo Present in 5.7 P_S.GLOBAL_STATUS (2-8)
|
--echo # Present in 5.7 P_S.GLOBAL_STATUS (2-8)
|
||||||
--echo Missing in 5.6 P_S.GLOBAL_STATUS (1-8)
|
--echo # Missing in 5.6 P_S.GLOBAL_STATUS (1-8)
|
||||||
--echo EXPECT NOTHING
|
--echo # EXPECT NOTHING
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.7"
|
where show_mode = "5.7"
|
||||||
and source = "P_S.GLOBAL_STATUS"
|
and source = "P_S.GLOBAL_STATUS"
|
||||||
@ -1515,13 +1515,13 @@ select * from test.sanity
|
|||||||
and source = "P_S.GLOBAL_STATUS")
|
and source = "P_S.GLOBAL_STATUS")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 6C
|
--echo # TEST 6C
|
||||||
--echo Present in 5.6 P_S.GLOBAL_STATUS (1-8)
|
--echo # Present in 5.6 P_S.GLOBAL_STATUS (1-8)
|
||||||
--echo Missing in 5.7 P_S.GLOBAL_STATUS (2-8)
|
--echo # Missing in 5.7 P_S.GLOBAL_STATUS (2-8)
|
||||||
--echo EXPECT NOTHING
|
--echo # EXPECT NOTHING
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.6"
|
where show_mode = "5.6"
|
||||||
and source = "P_S.GLOBAL_STATUS"
|
and source = "P_S.GLOBAL_STATUS"
|
||||||
@ -1531,13 +1531,13 @@ select * from test.sanity
|
|||||||
and source = "P_S.GLOBAL_STATUS")
|
and source = "P_S.GLOBAL_STATUS")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 7
|
--echo # TEST 7
|
||||||
--echo Present in 5.6 I_S.GLOBAL_STATUS (1-6)
|
--echo # Present in 5.6 I_S.GLOBAL_STATUS (1-6)
|
||||||
--echo Missing in 5.7 P_S.GLOBAL_STATUS (2-8)
|
--echo # Missing in 5.7 P_S.GLOBAL_STATUS (2-8)
|
||||||
--echo EXPECT NOTHING AFTER REMOVING KNOWN SESSION-ONLY, COM COUNTERS AND SLAVE-ONLY (2-16 & 2-16A & 2-16B)
|
--echo # EXPECT NOTHING AFTER REMOVING KNOWN SESSION-ONLY, COM COUNTERS AND SLAVE-ONLY (2-16 & 2-16A & 2-16B)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.6"
|
where show_mode = "5.6"
|
||||||
and source = "I_S.GLOBAL_STATUS"
|
and source = "I_S.GLOBAL_STATUS"
|
||||||
@ -1551,15 +1551,15 @@ select * from test.sanity
|
|||||||
and source = "P_S.GLOBAL_STATUS")
|
and source = "P_S.GLOBAL_STATUS")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 8
|
--echo # TEST 8
|
||||||
--echo KNOWN SESSION-ONLY (2-16)
|
--echo # KNOWN SESSION-ONLY (2-16)
|
||||||
--echo KNOWN COM COUNTERS (2-16A)
|
--echo # KNOWN COM COUNTERS (2-16A)
|
||||||
--echo KNOWN SLAVE-ONLY (2-16B)
|
--echo # KNOWN SLAVE-ONLY (2-16B)
|
||||||
--echo Status variables that should NOT be present in 5.7 P_S.GLOBAL_STATUS (2-8)
|
--echo # Status variables that should NOT be present in 5.7 P_S.GLOBAL_STATUS (2-8)
|
||||||
--echo EXPECT NOTHING
|
--echo # EXPECT NOTHING
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.7"
|
where show_mode = "5.7"
|
||||||
and source = "P_S.GLOBAL_STATUS"
|
and source = "P_S.GLOBAL_STATUS"
|
||||||
@ -1569,13 +1569,13 @@ select * from test.sanity
|
|||||||
and source = "I_S.GLOBAL_STATUS")
|
and source = "I_S.GLOBAL_STATUS")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 9A
|
--echo # TEST 9A
|
||||||
--echo Present in 5.7 P_S.SESSION_STATUS (2-10)
|
--echo # Present in 5.7 P_S.SESSION_STATUS (2-10)
|
||||||
--echo Missing in 5.6 I_S.SESSION_STATUS (1-7)
|
--echo # Missing in 5.6 I_S.SESSION_STATUS (1-7)
|
||||||
--echo EXPECT NOTHING
|
--echo # EXPECT NOTHING
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.7"
|
where show_mode = "5.7"
|
||||||
and source = "P_S.SESSION_STATUS"
|
and source = "P_S.SESSION_STATUS"
|
||||||
@ -1585,13 +1585,13 @@ select * from test.sanity
|
|||||||
and source = "I_S.SESSION_STATUS")
|
and source = "I_S.SESSION_STATUS")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 9B
|
--echo # TEST 9B
|
||||||
--echo Present in 5.7 P_S.SESSION_STATUS (2-10)
|
--echo # Present in 5.7 P_S.SESSION_STATUS (2-10)
|
||||||
--echo Missing in 5.6 P_S.SESSION_STATUS (1-10)
|
--echo # Missing in 5.6 P_S.SESSION_STATUS (1-10)
|
||||||
--echo EXPECT NOTHING
|
--echo # EXPECT NOTHING
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.7"
|
where show_mode = "5.7"
|
||||||
and source = "P_S.SESSION_STATUS"
|
and source = "P_S.SESSION_STATUS"
|
||||||
@ -1601,13 +1601,13 @@ select * from test.sanity
|
|||||||
and source = "P_S.SESSION_STATUS")
|
and source = "P_S.SESSION_STATUS")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 9C
|
--echo # TEST 9C
|
||||||
--echo Present in 5.6 P_S.SESSION_STATUS (1-10)
|
--echo # Present in 5.6 P_S.SESSION_STATUS (1-10)
|
||||||
--echo Missing in 5.7 P_S.SESSION_STATUS (2-10)
|
--echo # Missing in 5.7 P_S.SESSION_STATUS (2-10)
|
||||||
--echo EXPECT NOTHING
|
--echo # EXPECT NOTHING
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.6"
|
where show_mode = "5.6"
|
||||||
and source = "P_S.SESSION_STATUS"
|
and source = "P_S.SESSION_STATUS"
|
||||||
@ -1617,13 +1617,13 @@ select * from test.sanity
|
|||||||
and source = "P_S.SESSION_STATUS")
|
and source = "P_S.SESSION_STATUS")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 10
|
--echo # TEST 10
|
||||||
--echo Present in 5.6 I_S.SESSION_STATUS (1-7)
|
--echo # Present in 5.6 I_S.SESSION_STATUS (1-7)
|
||||||
--echo Missing in 5.7 P_S.SESSION_STATUS (2-10)
|
--echo # Missing in 5.7 P_S.SESSION_STATUS (2-10)
|
||||||
--echo EXPECT NOTHING AFTER REMOVING KNOWN COM COUNTERS AND SLAVE-ONLY (2-15A & 2-15B)
|
--echo # EXPECT NOTHING AFTER REMOVING KNOWN COM COUNTERS AND SLAVE-ONLY (2-15A & 2-15B)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.6"
|
where show_mode = "5.6"
|
||||||
and source = "I_S.SESSION_STATUS"
|
and source = "I_S.SESSION_STATUS"
|
||||||
@ -1637,14 +1637,14 @@ select * from test.sanity
|
|||||||
and source = "P_S.SESSION_STATUS")
|
and source = "P_S.SESSION_STATUS")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 11
|
--echo # TEST 11
|
||||||
--echo KNOWN COM COUNTERS (2-15A)
|
--echo # KNOWN COM COUNTERS (2-15A)
|
||||||
--echo KNOWN SLAVE-ONLY (2-15B)
|
--echo # KNOWN SLAVE-ONLY (2-15B)
|
||||||
--echo Status variables that should NOT be present in 5.7 P_S.SESSION_STATUS (2-10)
|
--echo # Status variables that should NOT be present in 5.7 P_S.SESSION_STATUS (2-10)
|
||||||
--echo EXPECT NOTHING
|
--echo # EXPECT NOTHING
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.7"
|
where show_mode = "5.7"
|
||||||
and source = "P_S.SESSION_STATUS"
|
and source = "P_S.SESSION_STATUS"
|
||||||
@ -1654,13 +1654,13 @@ select * from test.sanity
|
|||||||
and source = "I_S.SESSION_STATUS")
|
and source = "I_S.SESSION_STATUS")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 12
|
--echo # TEST 12
|
||||||
--echo Present in 5.7 P_S.SESSION_STATUS (2-10)
|
--echo # Present in 5.7 P_S.SESSION_STATUS (2-10)
|
||||||
--echo Missing in 5.7 P_S.STATUS_BY_THREAD
|
--echo # Missing in 5.7 P_S.STATUS_BY_THREAD
|
||||||
--echo EXPECT NOTHING AFTER REMOVING KNOWN GLOBAL-ONLY (2-15)
|
--echo # EXPECT NOTHING AFTER REMOVING KNOWN GLOBAL-ONLY (2-15)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.7"
|
where show_mode = "5.7"
|
||||||
and source = "P_S.SESSION_STATUS"
|
and source = "P_S.SESSION_STATUS"
|
||||||
@ -1674,13 +1674,13 @@ select * from test.sanity
|
|||||||
and source = "I_S.SESSION_STATUS")
|
and source = "I_S.SESSION_STATUS")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 13
|
--echo # TEST 13
|
||||||
--echo Present in 5.7 P_S.STATUS_BY_THREAD
|
--echo # Present in 5.7 P_S.STATUS_BY_THREAD
|
||||||
--echo Missing in 5.7 P_S.SESSION_STATUS (2-10)
|
--echo # Missing in 5.7 P_S.SESSION_STATUS (2-10)
|
||||||
--echo EXPECT NOTHING
|
--echo # EXPECT NOTHING
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.7"
|
where show_mode = "5.7"
|
||||||
and source = "P_S.STATUS_BY_THREAD"
|
and source = "P_S.STATUS_BY_THREAD"
|
||||||
@ -1690,15 +1690,15 @@ select * from test.sanity
|
|||||||
and source = "P_S.SESSION_STATUS")
|
and source = "P_S.SESSION_STATUS")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 14
|
--echo # TEST 14
|
||||||
--echo Present in 5.7 P_S.SESSION_STATUS (2-10)
|
--echo # Present in 5.7 P_S.SESSION_STATUS (2-10)
|
||||||
--echo Missing in 5.7 P_S.STATUS_BY_ACCOUNT
|
--echo # Missing in 5.7 P_S.STATUS_BY_ACCOUNT
|
||||||
--echo EXPECT NOTHING AFTER REMOVING
|
--echo # EXPECT NOTHING AFTER REMOVING
|
||||||
--echo - KNOWN GLOBAL-ONLY (2-15)
|
--echo # - KNOWN GLOBAL-ONLY (2-15)
|
||||||
--echo - STATUS VARS THAT CAN'T BE AGGREGATED (2-17)
|
--echo # - STATUS VARS THAT CAN'T BE AGGREGATED (2-17)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.7"
|
where show_mode = "5.7"
|
||||||
and source = "P_S.SESSION_STATUS"
|
and source = "P_S.SESSION_STATUS"
|
||||||
@ -1716,13 +1716,13 @@ select * from test.sanity
|
|||||||
and source = "P_S.STATUS_BY_ACCOUNT")
|
and source = "P_S.STATUS_BY_ACCOUNT")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 15
|
--echo # TEST 15
|
||||||
--echo Present in 5.7 P_S.STATUS_BY_ACCOUNT
|
--echo # Present in 5.7 P_S.STATUS_BY_ACCOUNT
|
||||||
--echo Missing in 5.7 P_S.SESSION_STATUS (2-10)
|
--echo # Missing in 5.7 P_S.SESSION_STATUS (2-10)
|
||||||
--echo EXPECT NOTHING
|
--echo # EXPECT NOTHING
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.7"
|
where show_mode = "5.7"
|
||||||
and source = "P_S.STATUS_BY_ACCOUNT"
|
and source = "P_S.STATUS_BY_ACCOUNT"
|
||||||
@ -1732,12 +1732,12 @@ select * from test.sanity
|
|||||||
and source = "P_S.SESSION_STATUS")
|
and source = "P_S.SESSION_STATUS")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 16
|
--echo # TEST 16
|
||||||
--echo KNOWN STATUS VARS THAT CAN'T BE AGGREGATED (2-17)
|
--echo # KNOWN STATUS VARS THAT CAN'T BE AGGREGATED (2-17)
|
||||||
--echo Status variables that should NOT be present in 5.7 P_S.STATUS_BY_ACCOUNT
|
--echo # Status variables that should NOT be present in 5.7 P_S.STATUS_BY_ACCOUNT
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from performance_schema.status_by_account
|
select * from performance_schema.status_by_account
|
||||||
where upper(variable_name) in (
|
where upper(variable_name) in (
|
||||||
select upper(variable_name) from test.sanity
|
select upper(variable_name) from test.sanity
|
||||||
@ -1745,15 +1745,15 @@ select * from performance_schema.status_by_account
|
|||||||
and source = "NO AGGREGATE")
|
and source = "NO AGGREGATE")
|
||||||
order by variable_name;
|
order by variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 17
|
--echo # TEST 17
|
||||||
--echo Present in 5.7 P_S.SESSION_STATUS (2-10)
|
--echo # Present in 5.7 P_S.SESSION_STATUS (2-10)
|
||||||
--echo Missing in 5.7 P_S.STATUS_BY_USER
|
--echo # Missing in 5.7 P_S.STATUS_BY_USER
|
||||||
--echo EXPECT NOTHING AFTER REMOVING
|
--echo # EXPECT NOTHING AFTER REMOVING
|
||||||
--echo - KNOWN GLOBAL-ONLY (2-15)
|
--echo # - KNOWN GLOBAL-ONLY (2-15)
|
||||||
--echo - STATUS VARS THAT CAN'T BE AGGREGATED (2-17)
|
--echo # - STATUS VARS THAT CAN'T BE AGGREGATED (2-17)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.7"
|
where show_mode = "5.7"
|
||||||
and source = "P_S.SESSION_STATUS"
|
and source = "P_S.SESSION_STATUS"
|
||||||
@ -1771,12 +1771,12 @@ select * from test.sanity
|
|||||||
and source = "P_S.STATUS_BY_USER")
|
and source = "P_S.STATUS_BY_USER")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 18
|
--echo # TEST 18
|
||||||
--echo Present in 5.7 P_S.STATUS_BY_USER
|
--echo # Present in 5.7 P_S.STATUS_BY_USER
|
||||||
--echo Missing in 5.7 P_S.SESSION_STATUS (2-10)
|
--echo # Missing in 5.7 P_S.SESSION_STATUS (2-10)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.7"
|
where show_mode = "5.7"
|
||||||
and source = "P_S.STATUS_BY_USER"
|
and source = "P_S.STATUS_BY_USER"
|
||||||
@ -1786,12 +1786,12 @@ select * from test.sanity
|
|||||||
and source = "P_S.SESSION_STATUS")
|
and source = "P_S.SESSION_STATUS")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 19
|
--echo # TEST 19
|
||||||
--echo KNOWN STATUS VARS THAT CAN'T BE AGGREGATED (2-17)
|
--echo # KNOWN STATUS VARS THAT CAN'T BE AGGREGATED (2-17)
|
||||||
--echo Status variables that should NOT be present in 5.7 P_S.STATUS_BY_USER
|
--echo # Status variables that should NOT be present in 5.7 P_S.STATUS_BY_USER
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from performance_schema.status_by_user
|
select * from performance_schema.status_by_user
|
||||||
where upper(variable_name) in (
|
where upper(variable_name) in (
|
||||||
select upper(variable_name) from test.sanity
|
select upper(variable_name) from test.sanity
|
||||||
@ -1799,15 +1799,15 @@ select * from performance_schema.status_by_user
|
|||||||
and source = "NO AGGREGATE")
|
and source = "NO AGGREGATE")
|
||||||
order by variable_name;
|
order by variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 20
|
--echo # TEST 20
|
||||||
--echo Present in 5.7 P_S.SESSION_STATUS (2-10)
|
--echo # Present in 5.7 P_S.SESSION_STATUS (2-10)
|
||||||
--echo Missing in 5.7 P_S.STATUS_BY_HOST
|
--echo # Missing in 5.7 P_S.STATUS_BY_HOST
|
||||||
--echo EXPECT NOTHING AFTER REMOVING
|
--echo # EXPECT NOTHING AFTER REMOVING
|
||||||
--echo - KNOWN GLOBAL-ONLY (2-15)
|
--echo # - KNOWN GLOBAL-ONLY (2-15)
|
||||||
--echo - STATUS VARS THAT CAN'T BE AGGREGATED (2-17)
|
--echo # - STATUS VARS THAT CAN'T BE AGGREGATED (2-17)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.7"
|
where show_mode = "5.7"
|
||||||
and source = "P_S.SESSION_STATUS"
|
and source = "P_S.SESSION_STATUS"
|
||||||
@ -1825,12 +1825,12 @@ select * from test.sanity
|
|||||||
and source = "P_S.STATUS_BY_HOST")
|
and source = "P_S.STATUS_BY_HOST")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 21
|
--echo # TEST 21
|
||||||
--echo Present in 5.7 P_S.STATUS_BY_HOST
|
--echo # Present in 5.7 P_S.STATUS_BY_HOST
|
||||||
--echo Missing in 5.7 P_S.SESSION_STATUS (2-10)
|
--echo # Missing in 5.7 P_S.SESSION_STATUS (2-10)
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from test.sanity
|
select * from test.sanity
|
||||||
where show_mode = "5.7"
|
where show_mode = "5.7"
|
||||||
and source = "P_S.STATUS_BY_HOST"
|
and source = "P_S.STATUS_BY_HOST"
|
||||||
@ -1840,12 +1840,12 @@ select * from test.sanity
|
|||||||
and source = "P_S.SESSION_STATUS")
|
and source = "P_S.SESSION_STATUS")
|
||||||
order by show_mode, source, variable_name;
|
order by show_mode, source, variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo TEST 22
|
--echo # TEST 22
|
||||||
--echo KNOWN STATUS VARS THAT CAN'T BE AGGREGATED (2-17)
|
--echo # KNOWN STATUS VARS THAT CAN'T BE AGGREGATED (2-17)
|
||||||
--echo Status variables that should NOT be present in 5.7 P_S.STATUS_BY_HOST
|
--echo # Status variables that should NOT be present in 5.7 P_S.STATUS_BY_HOST
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
select * from performance_schema.status_by_host
|
select * from performance_schema.status_by_host
|
||||||
where upper(variable_name) in (
|
where upper(variable_name) in (
|
||||||
select upper(variable_name) from test.sanity
|
select upper(variable_name) from test.sanity
|
||||||
@ -1853,10 +1853,10 @@ select * from performance_schema.status_by_host
|
|||||||
and source = "NO AGGREGATE")
|
and source = "NO AGGREGATE")
|
||||||
order by variable_name;
|
order by variable_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo CLEAN UP
|
--echo # CLEAN UP
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
set @@global.show_compatibility_56 = @show_compatibility_56_save;
|
set @@global.show_compatibility_56 = @show_compatibility_56_save;
|
||||||
drop table test.sanity;
|
drop table test.sanity;
|
||||||
|
|
||||||
|
@ -57,9 +57,9 @@ let $ip_localhost=
|
|||||||
--echo # 1.0 Get the default connection object_instance_begin, thread id and verify
|
--echo # 1.0 Get the default connection object_instance_begin, thread id and verify
|
||||||
--echo # the expected number of client connections.
|
--echo # the expected number of client connections.
|
||||||
--echo #==============================================================================
|
--echo #==============================================================================
|
||||||
--echo
|
--echo #
|
||||||
--echo # 1.1 Confirm only one client connection
|
--echo # 1.1 Confirm only one client connection
|
||||||
--echo
|
--echo #
|
||||||
eval $count_client_connections;
|
eval $count_client_connections;
|
||||||
|
|
||||||
if (`SELECT @my_client_connections != 1`)
|
if (`SELECT @my_client_connections != 1`)
|
||||||
@ -70,15 +70,15 @@ if (`SELECT @my_client_connections != 1`)
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 1.2 Get the default THREAD_ID;
|
--echo # 1.2 Get the default THREAD_ID;
|
||||||
--echo
|
--echo #
|
||||||
eval $get_thread_id;
|
eval $get_thread_id;
|
||||||
let $default_thread_id= `SELECT @my_thread_id`;
|
let $default_thread_id= `SELECT @my_thread_id`;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 1.3 Get the default OBJECT_INSTANCE_BEGIN
|
--echo # 1.3 Get the default OBJECT_INSTANCE_BEGIN
|
||||||
--echo
|
--echo #
|
||||||
eval $get_object_instance_begin;
|
eval $get_object_instance_begin;
|
||||||
let $default_object_instance_begin= `SELECT @my_object_instance_begin`;
|
let $default_object_instance_begin= `SELECT @my_object_instance_begin`;
|
||||||
--disable_query_log
|
--disable_query_log
|
||||||
@ -99,19 +99,19 @@ if ($my_socket_debug)
|
|||||||
--connect (con1,$my_localhost,root,,test,,$MASTER_MYPORT)
|
--connect (con1,$my_localhost,root,,test,,$MASTER_MYPORT)
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 2.1 Get the connection thread id
|
--echo # 2.1 Get the connection thread id
|
||||||
--echo
|
--echo #
|
||||||
eval $get_thread_id;
|
eval $get_thread_id;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 2.2 Get the connection object instance begin
|
--echo # 2.2 Get the connection object instance begin
|
||||||
--echo
|
--echo #
|
||||||
eval $get_object_instance_begin;
|
eval $get_object_instance_begin;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 2.3 Get the connection port
|
--echo # 2.3 Get the connection port
|
||||||
--echo
|
--echo #
|
||||||
eval $get_port;
|
eval $get_port;
|
||||||
|
|
||||||
--disable_query_log
|
--disable_query_log
|
||||||
@ -134,9 +134,9 @@ if ($my_socket_debug)
|
|||||||
--echo # Con1 name2 = $con1_name2
|
--echo # Con1 name2 = $con1_name2
|
||||||
}
|
}
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 2.4 Verify that the connection is 127.0.0.1 or ::1
|
--echo # 2.4 Verify that the connection is 127.0.0.1 or ::1
|
||||||
--echo
|
--echo #
|
||||||
eval SELECT COUNT(*) = 1 AS 'Expect 1'
|
eval SELECT COUNT(*) = 1 AS 'Expect 1'
|
||||||
FROM performance_schema.socket_instances
|
FROM performance_schema.socket_instances
|
||||||
WHERE EVENT_NAME LIKE '%client_connection%'
|
WHERE EVENT_NAME LIKE '%client_connection%'
|
||||||
@ -144,17 +144,17 @@ WHERE EVENT_NAME LIKE '%client_connection%'
|
|||||||
AND PORT= @con1_port
|
AND PORT= @con1_port
|
||||||
AND OBJECT_INSTANCE_BEGIN= @con1_object_id;
|
AND OBJECT_INSTANCE_BEGIN= @con1_object_id;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 2.5 Verify that the same connection is in the summary instance table
|
--echo # 2.5 Verify that the same connection is in the summary instance table
|
||||||
--echo
|
--echo #
|
||||||
eval SELECT COUNT(*) = 1 AS 'Expect 1'
|
eval SELECT COUNT(*) = 1 AS 'Expect 1'
|
||||||
FROM performance_schema.socket_summary_by_instance
|
FROM performance_schema.socket_summary_by_instance
|
||||||
WHERE EVENT_NAME LIKE '%client_connection%'
|
WHERE EVENT_NAME LIKE '%client_connection%'
|
||||||
AND OBJECT_INSTANCE_BEGIN= @con1_object_id;
|
AND OBJECT_INSTANCE_BEGIN= @con1_object_id;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # Switch to connection default
|
--echo # Switch to connection default
|
||||||
--echo
|
--echo #
|
||||||
--connection default
|
--connection default
|
||||||
|
|
||||||
--echo #==============================================================================
|
--echo #==============================================================================
|
||||||
@ -165,19 +165,19 @@ WHERE EVENT_NAME LIKE '%client_connection%'
|
|||||||
--connect (con2,$my_localhost,root,,test,,$MASTER_MYPORT)
|
--connect (con2,$my_localhost,root,,test,,$MASTER_MYPORT)
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 3.1 Get the connection thread id
|
--echo # 3.1 Get the connection thread id
|
||||||
--echo
|
--echo #
|
||||||
eval $get_thread_id;
|
eval $get_thread_id;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 3.2 Get the connection object instance begin
|
--echo # 3.2 Get the connection object instance begin
|
||||||
--echo
|
--echo #
|
||||||
eval $get_object_instance_begin;
|
eval $get_object_instance_begin;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 3.3 Get the connection port
|
--echo # 3.3 Get the connection port
|
||||||
--echo
|
--echo #
|
||||||
eval $get_port;
|
eval $get_port;
|
||||||
|
|
||||||
--disable_query_log
|
--disable_query_log
|
||||||
@ -200,9 +200,9 @@ if ($my_socket_debug)
|
|||||||
--echo # con2 name2 = $con2_name2
|
--echo # con2 name2 = $con2_name2
|
||||||
}
|
}
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 3.4 Verify that the connection is 127.0.0.1 or ::1
|
--echo # 3.4 Verify that the connection is 127.0.0.1 or ::1
|
||||||
--echo
|
--echo #
|
||||||
|
|
||||||
eval SELECT COUNT(*) = 1 AS 'Expect 1'
|
eval SELECT COUNT(*) = 1 AS 'Expect 1'
|
||||||
FROM performance_schema.socket_instances
|
FROM performance_schema.socket_instances
|
||||||
@ -211,17 +211,17 @@ WHERE EVENT_NAME LIKE '%client_connection%'
|
|||||||
AND PORT= @con2_port
|
AND PORT= @con2_port
|
||||||
AND OBJECT_INSTANCE_BEGIN= @con2_object_id;
|
AND OBJECT_INSTANCE_BEGIN= @con2_object_id;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 3.5 Verify that the same connection is in the summary instance table
|
--echo # 3.5 Verify that the same connection is in the summary instance table
|
||||||
--echo
|
--echo #
|
||||||
eval SELECT COUNT(*) = 1 AS 'Expect 1'
|
eval SELECT COUNT(*) = 1 AS 'Expect 1'
|
||||||
FROM performance_schema.socket_summary_by_instance
|
FROM performance_schema.socket_summary_by_instance
|
||||||
WHERE EVENT_NAME LIKE '%client_connection%'
|
WHERE EVENT_NAME LIKE '%client_connection%'
|
||||||
AND OBJECT_INSTANCE_BEGIN= @con2_object_id;
|
AND OBJECT_INSTANCE_BEGIN= @con2_object_id;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 3.6 Verify that the connection is 127.0.0.1 or ::1
|
--echo # 3.6 Verify that the connection is 127.0.0.1 or ::1
|
||||||
--echo
|
--echo #
|
||||||
eval SELECT COUNT(*) = 1 AS 'Expect 1'
|
eval SELECT COUNT(*) = 1 AS 'Expect 1'
|
||||||
FROM performance_schema.socket_instances
|
FROM performance_schema.socket_instances
|
||||||
WHERE EVENT_NAME LIKE '%client_connection%'
|
WHERE EVENT_NAME LIKE '%client_connection%'
|
||||||
@ -234,18 +234,18 @@ WHERE EVENT_NAME LIKE '%client_connection%'
|
|||||||
--echo #==============================================================================
|
--echo #==============================================================================
|
||||||
--connection default
|
--connection default
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 4.1 Verify that there are two TCP/IP connections in the socket instance table
|
--echo # 4.1 Verify that there are two TCP/IP connections in the socket instance table
|
||||||
--echo
|
--echo #
|
||||||
eval SELECT COUNT(*) = 2 AS 'Expect 1'
|
eval SELECT COUNT(*) = 2 AS 'Expect 1'
|
||||||
FROM performance_schema.socket_instances
|
FROM performance_schema.socket_instances
|
||||||
WHERE EVENT_NAME LIKE '%client_connection%'
|
WHERE EVENT_NAME LIKE '%client_connection%'
|
||||||
AND OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin
|
AND OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin
|
||||||
AND $ip_localhost;
|
AND $ip_localhost;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 4.2 Verify that there are two TCP/IP connections in the summary instance table
|
--echo # 4.2 Verify that there are two TCP/IP connections in the summary instance table
|
||||||
--echo
|
--echo #
|
||||||
eval SELECT COUNT(*) = 2 AS 'Expect 1'
|
eval SELECT COUNT(*) = 2 AS 'Expect 1'
|
||||||
FROM performance_schema.socket_summary_by_instance
|
FROM performance_schema.socket_summary_by_instance
|
||||||
WHERE EVENT_NAME LIKE '%client_connection%'
|
WHERE EVENT_NAME LIKE '%client_connection%'
|
||||||
@ -270,9 +270,9 @@ WHERE EVENT_NAME LIKE '%client_connection%'
|
|||||||
--echo # 6.0 Verify sockets were removed from the instance tables
|
--echo # 6.0 Verify sockets were removed from the instance tables
|
||||||
--echo #==============================================================================
|
--echo #==============================================================================
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 6.1 Verify that there are no TCP/IP connections in the socket instance table
|
--echo # 6.1 Verify that there are no TCP/IP connections in the socket instance table
|
||||||
--echo
|
--echo #
|
||||||
let $wait_condition=
|
let $wait_condition=
|
||||||
SELECT COUNT(*) = 0 AS 'Expect 1'
|
SELECT COUNT(*) = 0 AS 'Expect 1'
|
||||||
FROM performance_schema.socket_instances
|
FROM performance_schema.socket_instances
|
||||||
@ -281,9 +281,9 @@ WHERE EVENT_NAME LIKE '%client_connection%'
|
|||||||
AND $ip_localhost;
|
AND $ip_localhost;
|
||||||
--source include/wait_condition.inc
|
--source include/wait_condition.inc
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 6.2 Verify that there are no TCP/IP connections in the summary instance table
|
--echo # 6.2 Verify that there are no TCP/IP connections in the summary instance table
|
||||||
--echo
|
--echo #
|
||||||
let $wait_condition=
|
let $wait_condition=
|
||||||
SELECT COUNT(*) = 0 AS 'Expect 1'
|
SELECT COUNT(*) = 0 AS 'Expect 1'
|
||||||
FROM performance_schema.socket_summary_by_instance
|
FROM performance_schema.socket_summary_by_instance
|
||||||
|
@ -139,22 +139,22 @@ WHERE t_inst.event_name LIKE '%client%'
|
|||||||
--echo #==============================================================================
|
--echo #==============================================================================
|
||||||
--echo # 1.0 TEST INITIALIZATION
|
--echo # 1.0 TEST INITIALIZATION
|
||||||
--echo #==============================================================================
|
--echo #==============================================================================
|
||||||
--echo
|
--echo #
|
||||||
--echo # 1.1 Disable instrumentation of the default (this) connection
|
--echo # 1.1 Disable instrumentation of the default (this) connection
|
||||||
--echo
|
--echo #
|
||||||
--connection default
|
--connection default
|
||||||
UPDATE performance_schema.threads
|
UPDATE performance_schema.threads
|
||||||
SET INSTRUMENTED='NO' WHERE PROCESSLIST_ID = CONNECTION_ID();
|
SET INSTRUMENTED='NO' WHERE PROCESSLIST_ID = CONNECTION_ID();
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 1.2 Get the default THREAD_ID;
|
--echo # 1.2 Get the default THREAD_ID;
|
||||||
--echo
|
--echo #
|
||||||
eval $get_thread_id;
|
eval $get_thread_id;
|
||||||
let $default_thread_id= `SELECT @my_thread_id`;
|
let $default_thread_id= `SELECT @my_thread_id`;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 1.3 Get the default OBJECT_INSTANCE_BEGIN
|
--echo # 1.3 Get the default OBJECT_INSTANCE_BEGIN
|
||||||
--echo
|
--echo #
|
||||||
eval $get_object_instance_begin;
|
eval $get_object_instance_begin;
|
||||||
let $default_object_instance_begin= `SELECT @my_object_instance_begin`;
|
let $default_object_instance_begin= `SELECT @my_object_instance_begin`;
|
||||||
|
|
||||||
@ -168,50 +168,50 @@ if ($my_socket_debug)
|
|||||||
--echo # Default thread id = $default_thread_id
|
--echo # Default thread id = $default_thread_id
|
||||||
}
|
}
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 1.4 Create a test database
|
--echo # 1.4 Create a test database
|
||||||
--echo
|
--echo #
|
||||||
CREATE SCHEMA mysqltest;
|
CREATE SCHEMA mysqltest;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 1.5 Create a table to store summary values from socket_summary_by_instance
|
--echo # 1.5 Create a table to store summary values from socket_summary_by_instance
|
||||||
--echo and socket_summary_by_event_name
|
--echo and socket_summary_by_event_name
|
||||||
--echo
|
--echo #
|
||||||
CREATE TABLE mysqltest.my_socket_summary AS
|
CREATE TABLE mysqltest.my_socket_summary AS
|
||||||
SELECT * FROM performance_schema.socket_summary_by_instance
|
SELECT * FROM performance_schema.socket_summary_by_instance
|
||||||
WHERE 1 = 0;
|
WHERE 1 = 0;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 1.6 Drop object_instance_begin from my_socket_summary
|
--echo # 1.6 Drop object_instance_begin from my_socket_summary
|
||||||
--echo
|
--echo #
|
||||||
ALTER TABLE mysqltest.my_socket_summary
|
ALTER TABLE mysqltest.my_socket_summary
|
||||||
DROP COLUMN OBJECT_INSTANCE_BEGIN;
|
DROP COLUMN OBJECT_INSTANCE_BEGIN;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 1.7 Add an auto_inc column to my_socket_summary
|
--echo # 1.7 Add an auto_inc column to my_socket_summary
|
||||||
--echo
|
--echo #
|
||||||
ALTER TABLE mysqltest.my_socket_summary
|
ALTER TABLE mysqltest.my_socket_summary
|
||||||
ADD COLUMN (n INT AUTO_INCREMENT, PRIMARY KEY(n));
|
ADD COLUMN (n INT AUTO_INCREMENT, PRIMARY KEY(n));
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 1.8 Create test tables
|
--echo # 1.8 Create test tables
|
||||||
--echo
|
--echo #
|
||||||
CREATE TABLE mysqltest.t1 (n INT AUTO_INCREMENT, s1 VARCHAR(1024), PRIMARY KEY(n));
|
CREATE TABLE mysqltest.t1 (n INT AUTO_INCREMENT, s1 VARCHAR(1024), PRIMARY KEY(n));
|
||||||
CREATE TABLE mysqltest.t2 (n INT AUTO_INCREMENT, s1 VARCHAR(1024), PRIMARY KEY(n));
|
CREATE TABLE mysqltest.t2 (n INT AUTO_INCREMENT, s1 VARCHAR(1024), PRIMARY KEY(n));
|
||||||
|
|
||||||
--echo #==============================================================================
|
--echo #==============================================================================
|
||||||
--echo # 2.0 ESTABLISH CLIENT CONNECTIONS
|
--echo # 2.0 ESTABLISH CLIENT CONNECTIONS
|
||||||
--echo #==============================================================================
|
--echo #==============================================================================
|
||||||
--echo
|
--echo #
|
||||||
--echo # 2.1 Connection 1 (tcp/ip, 127.0.0.1 or ::1)
|
--echo # 2.1 Connection 1 (tcp/ip, 127.0.0.1 or ::1)
|
||||||
--echo
|
--echo #
|
||||||
--disable_query_log
|
--disable_query_log
|
||||||
--connect (con1,$my_localhost,root,,,,$MASTER_MYPORT)
|
--connect (con1,$my_localhost,root,,,,$MASTER_MYPORT)
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 2.2 Connection 2 (localhost or unix domain socket)
|
--echo # 2.2 Connection 2 (localhost or unix domain socket)
|
||||||
--echo
|
--echo #
|
||||||
--disable_query_log
|
--disable_query_log
|
||||||
--connect (con2,localhost,root,,,,)
|
--connect (con2,localhost,root,,,,)
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
@ -219,47 +219,47 @@ CREATE TABLE mysqltest.t2 (n INT AUTO_INCREMENT, s1 VARCHAR(1024), PRIMARY KEY(n
|
|||||||
--echo #==============================================================================
|
--echo #==============================================================================
|
||||||
--echo # 3.0 RUN THE TESTS
|
--echo # 3.0 RUN THE TESTS
|
||||||
--echo #==============================================================================
|
--echo #==============================================================================
|
||||||
--echo
|
--echo #
|
||||||
--echo # 3.1 Clear performance schema tables
|
--echo # 3.1 Clear performance schema tables
|
||||||
--echo
|
--echo #
|
||||||
TRUNCATE performance_schema.socket_summary_by_instance;
|
TRUNCATE performance_schema.socket_summary_by_instance;
|
||||||
TRUNCATE performance_schema.socket_summary_by_event_name;
|
TRUNCATE performance_schema.socket_summary_by_event_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 3.2 Get the 'before' sum of bytes written from socket_summary_by_instance
|
--echo # 3.2 Get the 'before' sum of bytes written from socket_summary_by_instance
|
||||||
--echo for later comparison to the 'after' byte count as a simple confirmation
|
--echo for later comparison to the 'after' byte count as a simple confirmation
|
||||||
--echo that the table was updated.
|
--echo that the table was updated.
|
||||||
--echo
|
--echo #
|
||||||
--connection default
|
--connection default
|
||||||
eval $get_write_count;
|
eval $get_write_count;
|
||||||
let $my_count_before= `SELECT @my_write_count`;
|
let $my_count_before= `SELECT @my_write_count`;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 3.3 From connection 1, insert one a 1K row of data into t1
|
--echo # 3.3 From connection 1, insert one a 1K row of data into t1
|
||||||
--echo
|
--echo #
|
||||||
--connection con1
|
--connection con1
|
||||||
USE mysqltest;
|
USE mysqltest;
|
||||||
INSERT INTO t1 (s1) VALUES (REPEAT('a', 1024));
|
INSERT INTO t1 (s1) VALUES (REPEAT('a', 1024));
|
||||||
INSERT INTO t1 (s1) SELECT s1 FROM t1;
|
INSERT INTO t1 (s1) SELECT s1 FROM t1;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 3.4 From connection 2, insert one a 1K row of data into t2
|
--echo # 3.4 From connection 2, insert one a 1K row of data into t2
|
||||||
--echo
|
--echo #
|
||||||
--connection con2
|
--connection con2
|
||||||
USE mysqltest;
|
USE mysqltest;
|
||||||
INSERT INTO t2 (s1) VALUES (REPEAT('a', 1024));
|
INSERT INTO t2 (s1) VALUES (REPEAT('a', 1024));
|
||||||
INSERT INTO t2 (s1) SELECT s1 FROM t2;
|
INSERT INTO t2 (s1) SELECT s1 FROM t2;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 3.5 Get the 'after' sum of bytes written from socket_summary_by_instance
|
--echo # 3.5 Get the 'after' sum of bytes written from socket_summary_by_instance
|
||||||
--echo
|
--echo #
|
||||||
--connection default
|
--connection default
|
||||||
eval $get_write_count;
|
eval $get_write_count;
|
||||||
let $my_count_after= `SELECT @my_write_count`;
|
let $my_count_after= `SELECT @my_write_count`;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 3.6 Verify that SUM_NUMBER_OF_BYTES_WRITE increased
|
--echo # 3.6 Verify that SUM_NUMBER_OF_BYTES_WRITE increased
|
||||||
--echo
|
--echo #
|
||||||
|
|
||||||
if ($my_count_before >= $my_count_after)
|
if ($my_count_before >= $my_count_after)
|
||||||
{
|
{
|
||||||
@ -274,17 +274,17 @@ if ($my_count_before >= $my_count_after)
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # socket_summary_by_instance was updated
|
--echo # socket_summary_by_instance was updated
|
||||||
--echo
|
--echo #
|
||||||
|
|
||||||
--echo #==============================================================================
|
--echo #==============================================================================
|
||||||
--echo # 4.0 VERIFY RESULTS
|
--echo # 4.0 VERIFY RESULTS
|
||||||
--echo #==============================================================================
|
--echo #==============================================================================
|
||||||
--echo
|
--echo #
|
||||||
--echo # 4.1 Verify that the totals in socket_summary_by_event_name are
|
--echo # 4.1 Verify that the totals in socket_summary_by_event_name are
|
||||||
--echo consistent with totals in socket_summary_by_instance
|
--echo consistent with totals in socket_summary_by_instance
|
||||||
--echo
|
--echo #
|
||||||
|
|
||||||
--disable_query_log
|
--disable_query_log
|
||||||
eval $compare_tables_and_verify;
|
eval $compare_tables_and_verify;
|
||||||
@ -311,23 +311,23 @@ if (`SELECT @tables_match = 0`)
|
|||||||
--echo # 5.0 Clean up
|
--echo # 5.0 Clean up
|
||||||
--echo #==============================================================================
|
--echo #==============================================================================
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 5.1 Disconnect con1
|
--echo # 5.1 Disconnect con1
|
||||||
--echo
|
--echo #
|
||||||
--connection con1
|
--connection con1
|
||||||
--disconnect con1
|
--disconnect con1
|
||||||
--source include/wait_until_disconnected.inc
|
--source include/wait_until_disconnected.inc
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 5.2 Disconnect con2
|
--echo # 5.2 Disconnect con2
|
||||||
--echo
|
--echo #
|
||||||
--connection con2
|
--connection con2
|
||||||
--disconnect con2
|
--disconnect con2
|
||||||
--source include/wait_until_disconnected.inc
|
--source include/wait_until_disconnected.inc
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # 5.3 Drop mysqltest
|
--echo # 5.3 Drop mysqltest
|
||||||
--echo
|
--echo #
|
||||||
--connection default
|
--connection default
|
||||||
DROP DATABASE mysqltest;
|
DROP DATABASE mysqltest;
|
||||||
|
|
||||||
|
@ -4,10 +4,10 @@
|
|||||||
--source include/not_embedded.inc
|
--source include/not_embedded.inc
|
||||||
--source include/have_perfschema.inc
|
--source include/have_perfschema.inc
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo SETUP
|
--echo # SETUP
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
|
|
||||||
# Create a new connection, to get clean statistics
|
# Create a new connection, to get clean statistics
|
||||||
connect(con1, localhost, root,,);
|
connect(con1, localhost, root,,);
|
||||||
@ -50,10 +50,10 @@ SELECT VARIABLE_VALUE INTO @count_global_reprepare_after
|
|||||||
# Should increment by 1
|
# Should increment by 1
|
||||||
SELECT @count_global_reprepare_after - @count_global_reprepare_before;
|
SELECT @count_global_reprepare_after - @count_global_reprepare_before;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
--echo CLEANUP
|
--echo # CLEANUP
|
||||||
--echo ================================================================================
|
--echo # ================================================================================
|
||||||
|
|
||||||
DROP TABLE test.t1;
|
DROP TABLE test.t1;
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
--source include/have_innodb.inc
|
--source include/have_innodb.inc
|
||||||
--source include/not_embedded.inc
|
--source include/not_embedded.inc
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # TEST 1: Normal tables prefixed with "#sql" and "sql".
|
--echo # TEST 1: Normal tables prefixed with "#sql" and "sql".
|
||||||
--echo #
|
--echo #
|
||||||
@ -25,129 +25,129 @@ USE test;
|
|||||||
CREATE TABLE `#sql_1` (a int, b text);
|
CREATE TABLE `#sql_1` (a int, b text);
|
||||||
# INSERT forces path through get_table_share()
|
# INSERT forces path through get_table_share()
|
||||||
INSERT INTO `#sql_1` VALUES(1,'one');
|
INSERT INTO `#sql_1` VALUES(1,'one');
|
||||||
--echo
|
--echo #
|
||||||
CREATE TABLE `sql_1` (a int, b text);
|
CREATE TABLE `sql_1` (a int, b text);
|
||||||
INSERT INTO `sql_1` VALUES(1,'one');
|
INSERT INTO `sql_1` VALUES(1,'one');
|
||||||
--echo
|
--echo #
|
||||||
--echo # Verify that the tables are treated as normal tables .
|
--echo # Verify that the tables are treated as normal tables .
|
||||||
--echo
|
--echo #
|
||||||
--sorted_result
|
--sorted_result
|
||||||
SELECT object_type, object_schema, object_name
|
SELECT object_type, object_schema, object_name
|
||||||
FROM performance_schema.objects_summary_global_by_type
|
FROM performance_schema.objects_summary_global_by_type
|
||||||
WHERE object_schema="test"
|
WHERE object_schema="test"
|
||||||
ORDER BY object_name;
|
ORDER BY object_name;
|
||||||
--echo
|
--echo #
|
||||||
--echo # Drop the tables, verify that the table objects are removed.
|
--echo # Drop the tables, verify that the table objects are removed.
|
||||||
--echo
|
--echo #
|
||||||
DROP TABLE `#sql_1`;
|
DROP TABLE `#sql_1`;
|
||||||
DROP TABLE `sql_1`;
|
DROP TABLE `sql_1`;
|
||||||
--echo
|
--echo #
|
||||||
SELECT object_type, object_schema, object_name
|
SELECT object_type, object_schema, object_name
|
||||||
FROM performance_schema.objects_summary_global_by_type
|
FROM performance_schema.objects_summary_global_by_type
|
||||||
WHERE object_schema="test"
|
WHERE object_schema="test"
|
||||||
ORDER BY object_name;
|
ORDER BY object_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # TEST 2: Temporary tables, no special prefix.
|
--echo # TEST 2: Temporary tables, no special prefix.
|
||||||
--echo #
|
--echo #
|
||||||
CREATE TEMPORARY TABLE sql_temp2_myisam (a int, b text) ENGINE=MYISAM;
|
CREATE TEMPORARY TABLE sql_temp2_myisam (a int, b text) ENGINE=MYISAM;
|
||||||
INSERT INTO sql_temp2_myisam VALUES(1,'one');
|
INSERT INTO sql_temp2_myisam VALUES(1,'one');
|
||||||
--echo
|
--echo #
|
||||||
CREATE TEMPORARY TABLE sql_temp2_innodb (a int, b text) ENGINE=INNODB;
|
CREATE TEMPORARY TABLE sql_temp2_innodb (a int, b text) ENGINE=INNODB;
|
||||||
INSERT INTO sql_temp2_innodb VALUES(1,'one');
|
INSERT INTO sql_temp2_innodb VALUES(1,'one');
|
||||||
--echo
|
--echo #
|
||||||
--echo # Confirm that the temporary tables are ignored.
|
--echo # Confirm that the temporary tables are ignored.
|
||||||
--echo
|
--echo #
|
||||||
SELECT object_type, object_schema, object_name
|
SELECT object_type, object_schema, object_name
|
||||||
FROM performance_schema.objects_summary_global_by_type
|
FROM performance_schema.objects_summary_global_by_type
|
||||||
WHERE object_schema="test"
|
WHERE object_schema="test"
|
||||||
ORDER BY object_name;
|
ORDER BY object_name;
|
||||||
--echo
|
--echo #
|
||||||
--echo # Drop the tables, verify that the table objects are not created.
|
--echo # Drop the tables, verify that the table objects are not created.
|
||||||
--echo
|
--echo #
|
||||||
DROP TABLE sql_temp2_myisam;
|
DROP TABLE sql_temp2_myisam;
|
||||||
DROP TABLE sql_temp2_innodb;
|
DROP TABLE sql_temp2_innodb;
|
||||||
--echo
|
--echo #
|
||||||
SELECT object_type, object_schema, object_name
|
SELECT object_type, object_schema, object_name
|
||||||
FROM performance_schema.objects_summary_global_by_type
|
FROM performance_schema.objects_summary_global_by_type
|
||||||
WHERE object_schema="test"
|
WHERE object_schema="test"
|
||||||
ORDER BY object_name;
|
ORDER BY object_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # TEST 3: Temporary tables with the "#sql" prefix.
|
--echo # TEST 3: Temporary tables with the "#sql" prefix.
|
||||||
--echo #
|
--echo #
|
||||||
CREATE TEMPORARY TABLE `#sql_temp3_myisam` (a int, b text) ENGINE=MYISAM;
|
CREATE TEMPORARY TABLE `#sql_temp3_myisam` (a int, b text) ENGINE=MYISAM;
|
||||||
CHECK TABLE `#sql_temp3_myisam`;
|
CHECK TABLE `#sql_temp3_myisam`;
|
||||||
INSERT INTO `#sql_temp3_myisam` VALUES(1,'one');
|
INSERT INTO `#sql_temp3_myisam` VALUES(1,'one');
|
||||||
--echo
|
--echo #
|
||||||
CREATE TEMPORARY TABLE `#sql_temp3_innodb` (a int, b text) ENGINE=INNODB;
|
CREATE TEMPORARY TABLE `#sql_temp3_innodb` (a int, b text) ENGINE=INNODB;
|
||||||
CHECK TABLE `#sql_temp3_innodb`;
|
CHECK TABLE `#sql_temp3_innodb`;
|
||||||
INSERT INTO `#sql_temp3_innodb` VALUES(1,'one');
|
INSERT INTO `#sql_temp3_innodb` VALUES(1,'one');
|
||||||
--echo
|
--echo #
|
||||||
--echo # Confirm that the temporary tables are ignored.
|
--echo # Confirm that the temporary tables are ignored.
|
||||||
--echo
|
--echo #
|
||||||
SELECT object_type, object_schema, object_name
|
SELECT object_type, object_schema, object_name
|
||||||
FROM performance_schema.objects_summary_global_by_type
|
FROM performance_schema.objects_summary_global_by_type
|
||||||
WHERE object_schema="test"
|
WHERE object_schema="test"
|
||||||
ORDER BY object_name;
|
ORDER BY object_name;
|
||||||
--echo
|
--echo #
|
||||||
--echo # Drop the temporary tables.
|
--echo # Drop the temporary tables.
|
||||||
--echo
|
--echo #
|
||||||
DROP TABLE `#sql_temp3_myisam`;
|
DROP TABLE `#sql_temp3_myisam`;
|
||||||
DROP TABLE `#sql_temp3_innodb`;
|
DROP TABLE `#sql_temp3_innodb`;
|
||||||
--echo
|
--echo #
|
||||||
--echo # Confirm that the temporary tables are still ignored.
|
--echo # Confirm that the temporary tables are still ignored.
|
||||||
--echo
|
--echo #
|
||||||
SELECT object_type, object_schema, object_name
|
SELECT object_type, object_schema, object_name
|
||||||
FROM performance_schema.objects_summary_global_by_type
|
FROM performance_schema.objects_summary_global_by_type
|
||||||
WHERE object_schema="test"
|
WHERE object_schema="test"
|
||||||
ORDER BY object_name;
|
ORDER BY object_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # TEST 4: Special case: MyISAM temporary tables are recreated as non-temporary
|
--echo # TEST 4: Special case: MyISAM temporary tables are recreated as non-temporary
|
||||||
--echo # when they are truncated.
|
--echo # when they are truncated.
|
||||||
--echo #
|
--echo #
|
||||||
CREATE TEMPORARY TABLE `sql_temp4_myisam` (a int, b text) ENGINE=MYISAM;
|
CREATE TEMPORARY TABLE `sql_temp4_myisam` (a int, b text) ENGINE=MYISAM;
|
||||||
INSERT INTO `sql_temp4_myisam` VALUES(1,'one');
|
INSERT INTO `sql_temp4_myisam` VALUES(1,'one');
|
||||||
--echo
|
--echo #
|
||||||
CREATE TEMPORARY TABLE `#sql_temp4_myisam` (a int, b text) ENGINE=MYISAM;
|
CREATE TEMPORARY TABLE `#sql_temp4_myisam` (a int, b text) ENGINE=MYISAM;
|
||||||
INSERT INTO `#sql_temp4_myisam` VALUES(1,'one');
|
INSERT INTO `#sql_temp4_myisam` VALUES(1,'one');
|
||||||
--echo
|
--echo #
|
||||||
--echo # Confirm that the MyISAM temporary tables are ignored.
|
--echo # Confirm that the MyISAM temporary tables are ignored.
|
||||||
--echo
|
--echo #
|
||||||
SELECT object_type, object_schema, object_name
|
SELECT object_type, object_schema, object_name
|
||||||
FROM performance_schema.objects_summary_global_by_type
|
FROM performance_schema.objects_summary_global_by_type
|
||||||
WHERE object_schema="test"
|
WHERE object_schema="test"
|
||||||
ORDER BY object_name;
|
ORDER BY object_name;
|
||||||
--echo
|
--echo #
|
||||||
--echo # Truncate the MyISAM temporary tables, forcing them to be recreated as non-temporary.
|
--echo # Truncate the MyISAM temporary tables, forcing them to be recreated as non-temporary.
|
||||||
--echo
|
--echo #
|
||||||
TRUNCATE TABLE `sql_temp4_myisam`;
|
TRUNCATE TABLE `sql_temp4_myisam`;
|
||||||
TRUNCATE TABLE `#sql_temp4_myisam`;
|
TRUNCATE TABLE `#sql_temp4_myisam`;
|
||||||
--echo
|
--echo #
|
||||||
--echo # Confirm that the recreated MyISAM tables are still regarded as temporary and ignored.
|
--echo # Confirm that the recreated MyISAM tables are still regarded as temporary and ignored.
|
||||||
--echo
|
--echo #
|
||||||
SELECT object_type, object_schema, object_name
|
SELECT object_type, object_schema, object_name
|
||||||
FROM performance_schema.objects_summary_global_by_type
|
FROM performance_schema.objects_summary_global_by_type
|
||||||
WHERE object_schema="test"
|
WHERE object_schema="test"
|
||||||
ORDER BY object_name;
|
ORDER BY object_name;
|
||||||
--echo
|
--echo #
|
||||||
--echo # Drop the recreated MyISAM tables;
|
--echo # Drop the recreated MyISAM tables;
|
||||||
--echo
|
--echo #
|
||||||
DROP TABLE `sql_temp4_myisam`;
|
DROP TABLE `sql_temp4_myisam`;
|
||||||
DROP TABLE `#sql_temp4_myisam`;
|
DROP TABLE `#sql_temp4_myisam`;
|
||||||
--echo
|
--echo #
|
||||||
--echo # Confirm that the recreated temporary tables are still ignored.
|
--echo # Confirm that the recreated temporary tables are still ignored.
|
||||||
--echo
|
--echo #
|
||||||
SELECT object_type, object_schema, object_name
|
SELECT object_type, object_schema, object_name
|
||||||
FROM performance_schema.objects_summary_global_by_type
|
FROM performance_schema.objects_summary_global_by_type
|
||||||
WHERE object_schema="test"
|
WHERE object_schema="test"
|
||||||
ORDER BY object_name;
|
ORDER BY object_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # TEST 5: Generate temporary tables with ALTER MyISAM table.
|
--echo # TEST 5: Generate temporary tables with ALTER MyISAM table.
|
||||||
--echo #
|
--echo #
|
||||||
@ -156,21 +156,21 @@ CREATE TABLE t1 (a int) ENGINE=MYISAM;
|
|||||||
INSERT INTO t1 VALUES (1), (2), (3);
|
INSERT INTO t1 VALUES (1), (2), (3);
|
||||||
# Force a path throug mysql_alter_table() and ha_create_table().
|
# Force a path throug mysql_alter_table() and ha_create_table().
|
||||||
ALTER TABLE t1 ADD COLUMN (b int);
|
ALTER TABLE t1 ADD COLUMN (b int);
|
||||||
--echo
|
--echo #
|
||||||
--echo # Confirm that the recreated temporary tables are still ignored.
|
--echo # Confirm that the recreated temporary tables are still ignored.
|
||||||
--echo
|
--echo #
|
||||||
SELECT object_type, object_schema, object_name
|
SELECT object_type, object_schema, object_name
|
||||||
FROM performance_schema.objects_summary_global_by_type
|
FROM performance_schema.objects_summary_global_by_type
|
||||||
WHERE object_schema="test"
|
WHERE object_schema="test"
|
||||||
ORDER BY object_name;
|
ORDER BY object_name;
|
||||||
--echo
|
--echo #
|
||||||
--echo # Drop the MyISAM table
|
--echo # Drop the MyISAM table
|
||||||
--echo
|
--echo #
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # Confirm that no tables remain;
|
--echo # Confirm that no tables remain;
|
||||||
--echo
|
--echo #
|
||||||
SELECT object_type, object_schema, object_name
|
SELECT object_type, object_schema, object_name
|
||||||
FROM performance_schema.objects_summary_global_by_type
|
FROM performance_schema.objects_summary_global_by_type
|
||||||
WHERE object_schema="test"
|
WHERE object_schema="test"
|
||||||
|
@ -16,22 +16,22 @@
|
|||||||
--enable_query_log
|
--enable_query_log
|
||||||
set global binlog_format=ROW;
|
set global binlog_format=ROW;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ========================================================================
|
--echo # ========================================================================
|
||||||
--echo STEP 1 - SETUP
|
--echo # STEP 1 - SETUP
|
||||||
--echo ========================================================================
|
--echo # ========================================================================
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # Control thread
|
--echo # Control thread
|
||||||
--echo
|
--echo #
|
||||||
--connection default
|
--connection default
|
||||||
SET SESSION AUTOCOMMIT= 1;
|
SET SESSION AUTOCOMMIT= 1;
|
||||||
eval $get_thread_id;
|
eval $get_thread_id;
|
||||||
let $default_thread_id= `SELECT @my_thread_id`;
|
let $default_thread_id= `SELECT @my_thread_id`;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # Connection 1
|
--echo # Connection 1
|
||||||
--echo
|
--echo #
|
||||||
connect(con1, localhost, root,,);
|
connect(con1, localhost, root,,);
|
||||||
--disable_query_log
|
--disable_query_log
|
||||||
eval $get_thread_id;
|
eval $get_thread_id;
|
||||||
@ -41,9 +41,9 @@ SET SESSION AUTOCOMMIT= 0;
|
|||||||
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ, READ WRITE;
|
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ, READ WRITE;
|
||||||
|
|
||||||
--disable_parsing
|
--disable_parsing
|
||||||
--echo
|
--echo #
|
||||||
--echo # Connection 2
|
--echo # Connection 2
|
||||||
--echo
|
--echo #
|
||||||
connect(con2, localhost, root,,);
|
connect(con2, localhost, root,,);
|
||||||
--disable_query_log
|
--disable_query_log
|
||||||
eval $get_thread_id;
|
eval $get_thread_id;
|
||||||
@ -59,9 +59,9 @@ eval SET @con1_thread_id= $con1_thread_id;
|
|||||||
#eval SET @con2_thread_id= $con2_thread_id;
|
#eval SET @con2_thread_id= $con2_thread_id;
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # Create test tables, one transactional and one non-transactional
|
--echo # Create test tables, one transactional and one non-transactional
|
||||||
--echo
|
--echo #
|
||||||
--connection default
|
--connection default
|
||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
@ -71,24 +71,24 @@ DROP TABLE IF EXISTS nt1;
|
|||||||
CREATE TABLE t1 (s1 int, s2 varchar(64)) ENGINE=INNODB;
|
CREATE TABLE t1 (s1 int, s2 varchar(64)) ENGINE=INNODB;
|
||||||
CREATE TABLE nt1 (s1 int, s2 varchar(64)) ENGINE=MYISAM;
|
CREATE TABLE nt1 (s1 int, s2 varchar(64)) ENGINE=MYISAM;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # Disable all events from the control thread
|
--echo # Disable all events from the control thread
|
||||||
--echo
|
--echo #
|
||||||
--disable_query_log
|
--disable_query_log
|
||||||
UPDATE performance_schema.threads
|
UPDATE performance_schema.threads
|
||||||
SET instrumented='NO' WHERE processlist_id = CONNECTION_ID();
|
SET instrumented='NO' WHERE processlist_id = CONNECTION_ID();
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # Clear transaction tables
|
--echo # Clear transaction tables
|
||||||
--echo
|
--echo #
|
||||||
CALL clear_transaction_tables();
|
CALL clear_transaction_tables();
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ========================================================================
|
--echo # ========================================================================
|
||||||
--echo # STEP 2 - BASIC TRANSACTION
|
--echo # STEP 2 - BASIC TRANSACTION
|
||||||
--echo ========================================================================
|
--echo # ========================================================================
|
||||||
--echo
|
--echo #
|
||||||
--connection con1
|
--connection con1
|
||||||
SELECT @@global.tx_isolation;
|
SELECT @@global.tx_isolation;
|
||||||
SELECT @@global.autocommit;
|
SELECT @@global.autocommit;
|
||||||
@ -97,30 +97,30 @@ SELECT @@tx_isolation;
|
|||||||
SELECT @@autocommit;
|
SELECT @@autocommit;
|
||||||
SELECT @@binlog_format;
|
SELECT @@binlog_format;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 2.1 - START/COMMIT
|
--echo # STEP 2.1 - START/COMMIT
|
||||||
--echo
|
--echo #
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (101, 'COMMITTED');
|
INSERT INTO t1 VALUES (101, 'COMMITTED');
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 2.2 - ROLLBACK
|
--echo # STEP 2.2 - ROLLBACK
|
||||||
--echo
|
--echo #
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (102, 'ROLLED BACK');
|
INSERT INTO t1 VALUES (102, 'ROLLED BACK');
|
||||||
ROLLBACK;
|
ROLLBACK;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 1 committed and 1 rolled back transaction
|
--echo ## Expect 1 committed and 1 rolled back transaction
|
||||||
--connection default
|
--connection default
|
||||||
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', 'REPEATABLE READ', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', 'REPEATABLE READ', 'NO', 0, 0, 0, 1);
|
||||||
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'ROLLED BACK', 0, '', '', '', '', 'READ WRITE', 'REPEATABLE READ', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'ROLLED BACK', 0, '', '', '', '', 'READ WRITE', 'REPEATABLE READ', 'NO', 0, 0, 0, 1);
|
||||||
CALL clear_transaction_tables();
|
CALL clear_transaction_tables();
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 2.3 - COMMIT AND CHAIN
|
--echo # STEP 2.3 - COMMIT AND CHAIN
|
||||||
--echo
|
--echo #
|
||||||
--connection con1
|
--connection con1
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (103, 'COMMIT AND CHAIN');
|
INSERT INTO t1 VALUES (103, 'COMMIT AND CHAIN');
|
||||||
@ -128,18 +128,18 @@ COMMIT AND CHAIN;
|
|||||||
INSERT INTO t1 VALUES (104, 'COMMIT AND CHAIN');
|
INSERT INTO t1 VALUES (104, 'COMMIT AND CHAIN');
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 2 committed transactions
|
--echo ## Expect 2 committed transactions
|
||||||
--connection default
|
--connection default
|
||||||
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', 'REPEATABLE READ', 'NO', 0, 0, 0, 2);
|
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', 'REPEATABLE READ', 'NO', 0, 0, 0, 2);
|
||||||
CALL clear_transaction_tables();
|
CALL clear_transaction_tables();
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ========================================================================
|
--echo # ========================================================================
|
||||||
--echo # STEP 3 - ISOLATION LEVEL
|
--echo # STEP 3 - ISOLATION LEVEL
|
||||||
--echo ========================================================================
|
--echo # ========================================================================
|
||||||
--echo
|
--echo #
|
||||||
--echo connection con1
|
--echo # connection con1
|
||||||
--connection con1
|
--connection con1
|
||||||
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
|
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
@ -167,7 +167,7 @@ COMMIT;
|
|||||||
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
|
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
|
||||||
SET binlog_format= @binlog_save;
|
SET binlog_format= @binlog_save;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--connection default
|
--connection default
|
||||||
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', 'SERIALIZABLE', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', 'SERIALIZABLE', 'NO', 0, 0, 0, 1);
|
||||||
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', 'REPEATABLE READ', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', 'REPEATABLE READ', 'NO', 0, 0, 0, 1);
|
||||||
@ -175,15 +175,15 @@ CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '',
|
|||||||
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', 'READ UNCOMMITTED', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', 'READ UNCOMMITTED', 'NO', 0, 0, 0, 1);
|
||||||
CALL clear_transaction_tables();
|
CALL clear_transaction_tables();
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ========================================================================
|
--echo # ========================================================================
|
||||||
--echo # STEP 4 - ACCESS MODE
|
--echo # STEP 4 - ACCESS MODE
|
||||||
--echo ========================================================================
|
--echo # ========================================================================
|
||||||
--echo #
|
--echo #
|
||||||
--echo # STEP 4.1 - READ ONLY, TIMING ENABLED
|
--echo # STEP 4.1 - READ ONLY, TIMING ENABLED
|
||||||
--echo #
|
--echo #
|
||||||
--echo
|
--echo #
|
||||||
--echo connection con1
|
--echo # connection con1
|
||||||
--connection con1
|
--connection con1
|
||||||
SET SESSION TRANSACTION READ WRITE;
|
SET SESSION TRANSACTION READ WRITE;
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
@ -198,51 +198,51 @@ START TRANSACTION;
|
|||||||
SELECT * FROM t1 ORDER BY s1;
|
SELECT * FROM t1 ORDER BY s1;
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 1 read only, committed transaction in events_transactions_history
|
--echo ## Expect 1 read only, committed transaction in events_transactions_history
|
||||||
--connection default
|
--connection default
|
||||||
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ ONLY', 'REPEATABLE READ', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ ONLY', 'REPEATABLE READ', 'NO', 0, 0, 0, 1);
|
||||||
CALL clear_transaction_tables();
|
CALL clear_transaction_tables();
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # STEP 4.2 - READ ONLY, TIMING DISABLED
|
--echo # STEP 4.2 - READ ONLY, TIMING DISABLED
|
||||||
--echo #
|
--echo #
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Disable timing stats for 'transaction'
|
--echo ## Disable timing stats for 'transaction'
|
||||||
UPDATE performance_schema.setup_instruments SET timed = 'NO' WHERE name = 'transaction';
|
UPDATE performance_schema.setup_instruments SET timed = 'NO' WHERE name = 'transaction';
|
||||||
--echo
|
--echo #
|
||||||
TRUNCATE performance_schema.events_transactions_summary_global_by_event_name;
|
TRUNCATE performance_schema.events_transactions_summary_global_by_event_name;
|
||||||
|
|
||||||
--echo connection con1
|
--echo # connection con1
|
||||||
--connection con1
|
--connection con1
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
SELECT * FROM t1 ORDER BY s1;
|
SELECT * FROM t1 ORDER BY s1;
|
||||||
COMMIT;
|
COMMIT;
|
||||||
--echo
|
--echo #
|
||||||
SET SESSION TRANSACTION READ WRITE;
|
SET SESSION TRANSACTION READ WRITE;
|
||||||
|
|
||||||
--connection default
|
--connection default
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 1 event, 0 stats
|
--echo ## Expect 1 event, 0 stats
|
||||||
SELECT * FROM performance_schema.events_transactions_summary_global_by_event_name;
|
SELECT * FROM performance_schema.events_transactions_summary_global_by_event_name;
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Restore setup_instruments
|
--echo ## Restore setup_instruments
|
||||||
UPDATE performance_schema.setup_instruments SET enabled = 'YES' WHERE name = 'transaction';
|
UPDATE performance_schema.setup_instruments SET enabled = 'YES' WHERE name = 'transaction';
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ========================================================================
|
--echo # ========================================================================
|
||||||
--echo # STEP 5 - IMPLICIT START
|
--echo # STEP 5 - IMPLICIT START
|
||||||
--echo ========================================================================
|
--echo # ========================================================================
|
||||||
--echo # When AUTOCOMMIT is disabled, the first statement following a committed
|
--echo # When AUTOCOMMIT is disabled, the first statement following a committed
|
||||||
--echo # transaction marks the start of a new transaction. Subsequent statements will
|
--echo # transaction marks the start of a new transaction. Subsequent statements will
|
||||||
--echo # be part of the transaction until it is committed.
|
--echo # be part of the transaction until it is committed.
|
||||||
--echo
|
--echo #
|
||||||
--connection con1
|
--connection con1
|
||||||
SET SESSION AUTOCOMMIT = 0;
|
SET SESSION AUTOCOMMIT = 0;
|
||||||
INSERT INTO t1 VALUES (501, 'IMPLICIT START');
|
INSERT INTO t1 VALUES (501, 'IMPLICIT START');
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 1 active transaction in events_transactions_current
|
--echo ## Expect 1 active transaction in events_transactions_current
|
||||||
--connection default
|
--connection default
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
@ -251,25 +251,25 @@ CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', ''
|
|||||||
INSERT INTO t1 VALUES (502, 'IMPLICIT START');
|
INSERT INTO t1 VALUES (502, 'IMPLICIT START');
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect one committed transaction in events_transactions_current and history
|
--echo ## Expect one committed transaction in events_transactions_current and history
|
||||||
--connection default
|
--connection default
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
CALL clear_transaction_tables();
|
CALL clear_transaction_tables();
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ========================================================================
|
--echo # ========================================================================
|
||||||
--echo # STEP 6 - IMPLICIT COMMIT (DDL, ETC)
|
--echo # STEP 6 - IMPLICIT COMMIT (DDL, ETC)
|
||||||
--echo ========================================================================
|
--echo # ========================================================================
|
||||||
--echo # Transactions are implicitly ended by DDL statements, locking statements
|
--echo # Transactions are implicitly ended by DDL statements, locking statements
|
||||||
--echo # and server administration commands.
|
--echo # and server administration commands.
|
||||||
--echo
|
--echo #
|
||||||
--connection con1
|
--connection con1
|
||||||
SET SESSION AUTOCOMMIT = 0;
|
SET SESSION AUTOCOMMIT = 0;
|
||||||
INSERT INTO t1 VALUES (601, 'IMPLICIT COMMIT');
|
INSERT INTO t1 VALUES (601, 'IMPLICIT COMMIT');
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect one active transaction in events_transactions_current, zero events in history
|
--echo ## Expect one active transaction in events_transactions_current, zero events in history
|
||||||
--connection default
|
--connection default
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
@ -281,7 +281,7 @@ INSERT INTO t1 VALUES (602, 'IMPLICIT COMMIT');
|
|||||||
--echo ## Issue a DDL statement to force a commmit
|
--echo ## Issue a DDL statement to force a commmit
|
||||||
CREATE TABLE t2 (s1 INT, s2 VARCHAR(64)) ENGINE=INNODB;
|
CREATE TABLE t2 (s1 INT, s2 VARCHAR(64)) ENGINE=INNODB;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 0 active transactions, 1 committed transaction
|
--echo ## Expect 0 active transactions, 1 committed transaction
|
||||||
--connection default
|
--connection default
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 0);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 0);
|
||||||
@ -290,54 +290,54 @@ CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '',
|
|||||||
CALL clear_transaction_tables();
|
CALL clear_transaction_tables();
|
||||||
DROP TABLE test.t2;
|
DROP TABLE test.t2;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ========================================================================
|
--echo # ========================================================================
|
||||||
--echo STEP 7 - XA TRANSACTIONS
|
--echo # STEP 7 - XA TRANSACTIONS
|
||||||
--echo ========================================================================
|
--echo # ========================================================================
|
||||||
--echo #
|
--echo #
|
||||||
--echo # STEP 7.1 - XA START
|
--echo # STEP 7.1 - XA START
|
||||||
--echo #
|
--echo #
|
||||||
--connection con1
|
--connection con1
|
||||||
XA START 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 1234567890;
|
XA START 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 1234567890;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 1 active XA transaction, state ACTIVE
|
--echo ## Expect 1 active XA transaction, state ACTIVE
|
||||||
--connection default
|
--connection default
|
||||||
|
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 1234567890, 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 'ACTIVE', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 1234567890, 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 'ACTIVE', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo # STEP 7.2 - XA END
|
--echo # STEP 7.2 - XA END
|
||||||
--echo
|
--echo #
|
||||||
--connection con1
|
--connection con1
|
||||||
INSERT INTO t1 VALUES (701, 'XA');
|
INSERT INTO t1 VALUES (701, 'XA');
|
||||||
XA END 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 1234567890;
|
XA END 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 1234567890;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 1 active XA transaction, state IDLE
|
--echo ## Expect 1 active XA transaction, state IDLE
|
||||||
--connection default
|
--connection default
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 1234567890, 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 'IDLE', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 1234567890, 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 'IDLE', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # STEP 7.3 - XA PREPARE
|
--echo # STEP 7.3 - XA PREPARE
|
||||||
--echo #
|
--echo #
|
||||||
--connection con1
|
--connection con1
|
||||||
XA PREPARE 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 1234567890;
|
XA PREPARE 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 1234567890;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 1 active XA transaction, state PREPARED
|
--echo ## Expect 1 active XA transaction, state PREPARED
|
||||||
--connection default
|
--connection default
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 1234567890, 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 'PREPARED', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 1234567890, 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 'PREPARED', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # STEP 7.4 - XA COMMIT
|
--echo # STEP 7.4 - XA COMMIT
|
||||||
--echo #
|
--echo #
|
||||||
--connection con1
|
--connection con1
|
||||||
XA COMMIT 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 1234567890;
|
XA COMMIT 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 1234567890;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 1 committed XA transaction, state COMMITTED in current and history
|
--echo ## Expect 1 committed XA transaction, state COMMITTED in current and history
|
||||||
--connection default
|
--connection default
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'COMMITTED', 1234567890, 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 'COMMITTED', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'COMMITTED', 1234567890, 'XA_CON1_GTRID_001', 'XA_CON1_BQUAL_001', 'COMMITTED', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
@ -345,7 +345,7 @@ CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 123456
|
|||||||
|
|
||||||
CALL clear_transaction_tables();
|
CALL clear_transaction_tables();
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # STEP 7.5 - XA ROLLBACK
|
--echo # STEP 7.5 - XA ROLLBACK
|
||||||
--echo #
|
--echo #
|
||||||
@ -355,7 +355,7 @@ INSERT INTO t1 VALUES (702, 'XA');
|
|||||||
XA END 'XA_CON1_002';
|
XA END 'XA_CON1_002';
|
||||||
XA PREPARE 'XA_CON1_002';
|
XA PREPARE 'XA_CON1_002';
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 1 active XA transaction, state PREPARED
|
--echo ## Expect 1 active XA transaction, state PREPARED
|
||||||
--connection default
|
--connection default
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, 'XA_CON1_002', '', 'PREPARED', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, 'XA_CON1_002', '', 'PREPARED', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
@ -363,7 +363,7 @@ CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, 'XA_CO
|
|||||||
--connection con1
|
--connection con1
|
||||||
XA ROLLBACK 'XA_CON1_002';
|
XA ROLLBACK 'XA_CON1_002';
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 1 XA transaction, state ROLLBACK ONLY in current and history
|
--echo ## Expect 1 XA transaction, state ROLLBACK ONLY in current and history
|
||||||
--connection default
|
--connection default
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ROLLED BACK', 0, 'XA_CON1_002', '', 'ROLLBACK ONLY', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ROLLED BACK', 0, 'XA_CON1_002', '', 'ROLLBACK ONLY', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
@ -381,7 +381,7 @@ XA END 'GTRID_6789012345678901234567890123456789012345678901234567890123','B
|
|||||||
XA PREPARE 'GTRID_6789012345678901234567890123456789012345678901234567890123','BQUAL_6789012345678901234567890123456789012345678901234567890123',1234567890;
|
XA PREPARE 'GTRID_6789012345678901234567890123456789012345678901234567890123','BQUAL_6789012345678901234567890123456789012345678901234567890123',1234567890;
|
||||||
XA COMMIT 'GTRID_6789012345678901234567890123456789012345678901234567890123','BQUAL_6789012345678901234567890123456789012345678901234567890123',1234567890;
|
XA COMMIT 'GTRID_6789012345678901234567890123456789012345678901234567890123','BQUAL_6789012345678901234567890123456789012345678901234567890123',1234567890;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 1 committed XA transaction, state COMMITTED in current and history
|
--echo ## Expect 1 committed XA transaction, state COMMITTED in current and history
|
||||||
--connection default
|
--connection default
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'COMMITTED', 1234567890, 'GTRID_6789012345678901234567890123456789012345678901234567890123', 'BQUAL_6789012345678901234567890123456789012345678901234567890123', 'COMMITTED', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'COMMITTED', 1234567890, 'GTRID_6789012345678901234567890123456789012345678901234567890123', 'BQUAL_6789012345678901234567890123456789012345678901234567890123', 'COMMITTED', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
@ -397,18 +397,18 @@ INSERT INTO t1 VALUES (704, 'XA LONG/BINARY');
|
|||||||
XA END 'GTRID_6789012345678901234567890123456789012345678901234567890123',0x425155414C5FA5A53839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233,1234567890;
|
XA END 'GTRID_6789012345678901234567890123456789012345678901234567890123',0x425155414C5FA5A53839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233,1234567890;
|
||||||
XA PREPARE 'GTRID_6789012345678901234567890123456789012345678901234567890123',0x425155414C5FA5A53839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233,1234567890;
|
XA PREPARE 'GTRID_6789012345678901234567890123456789012345678901234567890123',0x425155414C5FA5A53839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233,1234567890;
|
||||||
XA COMMIT 'GTRID_6789012345678901234567890123456789012345678901234567890123',0x425155414C5FA5A53839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233,1234567890;
|
XA COMMIT 'GTRID_6789012345678901234567890123456789012345678901234567890123',0x425155414C5FA5A53839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233,1234567890;
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 1 committed XA transaction, state COMMITTED in current and history
|
--echo ## Expect 1 committed XA transaction, state COMMITTED in current and history
|
||||||
--connection default
|
--connection default
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'COMMITTED', 1234567890, 'GTRID_6789012345678901234567890123456789012345678901234567890123', '0x425155414C5FA5A53839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233', 'COMMITTED', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'COMMITTED', 1234567890, 'GTRID_6789012345678901234567890123456789012345678901234567890123', '0x425155414C5FA5A53839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233', 'COMMITTED', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 1234567890, 'GTRID_6789012345678901234567890123456789012345678901234567890123', '0x425155414C5FA5A53839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233', 'COMMITTED', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 1234567890, 'GTRID_6789012345678901234567890123456789012345678901234567890123', '0x425155414C5FA5A53839303132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233', 'COMMITTED', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
CALL clear_transaction_tables();
|
CALL clear_transaction_tables();
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ========================================================================
|
--echo # ========================================================================
|
||||||
--echo # STEP 8 - TRANSACTIONAL AND NON-TRANSACTIONAL TABLES
|
--echo # STEP 8 - TRANSACTIONAL AND NON-TRANSACTIONAL TABLES
|
||||||
--echo ========================================================================
|
--echo # ========================================================================
|
||||||
--echo
|
--echo #
|
||||||
--echo ## MariaDB bug: MDEV-6012? MDEV-14436?
|
--echo ## MariaDB bug: MDEV-6012? MDEV-14436?
|
||||||
set @mariadb_bug=1;
|
set @mariadb_bug=1;
|
||||||
|
|
||||||
@ -422,13 +422,13 @@ set @mariadb_bug=1;
|
|||||||
SET SESSION AUTOCOMMIT = 0;
|
SET SESSION AUTOCOMMIT = 0;
|
||||||
SELECT * FROM performance_schema.events_transactions_current ORDER BY event_id;
|
SELECT * FROM performance_schema.events_transactions_current ORDER BY event_id;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # STEP 8.1 - UPDATE NON-TRANSACTIONAL TABLE
|
--echo # STEP 8.1 - UPDATE NON-TRANSACTIONAL TABLE
|
||||||
--echo #
|
--echo #
|
||||||
INSERT INTO nt1 VALUES (801, 'NON-TRANSACTIONAL');
|
INSERT INTO nt1 VALUES (801, 'NON-TRANSACTIONAL');
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 0 transactions in events_transactions_current
|
--echo ## Expect 0 transactions in events_transactions_current
|
||||||
--connection default
|
--connection default
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', '', 0, '', '', '', '', '', '', '', 0, 0, 0, @mariadb_bug);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', '', 0, '', '', '', '', '', '', '', 0, 0, 0, @mariadb_bug);
|
||||||
@ -436,52 +436,52 @@ CALL transaction_verifier(0, @con1_thread_id, 'transaction', '', 0, '', '', '',
|
|||||||
--connection con1
|
--connection con1
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 0 transactions in events_transactions_history
|
--echo ## Expect 0 transactions in events_transactions_history
|
||||||
--connection default
|
--connection default
|
||||||
CALL transaction_verifier(1, @con1_thread_id, 'transaction', '', 0, '', '', '', '', '', '', '', 0, 0, 0, @mariadb_bug);
|
CALL transaction_verifier(1, @con1_thread_id, 'transaction', '', 0, '', '', '', '', '', '', '', 0, 0, 0, @mariadb_bug);
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # STEP 8.2 - UPDATE TRANSACTIONAL AND NON-TRANSACTIONAL TABLES
|
--echo # STEP 8.2 - UPDATE TRANSACTIONAL AND NON-TRANSACTIONAL TABLES
|
||||||
--echo #
|
--echo #
|
||||||
--echo
|
--echo #
|
||||||
--echo ## First non-transactional...
|
--echo ## First non-transactional...
|
||||||
--echo
|
--echo #
|
||||||
--connection con1
|
--connection con1
|
||||||
INSERT INTO nt1 VALUES (802, 'NON-TRANSACTIONAL');
|
INSERT INTO nt1 VALUES (802, 'NON-TRANSACTIONAL');
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 0 transactions in events_transactions_current
|
--echo ## Expect 0 transactions in events_transactions_current
|
||||||
--connection default
|
--connection default
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', '', 0, '', '', '', '', '', '', '', 0, 0, 0, @mariadb_bug);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', '', 0, '', '', '', '', '', '', '', 0, 0, 0, @mariadb_bug);
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Now transactional. Transaction should be started.
|
--echo ## Now transactional. Transaction should be started.
|
||||||
--connection con1
|
--connection con1
|
||||||
INSERT INTO t1 VALUES (802, 'TRANSACTIONAL');
|
INSERT INTO t1 VALUES (802, 'TRANSACTIONAL');
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 1 transaction in events_transactions_current
|
--echo ## Expect 1 transaction in events_transactions_current
|
||||||
--connection default
|
--connection default
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
|
|
||||||
## Commit
|
## Commit
|
||||||
--echo
|
--echo #
|
||||||
--connection con1
|
--connection con1
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 1 committed transaction in events_transactions_current and history
|
--echo ## Expect 1 committed transaction in events_transactions_current and history
|
||||||
--connection default
|
--connection default
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1+@mariadb_bug);
|
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1+@mariadb_bug);
|
||||||
CALL clear_transaction_tables();
|
CALL clear_transaction_tables();
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ========================================================================
|
--echo # ========================================================================
|
||||||
--echo # STEP 9 - SAVEPOINTS
|
--echo # STEP 9 - SAVEPOINTS
|
||||||
--echo ========================================================================
|
--echo # ========================================================================
|
||||||
--echo #
|
--echo #
|
||||||
--echo # STEP 9.1 - SAVEPOINT 1
|
--echo # STEP 9.1 - SAVEPOINT 1
|
||||||
--echo #
|
--echo #
|
||||||
@ -490,12 +490,12 @@ START TRANSACTION;
|
|||||||
INSERT INTO t1 VALUES (901, 'SAVEPOINT');
|
INSERT INTO t1 VALUES (901, 'SAVEPOINT');
|
||||||
SAVEPOINT SVP001;
|
SAVEPOINT SVP001;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 1 active transaction with 1 savepoint
|
--echo ## Expect 1 active transaction with 1 savepoint
|
||||||
--connection default
|
--connection default
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 1, 0, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 1, 0, 0, 1);
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # STEP 9.2 - SAVEPOINTS 2 and 3
|
--echo # STEP 9.2 - SAVEPOINTS 2 and 3
|
||||||
--echo #
|
--echo #
|
||||||
@ -507,26 +507,26 @@ SAVEPOINT SVP003;
|
|||||||
INSERT INTO t1 VALUES (904, 'SAVEPOINT');
|
INSERT INTO t1 VALUES (904, 'SAVEPOINT');
|
||||||
SELECT COUNT(*) FROM t1 WHERE s1 > 900;
|
SELECT COUNT(*) FROM t1 WHERE s1 > 900;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # STEP 9.3 - ROLLBACK TO SAVEPOINT 2
|
--echo # STEP 9.3 - ROLLBACK TO SAVEPOINT 2
|
||||||
--echo #
|
--echo #
|
||||||
--connection con1
|
--connection con1
|
||||||
ROLLBACK TO SVP002;
|
ROLLBACK TO SVP002;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 1 active transaction with 3 savepoints, 1 rollback to savepoint
|
--echo ## Expect 1 active transaction with 3 savepoints, 1 rollback to savepoint
|
||||||
--connection default
|
--connection default
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 3, 1, 0, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 3, 1, 0, 1);
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # STEP 9.4 - RELEASE SAVEPOINT 1
|
--echo # STEP 9.4 - RELEASE SAVEPOINT 1
|
||||||
--echo #
|
--echo #
|
||||||
--connection con1
|
--connection con1
|
||||||
RELEASE SAVEPOINT SVP001;
|
RELEASE SAVEPOINT SVP001;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 1 active transaction with 3 savepoints, 1 rollback to savepoint, 1 release savepoint
|
--echo ## Expect 1 active transaction with 3 savepoints, 1 rollback to savepoint, 1 release savepoint
|
||||||
--connection default
|
--connection default
|
||||||
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 3, 1, 1, 1);
|
CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 3, 1, 1, 1);
|
||||||
@ -537,50 +537,50 @@ CALL transaction_verifier(0, @con1_thread_id, 'transaction', 'ACTIVE', 0, '', ''
|
|||||||
--connection con1
|
--connection con1
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 1 committed transaction with 3 savepoints, 1 rollback to savepoint, 1 release savepoint
|
--echo ## Expect 1 committed transaction with 3 savepoints, 1 rollback to savepoint, 1 release savepoint
|
||||||
--connection default
|
--connection default
|
||||||
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', '', 'NO', 3, 1, 1, 1);
|
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', 'READ WRITE', '', 'NO', 3, 1, 1, 1);
|
||||||
CALL clear_transaction_tables();
|
CALL clear_transaction_tables();
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ========================================================================
|
--echo # ========================================================================
|
||||||
--echo # STEP 10 - GTIDs
|
--echo # STEP 10 - GTIDs
|
||||||
--echo ========================================================================
|
--echo # ========================================================================
|
||||||
--echo GTIDs are tested in transaction_gtid.test.
|
--echo # GTIDs are tested in transaction_gtid.test.
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ========================================================================
|
--echo # ========================================================================
|
||||||
--echo # STEP 11 - MISCELLANY
|
--echo # STEP 11 - MISCELLANY
|
||||||
--echo ========================================================================
|
--echo # ========================================================================
|
||||||
--echo #
|
--echo #
|
||||||
--echo # STEP 11.1 - TRUNCATE DURING ACTIVE TRANSACTION
|
--echo # STEP 11.1 - TRUNCATE DURING ACTIVE TRANSACTION
|
||||||
--echo #
|
--echo #
|
||||||
--echo
|
--echo #
|
||||||
--echo # Verify that truncating events_transactions_current during an active transaction
|
--echo # Verify that truncating events_transactions_current during an active transaction
|
||||||
--echo # does not leave an orphaned transaction event, and that the row index to
|
--echo # does not leave an orphaned transaction event, and that the row index to
|
||||||
--echo # events_transactions_history is reset to 0.
|
--echo # events_transactions_history is reset to 0.
|
||||||
--echo
|
--echo #
|
||||||
--connection con1
|
--connection con1
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (1110, 'INSERT 1110');
|
INSERT INTO t1 VALUES (1110, 'INSERT 1110');
|
||||||
--connection default
|
--connection default
|
||||||
TRUNCATE performance_schema.events_transactions_current;
|
TRUNCATE performance_schema.events_transactions_current;
|
||||||
--connection con1
|
--connection con1
|
||||||
--echo
|
--echo #
|
||||||
COMMIT;
|
COMMIT;
|
||||||
--echo
|
--echo #
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (1111, 'INSERT 1111');
|
INSERT INTO t1 VALUES (1111, 'INSERT 1111');
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 1 transaction for connection 1
|
--echo ## Expect 1 transaction for connection 1
|
||||||
--connection default
|
--connection default
|
||||||
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', '', '', '', 0, 0, 0, 1);
|
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', '', '', '', 0, 0, 0, 1);
|
||||||
CALL clear_transaction_tables();
|
CALL clear_transaction_tables();
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # STEP 11.2 - DISABLE THREAD INSTRUMENTATION
|
--echo # STEP 11.2 - DISABLE THREAD INSTRUMENTATION
|
||||||
--echo #
|
--echo #
|
||||||
@ -588,49 +588,49 @@ CALL clear_transaction_tables();
|
|||||||
UPDATE performance_schema.setup_consumers
|
UPDATE performance_schema.setup_consumers
|
||||||
SET enabled = 'NO'
|
SET enabled = 'NO'
|
||||||
WHERE name = 'thread_instrumentation';
|
WHERE name = 'thread_instrumentation';
|
||||||
--echo
|
--echo #
|
||||||
TRUNCATE performance_schema.events_transactions_summary_global_by_event_name;
|
TRUNCATE performance_schema.events_transactions_summary_global_by_event_name;
|
||||||
|
|
||||||
--connection con1
|
--connection con1
|
||||||
--echo
|
--echo #
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (1120, 'INSERT 1120');
|
INSERT INTO t1 VALUES (1120, 'INSERT 1120');
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|
||||||
--connection default
|
--connection default
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 1 event with non-zero summary stats
|
--echo ## Expect 1 event with non-zero summary stats
|
||||||
--replace_column 3 sum_timer_wait 4 min_timer_wait 5 avg_timer_wait
|
--replace_column 3 sum_timer_wait 4 min_timer_wait 5 avg_timer_wait
|
||||||
SELECT EVENT_NAME, COUNT_STAR, SUM_TIMER_WAIT, MIN_TIMER_WAIT, AVG_TIMER_WAIT, COUNT_READ_WRITE
|
SELECT EVENT_NAME, COUNT_STAR, SUM_TIMER_WAIT, MIN_TIMER_WAIT, AVG_TIMER_WAIT, COUNT_READ_WRITE
|
||||||
FROM performance_schema.events_transactions_summary_global_by_event_name
|
FROM performance_schema.events_transactions_summary_global_by_event_name
|
||||||
WHERE count_star = 1 and sum_timer_wait != 0;
|
WHERE count_star = 1 and sum_timer_wait != 0;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Disable timing stats for 'transaction'
|
--echo ## Disable timing stats for 'transaction'
|
||||||
UPDATE performance_schema.setup_instruments SET timed = 'NO' WHERE name = 'transaction';
|
UPDATE performance_schema.setup_instruments SET timed = 'NO' WHERE name = 'transaction';
|
||||||
--echo
|
--echo #
|
||||||
TRUNCATE performance_schema.events_transactions_summary_global_by_event_name;
|
TRUNCATE performance_schema.events_transactions_summary_global_by_event_name;
|
||||||
|
|
||||||
--connection default
|
--connection default
|
||||||
--echo
|
--echo #
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (1121, 'INSERT 1121');
|
INSERT INTO t1 VALUES (1121, 'INSERT 1121');
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|
||||||
--connection default
|
--connection default
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 1 event, 0 stats
|
--echo ## Expect 1 event, 0 stats
|
||||||
SELECT * FROM performance_schema.events_transactions_summary_global_by_event_name;
|
SELECT * FROM performance_schema.events_transactions_summary_global_by_event_name;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Restore setup_consumers and setup_instruments
|
--echo ## Restore setup_consumers and setup_instruments
|
||||||
UPDATE performance_schema.setup_consumers SET enabled = 'YES' WHERE name = 'thread_instrumentation';
|
UPDATE performance_schema.setup_consumers SET enabled = 'YES' WHERE name = 'thread_instrumentation';
|
||||||
UPDATE performance_schema.setup_instruments SET enabled = 'YES' WHERE name = 'transaction';
|
UPDATE performance_schema.setup_instruments SET enabled = 'YES' WHERE name = 'transaction';
|
||||||
--echo
|
--echo #
|
||||||
DELETE FROM t1;
|
DELETE FROM t1;
|
||||||
CALL clear_history();
|
CALL clear_history();
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # STEP 11.3 - STATEMENT ROLLBACK - AUTOCOMMIT OFF - BINLOG FORMAT 'STATEMENT'
|
--echo # STEP 11.3 - STATEMENT ROLLBACK - AUTOCOMMIT OFF - BINLOG FORMAT 'STATEMENT'
|
||||||
--echo #
|
--echo #
|
||||||
@ -643,28 +643,28 @@ SET SESSION AUTOCOMMIT = 0;
|
|||||||
# Force a statement rollback by attempting to update a transactional table
|
# Force a statement rollback by attempting to update a transactional table
|
||||||
# and a non-replicatable table with binlog_format = STATEMENT.
|
# and a non-replicatable table with binlog_format = STATEMENT.
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (1130, 'INSERT 1130');
|
INSERT INTO t1 VALUES (1130, 'INSERT 1130');
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect binlog statement mode error
|
--echo ## Expect binlog statement mode error
|
||||||
--error 0, ER_BINLOG_STMT_MODE_AND_NO_REPL_TABLES
|
--error 0, ER_BINLOG_STMT_MODE_AND_NO_REPL_TABLES
|
||||||
UPDATE t1, performance_schema.setup_instruments pfs
|
UPDATE t1, performance_schema.setup_instruments pfs
|
||||||
SET t1.s1 = 1, pfs.timed = 'NO';
|
SET t1.s1 = 1, pfs.timed = 'NO';
|
||||||
--echo
|
--echo #
|
||||||
COMMIT;
|
COMMIT;
|
||||||
--echo
|
--echo #
|
||||||
SET SESSION AUTOCOMMIT = 1;
|
SET SESSION AUTOCOMMIT = 1;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 1 committed transaction
|
--echo ## Expect 1 committed transaction
|
||||||
--connection default
|
--connection default
|
||||||
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', '', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'COMMITTED', 0, '', '', '', '', '', '', 'NO', 0, 0, 0, 1);
|
||||||
--echo
|
--echo #
|
||||||
DELETE FROM t1;
|
DELETE FROM t1;
|
||||||
CALL clear_history();
|
CALL clear_history();
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # STEP 11.4 - STATEMENT ROLLBACK - AUTOCOMMIT ON - BINLOG FORMAT 'STATEMENT'
|
--echo # STEP 11.4 - STATEMENT ROLLBACK - AUTOCOMMIT ON - BINLOG FORMAT 'STATEMENT'
|
||||||
--echo #
|
--echo #
|
||||||
@ -676,13 +676,13 @@ SET SESSION AUTOCOMMIT = 1;
|
|||||||
#
|
#
|
||||||
# Force a statement rollback by attempting to update a transactional table
|
# Force a statement rollback by attempting to update a transactional table
|
||||||
# and a non-replicatable table with binlog_format = STATEMENT.
|
# and a non-replicatable table with binlog_format = STATEMENT.
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect binlog statement mode error
|
--echo ## Expect binlog statement mode error
|
||||||
--error 0, ER_BINLOG_STMT_MODE_AND_NO_REPL_TABLES
|
--error 0, ER_BINLOG_STMT_MODE_AND_NO_REPL_TABLES
|
||||||
UPDATE t1, performance_schema.setup_instruments pfs
|
UPDATE t1, performance_schema.setup_instruments pfs
|
||||||
SET t1.s1 = 1, pfs.timed = 'NO';
|
SET t1.s1 = 1, pfs.timed = 'NO';
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 1 rolled back transaction
|
--echo ## Expect 1 rolled back transaction
|
||||||
--connection default
|
--connection default
|
||||||
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'ROLLED BACK', 0, '', '', '', '', '', '', 'YES', 0, 0, 0, 1);
|
CALL transaction_verifier(1, @con1_thread_id, 'transaction', 'ROLLED BACK', 0, '', '', '', '', '', '', 'YES', 0, 0, 0, 1);
|
||||||
@ -690,26 +690,26 @@ CALL clear_history();
|
|||||||
|
|
||||||
--disable_parsing
|
--disable_parsing
|
||||||
# TODO: Add wait timer
|
# TODO: Add wait timer
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # STEP 11.5 - DROPPED CONNECTION DURING TRANSACTION
|
--echo # STEP 11.5 - DROPPED CONNECTION DURING TRANSACTION
|
||||||
--echo #
|
--echo #
|
||||||
--connection con2
|
--connection con2
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (1150, 'DROP CONNECTION');
|
INSERT INTO t1 VALUES (1150, 'DROP CONNECTION');
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 1 active transaction for connection 2
|
--echo ## Expect 1 active transaction for connection 2
|
||||||
--connection default
|
--connection default
|
||||||
CALL transaction_verifier(0, @con2_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
CALL transaction_verifier(0, @con2_thread_id, 'transaction', 'ACTIVE', 0, '', '', '', '', 'READ WRITE', '', 'NO', 0, 0, 0, 1);
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Drop connection
|
--echo ## Drop connection
|
||||||
--connection con2
|
--connection con2
|
||||||
--disconnect con2
|
--disconnect con2
|
||||||
--source include/wait_until_disconnected.inc
|
--source include/wait_until_disconnected.inc
|
||||||
--connection default
|
--connection default
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 0 transactions for connection 2
|
--echo ## Expect 0 transactions for connection 2
|
||||||
CALL transaction_verifier(0, @con2_thread_id, '', '', 0, '', '', '', '', '', '', '', 0, 0, 0, 0);
|
CALL transaction_verifier(0, @con2_thread_id, '', '', 0, '', '', '', '', '', '', '', 0, 0, 0, 0);
|
||||||
CALL transaction_verifier(1, @con2_thread_id, '', '', 0, '', '', '', '', '', '', '', 0, 0, 0, 0);
|
CALL transaction_verifier(1, @con2_thread_id, '', '', 0, '', '', '', '', '', '', '', 0, 0, 0, 0);
|
||||||
@ -717,11 +717,11 @@ CALL clear_transaction_tables();
|
|||||||
|
|
||||||
--enable_parsing
|
--enable_parsing
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ========================================================================
|
--echo # ========================================================================
|
||||||
--echo # CLEAN UP
|
--echo # CLEAN UP
|
||||||
--echo ========================================================================
|
--echo # ========================================================================
|
||||||
--echo
|
--echo #
|
||||||
|
|
||||||
--disconnect con1
|
--disconnect con1
|
||||||
##--disconnect con2
|
##--disconnect con2
|
||||||
|
@ -57,7 +57,7 @@
|
|||||||
--let $rpl_server_count= 1
|
--let $rpl_server_count= 1
|
||||||
--source include/rpl_init.inc
|
--source include/rpl_init.inc
|
||||||
|
|
||||||
--echo ==== Configure ====
|
--echo # ==== Configure ====
|
||||||
|
|
||||||
--connection default
|
--connection default
|
||||||
|
|
||||||
@ -75,7 +75,7 @@ CREATE TABLE t1 (a INT);
|
|||||||
--let $auxiliary_file= suite/perfschema/include/show_transaction_gtid.inc
|
--let $auxiliary_file= suite/perfschema/include/show_transaction_gtid.inc
|
||||||
--let $quiet= 1
|
--let $quiet= 1
|
||||||
|
|
||||||
--echo ==== Test ====
|
--echo # ==== Test ====
|
||||||
|
|
||||||
--let $n= 1
|
--let $n= 1
|
||||||
while ($n <= 4) {
|
while ($n <= 4) {
|
||||||
@ -182,7 +182,7 @@ while ($n <= 4) {
|
|||||||
--inc $n
|
--inc $n
|
||||||
}
|
}
|
||||||
|
|
||||||
--echo ==== Clean up ====
|
--echo # ==== Clean up ====
|
||||||
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
# DROP TABLE t_1, t_2, t_3, t_4;
|
# DROP TABLE t_1, t_2, t_3, t_4;
|
||||||
|
@ -17,27 +17,27 @@
|
|||||||
--source ../include/transaction_setup.inc
|
--source ../include/transaction_setup.inc
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo #========================================================================
|
--echo #========================================================================
|
||||||
--echo # STEP 1 - SETUP
|
--echo # STEP 1 - SETUP
|
||||||
--echo #========================================================================
|
--echo #========================================================================
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Setup control thread
|
--echo ## Setup control thread
|
||||||
--echo
|
--echo #
|
||||||
--connection default
|
--connection default
|
||||||
SET SESSION AUTOCOMMIT= 1;
|
SET SESSION AUTOCOMMIT= 1;
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
USE test;
|
USE test;
|
||||||
DROP DATABASE IF EXISTS db;
|
DROP DATABASE IF EXISTS db;
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Create test database, test tables, one transactional and one non-transactional
|
--echo ## Create test database, test tables, one transactional and one non-transactional
|
||||||
CREATE DATABASE db;
|
CREATE DATABASE db;
|
||||||
CREATE TABLE db.t1 (s1 int, s2 varchar(64)) ENGINE=INNODB;
|
CREATE TABLE db.t1 (s1 int, s2 varchar(64)) ENGINE=INNODB;
|
||||||
CREATE TABLE db.nt1 (s1 int, s2 varchar(64)) ENGINE=MYISAM;
|
CREATE TABLE db.nt1 (s1 int, s2 varchar(64)) ENGINE=MYISAM;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Setup connection 1
|
--echo ## Setup connection 1
|
||||||
connect(con1, localhost, root,,);
|
connect(con1, localhost, root,,);
|
||||||
USE db;
|
USE db;
|
||||||
@ -50,24 +50,24 @@ let $con1_thread_id= `SELECT @my_thread_id`;
|
|||||||
eval SET @con1_thread_id= $con1_thread_id;
|
eval SET @con1_thread_id= $con1_thread_id;
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Disable events from the control (default) connection
|
--echo ## Disable events from the control (default) connection
|
||||||
UPDATE performance_schema.threads SET instrumented = 'NO' WHERE processlist_id = CONNECTION_ID();
|
UPDATE performance_schema.threads SET instrumented = 'NO' WHERE processlist_id = CONNECTION_ID();
|
||||||
|
|
||||||
# Use this to select events from all threads
|
# Use this to select events from all threads
|
||||||
eval SET @all_threads= 0;
|
eval SET @all_threads= 0;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Enable only transaction and statement instruments
|
--echo ## Enable only transaction and statement instruments
|
||||||
UPDATE performance_schema.setup_instruments SET enabled='NO', timed='NO';
|
UPDATE performance_schema.setup_instruments SET enabled='NO', timed='NO';
|
||||||
UPDATE performance_schema.setup_instruments SET enabled='YES'
|
UPDATE performance_schema.setup_instruments SET enabled='YES'
|
||||||
WHERE name LIKE ('statement/%') OR name = 'transaction';
|
WHERE name LIKE ('statement/%') OR name = 'transaction';
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Clear statement and transaction history
|
--echo ## Clear statement and transaction history
|
||||||
CALL test.clear_history();
|
CALL test.clear_history();
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo #========================================================================
|
--echo #========================================================================
|
||||||
--echo # STEP 2 - BASIC TRANSACTION
|
--echo # STEP 2 - BASIC TRANSACTION
|
||||||
--echo #========================================================================
|
--echo #========================================================================
|
||||||
@ -103,7 +103,7 @@ COMMIT;
|
|||||||
--echo #
|
--echo #
|
||||||
--connection con1
|
--connection con1
|
||||||
CREATE PROCEDURE tp_update() UPDATE t1 SET s1 = s1 + 1;
|
CREATE PROCEDURE tp_update() UPDATE t1 SET s1 = s1 + 1;
|
||||||
--echo
|
--echo #
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (310, "INSERT 310");
|
INSERT INTO t1 VALUES (310, "INSERT 310");
|
||||||
INSERT INTO t1 VALUES (311, "INSERT 311");
|
INSERT INTO t1 VALUES (311, "INSERT 311");
|
||||||
@ -120,12 +120,12 @@ COMMIT;
|
|||||||
--echo #
|
--echo #
|
||||||
--connection con1
|
--connection con1
|
||||||
CREATE PROCEDURE tp_start() START TRANSACTION;
|
CREATE PROCEDURE tp_start() START TRANSACTION;
|
||||||
--echo
|
--echo #
|
||||||
CALL tp_start();
|
CALL tp_start();
|
||||||
INSERT INTO t1 VALUES (320, "INSERT 320"),(321, "INSERT 321");
|
INSERT INTO t1 VALUES (320, "INSERT 320"),(321, "INSERT 321");
|
||||||
INSERT INTO t1 VALUES (322, "INSERT 322"),(323, "INSERT 323");
|
INSERT INTO t1 VALUES (322, "INSERT 322"),(323, "INSERT 323");
|
||||||
UPDATE t1 SET s1 = s1 + 1 WHERE s1 > 320;
|
UPDATE t1 SET s1 = s1 + 1 WHERE s1 > 320;
|
||||||
--echo
|
--echo #
|
||||||
SELECT * FROM t1 ORDER BY s1;
|
SELECT * FROM t1 ORDER BY s1;
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|
||||||
@ -139,22 +139,22 @@ COMMIT;
|
|||||||
CREATE PROCEDURE tp_rollback() ROLLBACK;
|
CREATE PROCEDURE tp_rollback() ROLLBACK;
|
||||||
CREATE PROCEDURE tp_commit() COMMIT;
|
CREATE PROCEDURE tp_commit() COMMIT;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## COMMIT within stored procedure
|
--echo ## COMMIT within stored procedure
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (330, "INSERT 330"),(331, "INSERT 331");
|
INSERT INTO t1 VALUES (330, "INSERT 330"),(331, "INSERT 331");
|
||||||
INSERT INTO t1 VALUES (332, "INSERT 332"),(333, "INSERT 333");
|
INSERT INTO t1 VALUES (332, "INSERT 332"),(333, "INSERT 333");
|
||||||
DELETE FROM t1 WHERE s1 > 331;
|
DELETE FROM t1 WHERE s1 > 331;
|
||||||
CALL tp_commit();
|
CALL tp_commit();
|
||||||
--echo
|
--echo #
|
||||||
SELECT * FROM t1 ORDER BY s1;
|
SELECT * FROM t1 ORDER BY s1;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## ROLLBACK within stored procedure
|
--echo ## ROLLBACK within stored procedure
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
UPDATE t1 SET s1 = s1*2 WHERE s1 > 331;
|
UPDATE t1 SET s1 = s1*2 WHERE s1 > 331;
|
||||||
CALL tp_rollback();
|
CALL tp_rollback();
|
||||||
--echo
|
--echo #
|
||||||
SELECT * FROM t1 ORDER BY s1;
|
SELECT * FROM t1 ORDER BY s1;
|
||||||
|
|
||||||
## Verify and reset
|
## Verify and reset
|
||||||
@ -163,7 +163,7 @@ SELECT * FROM t1 ORDER BY s1;
|
|||||||
--echo #========================================================================
|
--echo #========================================================================
|
||||||
--echo # STEP 4 - TRANSACTIONS AND STORED FUNCTIONS
|
--echo # STEP 4 - TRANSACTIONS AND STORED FUNCTIONS
|
||||||
--echo #========================================================================
|
--echo #========================================================================
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # STEP 4.1 - FUNCTION WITHIN A TRANSACTION
|
--echo # STEP 4.1 - FUNCTION WITHIN A TRANSACTION
|
||||||
--echo #
|
--echo #
|
||||||
@ -176,38 +176,38 @@ RETURN x+y;
|
|||||||
END |
|
END |
|
||||||
DELIMITER ;|
|
DELIMITER ;|
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Clear history
|
--echo ## Clear history
|
||||||
--connection default
|
--connection default
|
||||||
CALL test.clear_history();
|
CALL test.clear_history();
|
||||||
--connection con1
|
--connection con1
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (410, "INSERT 410");
|
INSERT INTO t1 VALUES (410, "INSERT 410");
|
||||||
INSERT INTO t1 VALUES (411, "INSERT 411");
|
INSERT INTO t1 VALUES (411, "INSERT 411");
|
||||||
INSERT INTO t1 VALUES (412, "INSERT 412");
|
INSERT INTO t1 VALUES (412, "INSERT 412");
|
||||||
DELETE FROM t1 WHERE s1 > 410;
|
DELETE FROM t1 WHERE s1 > 410;
|
||||||
--echo
|
--echo #
|
||||||
SELECT * FROM t1 ORDER BY s1;
|
SELECT * FROM t1 ORDER BY s1;
|
||||||
--echo
|
--echo #
|
||||||
SELECT fn_add(413, 414);
|
SELECT fn_add(413, 414);
|
||||||
COMMIT;
|
COMMIT;
|
||||||
--echo
|
--echo #
|
||||||
SELECT * FROM t1 ORDER BY s1;
|
SELECT * FROM t1 ORDER BY s1;
|
||||||
|
|
||||||
## Verify and reset
|
## Verify and reset
|
||||||
--source ../include/transaction_nested_events_verifier.inc
|
--source ../include/transaction_nested_events_verifier.inc
|
||||||
|
|
||||||
--connection con1
|
--connection con1
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Again, but this time with a rollback
|
--echo ## Again, but this time with a rollback
|
||||||
--echo
|
--echo #
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
SELECT fn_add(415, 416);
|
SELECT fn_add(415, 416);
|
||||||
--echo
|
--echo #
|
||||||
ROLLBACK;
|
ROLLBACK;
|
||||||
--echo
|
--echo #
|
||||||
SELECT * FROM t1 ORDER BY s1;
|
SELECT * FROM t1 ORDER BY s1;
|
||||||
|
|
||||||
## Verify and reset
|
## Verify and reset
|
||||||
@ -222,57 +222,57 @@ DELIMITER |;
|
|||||||
CREATE FUNCTION fn_err1() RETURNS VARCHAR(10) BEGIN START TRANSACTION ; RETURN 'invalid' ; END|
|
CREATE FUNCTION fn_err1() RETURNS VARCHAR(10) BEGIN START TRANSACTION ; RETURN 'invalid' ; END|
|
||||||
DELIMITER ;|
|
DELIMITER ;|
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 0 transactions
|
--echo ## Expect 0 transactions
|
||||||
--connection default
|
--connection default
|
||||||
SELECT COUNT(*) FROM performance_schema.events_transactions_history;
|
SELECT COUNT(*) FROM performance_schema.events_transactions_history;
|
||||||
--connection con1
|
--connection con1
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect stored function does not exist
|
--echo ## Expect stored function does not exist
|
||||||
--echo
|
--echo #
|
||||||
--error ER_SP_DOES_NOT_EXIST
|
--error ER_SP_DOES_NOT_EXIST
|
||||||
SELECT fn_err1();
|
SELECT fn_err1();
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 0 transactions
|
--echo ## Expect 0 transactions
|
||||||
--connection default
|
--connection default
|
||||||
SELECT COUNT(*) FROM performance_schema.events_transactions_history;
|
SELECT COUNT(*) FROM performance_schema.events_transactions_history;
|
||||||
--connection con1
|
--connection con1
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
DELIMITER |;
|
DELIMITER |;
|
||||||
--error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
|
--error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
CREATE FUNCTION fn_err2() RETURNS VARCHAR(10) BEGIN COMMIT; RETURN 'invalid' ; END|
|
CREATE FUNCTION fn_err2() RETURNS VARCHAR(10) BEGIN COMMIT; RETURN 'invalid' ; END|
|
||||||
DELIMITER ;|
|
DELIMITER ;|
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect stored function does not exist
|
--echo ## Expect stored function does not exist
|
||||||
--echo
|
--echo #
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
DELETE FROM t1 WHERE s1 > 320;
|
DELETE FROM t1 WHERE s1 > 320;
|
||||||
--error ER_SP_DOES_NOT_EXIST
|
--error ER_SP_DOES_NOT_EXIST
|
||||||
SELECT fn_err2();
|
SELECT fn_err2();
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect 0 transactions
|
--echo ## Expect 0 transactions
|
||||||
--connection default
|
--connection default
|
||||||
SELECT COUNT(*) FROM performance_schema.events_transactions_history;
|
SELECT COUNT(*) FROM performance_schema.events_transactions_history;
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Clear transaction and statement tables
|
--echo ## Clear transaction and statement tables
|
||||||
CALL test.clear_history();
|
CALL test.clear_history();
|
||||||
|
|
||||||
--echo #========================================================================
|
--echo #========================================================================
|
||||||
--echo # STEP 5 - TRANSACTIONS AND TRIGGERS
|
--echo # STEP 5 - TRANSACTIONS AND TRIGGERS
|
||||||
--echo #========================================================================
|
--echo #========================================================================
|
||||||
--echo
|
--echo #
|
||||||
--echo #
|
--echo #
|
||||||
--echo # STEP 5.1 - FORCE STATEMENT ROLLBACK FROM TRIGGER
|
--echo # STEP 5.1 - FORCE STATEMENT ROLLBACK FROM TRIGGER
|
||||||
--echo #
|
--echo #
|
||||||
--connection con1
|
--connection con1
|
||||||
--echo ## Create a trigger to force statement rollback
|
--echo ## Create a trigger to force statement rollback
|
||||||
--echo
|
--echo #
|
||||||
DELIMITER |;
|
DELIMITER |;
|
||||||
CREATE TRIGGER trigger_before_update BEFORE UPDATE ON t1
|
CREATE TRIGGER trigger_before_update BEFORE UPDATE ON t1
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
@ -283,16 +283,16 @@ BEGIN
|
|||||||
END;|
|
END;|
|
||||||
DELIMITER ;|
|
DELIMITER ;|
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Clear history
|
--echo ## Clear history
|
||||||
--connection default
|
--connection default
|
||||||
CALL test.clear_history();
|
CALL test.clear_history();
|
||||||
--connection con1
|
--connection con1
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Insert multiple rows, then update. Trigger will force rollback the
|
--echo ## Insert multiple rows, then update. Trigger will force rollback the
|
||||||
--echo ## UPDATE statement, but the transaction should not roll back.
|
--echo ## UPDATE statement, but the transaction should not roll back.
|
||||||
--echo
|
--echo #
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
INSERT INTO t1 VALUES (500, "INSERT 500");
|
INSERT INTO t1 VALUES (500, "INSERT 500");
|
||||||
INSERT INTO t1 VALUES (501, "INSERT 501");
|
INSERT INTO t1 VALUES (501, "INSERT 501");
|
||||||
@ -300,19 +300,19 @@ INSERT INTO t1 VALUES (502, "INSERT 502");
|
|||||||
INSERT INTO t1 VALUES (503, "INSERT 503");
|
INSERT INTO t1 VALUES (503, "INSERT 503");
|
||||||
INSERT INTO t1 VALUES (504, "INSERT 504");
|
INSERT INTO t1 VALUES (504, "INSERT 504");
|
||||||
INSERT INTO t1 VALUES (505, "INSERT 505");
|
INSERT INTO t1 VALUES (505, "INSERT 505");
|
||||||
--echo
|
--echo #
|
||||||
SELECT * FROM t1 ORDER BY s1;
|
SELECT * FROM t1 ORDER BY s1;
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Expect error when UPDATE hits record 505
|
--echo ## Expect error when UPDATE hits record 505
|
||||||
--echo
|
--echo #
|
||||||
--error ER_SIGNAL_EXCEPTION
|
--error ER_SIGNAL_EXCEPTION
|
||||||
UPDATE t1 SET s1 = s1 * 2 WHERE s1 >= 500;
|
UPDATE t1 SET s1 = s1 * 2 WHERE s1 >= 500;
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Verify that INSERT succeeded, UPDATE failed and transaction did not rollback
|
--echo ## Verify that INSERT succeeded, UPDATE failed and transaction did not rollback
|
||||||
--echo
|
--echo #
|
||||||
SELECT * FROM t1 ORDER BY s1;
|
SELECT * FROM t1 ORDER BY s1;
|
||||||
COMMIT;
|
COMMIT;
|
||||||
--echo
|
--echo #
|
||||||
DROP TRIGGER trigger_before_update;
|
DROP TRIGGER trigger_before_update;
|
||||||
|
|
||||||
## Verify and reset
|
## Verify and reset
|
||||||
@ -328,9 +328,9 @@ DROP TRIGGER trigger_before_update;
|
|||||||
# Check that the event_scheduler is really running
|
# Check that the event_scheduler is really running
|
||||||
#--source include/running_event_scheduler.inc
|
#--source include/running_event_scheduler.inc
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Create a one-time event that will insert, update, commit and rollback.
|
--echo ## Create a one-time event that will insert, update, commit and rollback.
|
||||||
--echo
|
--echo #
|
||||||
DELIMITER |;
|
DELIMITER |;
|
||||||
CREATE EVENT trx_event ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 5 SECOND DO
|
CREATE EVENT trx_event ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 5 SECOND DO
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -348,23 +348,23 @@ BEGIN
|
|||||||
END;|
|
END;|
|
||||||
DELIMITER ;|
|
DELIMITER ;|
|
||||||
|
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Clear history
|
--echo ## Clear history
|
||||||
--connection default
|
--connection default
|
||||||
CALL test.clear_history();
|
CALL test.clear_history();
|
||||||
--connection con1
|
--connection con1
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Wait a few seconds for scheduled event to execute and finish.
|
--echo ## Wait a few seconds for scheduled event to execute and finish.
|
||||||
# Check based on the expected content in t1.
|
# Check based on the expected content in t1.
|
||||||
let $wait_condition= SELECT COUNT(*) = 4 FROM t1;
|
let $wait_condition= SELECT COUNT(*) = 4 FROM t1;
|
||||||
--source include/wait_condition.inc
|
--source include/wait_condition.inc
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Confirm that the scheduled event completed and the content of t1 is right.
|
--echo ## Confirm that the scheduled event completed and the content of t1 is right.
|
||||||
--echo
|
--echo #
|
||||||
SELECT * FROM t1 ORDER BY s1;
|
SELECT * FROM t1 ORDER BY s1;
|
||||||
--echo
|
--echo #
|
||||||
--echo ## Verify and reset
|
--echo ## Verify and reset
|
||||||
--echo
|
--echo #
|
||||||
eval SET @all_threads= 1;
|
eval SET @all_threads= 1;
|
||||||
--source ../include/transaction_nested_events_verifier.inc
|
--source ../include/transaction_nested_events_verifier.inc
|
||||||
eval SET @all_threads= 0;
|
eval SET @all_threads= 0;
|
||||||
|
Reference in New Issue
Block a user