1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

Merge 10.5 into 10.6

This commit is contained in:
Marko Mäkelä
2023-10-19 13:50:00 +03:00
38 changed files with 862 additions and 647 deletions

View File

@@ -4539,16 +4539,24 @@ bool Backup_datasinks::backup_low()
if (recv_find_max_checkpoint(&max_cp_field) == DB_SUCCESS if (recv_find_max_checkpoint(&max_cp_field) == DB_SUCCESS
&& log_sys.log.format != 0) { && log_sys.log.format != 0) {
if (max_cp_field == LOG_CHECKPOINT_1) { switch (max_cp_field) {
log_sys.log.read(max_cp_field, case LOG_CHECKPOINT_1:
if (log_sys.log.read(max_cp_field,
{log_sys.checkpoint_buf, {log_sys.checkpoint_buf,
OS_FILE_LOG_BLOCK_SIZE}); OS_FILE_LOG_BLOCK_SIZE}))
{
/* metadata_to_lsn still 0 so error returns below */
msg("Error: recv_find_max_checkpoint() failed.");
break;
} }
/* fallthrough */
default:
metadata_to_lsn = mach_read_from_8( metadata_to_lsn = mach_read_from_8(
log_sys.checkpoint_buf + LOG_CHECKPOINT_LSN); log_sys.checkpoint_buf + LOG_CHECKPOINT_LSN);
msg("mariabackup: The latest check point" msg("mariabackup: The latest check point"
" (for incremental): '" LSN_PF "'", " (for incremental): '" LSN_PF "'",
metadata_to_lsn); metadata_to_lsn);
}
} else { } else {
msg("Error: recv_find_max_checkpoint() failed."); msg("Error: recv_find_max_checkpoint() failed.");
} }
@@ -4771,14 +4779,14 @@ reread_log_header:
checkpoint_lsn_start = log_sys.log.get_lsn(); checkpoint_lsn_start = log_sys.log.get_lsn();
checkpoint_no_start = log_sys.next_checkpoint_no; checkpoint_no_start = log_sys.next_checkpoint_no;
log_sys.log.read(max_cp_field, {buf, OS_FILE_LOG_BLOCK_SIZE}); err = log_sys.log.read(max_cp_field, {buf, OS_FILE_LOG_BLOCK_SIZE});
if (checkpoint_no_start if (err == DB_SUCCESS && (checkpoint_no_start
!= mach_read_from_8(buf + LOG_CHECKPOINT_NO) != mach_read_from_8(buf + LOG_CHECKPOINT_NO)
|| checkpoint_lsn_start || checkpoint_lsn_start
!= mach_read_from_8(buf + LOG_CHECKPOINT_LSN) != mach_read_from_8(buf + LOG_CHECKPOINT_LSN)
|| log_sys.log.get_lsn_offset() || log_sys.log.get_lsn_offset()
!= mach_read_from_8(buf + LOG_CHECKPOINT_OFFSET)) != mach_read_from_8(buf + LOG_CHECKPOINT_OFFSET)))
goto reread_log_header; goto reread_log_header;
} }
mysql_mutex_unlock(&log_sys.mutex); mysql_mutex_unlock(&log_sys.mutex);

View File

@@ -11,6 +11,7 @@
connection default; connection default;
let $default_db=`select database()`; let $default_db=`select database()`;
let $MYSQLD_DATADIR= `SELECT @@datadir`; let $MYSQLD_DATADIR= `SELECT @@datadir`;
let $pid_file=`select @@pid_file`;
#it will used at end of test for wait_for_status_var.inc primitive #it will used at end of test for wait_for_status_var.inc primitive
#let $status_var= Threads_connected; #let $status_var= Threads_connected;
@@ -23,6 +24,7 @@ wait-maria_empty_logs.inc
EOF EOF
--source include/mysqladmin_shutdown.inc --source include/mysqladmin_shutdown.inc
--source include/wait_until_no_pidfile.inc
--disable_warnings --disable_warnings
if (!$mel_keep_control_file) if (!$mel_keep_control_file)

View File

@@ -0,0 +1,30 @@
# Include this script after a shutdown to wait until the pid file,
# stored in $pid_file, has disappered.
#--echo $pid_file
--disable_result_log
--disable_query_log
# Wait one minute
let $counter= 600;
while ($counter)
{
--error 0,1
--file_exists $pid_file
if (!$errno)
{
dec $counter;
--real_sleep 0.1
}
if ($errno)
{
let $counter= 0;
}
}
if (!$errno)
{
--die Pid file "$pid_file" failed to disappear
}
--enable_query_log
--enable_result_log

View File

@@ -141,6 +141,7 @@ CREATE TABLE `tab_MDEV_30820` (
); );
--disable_ps2_protocol --disable_ps2_protocol
--disable_view_protocol
--delimiter // --delimiter //
CREATE FUNCTION `get_zero`() RETURNS int(11) CREATE FUNCTION `get_zero`() RETURNS int(11)
@@ -182,6 +183,7 @@ drop table tab_MDEV_30820, tab2;
drop function get_zero; drop function get_zero;
--enable_ps2_protocol --enable_ps2_protocol
--enable_view_protocol
--echo # --echo #
--echo # End of 10.4 tests --echo # End of 10.4 tests

View File

@@ -3,10 +3,6 @@ SET GLOBAL innodb_stats_persistent=OFF;
# #
# MDEV-6402: Optimizer doesn't choose best execution plan when composite key is used # MDEV-6402: Optimizer doesn't choose best execution plan when composite key is used
# #
create table t0(a int);
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
create table t1(a int);
insert into t1 select A.a + B.a* 10 + C.a * 100 from t0 A, t0 B, t0 C;
CREATE TABLE t2 ( CREATE TABLE t2 (
pk1 int(11) NOT NULL, pk1 int(11) NOT NULL,
pk2 int(11) NOT NULL, pk2 int(11) NOT NULL,
@@ -18,13 +14,13 @@ UNIQUE KEY ux_pk1_fd5 (pk1,fd5)
) ENGINE=InnoDB; ) ENGINE=InnoDB;
insert into t2 insert into t2
select select
round(log(2,t1.a+1)), round(log(2,seq+1)),
t1.a, seq,
t1.a, seq,
REPEAT('filler-data-', 10), REPEAT('filler-data-', 10),
REPEAT('filler-data-', 10) REPEAT('filler-data-', 10)
from from
t1; seq_0_to_1999;
select pk1, count(*) from t2 group by pk1; select pk1, count(*) from t2 group by pk1;
pk1 count(*) pk1 count(*)
0 1 0 1
@@ -37,7 +33,8 @@ pk1 count(*)
7 91 7 91
8 181 8 181
9 362 9 362
10 276 10 724
11 552
# The following should use range(ux_pk1_fd5), two key parts (key_len=5+8=13) # The following should use range(ux_pk1_fd5), two key parts (key_len=5+8=13)
EXPLAIN SELECT * FROM t2 USE INDEX(ux_pk1_fd5) WHERE pk1=9 AND fd5 < 500 ORDER BY fd5 DESC LIMIT 10; EXPLAIN SELECT * FROM t2 USE INDEX(ux_pk1_fd5) WHERE pk1=9 AND fd5 < 500 ORDER BY fd5 DESC LIMIT 10;
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
@@ -46,7 +43,7 @@ id select_type table type possible_keys key key_len ref rows Extra
EXPLAIN SELECT * FROM t2 WHERE pk1=9 AND fd5 < 500 ORDER BY fd5 DESC LIMIT 10; EXPLAIN SELECT * FROM t2 WHERE pk1=9 AND fd5 < 500 ORDER BY fd5 DESC LIMIT 10;
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 range PRIMARY,ux_pk1_fd5 ux_pk1_fd5 13 NULL 138 Using where 1 SIMPLE t2 range PRIMARY,ux_pk1_fd5 ux_pk1_fd5 13 NULL 138 Using where
drop table t0,t1, t2; drop table t2;
# #
# MDEV-6814: Server crashes in calculate_key_len on query with ORDER BY # MDEV-6814: Server crashes in calculate_key_len on query with ORDER BY
# #

View File

@@ -1,4 +1,5 @@
--source include/have_innodb.inc --source include/have_innodb.inc
--source include/have_sequence.inc
SET @save_stats_persistent=@@GLOBAL.innodb_stats_persistent; SET @save_stats_persistent=@@GLOBAL.innodb_stats_persistent;
SET GLOBAL innodb_stats_persistent=OFF; SET GLOBAL innodb_stats_persistent=OFF;
@@ -6,11 +7,6 @@ SET GLOBAL innodb_stats_persistent=OFF;
--echo # --echo #
--echo # MDEV-6402: Optimizer doesn't choose best execution plan when composite key is used --echo # MDEV-6402: Optimizer doesn't choose best execution plan when composite key is used
--echo # --echo #
create table t0(a int);
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
create table t1(a int);
insert into t1 select A.a + B.a* 10 + C.a * 100 from t0 A, t0 B, t0 C;
CREATE TABLE t2 ( CREATE TABLE t2 (
pk1 int(11) NOT NULL, pk1 int(11) NOT NULL,
@@ -24,13 +20,13 @@ CREATE TABLE t2 (
insert into t2 insert into t2
select select
round(log(2,t1.a+1)), round(log(2,seq+1)),
t1.a, seq,
t1.a, seq,
REPEAT('filler-data-', 10), REPEAT('filler-data-', 10),
REPEAT('filler-data-', 10) REPEAT('filler-data-', 10)
from from
t1; seq_0_to_1999;
select pk1, count(*) from t2 group by pk1; select pk1, count(*) from t2 group by pk1;
@@ -39,7 +35,7 @@ EXPLAIN SELECT * FROM t2 USE INDEX(ux_pk1_fd5) WHERE pk1=9 AND fd5 < 500 ORDER B
--echo # This also must use range, not ref. key_len must be 13 --echo # This also must use range, not ref. key_len must be 13
EXPLAIN SELECT * FROM t2 WHERE pk1=9 AND fd5 < 500 ORDER BY fd5 DESC LIMIT 10; EXPLAIN SELECT * FROM t2 WHERE pk1=9 AND fd5 < 500 ORDER BY fd5 DESC LIMIT 10;
drop table t0,t1, t2; drop table t2;
--echo # --echo #
--echo # MDEV-6814: Server crashes in calculate_key_len on query with ORDER BY --echo # MDEV-6814: Server crashes in calculate_key_len on query with ORDER BY

View File

@@ -0,0 +1,21 @@
call mtr.add_suppression("Checksum mismatch in the first page of file");
show variables like 'innodb_doublewrite';
Variable_name Value
innodb_doublewrite ON
create table t1(f1 int not null, f2 int not null)engine=innodb;
insert into t1 values (1, 1);
SET GLOBAL innodb_purge_rseg_truncate_frequency=1;
InnoDB 0 transactions not purged
set GLOBAL innodb_log_checkpoint_now=1;
# Make the first page dirty for undo tablespace
set global innodb_saved_page_number_debug = 0;
set global innodb_fil_make_page_dirty_debug = 1;
SET GLOBAL innodb_max_dirty_pages_pct_lwm=0.0;
SET GLOBAL innodb_max_dirty_pages_pct=0.0;
# Kill the server
# restart
FOUND 1 /Checksum mismatch in the first page of file/ in mysqld.1.err
check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
drop table t1;

View File

@@ -0,0 +1,2 @@
--innodb_undo_tablespaces=3
--innodb_sys_tablespaces

View File

@@ -0,0 +1,47 @@
--source include/have_innodb.inc
--source include/have_debug.inc
--source include/not_embedded.inc
call mtr.add_suppression("Checksum mismatch in the first page of file");
let INNODB_PAGE_SIZE=`select @@innodb_page_size`;
let MYSQLD_DATADIR=`select @@datadir`;
show variables like 'innodb_doublewrite';
create table t1(f1 int not null, f2 int not null)engine=innodb;
insert into t1 values (1, 1);
SET GLOBAL innodb_purge_rseg_truncate_frequency=1;
--source include/wait_all_purged.inc
set GLOBAL innodb_log_checkpoint_now=1;
--source ../include/no_checkpoint_start.inc
--echo # Make the first page dirty for undo tablespace
set global innodb_saved_page_number_debug = 0;
set global innodb_fil_make_page_dirty_debug = 1;
SET GLOBAL innodb_max_dirty_pages_pct_lwm=0.0;
SET GLOBAL innodb_max_dirty_pages_pct=0.0;
sleep 1;
--let CLEANUP_IF_CHECKPOINT=drop table t1;
--source ../include/no_checkpoint_end.inc
perl;
use IO::Handle;
my $fname= "$ENV{'MYSQLD_DATADIR'}/undo001";
my $page_size = $ENV{INNODB_PAGE_SIZE};
die unless open(FILE, "+<", $fname);
sysread(FILE, $page, $page_size)==$page_size||die "Unable to read $name\n";
substr($page, 49, 4) = pack("N", 1000);
sysseek(FILE, 0, 0)||die "Unable to seek $fname\n";
die unless syswrite(FILE, $page, $page_size) == $page_size;
close FILE;
EOF
--source include/start_mysqld.inc
let SEARCH_FILE= $MYSQLTEST_VARDIR/log/mysqld.1.err;
let SEARCH_PATTERN= Checksum mismatch in the first page of file;
--source include/search_pattern_in_file.inc
check table t1;
drop table t1;

View File

@@ -11,3 +11,9 @@ SELECT * FROM t;
a a
1 1
DROP TABLE t; DROP TABLE t;
#
# MDEV-18200 MariaBackup full backup failed with InnoDB: Failing assertion: success
#
#
# End of 10.4 tests
#

View File

@@ -21,4 +21,19 @@ rmdir $table_data_dir;
SELECT * FROM t; SELECT * FROM t;
DROP TABLE t; DROP TABLE t;
rmdir $targetdir; rmdir $targetdir;
--echo #
--echo # MDEV-18200 MariaBackup full backup failed with InnoDB: Failing assertion: success
--echo #
let $DATADIR= `select @@datadir`;
chmod 0000 $DATADIR/ibdata1;
--disable_result_log
--error 1
exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir;
--enable_result_log
chmod 0755 $DATADIR/ibdata1;
rmdir $table_data_dir; rmdir $table_data_dir;
rmdir $targetdir;
--echo #
--echo # End of 10.4 tests
--echo #

View File

@@ -4,17 +4,6 @@
# Wait until there is only one session left, this one. # Wait until there is only one session left, this one.
let $wait_condition= let $wait_condition= select count(*) = 1 from performance_schema.threads where `type`='foreground';
select count(*) = 1 from information_schema.processlist;
--source include/wait_condition.inc
# Threads are removed from information_schema.processlist
# very soon, but continue to execute in the server,
# before finally be removed from performance_schema.threads.
# Because instrumentation is optional, we use "<=" here.
let $wait_condition=
select count(*) <= 2 from performance_schema.threads
where `TYPE`='FOREGROUND';
--source include/wait_condition.inc --source include/wait_condition.inc

View File

@@ -1,41 +0,0 @@
SET default_storage_engine=InnoDB;
SELECT @save_instrument_enabled := ENABLED
, @save_instrument_timed := TIMED
FROM performance_schema.setup_instruments
WHERE NAME = 'wait/lock/table/sql/handler';
@save_instrument_enabled := ENABLED @save_instrument_timed := TIMED
YES YES
SELECT @save_consumer_enabled := ENABLED
FROM performance_schema.setup_consumers
WHERE NAME = 'events_waits_current';
@save_consumer_enabled := ENABLED
YES
UPDATE performance_schema.setup_instruments
SET ENABLED = 'YES', TIMED = 'YES'
WHERE NAME = 'wait/lock/table/sql/handler';
UPDATE performance_schema.setup_consumers
SET ENABLED = 'YES'
WHERE NAME = 'events_waits_current';
CREATE TABLE t1 (id1 INT(11), col1 VARCHAR (200));
INSERT INTO t1 VALUES (1, 'aa');
INSERT INTO t1 VALUES (2, 'bb');
connect con1,localhost,root,,test;
connect con2,localhost,root,,test;
connection con1;
START TRANSACTION;
connection con2;
START TRANSACTION;
SELECT id1 FROM t1 WHERE id1=1 FOR UPDATE;
connection default;
SELECT event_name FROM performance_schema.events_waits_current
WHERE event_name LIKE '%wait/lock/table/sql/handler%';
event_name
UPDATE performance_schema.setup_instruments
SET ENABLED = @save_instrument_enabled, TIMED = @save_instrument_timed
WHERE NAME = 'wait/lock/table/sql/handler';
UPDATE performance_schema.setup_consumers
SET ENABLED = @save_consumer_enabled
WHERE NAME = 'events_waits_current';
disconnect con1;
disconnect con2;
DROP TABLE t1;

View File

@@ -7,6 +7,7 @@ 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;
flush status;
# #
# Create results table # Create results table
CREATE TABLE test.status_results CREATE TABLE test.status_results
@@ -82,9 +83,9 @@ ROLLBACK;
connection default; connection default;
# Get thread ids for each connection. # Get thread ids for each connection.
USE performance_schema; USE performance_schema;
SELECT thread_id INTO @con1_id FROM threads WHERE processlist_user IN ('user1'); SELECT thread_id INTO @con1_id FROM threads WHERE processlist_user IN ('user1') and processlist_id;
SELECT thread_id INTO @con2_id FROM threads WHERE processlist_user IN ('user2'); SELECT thread_id INTO @con2_id FROM threads WHERE processlist_user IN ('user2') and processlist_id;
SELECT thread_id INTO @con3_id FROM threads WHERE processlist_user IN ('user3'); SELECT thread_id INTO @con3_id FROM threads WHERE processlist_user IN ('user3') and processlist_id;
#================= #=================
# Global results # Global results
#================= #=================
@@ -204,100 +205,99 @@ USE performance_schema;
# #
# Verify expected counts for 'handler_delete' per thread # Verify expected counts for 'handler_delete' per thread
# #
SELECT *, IF (variable_value = 1,'OK','ERROR') AS Expected FROM status_by_thread WHERE thread_id = @con1_id AND variable_name IN ('handler_delete', 'handler_rollback'); SELECT *, IF (variable_value = 1,'OK1','ERROR1') AS Expected FROM status_by_thread WHERE thread_id = @con1_id AND variable_name IN ('handler_delete', 'handler_rollback');
THREAD_ID VARIABLE_NAME VARIABLE_VALUE Expected THREAD_ID VARIABLE_NAME VARIABLE_VALUE Expected
con_1 Handler_delete 1 OK con_1 Handler_delete 1 OK1
con_1 Handler_rollback 1 OK con_1 Handler_rollback 1 OK1
# #
SELECT *, IF (variable_value = 2,'OK','ERROR') AS Expected FROM status_by_thread WHERE thread_id = @con2_id AND variable_name IN ('handler_delete', 'handler_rollback'); SELECT *, IF (variable_value = 2,'OK2','ERROR2') AS Expected FROM status_by_thread WHERE thread_id = @con2_id AND variable_name IN ('handler_delete', 'handler_rollback');
THREAD_ID VARIABLE_NAME VARIABLE_VALUE Expected THREAD_ID VARIABLE_NAME VARIABLE_VALUE Expected
con_2 Handler_delete 2 OK con_2 Handler_delete 2 OK2
con_2 Handler_rollback 2 OK con_2 Handler_rollback 2 OK2
# #
SELECT *, IF (variable_value = 3,'OK','ERROR') AS Expected FROM status_by_thread WHERE thread_id = @con3_id AND variable_name IN ('handler_delete', 'handler_rollback'); SELECT *, IF (variable_value = 3,'OK3','ERROR3') AS Expected FROM status_by_thread WHERE thread_id = @con3_id AND variable_name IN ('handler_delete', 'handler_rollback');
THREAD_ID VARIABLE_NAME VARIABLE_VALUE Expected THREAD_ID VARIABLE_NAME VARIABLE_VALUE Expected
con_3 Handler_delete 3 OK con_3 Handler_delete 3 OK3
con_3 Handler_rollback 3 OK con_3 Handler_rollback 3 OK3
# #
# STATUS_BY_THREAD vs. GLOBAL_STATUS # STATUS_BY_THREAD vs. GLOBAL_STATUS
# #
SELECT variable_name, t1, t2, t3, delta, thread, IF(thread=delta,'OK','ERROR') Expected SELECT variable_name, t1, t2, t3, delta, thread, IF(thread=delta,'OK4','ERROR4') Expected
FROM test.status_results FROM test.status_results
ORDER BY variable_name; 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 OK4
Handler_rollback 1 2 3 6 6 OK Handler_rollback 1 2 3 6 6 OK4
# #
# ================================================================================ # ================================================================================
# 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,'OK5','ERROR5') 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 OK5
# #
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,'OK6','ERROR6') 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 OK6
# #
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,'OK7','ERROR7') 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 OK7
# #
# STATUS_BY_USER vs. GLOBAL_STATUS # STATUS_BY_USER vs. GLOBAL_STATUS
# #
SELECT variable_name, u1, u2, u3, delta, user, IF(user=delta,'OK','ERROR') Expected SELECT variable_name, u1, u2, u3, delta, user, IF(user=delta,'OK8','ERROR8') Expected
FROM test.status_results FROM test.status_results
ORDER BY variable_name; 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 OK8
Handler_rollback 1 2 3 6 6 OK Handler_rollback 1 2 3 6 6 OK8
# #
# ================================================================================ # ================================================================================
# 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,'OK9','ERROR9') 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 OK9
# #
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,'OKa','ERRORa') 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 OKa
# #
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,'OKb','ERRORb') 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 OKb
# #
# STATUS_BY_ACCOUNT vs. GLOBAL_STATUS # STATUS_BY_ACCOUNT vs. GLOBAL_STATUS
# #
SELECT variable_name, a1, a2, a3, delta, acct, IF(acct=delta,'OK','ERROR') Expected SELECT variable_name, a1, a2, a3, delta, acct, IF(acct=delta,'OKc','ERRORc') Expected
FROM test.status_results FROM test.status_results
ORDER BY variable_name; 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 OKc
Handler_rollback 1 2 3 6 6 OK Handler_rollback 1 2 3 6 6 OKc
# ================================================================================ # ================================================================================
# 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,'OKd','ERRORd') 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 OKd
# #
# STATUS_BY_HOST vs. GLOBAL_STATUS # STATUS_BY_HOST vs. GLOBAL_STATUS
# #
# Special case: No way to isolate pre-existing 'localhost' activity, so # Special case: No way to isolate pre-existing 'localhost' activity, so
# just check global totals = sum(status_by_host). # just check global totals = sum(status_by_host).
# #
SELECT variable_name, h1, h2, h3, delta, host, IF(host=delta,'OK','ERROR') Expected SELECT variable_name, h1, h2, h3, delta, host, IF(host=delta,'OKe','ERRORe') Expected
FROM test.status_results FROM test.status_results
ORDER BY variable_name; 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 OKe
Handler_rollback 6 0 0 6 6 OK Handler_rollback 6 0 0 6 6 OKe
# #
# ================================================================================ # ================================================================================
# 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;
disconnect con1; disconnect con1;
disconnect con2; disconnect con2;
disconnect con3; disconnect con3;
@@ -429,68 +429,68 @@ USE performance_schema;
# ================================================================================ # ================================================================================
# 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,'OKf','ERRORf') 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 OKf
# #
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,'OKg','ERRORg') 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 OKg
# #
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,'OKh','ERRORh') 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 OKh
# #
# STATUS_BY_USER vs. GLOBAL_STATUS # STATUS_BY_USER vs. GLOBAL_STATUS
# #
SELECT variable_name, u1, u2, u3, delta, user, IF(user=delta,'OK','ERROR') Expected SELECT variable_name, u1, u2, u3, delta, user, IF(user=delta,'OKi','ERRORi') Expected
FROM test.status_results FROM test.status_results
ORDER BY variable_name; 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 OKi
Handler_rollback 1 2 3 6 6 OK Handler_rollback 1 2 3 6 6 OKi
# #
# ================================================================================ # ================================================================================
# 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,'OKj','ERRORj') 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 OKj
# #
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,'OKk','ERRORk') 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 OKk
# #
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,'OKl','ERRORl') 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 OKl
# #
# STATUS_BY_ACCOUNT vs. GLOBAL_STATUS # STATUS_BY_ACCOUNT vs. GLOBAL_STATUS
# #
SELECT variable_name, a1, a2, a3, delta, acct, IF(acct=delta,'OK','ERROR') Expected SELECT variable_name, a1, a2, a3, delta, acct, IF(acct=delta,'OKn','ERRORn') Expected
FROM test.status_results FROM test.status_results
ORDER BY variable_name; 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 OKn
Handler_rollback 1 2 3 6 6 OK Handler_rollback 1 2 3 6 6 OKn
# ================================================================================ # ================================================================================
# 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,'OKo','ERRORo') 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 OKo
# #
# STATUS_BY_HOST vs. GLOBAL_STATUS # STATUS_BY_HOST vs. GLOBAL_STATUS
# #
# Special case: No way to isolate pre-existing 'localhost' activity, so # Special case: No way to isolate pre-existing 'localhost' activity, so
# just check global totals = sum(status_by_host). # just check global totals = sum(status_by_host).
# #
SELECT variable_name, h1, h2, h3, delta, host, IF(host=delta,'OK','ERROR') Expected SELECT variable_name, h1, h2, h3, delta, host, IF(host=delta,'OKp','ERRORp') Expected
FROM test.status_results FROM test.status_results
ORDER BY variable_name; 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 OKp
Handler_rollback 6 0 0 6 6 OK Handler_rollback 6 0 0 6 6 OKp
# ================================================================================ # ================================================================================
# TEST 8: FLUSH STATUS should clear account, host and user status # TEST 8: FLUSH STATUS should clear account, host and user status
# ================================================================================ # ================================================================================

View File

@@ -202,8 +202,10 @@ wait/io/table/sql/handler 23
wait/lock/table/sql/handler 24 wait/lock/table/sql/handler 24
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1 wait/io/table/sql/handler 8 TABLE test t1
wait/lock/table/sql/handler 29 TABLE test t3 wait/lock/table/sql/handler 10 TABLE test t1
wait/io/table/sql/handler 15 TABLE test t3
wait/lock/table/sql/handler 14 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 6 4 2 4 1 1 0 TABLE test t1 NULL 6 4 2 4 1 1 0
@@ -260,8 +262,10 @@ wait/io/table/sql/handler 23
wait/lock/table/sql/handler 24 wait/lock/table/sql/handler 24
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1 wait/io/table/sql/handler 8 TABLE test t1
wait/lock/table/sql/handler 29 TABLE test t3 wait/lock/table/sql/handler 10 TABLE test t1
wait/io/table/sql/handler 15 TABLE test t3
wait/lock/table/sql/handler 14 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 6 4 2 4 1 1 0 TABLE test t1 NULL 6 4 2 4 1 1 0
@@ -324,8 +328,10 @@ wait/io/table/sql/handler 23
wait/lock/table/sql/handler 24 wait/lock/table/sql/handler 24
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1 wait/io/table/sql/handler 8 TABLE test t1
wait/lock/table/sql/handler 29 TABLE test t3 wait/lock/table/sql/handler 10 TABLE test t1
wait/io/table/sql/handler 15 TABLE test t3
wait/lock/table/sql/handler 14 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 6 4 2 4 1 1 0 TABLE test t1 NULL 6 4 2 4 1 1 0
@@ -423,8 +429,10 @@ wait/io/table/sql/handler 23
wait/lock/table/sql/handler 24 wait/lock/table/sql/handler 24
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1 wait/io/table/sql/handler 8 TABLE test t1
wait/lock/table/sql/handler 29 TABLE test t3 wait/lock/table/sql/handler 10 TABLE test t1
wait/io/table/sql/handler 15 TABLE test t3
wait/lock/table/sql/handler 14 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 6 4 2 4 1 1 0 TABLE test t1 NULL 6 4 2 4 1 1 0
@@ -492,8 +500,10 @@ wait/io/table/sql/handler 23
wait/lock/table/sql/handler 24 wait/lock/table/sql/handler 24
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1 wait/io/table/sql/handler 8 TABLE test t1
wait/lock/table/sql/handler 29 TABLE test t3 wait/lock/table/sql/handler 10 TABLE test t1
wait/io/table/sql/handler 15 TABLE test t3
wait/lock/table/sql/handler 14 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 6 4 2 4 1 1 0 TABLE test t1 NULL 6 4 2 4 1 1 0
@@ -603,8 +613,10 @@ wait/io/table/sql/handler 71
wait/lock/table/sql/handler 48 wait/lock/table/sql/handler 48
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 41 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 78 TABLE test t3 wait/lock/table/sql/handler 20 TABLE test t1
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 28 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 17 11 6 11 2 4 0 TABLE test t1 NULL 17 11 6 11 2 4 0
@@ -677,8 +689,10 @@ wait/io/table/sql/handler 71
wait/lock/table/sql/handler 48 wait/lock/table/sql/handler 48
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 41 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 78 TABLE test t3 wait/lock/table/sql/handler 20 TABLE test t1
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 28 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 17 11 6 11 2 4 0 TABLE test t1 NULL 17 11 6 11 2 4 0
@@ -800,8 +814,10 @@ wait/io/table/sql/handler 71
wait/lock/table/sql/handler 48 wait/lock/table/sql/handler 48
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 41 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 78 TABLE test t3 wait/lock/table/sql/handler 20 TABLE test t1
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 28 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 17 11 6 11 2 4 0 TABLE test t1 NULL 17 11 6 11 2 4 0
@@ -875,8 +891,10 @@ wait/io/table/sql/handler 71
wait/lock/table/sql/handler 56 wait/lock/table/sql/handler 56
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3 wait/lock/table/sql/handler 24 TABLE test t1
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 32 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 17 11 6 11 2 4 0 TABLE test t1 NULL 17 11 6 11 2 4 0
@@ -947,8 +965,10 @@ wait/io/table/sql/handler 71
wait/lock/table/sql/handler 56 wait/lock/table/sql/handler 56
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3 wait/lock/table/sql/handler 24 TABLE test t1
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 32 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 17 11 6 11 2 4 0 TABLE test t1 NULL 17 11 6 11 2 4 0
@@ -1019,8 +1039,10 @@ wait/io/table/sql/handler 71
wait/lock/table/sql/handler 56 wait/lock/table/sql/handler 56
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3 wait/lock/table/sql/handler 24 TABLE test t1
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 32 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 17 11 6 11 2 4 0 TABLE test t1 NULL 17 11 6 11 2 4 0
@@ -1088,8 +1110,10 @@ wait/io/table/sql/handler 71
wait/lock/table/sql/handler 56 wait/lock/table/sql/handler 56
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3 wait/lock/table/sql/handler 24 TABLE test t1
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 32 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 17 11 6 11 2 4 0 TABLE test t1 NULL 17 11 6 11 2 4 0
@@ -1156,8 +1180,10 @@ wait/io/table/sql/handler 71
wait/lock/table/sql/handler 56 wait/lock/table/sql/handler 56
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3 wait/lock/table/sql/handler 24 TABLE test t1
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 32 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 17 11 6 11 2 4 0 TABLE test t1 NULL 17 11 6 11 2 4 0
@@ -1223,8 +1249,10 @@ wait/io/table/sql/handler 71
wait/lock/table/sql/handler 56 wait/lock/table/sql/handler 56
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3 wait/lock/table/sql/handler 24 TABLE test t1
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 32 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 17 11 6 11 2 4 0 TABLE test t1 NULL 17 11 6 11 2 4 0
@@ -1289,8 +1317,10 @@ wait/io/table/sql/handler 71
wait/lock/table/sql/handler 56 wait/lock/table/sql/handler 56
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3 wait/lock/table/sql/handler 24 TABLE test t1
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 32 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 17 11 6 11 2 4 0 TABLE test t1 NULL 17 11 6 11 2 4 0
@@ -1357,8 +1387,10 @@ wait/io/table/sql/handler 71
wait/lock/table/sql/handler 56 wait/lock/table/sql/handler 56
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3 wait/lock/table/sql/handler 24 TABLE test t1
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 32 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 17 11 6 11 2 4 0 TABLE test t1 NULL 17 11 6 11 2 4 0
@@ -1424,8 +1456,10 @@ wait/io/table/sql/handler 71
wait/lock/table/sql/handler 56 wait/lock/table/sql/handler 56
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3 wait/lock/table/sql/handler 24 TABLE test t1
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 32 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 17 11 6 11 2 4 0 TABLE test t1 NULL 17 11 6 11 2 4 0
@@ -1491,8 +1525,10 @@ wait/io/table/sql/handler 71
wait/lock/table/sql/handler 56 wait/lock/table/sql/handler 56
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3 wait/lock/table/sql/handler 24 TABLE test t1
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 32 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 17 11 6 11 2 4 0 TABLE test t1 NULL 17 11 6 11 2 4 0
@@ -1558,8 +1594,10 @@ wait/io/table/sql/handler 71
wait/lock/table/sql/handler 56 wait/lock/table/sql/handler 56
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3 wait/lock/table/sql/handler 24 TABLE test t1
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 32 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 17 11 6 11 2 4 0 TABLE test t1 NULL 17 11 6 11 2 4 0
@@ -1625,8 +1663,10 @@ wait/io/table/sql/handler 0
wait/lock/table/sql/handler 0 wait/lock/table/sql/handler 0
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3 wait/lock/table/sql/handler 24 TABLE test t1
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 32 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 0 0 0 0 0 0 0 TABLE test t1 NULL 0 0 0 0 0 0 0

View File

@@ -211,9 +211,12 @@ wait/io/table/sql/handler 33
wait/lock/table/sql/handler 36 wait/lock/table/sql/handler 36
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1 wait/io/table/sql/handler 8 TABLE test t1
wait/lock/table/sql/handler 22 TABLE test t2 wait/lock/table/sql/handler 10 TABLE test t1
wait/lock/table/sql/handler 29 TABLE test t3 wait/io/table/sql/handler 10 TABLE test t2
wait/lock/table/sql/handler 12 TABLE test t2
wait/io/table/sql/handler 15 TABLE test t3
wait/lock/table/sql/handler 14 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 6 4 2 4 1 1 0 TABLE test t1 NULL 6 4 2 4 1 1 0
@@ -276,9 +279,12 @@ wait/io/table/sql/handler 33
wait/lock/table/sql/handler 36 wait/lock/table/sql/handler 36
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1 wait/io/table/sql/handler 8 TABLE test t1
wait/lock/table/sql/handler 22 TABLE test t2 wait/lock/table/sql/handler 10 TABLE test t1
wait/lock/table/sql/handler 29 TABLE test t3 wait/io/table/sql/handler 10 TABLE test t2
wait/lock/table/sql/handler 12 TABLE test t2
wait/io/table/sql/handler 15 TABLE test t3
wait/lock/table/sql/handler 14 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 6 4 2 4 1 1 0 TABLE test t1 NULL 6 4 2 4 1 1 0
@@ -347,9 +353,12 @@ wait/io/table/sql/handler 33
wait/lock/table/sql/handler 36 wait/lock/table/sql/handler 36
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1 wait/io/table/sql/handler 8 TABLE test t1
wait/lock/table/sql/handler 22 TABLE test t2 wait/lock/table/sql/handler 10 TABLE test t1
wait/lock/table/sql/handler 29 TABLE test t3 wait/io/table/sql/handler 10 TABLE test t2
wait/lock/table/sql/handler 12 TABLE test t2
wait/io/table/sql/handler 15 TABLE test t3
wait/lock/table/sql/handler 14 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 6 4 2 4 1 1 0 TABLE test t1 NULL 6 4 2 4 1 1 0
@@ -453,9 +462,12 @@ wait/io/table/sql/handler 33
wait/lock/table/sql/handler 36 wait/lock/table/sql/handler 36
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1 wait/io/table/sql/handler 8 TABLE test t1
wait/lock/table/sql/handler 22 TABLE test t2 wait/lock/table/sql/handler 10 TABLE test t1
wait/lock/table/sql/handler 29 TABLE test t3 wait/io/table/sql/handler 10 TABLE test t2
wait/lock/table/sql/handler 12 TABLE test t2
wait/io/table/sql/handler 15 TABLE test t3
wait/lock/table/sql/handler 14 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 6 4 2 4 1 1 0 TABLE test t1 NULL 6 4 2 4 1 1 0
@@ -529,9 +541,12 @@ wait/io/table/sql/handler 33
wait/lock/table/sql/handler 36 wait/lock/table/sql/handler 36
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1 wait/io/table/sql/handler 8 TABLE test t1
wait/lock/table/sql/handler 22 TABLE test t2 wait/lock/table/sql/handler 10 TABLE test t1
wait/lock/table/sql/handler 29 TABLE test t3 wait/io/table/sql/handler 10 TABLE test t2
wait/lock/table/sql/handler 12 TABLE test t2
wait/io/table/sql/handler 15 TABLE test t3
wait/lock/table/sql/handler 14 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 6 4 2 4 1 1 0 TABLE test t1 NULL 6 4 2 4 1 1 0
@@ -647,9 +662,12 @@ wait/io/table/sql/handler 103
wait/lock/table/sql/handler 72 wait/lock/table/sql/handler 72
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 41 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 56 TABLE test t2 wait/lock/table/sql/handler 20 TABLE test t1
wait/lock/table/sql/handler 78 TABLE test t3 wait/io/table/sql/handler 32 TABLE test t2
wait/lock/table/sql/handler 24 TABLE test t2
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 28 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 17 11 6 11 2 4 0 TABLE test t1 NULL 17 11 6 11 2 4 0
@@ -728,9 +746,12 @@ wait/io/table/sql/handler 103
wait/lock/table/sql/handler 72 wait/lock/table/sql/handler 72
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 41 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 56 TABLE test t2 wait/lock/table/sql/handler 20 TABLE test t1
wait/lock/table/sql/handler 78 TABLE test t3 wait/io/table/sql/handler 32 TABLE test t2
wait/lock/table/sql/handler 24 TABLE test t2
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 28 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 17 11 6 11 2 4 0 TABLE test t1 NULL 17 11 6 11 2 4 0
@@ -858,9 +879,12 @@ wait/io/table/sql/handler 103
wait/lock/table/sql/handler 72 wait/lock/table/sql/handler 72
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 41 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 56 TABLE test t2 wait/lock/table/sql/handler 20 TABLE test t1
wait/lock/table/sql/handler 78 TABLE test t3 wait/io/table/sql/handler 32 TABLE test t2
wait/lock/table/sql/handler 24 TABLE test t2
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 28 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 17 11 6 11 2 4 0 TABLE test t1 NULL 17 11 6 11 2 4 0
@@ -940,9 +964,12 @@ wait/io/table/sql/handler 103
wait/lock/table/sql/handler 84 wait/lock/table/sql/handler 84
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 60 TABLE test t2 wait/lock/table/sql/handler 24 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3 wait/io/table/sql/handler 32 TABLE test t2
wait/lock/table/sql/handler 28 TABLE test t2
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 32 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 17 11 6 11 2 4 0 TABLE test t1 NULL 17 11 6 11 2 4 0
@@ -1019,9 +1046,12 @@ wait/io/table/sql/handler 103
wait/lock/table/sql/handler 84 wait/lock/table/sql/handler 84
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 60 TABLE test t2 wait/lock/table/sql/handler 24 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3 wait/io/table/sql/handler 32 TABLE test t2
wait/lock/table/sql/handler 28 TABLE test t2
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 32 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 17 11 6 11 2 4 0 TABLE test t1 NULL 17 11 6 11 2 4 0
@@ -1098,9 +1128,12 @@ wait/io/table/sql/handler 103
wait/lock/table/sql/handler 84 wait/lock/table/sql/handler 84
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 60 TABLE test t2 wait/lock/table/sql/handler 24 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3 wait/io/table/sql/handler 32 TABLE test t2
wait/lock/table/sql/handler 28 TABLE test t2
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 32 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 17 11 6 11 2 4 0 TABLE test t1 NULL 17 11 6 11 2 4 0
@@ -1174,9 +1207,12 @@ wait/io/table/sql/handler 103
wait/lock/table/sql/handler 84 wait/lock/table/sql/handler 84
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 60 TABLE test t2 wait/lock/table/sql/handler 24 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3 wait/io/table/sql/handler 32 TABLE test t2
wait/lock/table/sql/handler 28 TABLE test t2
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 32 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 17 11 6 11 2 4 0 TABLE test t1 NULL 17 11 6 11 2 4 0
@@ -1249,9 +1285,12 @@ wait/io/table/sql/handler 103
wait/lock/table/sql/handler 84 wait/lock/table/sql/handler 84
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 60 TABLE test t2 wait/lock/table/sql/handler 24 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3 wait/io/table/sql/handler 32 TABLE test t2
wait/lock/table/sql/handler 28 TABLE test t2
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 32 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 17 11 6 11 2 4 0 TABLE test t1 NULL 17 11 6 11 2 4 0
@@ -1323,9 +1362,12 @@ wait/io/table/sql/handler 103
wait/lock/table/sql/handler 84 wait/lock/table/sql/handler 84
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 60 TABLE test t2 wait/lock/table/sql/handler 24 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3 wait/io/table/sql/handler 32 TABLE test t2
wait/lock/table/sql/handler 28 TABLE test t2
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 32 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 17 11 6 11 2 4 0 TABLE test t1 NULL 17 11 6 11 2 4 0
@@ -1396,9 +1438,12 @@ wait/io/table/sql/handler 103
wait/lock/table/sql/handler 84 wait/lock/table/sql/handler 84
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 60 TABLE test t2 wait/lock/table/sql/handler 24 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3 wait/io/table/sql/handler 32 TABLE test t2
wait/lock/table/sql/handler 28 TABLE test t2
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 32 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 17 11 6 11 2 4 0 TABLE test t1 NULL 17 11 6 11 2 4 0
@@ -1471,9 +1516,12 @@ wait/io/table/sql/handler 103
wait/lock/table/sql/handler 84 wait/lock/table/sql/handler 84
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 60 TABLE test t2 wait/lock/table/sql/handler 24 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3 wait/io/table/sql/handler 32 TABLE test t2
wait/lock/table/sql/handler 28 TABLE test t2
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 32 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 17 11 6 11 2 4 0 TABLE test t1 NULL 17 11 6 11 2 4 0
@@ -1545,9 +1593,12 @@ wait/io/table/sql/handler 103
wait/lock/table/sql/handler 84 wait/lock/table/sql/handler 84
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 60 TABLE test t2 wait/lock/table/sql/handler 24 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3 wait/io/table/sql/handler 32 TABLE test t2
wait/lock/table/sql/handler 28 TABLE test t2
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 32 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 17 11 6 11 2 4 0 TABLE test t1 NULL 17 11 6 11 2 4 0
@@ -1619,9 +1670,12 @@ wait/io/table/sql/handler 103
wait/lock/table/sql/handler 84 wait/lock/table/sql/handler 84
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 60 TABLE test t2 wait/lock/table/sql/handler 24 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3 wait/io/table/sql/handler 32 TABLE test t2
wait/lock/table/sql/handler 28 TABLE test t2
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 32 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 17 11 6 11 2 4 0 TABLE test t1 NULL 17 11 6 11 2 4 0
@@ -1693,9 +1747,12 @@ wait/io/table/sql/handler 103
wait/lock/table/sql/handler 84 wait/lock/table/sql/handler 84
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 60 TABLE test t2 wait/lock/table/sql/handler 24 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3 wait/io/table/sql/handler 32 TABLE test t2
wait/lock/table/sql/handler 28 TABLE test t2
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 32 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 17 11 6 11 2 4 0 TABLE test t1 NULL 17 11 6 11 2 4 0
@@ -1767,9 +1824,12 @@ wait/io/table/sql/handler 0
wait/lock/table/sql/handler 0 wait/lock/table/sql/handler 0
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1 wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 60 TABLE test t2 wait/lock/table/sql/handler 24 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3 wait/io/table/sql/handler 32 TABLE test t2
wait/lock/table/sql/handler 28 TABLE test t2
wait/io/table/sql/handler 50 TABLE test t3
wait/lock/table/sql/handler 32 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 0 0 0 0 0 0 0 TABLE test t1 NULL 0 0 0 0 0 0 0

View File

@@ -202,8 +202,10 @@ wait/io/table/sql/handler 23
wait/lock/table/sql/handler 24 wait/lock/table/sql/handler 24
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1 wait/io/table/sql/handler 8 TABLE test t1
wait/lock/table/sql/handler 29 TABLE test t3 wait/lock/table/sql/handler 10 TABLE test t1
wait/io/table/sql/handler 15 TABLE test t3
wait/lock/table/sql/handler 14 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 6 4 2 4 1 1 0 TABLE test t1 NULL 6 4 2 4 1 1 0
@@ -260,8 +262,10 @@ wait/io/table/sql/handler 23
wait/lock/table/sql/handler 24 wait/lock/table/sql/handler 24
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1 wait/io/table/sql/handler 8 TABLE test t1
wait/lock/table/sql/handler 29 TABLE test t3 wait/lock/table/sql/handler 10 TABLE test t1
wait/io/table/sql/handler 15 TABLE test t3
wait/lock/table/sql/handler 14 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 6 4 2 4 1 1 0 TABLE test t1 NULL 6 4 2 4 1 1 0
@@ -324,8 +328,10 @@ wait/io/table/sql/handler 23
wait/lock/table/sql/handler 24 wait/lock/table/sql/handler 24
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1 wait/io/table/sql/handler 8 TABLE test t1
wait/lock/table/sql/handler 29 TABLE test t3 wait/lock/table/sql/handler 10 TABLE test t1
wait/io/table/sql/handler 15 TABLE test t3
wait/lock/table/sql/handler 14 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 6 4 2 4 1 1 0 TABLE test t1 NULL 6 4 2 4 1 1 0
@@ -423,8 +429,10 @@ wait/io/table/sql/handler 58
wait/lock/table/sql/handler 48 wait/lock/table/sql/handler 48
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 38 TABLE test t1 wait/io/table/sql/handler 18 TABLE test t1
wait/lock/table/sql/handler 68 TABLE test t3 wait/lock/table/sql/handler 20 TABLE test t1
wait/io/table/sql/handler 40 TABLE test t3
wait/lock/table/sql/handler 28 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 14 9 5 9 2 3 0 TABLE test t1 NULL 14 9 5 9 2 3 0
@@ -492,8 +500,10 @@ wait/io/table/sql/handler 58
wait/lock/table/sql/handler 48 wait/lock/table/sql/handler 48
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 38 TABLE test t1 wait/io/table/sql/handler 18 TABLE test t1
wait/lock/table/sql/handler 68 TABLE test t3 wait/lock/table/sql/handler 20 TABLE test t1
wait/io/table/sql/handler 40 TABLE test t3
wait/lock/table/sql/handler 28 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 14 9 5 9 2 3 0 TABLE test t1 NULL 14 9 5 9 2 3 0
@@ -603,8 +613,10 @@ wait/io/table/sql/handler 106
wait/lock/table/sql/handler 72 wait/lock/table/sql/handler 72
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 61 TABLE test t1 wait/io/table/sql/handler 31 TABLE test t1
wait/lock/table/sql/handler 117 TABLE test t3 wait/lock/table/sql/handler 30 TABLE test t1
wait/io/table/sql/handler 75 TABLE test t3
wait/lock/table/sql/handler 42 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 25 16 9 16 3 6 0 TABLE test t1 NULL 25 16 9 16 3 6 0
@@ -677,8 +689,10 @@ wait/io/table/sql/handler 106
wait/lock/table/sql/handler 72 wait/lock/table/sql/handler 72
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 61 TABLE test t1 wait/io/table/sql/handler 31 TABLE test t1
wait/lock/table/sql/handler 117 TABLE test t3 wait/lock/table/sql/handler 30 TABLE test t1
wait/io/table/sql/handler 75 TABLE test t3
wait/lock/table/sql/handler 42 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 25 16 9 16 3 6 0 TABLE test t1 NULL 25 16 9 16 3 6 0
@@ -800,8 +814,10 @@ wait/io/table/sql/handler 167
wait/lock/table/sql/handler 96 wait/lock/table/sql/handler 96
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 87 TABLE test t1 wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 176 TABLE test t3 wait/lock/table/sql/handler 40 TABLE test t1
wait/io/table/sql/handler 120 TABLE test t3
wait/lock/table/sql/handler 56 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 39 25 14 25 4 10 0 TABLE test t1 NULL 39 25 14 25 4 10 0
@@ -875,8 +891,10 @@ wait/io/table/sql/handler 167
wait/lock/table/sql/handler 104 wait/lock/table/sql/handler 104
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1 wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3 wait/lock/table/sql/handler 44 TABLE test t1
wait/io/table/sql/handler 120 TABLE test t3
wait/lock/table/sql/handler 60 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 39 25 14 25 4 10 0 TABLE test t1 NULL 39 25 14 25 4 10 0
@@ -947,8 +965,10 @@ wait/io/table/sql/handler 167
wait/lock/table/sql/handler 104 wait/lock/table/sql/handler 104
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1 wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3 wait/lock/table/sql/handler 44 TABLE test t1
wait/io/table/sql/handler 120 TABLE test t3
wait/lock/table/sql/handler 60 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 39 25 14 25 4 10 0 TABLE test t1 NULL 39 25 14 25 4 10 0
@@ -1019,8 +1039,10 @@ wait/io/table/sql/handler 167
wait/lock/table/sql/handler 104 wait/lock/table/sql/handler 104
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1 wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3 wait/lock/table/sql/handler 44 TABLE test t1
wait/io/table/sql/handler 120 TABLE test t3
wait/lock/table/sql/handler 60 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 39 25 14 25 4 10 0 TABLE test t1 NULL 39 25 14 25 4 10 0
@@ -1088,8 +1110,10 @@ wait/io/table/sql/handler 167
wait/lock/table/sql/handler 104 wait/lock/table/sql/handler 104
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1 wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3 wait/lock/table/sql/handler 44 TABLE test t1
wait/io/table/sql/handler 120 TABLE test t3
wait/lock/table/sql/handler 60 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 39 25 14 25 4 10 0 TABLE test t1 NULL 39 25 14 25 4 10 0
@@ -1156,8 +1180,10 @@ wait/io/table/sql/handler 167
wait/lock/table/sql/handler 104 wait/lock/table/sql/handler 104
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1 wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3 wait/lock/table/sql/handler 44 TABLE test t1
wait/io/table/sql/handler 120 TABLE test t3
wait/lock/table/sql/handler 60 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 39 25 14 25 4 10 0 TABLE test t1 NULL 39 25 14 25 4 10 0
@@ -1223,8 +1249,10 @@ wait/io/table/sql/handler 167
wait/lock/table/sql/handler 104 wait/lock/table/sql/handler 104
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1 wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3 wait/lock/table/sql/handler 44 TABLE test t1
wait/io/table/sql/handler 120 TABLE test t3
wait/lock/table/sql/handler 60 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 39 25 14 25 4 10 0 TABLE test t1 NULL 39 25 14 25 4 10 0
@@ -1289,8 +1317,10 @@ wait/io/table/sql/handler 167
wait/lock/table/sql/handler 104 wait/lock/table/sql/handler 104
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1 wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3 wait/lock/table/sql/handler 44 TABLE test t1
wait/io/table/sql/handler 120 TABLE test t3
wait/lock/table/sql/handler 60 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 39 25 14 25 4 10 0 TABLE test t1 NULL 39 25 14 25 4 10 0
@@ -1357,8 +1387,10 @@ wait/io/table/sql/handler 167
wait/lock/table/sql/handler 104 wait/lock/table/sql/handler 104
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1 wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3 wait/lock/table/sql/handler 44 TABLE test t1
wait/io/table/sql/handler 120 TABLE test t3
wait/lock/table/sql/handler 60 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 39 25 14 25 4 10 0 TABLE test t1 NULL 39 25 14 25 4 10 0
@@ -1424,8 +1456,10 @@ wait/io/table/sql/handler 167
wait/lock/table/sql/handler 104 wait/lock/table/sql/handler 104
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1 wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3 wait/lock/table/sql/handler 44 TABLE test t1
wait/io/table/sql/handler 120 TABLE test t3
wait/lock/table/sql/handler 60 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 39 25 14 25 4 10 0 TABLE test t1 NULL 39 25 14 25 4 10 0
@@ -1491,8 +1525,10 @@ wait/io/table/sql/handler 167
wait/lock/table/sql/handler 104 wait/lock/table/sql/handler 104
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1 wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3 wait/lock/table/sql/handler 44 TABLE test t1
wait/io/table/sql/handler 120 TABLE test t3
wait/lock/table/sql/handler 60 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 39 25 14 25 4 10 0 TABLE test t1 NULL 39 25 14 25 4 10 0
@@ -1558,8 +1594,10 @@ wait/io/table/sql/handler 167
wait/lock/table/sql/handler 104 wait/lock/table/sql/handler 104
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1 wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3 wait/lock/table/sql/handler 44 TABLE test t1
wait/io/table/sql/handler 120 TABLE test t3
wait/lock/table/sql/handler 60 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 39 25 14 25 4 10 0 TABLE test t1 NULL 39 25 14 25 4 10 0
@@ -1625,8 +1663,10 @@ wait/io/table/sql/handler 0
wait/lock/table/sql/handler 0 wait/lock/table/sql/handler 0
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1 wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3 wait/lock/table/sql/handler 44 TABLE test t1
wait/io/table/sql/handler 120 TABLE test t3
wait/lock/table/sql/handler 60 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 0 0 0 0 0 0 0 TABLE test t1 NULL 0 0 0 0 0 0 0

View File

@@ -211,9 +211,12 @@ wait/io/table/sql/handler 33
wait/lock/table/sql/handler 36 wait/lock/table/sql/handler 36
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1 wait/io/table/sql/handler 8 TABLE test t1
wait/lock/table/sql/handler 22 TABLE test t2 wait/lock/table/sql/handler 10 TABLE test t1
wait/lock/table/sql/handler 29 TABLE test t3 wait/io/table/sql/handler 10 TABLE test t2
wait/lock/table/sql/handler 12 TABLE test t2
wait/io/table/sql/handler 15 TABLE test t3
wait/lock/table/sql/handler 14 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 6 4 2 4 1 1 0 TABLE test t1 NULL 6 4 2 4 1 1 0
@@ -276,9 +279,12 @@ wait/io/table/sql/handler 33
wait/lock/table/sql/handler 36 wait/lock/table/sql/handler 36
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1 wait/io/table/sql/handler 8 TABLE test t1
wait/lock/table/sql/handler 22 TABLE test t2 wait/lock/table/sql/handler 10 TABLE test t1
wait/lock/table/sql/handler 29 TABLE test t3 wait/io/table/sql/handler 10 TABLE test t2
wait/lock/table/sql/handler 12 TABLE test t2
wait/io/table/sql/handler 15 TABLE test t3
wait/lock/table/sql/handler 14 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 6 4 2 4 1 1 0 TABLE test t1 NULL 6 4 2 4 1 1 0
@@ -347,9 +353,12 @@ wait/io/table/sql/handler 33
wait/lock/table/sql/handler 36 wait/lock/table/sql/handler 36
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1 wait/io/table/sql/handler 8 TABLE test t1
wait/lock/table/sql/handler 22 TABLE test t2 wait/lock/table/sql/handler 10 TABLE test t1
wait/lock/table/sql/handler 29 TABLE test t3 wait/io/table/sql/handler 10 TABLE test t2
wait/lock/table/sql/handler 12 TABLE test t2
wait/io/table/sql/handler 15 TABLE test t3
wait/lock/table/sql/handler 14 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 6 4 2 4 1 1 0 TABLE test t1 NULL 6 4 2 4 1 1 0
@@ -453,9 +462,12 @@ wait/io/table/sql/handler 84
wait/lock/table/sql/handler 72 wait/lock/table/sql/handler 72
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 38 TABLE test t1 wait/io/table/sql/handler 18 TABLE test t1
wait/lock/table/sql/handler 50 TABLE test t2 wait/lock/table/sql/handler 20 TABLE test t1
wait/lock/table/sql/handler 68 TABLE test t3 wait/io/table/sql/handler 26 TABLE test t2
wait/lock/table/sql/handler 24 TABLE test t2
wait/io/table/sql/handler 40 TABLE test t3
wait/lock/table/sql/handler 28 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 14 9 5 9 2 3 0 TABLE test t1 NULL 14 9 5 9 2 3 0
@@ -529,9 +541,12 @@ wait/io/table/sql/handler 84
wait/lock/table/sql/handler 72 wait/lock/table/sql/handler 72
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 38 TABLE test t1 wait/io/table/sql/handler 18 TABLE test t1
wait/lock/table/sql/handler 50 TABLE test t2 wait/lock/table/sql/handler 20 TABLE test t1
wait/lock/table/sql/handler 68 TABLE test t3 wait/io/table/sql/handler 26 TABLE test t2
wait/lock/table/sql/handler 24 TABLE test t2
wait/io/table/sql/handler 40 TABLE test t3
wait/lock/table/sql/handler 28 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 14 9 5 9 2 3 0 TABLE test t1 NULL 14 9 5 9 2 3 0
@@ -647,9 +662,12 @@ wait/io/table/sql/handler 154
wait/lock/table/sql/handler 108 wait/lock/table/sql/handler 108
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 61 TABLE test t1 wait/io/table/sql/handler 31 TABLE test t1
wait/lock/table/sql/handler 84 TABLE test t2 wait/lock/table/sql/handler 30 TABLE test t1
wait/lock/table/sql/handler 117 TABLE test t3 wait/io/table/sql/handler 48 TABLE test t2
wait/lock/table/sql/handler 36 TABLE test t2
wait/io/table/sql/handler 75 TABLE test t3
wait/lock/table/sql/handler 42 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 25 16 9 16 3 6 0 TABLE test t1 NULL 25 16 9 16 3 6 0
@@ -728,9 +746,12 @@ wait/io/table/sql/handler 154
wait/lock/table/sql/handler 108 wait/lock/table/sql/handler 108
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 61 TABLE test t1 wait/io/table/sql/handler 31 TABLE test t1
wait/lock/table/sql/handler 84 TABLE test t2 wait/lock/table/sql/handler 30 TABLE test t1
wait/lock/table/sql/handler 117 TABLE test t3 wait/io/table/sql/handler 48 TABLE test t2
wait/lock/table/sql/handler 36 TABLE test t2
wait/io/table/sql/handler 75 TABLE test t3
wait/lock/table/sql/handler 42 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 25 16 9 16 3 6 0 TABLE test t1 NULL 25 16 9 16 3 6 0
@@ -858,9 +879,12 @@ wait/io/table/sql/handler 243
wait/lock/table/sql/handler 144 wait/lock/table/sql/handler 144
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 87 TABLE test t1 wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 124 TABLE test t2 wait/lock/table/sql/handler 40 TABLE test t1
wait/lock/table/sql/handler 176 TABLE test t3 wait/io/table/sql/handler 76 TABLE test t2
wait/lock/table/sql/handler 48 TABLE test t2
wait/io/table/sql/handler 120 TABLE test t3
wait/lock/table/sql/handler 56 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 39 25 14 25 4 10 0 TABLE test t1 NULL 39 25 14 25 4 10 0
@@ -940,9 +964,12 @@ wait/io/table/sql/handler 243
wait/lock/table/sql/handler 156 wait/lock/table/sql/handler 156
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1 wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 128 TABLE test t2 wait/lock/table/sql/handler 44 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3 wait/io/table/sql/handler 76 TABLE test t2
wait/lock/table/sql/handler 52 TABLE test t2
wait/io/table/sql/handler 120 TABLE test t3
wait/lock/table/sql/handler 60 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 39 25 14 25 4 10 0 TABLE test t1 NULL 39 25 14 25 4 10 0
@@ -1019,9 +1046,12 @@ wait/io/table/sql/handler 243
wait/lock/table/sql/handler 156 wait/lock/table/sql/handler 156
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1 wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 128 TABLE test t2 wait/lock/table/sql/handler 44 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3 wait/io/table/sql/handler 76 TABLE test t2
wait/lock/table/sql/handler 52 TABLE test t2
wait/io/table/sql/handler 120 TABLE test t3
wait/lock/table/sql/handler 60 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 39 25 14 25 4 10 0 TABLE test t1 NULL 39 25 14 25 4 10 0
@@ -1098,9 +1128,12 @@ wait/io/table/sql/handler 243
wait/lock/table/sql/handler 156 wait/lock/table/sql/handler 156
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1 wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 128 TABLE test t2 wait/lock/table/sql/handler 44 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3 wait/io/table/sql/handler 76 TABLE test t2
wait/lock/table/sql/handler 52 TABLE test t2
wait/io/table/sql/handler 120 TABLE test t3
wait/lock/table/sql/handler 60 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 39 25 14 25 4 10 0 TABLE test t1 NULL 39 25 14 25 4 10 0
@@ -1174,9 +1207,12 @@ wait/io/table/sql/handler 243
wait/lock/table/sql/handler 156 wait/lock/table/sql/handler 156
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1 wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 128 TABLE test t2 wait/lock/table/sql/handler 44 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3 wait/io/table/sql/handler 76 TABLE test t2
wait/lock/table/sql/handler 52 TABLE test t2
wait/io/table/sql/handler 120 TABLE test t3
wait/lock/table/sql/handler 60 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 39 25 14 25 4 10 0 TABLE test t1 NULL 39 25 14 25 4 10 0
@@ -1249,9 +1285,12 @@ wait/io/table/sql/handler 243
wait/lock/table/sql/handler 156 wait/lock/table/sql/handler 156
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1 wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 128 TABLE test t2 wait/lock/table/sql/handler 44 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3 wait/io/table/sql/handler 76 TABLE test t2
wait/lock/table/sql/handler 52 TABLE test t2
wait/io/table/sql/handler 120 TABLE test t3
wait/lock/table/sql/handler 60 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 39 25 14 25 4 10 0 TABLE test t1 NULL 39 25 14 25 4 10 0
@@ -1323,9 +1362,12 @@ wait/io/table/sql/handler 243
wait/lock/table/sql/handler 156 wait/lock/table/sql/handler 156
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1 wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 128 TABLE test t2 wait/lock/table/sql/handler 44 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3 wait/io/table/sql/handler 76 TABLE test t2
wait/lock/table/sql/handler 52 TABLE test t2
wait/io/table/sql/handler 120 TABLE test t3
wait/lock/table/sql/handler 60 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 39 25 14 25 4 10 0 TABLE test t1 NULL 39 25 14 25 4 10 0
@@ -1396,9 +1438,12 @@ wait/io/table/sql/handler 243
wait/lock/table/sql/handler 156 wait/lock/table/sql/handler 156
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1 wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 128 TABLE test t2 wait/lock/table/sql/handler 44 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3 wait/io/table/sql/handler 76 TABLE test t2
wait/lock/table/sql/handler 52 TABLE test t2
wait/io/table/sql/handler 120 TABLE test t3
wait/lock/table/sql/handler 60 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 39 25 14 25 4 10 0 TABLE test t1 NULL 39 25 14 25 4 10 0
@@ -1471,9 +1516,12 @@ wait/io/table/sql/handler 243
wait/lock/table/sql/handler 156 wait/lock/table/sql/handler 156
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1 wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 128 TABLE test t2 wait/lock/table/sql/handler 44 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3 wait/io/table/sql/handler 76 TABLE test t2
wait/lock/table/sql/handler 52 TABLE test t2
wait/io/table/sql/handler 120 TABLE test t3
wait/lock/table/sql/handler 60 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 39 25 14 25 4 10 0 TABLE test t1 NULL 39 25 14 25 4 10 0
@@ -1545,9 +1593,12 @@ wait/io/table/sql/handler 243
wait/lock/table/sql/handler 156 wait/lock/table/sql/handler 156
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1 wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 128 TABLE test t2 wait/lock/table/sql/handler 44 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3 wait/io/table/sql/handler 76 TABLE test t2
wait/lock/table/sql/handler 52 TABLE test t2
wait/io/table/sql/handler 120 TABLE test t3
wait/lock/table/sql/handler 60 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 39 25 14 25 4 10 0 TABLE test t1 NULL 39 25 14 25 4 10 0
@@ -1619,9 +1670,12 @@ wait/io/table/sql/handler 243
wait/lock/table/sql/handler 156 wait/lock/table/sql/handler 156
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1 wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 128 TABLE test t2 wait/lock/table/sql/handler 44 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3 wait/io/table/sql/handler 76 TABLE test t2
wait/lock/table/sql/handler 52 TABLE test t2
wait/io/table/sql/handler 120 TABLE test t3
wait/lock/table/sql/handler 60 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 39 25 14 25 4 10 0 TABLE test t1 NULL 39 25 14 25 4 10 0
@@ -1693,9 +1747,12 @@ wait/io/table/sql/handler 243
wait/lock/table/sql/handler 156 wait/lock/table/sql/handler 156
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1 wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 128 TABLE test t2 wait/lock/table/sql/handler 44 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3 wait/io/table/sql/handler 76 TABLE test t2
wait/lock/table/sql/handler 52 TABLE test t2
wait/io/table/sql/handler 120 TABLE test t3
wait/lock/table/sql/handler 60 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 39 25 14 25 4 10 0 TABLE test t1 NULL 39 25 14 25 4 10 0
@@ -1767,9 +1824,12 @@ wait/io/table/sql/handler 0
wait/lock/table/sql/handler 0 wait/lock/table/sql/handler 0
execute dump_waits_history; execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1 wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 128 TABLE test t2 wait/lock/table/sql/handler 44 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3 wait/io/table/sql/handler 76 TABLE test t2
wait/lock/table/sql/handler 52 TABLE test t2
wait/io/table/sql/handler 120 TABLE test t3
wait/lock/table/sql/handler 60 TABLE test t3
execute dump_waits_index_io; execute dump_waits_index_io;
object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete object_type object_schema object_name index_name count_star count_read count_write count_fetch count_insert count_update count_delete
TABLE test t1 NULL 0 0 0 0 0 0 0 TABLE test t1 NULL 0 0 0 0 0 0 0

View File

@@ -1,62 +0,0 @@
#
# proper event name wait/lock/table/sql/handler recorded in
# PERFORMANCE_SCHEMA.EVENTS_WAITS_CURRENT. Before this fix, it was
# labeled as wait/io/table/sql/handler.
#
--source include/have_innodb.inc
--source include/have_perfschema.inc
--source include/not_embedded.inc
SET default_storage_engine=InnoDB;
SELECT @save_instrument_enabled := ENABLED
, @save_instrument_timed := TIMED
FROM performance_schema.setup_instruments
WHERE NAME = 'wait/lock/table/sql/handler';
SELECT @save_consumer_enabled := ENABLED
FROM performance_schema.setup_consumers
WHERE NAME = 'events_waits_current';
UPDATE performance_schema.setup_instruments
SET ENABLED = 'YES', TIMED = 'YES'
WHERE NAME = 'wait/lock/table/sql/handler';
UPDATE performance_schema.setup_consumers
SET ENABLED = 'YES'
WHERE NAME = 'events_waits_current';
CREATE TABLE t1 (id1 INT(11), col1 VARCHAR (200));
INSERT INTO t1 VALUES (1, 'aa');
INSERT INTO t1 VALUES (2, 'bb');
connect (con1,localhost,root,,test);
connect (con2,localhost,root,,test);
connection con1;
START TRANSACTION;
let $wait_condition=
SELECT id1 FROM t1 WHERE id1=1 FOR UPDATE;
--source include/wait_condition.inc
connection con2;
START TRANSACTION;
send SELECT id1 FROM t1 WHERE id1=1 FOR UPDATE;
connection default;
SELECT event_name FROM performance_schema.events_waits_current
WHERE event_name LIKE '%wait/lock/table/sql/handler%';
# clean up
UPDATE performance_schema.setup_instruments
SET ENABLED = @save_instrument_enabled, TIMED = @save_instrument_timed
WHERE NAME = 'wait/lock/table/sql/handler';
UPDATE performance_schema.setup_consumers
SET ENABLED = @save_consumer_enabled
WHERE NAME = 'events_waits_current';
disconnect con1;
disconnect con2;
DROP TABLE t1;

View File

@@ -13,8 +13,7 @@
--source include/not_embedded.inc --source include/not_embedded.inc
--source include/no_protocol.inc --source include/no_protocol.inc
--source include/maybe_pool_of_threads.inc --source include/maybe_pool_of_threads.inc
--source include/wait_for_pfs_thread_count.inc
--enable_connect_log
--echo # --echo #
--echo # ================================================================================ --echo # ================================================================================
@@ -26,10 +25,7 @@ SET @@session.sql_log_bin=OFF;
connection default; connection default;
USE test; USE test;
# Clear user, host and account status accumulated from preliminary checks by mtr.
--disable_query_log
flush status; flush status;
--enable_query_log
--echo # --echo #
--echo # Create results table --echo # Create results table
@@ -112,9 +108,9 @@ ROLLBACK;
connection default; connection default;
--echo # Get thread ids for each connection. --echo # Get thread ids for each connection.
USE performance_schema; USE performance_schema;
SELECT thread_id INTO @con1_id FROM threads WHERE processlist_user IN ('user1'); SELECT thread_id INTO @con1_id FROM threads WHERE processlist_user IN ('user1') and processlist_id;
SELECT thread_id INTO @con2_id FROM threads WHERE processlist_user IN ('user2'); SELECT thread_id INTO @con2_id FROM threads WHERE processlist_user IN ('user2') and processlist_id;
SELECT thread_id INTO @con3_id FROM threads WHERE processlist_user IN ('user3'); SELECT thread_id INTO @con3_id FROM threads WHERE processlist_user IN ('user3') and processlist_id;
--source ../include/show_aggregate.inc --source ../include/show_aggregate.inc
@@ -135,18 +131,18 @@ USE performance_schema;
--echo # Verify expected counts for 'handler_delete' per thread --echo # Verify expected counts for 'handler_delete' per thread
--echo # --echo #
--replace_column 1 con_1 --replace_column 1 con_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', 'handler_rollback'); SELECT *, IF (variable_value = 1,'OK1','ERROR1') AS Expected FROM status_by_thread WHERE thread_id = @con1_id AND variable_name IN ('handler_delete', 'handler_rollback');
--echo # --echo #
--replace_column 1 con_2 --replace_column 1 con_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', 'handler_rollback'); SELECT *, IF (variable_value = 2,'OK2','ERROR2') AS Expected FROM status_by_thread WHERE thread_id = @con2_id AND variable_name IN ('handler_delete', 'handler_rollback');
--echo # --echo #
--replace_column 1 con_3 --replace_column 1 con_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', 'handler_rollback'); SELECT *, IF (variable_value = 3,'OK3','ERROR3') AS Expected FROM status_by_thread WHERE thread_id = @con3_id AND variable_name IN ('handler_delete', 'handler_rollback');
--echo # --echo #
--echo # STATUS_BY_THREAD vs. GLOBAL_STATUS --echo # STATUS_BY_THREAD vs. GLOBAL_STATUS
--echo # --echo #
SELECT variable_name, t1, t2, t3, delta, thread, IF(thread=delta,'OK','ERROR') Expected SELECT variable_name, t1, t2, t3, delta, thread, IF(thread=delta,'OK4','ERROR4') Expected
FROM test.status_results FROM test.status_results
ORDER BY variable_name; ORDER BY variable_name;
@@ -154,16 +150,16 @@ ORDER BY variable_name;
--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,'OK5','ERROR5') 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,'OK6','ERROR6') 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,'OK7','ERROR7') AS Expected FROM status_by_user WHERE user IN ('user3') AND variable_name IN ('handler_delete');
--echo # --echo #
--echo # STATUS_BY_USER vs. GLOBAL_STATUS --echo # STATUS_BY_USER vs. GLOBAL_STATUS
--echo # --echo #
SELECT variable_name, u1, u2, u3, delta, user, IF(user=delta,'OK','ERROR') Expected SELECT variable_name, u1, u2, u3, delta, user, IF(user=delta,'OK8','ERROR8') Expected
FROM test.status_results FROM test.status_results
ORDER BY variable_name; ORDER BY variable_name;
@@ -171,23 +167,23 @@ ORDER BY variable_name;
--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,'OK9','ERROR9') 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,'OKa','ERRORa') 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,'OKb','ERRORb') AS Expected FROM status_by_account WHERE user IN ('user3') AND variable_name IN ('handler_delete');
--echo # --echo #
--echo # STATUS_BY_ACCOUNT vs. GLOBAL_STATUS --echo # STATUS_BY_ACCOUNT vs. GLOBAL_STATUS
--echo # --echo #
SELECT variable_name, a1, a2, a3, delta, acct, IF(acct=delta,'OK','ERROR') Expected SELECT variable_name, a1, a2, a3, delta, acct, IF(acct=delta,'OKc','ERRORc') Expected
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,'OKd','ERRORd') AS Expected FROM status_by_host WHERE host IN ('localhost') AND variable_name IN ('handler_delete');
--echo # --echo #
--echo # STATUS_BY_HOST vs. GLOBAL_STATUS --echo # STATUS_BY_HOST vs. GLOBAL_STATUS
@@ -195,7 +191,7 @@ SELECT *, IF (variable_value = 6,'OK','ERROR') AS Expected FROM status_by_host W
--echo # Special case: No way to isolate pre-existing 'localhost' activity, so --echo # Special case: No way to isolate pre-existing 'localhost' activity, so
--echo # just check global totals = sum(status_by_host). --echo # just check global totals = sum(status_by_host).
--echo # --echo #
SELECT variable_name, h1, h2, h3, delta, host, IF(host=delta,'OK','ERROR') Expected SELECT variable_name, h1, h2, h3, delta, host, IF(host=delta,'OKe','ERRORe') Expected
FROM test.status_results FROM test.status_results
ORDER BY variable_name; ORDER BY variable_name;
@@ -203,10 +199,10 @@ ORDER BY variable_name;
--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;
disconnect con1; disconnect con1;
disconnect con2; disconnect con2;
disconnect con3; disconnect con3;
--echo # --echo #
USE test; USE test;
--echo # --echo #
@@ -218,6 +214,9 @@ UPDATE test.status_results
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;
let $wait_condition= select count(*) = 0 from performance_schema.threads where processlist_user like 'user%' and processlist_id;
--source include/wait_condition.inc
#--echo DEBUG #--echo DEBUG
#SELECT * FROM test.status_results; #SELECT * FROM test.status_results;
--echo # --echo #
@@ -232,16 +231,16 @@ USE performance_schema;
--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,'OKf','ERRORf') 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,'OKg','ERRORg') 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,'OKh','ERRORh') AS Expected FROM status_by_user WHERE user IN ('user3') AND variable_name IN ('handler_delete');
--echo # --echo #
--echo # STATUS_BY_USER vs. GLOBAL_STATUS --echo # STATUS_BY_USER vs. GLOBAL_STATUS
--echo # --echo #
SELECT variable_name, u1, u2, u3, delta, user, IF(user=delta,'OK','ERROR') Expected SELECT variable_name, u1, u2, u3, delta, user, IF(user=delta,'OKi','ERRORi') Expected
FROM test.status_results FROM test.status_results
ORDER BY variable_name; ORDER BY variable_name;
@@ -249,23 +248,23 @@ ORDER BY variable_name;
--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,'OKj','ERRORj') 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,'OKk','ERRORk') 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,'OKl','ERRORl') AS Expected FROM status_by_account WHERE user IN ('user3') AND variable_name IN ('handler_delete');
--echo # --echo #
--echo # STATUS_BY_ACCOUNT vs. GLOBAL_STATUS --echo # STATUS_BY_ACCOUNT vs. GLOBAL_STATUS
--echo # --echo #
SELECT variable_name, a1, a2, a3, delta, acct, IF(acct=delta,'OK','ERROR') Expected SELECT variable_name, a1, a2, a3, delta, acct, IF(acct=delta,'OKn','ERRORn') Expected
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,'OKo','ERRORo') AS Expected FROM status_by_host WHERE host IN ('localhost') AND variable_name IN ('handler_delete');
--echo # --echo #
--echo # STATUS_BY_HOST vs. GLOBAL_STATUS --echo # STATUS_BY_HOST vs. GLOBAL_STATUS
@@ -273,11 +272,10 @@ SELECT *, IF (variable_value = 6,'OK','ERROR') AS Expected FROM status_by_host W
--echo # Special case: No way to isolate pre-existing 'localhost' activity, so --echo # Special case: No way to isolate pre-existing 'localhost' activity, so
--echo # just check global totals = sum(status_by_host). --echo # just check global totals = sum(status_by_host).
--echo # --echo #
SELECT variable_name, h1, h2, h3, delta, host, IF(host=delta,'OK','ERROR') Expected SELECT variable_name, h1, h2, h3, delta, host, IF(host=delta,'OKp','ERRORp') Expected
FROM test.status_results 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 # ================================================================================
@@ -290,7 +288,6 @@ SELECT * FROM status_by_host WHERE host IN ('localhost') AND variable_name IN ('
--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 # ================================================================================

View File

@@ -290,7 +290,7 @@ DATA_TYPE test_double
CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_MAXIMUM_LENGTH NULL
CHARACTER_OCTET_LENGTH NULL CHARACTER_OCTET_LENGTH NULL
NUMERIC_PRECISION 22 NUMERIC_PRECISION 22
NUMERIC_SCALE 31 NUMERIC_SCALE NULL
DATETIME_PRECISION NULL DATETIME_PRECISION NULL
CHARACTER_SET_NAME NULL CHARACTER_SET_NAME NULL
COLLATION_NAME NULL COLLATION_NAME NULL

View File

@@ -4689,6 +4689,30 @@ bool Field_longlong::is_max()
single precision float single precision float
****************************************************************************/ ****************************************************************************/
Field_float::Field_float(uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg,
uchar null_bit_arg,
enum utype unireg_check_arg,
const LEX_CSTRING *field_name_arg,
decimal_digits_t dec_arg,
bool zero_arg, bool unsigned_arg)
:Field_real(ptr_arg, len_arg, null_ptr_arg, null_bit_arg,
unireg_check_arg, field_name_arg,
(dec_arg >= FLOATING_POINT_DECIMALS ? NOT_FIXED_DEC : dec_arg),
zero_arg, unsigned_arg)
{
}
Field_float::Field_float(uint32 len_arg, bool maybe_null_arg,
const LEX_CSTRING *field_name_arg,
decimal_digits_t dec_arg)
:Field_real((uchar*) 0, len_arg, maybe_null_arg ? (uchar*) "": 0, (uint) 0,
NONE, field_name_arg,
(dec_arg >= FLOATING_POINT_DECIMALS ? NOT_FIXED_DEC : dec_arg),
0, 0)
{
}
int Field_float::store(const char *from,size_t len,CHARSET_INFO *cs) int Field_float::store(const char *from,size_t len,CHARSET_INFO *cs)
{ {
int error; int error;
@@ -4837,6 +4861,40 @@ Binlog_type_info Field_float::binlog_type_info() const
double precision floating point numbers double precision floating point numbers
****************************************************************************/ ****************************************************************************/
Field_double::Field_double(uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg,
uchar null_bit_arg,
enum utype unireg_check_arg,
const LEX_CSTRING *field_name_arg,
decimal_digits_t dec_arg,
bool zero_arg, bool unsigned_arg)
:Field_real(ptr_arg, len_arg, null_ptr_arg, null_bit_arg,
unireg_check_arg, field_name_arg,
(dec_arg >= FLOATING_POINT_DECIMALS ? NOT_FIXED_DEC : dec_arg),
zero_arg, unsigned_arg)
{
}
Field_double::Field_double(uint32 len_arg, bool maybe_null_arg,
const LEX_CSTRING *field_name_arg,
decimal_digits_t dec_arg)
:Field_real((uchar*) 0, len_arg, maybe_null_arg ? (uchar*) "" : 0, (uint) 0,
NONE, field_name_arg,
(dec_arg >= FLOATING_POINT_DECIMALS ? NOT_FIXED_DEC : dec_arg),
0, 0)
{
}
Field_double::Field_double(uint32 len_arg, bool maybe_null_arg,
const LEX_CSTRING *field_name_arg,
decimal_digits_t dec_arg, bool not_fixed_arg)
:Field_real((uchar*) 0, len_arg, maybe_null_arg ? (uchar*) "" : 0, (uint) 0,
NONE, field_name_arg,
(dec_arg >= FLOATING_POINT_DECIMALS ? NOT_FIXED_DEC : dec_arg),
0, 0)
{
not_fixed= not_fixed_arg;
}
int Field_double::store(const char *from,size_t len,CHARSET_INFO *cs) int Field_double::store(const char *from,size_t len,CHARSET_INFO *cs)
{ {
int error; int error;
@@ -4994,7 +5052,7 @@ Converter_double_to_longlong::push_warning(THD *thd,
} }
int Field_real::store_time_dec(const MYSQL_TIME *ltime, uint dec_arg) int Field_real::store_time_dec(const MYSQL_TIME *ltime, uint)
{ {
return store(TIME_to_double(ltime)); return store(TIME_to_double(ltime));
} }
@@ -6539,7 +6597,7 @@ int Field_year::store(longlong nr, bool unsigned_val)
} }
int Field_year::store_time_dec(const MYSQL_TIME *ltime, uint dec_arg) int Field_year::store_time_dec(const MYSQL_TIME *ltime, uint)
{ {
ErrConvTime str(ltime); ErrConvTime str(ltime);
if (Field_year::store(ltime->year, 0)) if (Field_year::store(ltime->year, 0))

View File

@@ -2867,22 +2867,9 @@ public:
Field_float(uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg, Field_float(uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg,
uchar null_bit_arg, uchar null_bit_arg,
enum utype unireg_check_arg, const LEX_CSTRING *field_name_arg, enum utype unireg_check_arg, const LEX_CSTRING *field_name_arg,
decimal_digits_t dec_arg,bool zero_arg,bool unsigned_arg) decimal_digits_t dec_arg,bool zero_arg,bool unsigned_arg);
:Field_real(ptr_arg, len_arg, null_ptr_arg, null_bit_arg,
unireg_check_arg, field_name_arg,
dec_arg, zero_arg, unsigned_arg)
{
if (dec_arg >= FLOATING_POINT_DECIMALS)
dec_arg= NOT_FIXED_DEC;
}
Field_float(uint32 len_arg, bool maybe_null_arg, Field_float(uint32 len_arg, bool maybe_null_arg,
const LEX_CSTRING *field_name_arg, decimal_digits_t dec_arg) const LEX_CSTRING *field_name_arg, decimal_digits_t dec_arg);
:Field_real((uchar*) 0, len_arg, maybe_null_arg ? (uchar*) "": 0, (uint) 0,
NONE, field_name_arg, dec_arg, 0, 0)
{
if (dec_arg >= FLOATING_POINT_DECIMALS)
dec_arg= NOT_FIXED_DEC;
}
const Type_handler *type_handler() const override const Type_handler *type_handler() const override
{ return &type_handler_float; } { return &type_handler_float; }
enum ha_base_keytype key_type() const override { return HA_KEYTYPE_FLOAT; } enum ha_base_keytype key_type() const override { return HA_KEYTYPE_FLOAT; }
@@ -2915,32 +2902,12 @@ public:
Field_double(uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg, Field_double(uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg,
uchar null_bit_arg, uchar null_bit_arg,
enum utype unireg_check_arg, const LEX_CSTRING *field_name_arg, enum utype unireg_check_arg, const LEX_CSTRING *field_name_arg,
decimal_digits_t dec_arg,bool zero_arg,bool unsigned_arg) decimal_digits_t dec_arg,bool zero_arg,bool unsigned_arg);
:Field_real(ptr_arg, len_arg, null_ptr_arg, null_bit_arg,
unireg_check_arg, field_name_arg,
dec_arg, zero_arg, unsigned_arg)
{
if (dec_arg >= FLOATING_POINT_DECIMALS)
dec_arg= NOT_FIXED_DEC;
}
Field_double(uint32 len_arg, bool maybe_null_arg, Field_double(uint32 len_arg, bool maybe_null_arg,
const LEX_CSTRING *field_name_arg, decimal_digits_t dec_arg) const LEX_CSTRING *field_name_arg, decimal_digits_t dec_arg);
:Field_real((uchar*) 0, len_arg, maybe_null_arg ? (uchar*) "" : 0, (uint) 0,
NONE, field_name_arg, dec_arg, 0, 0)
{
if (dec_arg >= FLOATING_POINT_DECIMALS)
dec_arg= NOT_FIXED_DEC;
}
Field_double(uint32 len_arg, bool maybe_null_arg, Field_double(uint32 len_arg, bool maybe_null_arg,
const LEX_CSTRING *field_name_arg, const LEX_CSTRING *field_name_arg,
decimal_digits_t dec_arg, bool not_fixed_arg) decimal_digits_t dec_arg, bool not_fixed_arg);
:Field_real((uchar*) 0, len_arg, maybe_null_arg ? (uchar*) "" : 0, (uint) 0,
NONE, field_name_arg, dec_arg, 0, 0)
{
not_fixed= not_fixed_arg;
if (dec_arg >= FLOATING_POINT_DECIMALS)
dec_arg= NOT_FIXED_DEC;
}
void init_for_tmp_table(Field *org_field, TABLE *new_table) override void init_for_tmp_table(Field *org_field, TABLE *new_table) override
{ {
Field::init_for_tmp_table(org_field, new_table); Field::init_for_tmp_table(org_field, new_table);

View File

@@ -364,7 +364,7 @@ void buf_dblwr_t::recover()
{ {
byte *page= *i; byte *page= *i;
const uint32_t page_no= page_get_page_no(page); const uint32_t page_no= page_get_page_no(page);
if (!page_no) /* recovered via Datafile::restore_from_doublewrite() */ if (!page_no) /* recovered via recv_dblwr_t::restore_first_page() */
continue; continue;
const lsn_t lsn= mach_read_from_8(page + FIL_PAGE_LSN); const lsn_t lsn= mach_read_from_8(page + FIL_PAGE_LSN);

View File

@@ -350,6 +350,7 @@ fil_node_t* fil_space_t::add(const char* name, pfs_os_file_t handle,
return node; return node;
} }
__attribute__((warn_unused_result, nonnull))
/** Open a tablespace file. /** Open a tablespace file.
@param node data file @param node data file
@return whether the file was successfully opened */ @return whether the file was successfully opened */
@@ -378,9 +379,9 @@ static bool fil_node_open_file_low(fil_node_t *node)
: OS_FILE_OPEN | OS_FILE_ON_ERROR_NO_EXIT, : OS_FILE_OPEN | OS_FILE_ON_ERROR_NO_EXIT,
OS_FILE_AIO, type, OS_FILE_AIO, type,
srv_read_only_mode, &success); srv_read_only_mode, &success);
if (node->is_open())
if (success && node->is_open())
{ {
ut_ad(success);
#ifndef _WIN32 #ifndef _WIN32
if (!node->space->id && !srv_read_only_mode && my_disable_locking && if (!node->space->id && !srv_read_only_mode && my_disable_locking &&
os_file_lock(node->handle, node->name)) os_file_lock(node->handle, node->name))

View File

@@ -450,7 +450,8 @@ Datafile::validate_for_recovery()
return DB_SUCCESS; /* empty file */ return DB_SUCCESS; /* empty file */
} }
if (restore_from_doublewrite()) { if (recv_sys.dblwr.restore_first_page(
m_space_id, m_filepath, m_handle)) {
return m_defer ? err : DB_CORRUPTION; return m_defer ? err : DB_CORRUPTION;
} }
@@ -759,60 +760,6 @@ Datafile::find_space_id()
return(DB_CORRUPTION); return(DB_CORRUPTION);
} }
/** Restore the first page of the tablespace from
the double write buffer.
@return whether the operation failed */
bool
Datafile::restore_from_doublewrite()
{
if (srv_operation > SRV_OPERATION_EXPORT_RESTORED) {
return true;
}
/* Find if double write buffer contains page_no of given space id. */
const page_id_t page_id(m_space_id, 0);
const byte* page = recv_sys.dblwr.find_page(page_id);
if (!page) {
/* If the first page of the given user tablespace is not there
in the doublewrite buffer, then the recovery is going to fail
now. Hence this is treated as an error. */
ib::error()
<< "Corrupted page " << page_id
<< " of datafile '" << m_filepath
<< "' could not be found in the doublewrite buffer.";
return(true);
}
ulint flags = mach_read_from_4(
FSP_HEADER_OFFSET + FSP_SPACE_FLAGS + page);
if (!fil_space_t::is_valid_flags(flags, m_space_id)) {
flags = fsp_flags_convert_from_101(flags);
/* recv_dblwr_t::validate_page() inside find_page()
checked this already. */
ut_ad(flags != ULINT_UNDEFINED);
/* The flags on the page should be converted later. */
}
ulint physical_size = fil_space_t::physical_size(flags);
ut_a(page_get_page_no(page) == page_id.page_no());
ib::info() << "Restoring page " << page_id
<< " of datafile '" << m_filepath
<< "' from the doublewrite buffer. Writing "
<< physical_size << " bytes into file '"
<< m_filepath << "'";
return(os_file_write(
IORequestWrite,
m_filepath, m_handle, page, 0, physical_size)
!= DB_SUCCESS);
}
/** Read an InnoDB Symbolic Link (ISL) file by name. /** Read an InnoDB Symbolic Link (ISL) file by name.
@param link_filepath filepath of the ISL file @param link_filepath filepath of the ISL file
@return data file name (must be freed by the caller) @return data file name (must be freed by the caller)

View File

@@ -593,7 +593,9 @@ SysTablespace::read_lsn_and_check_flags(lsn_t* flushed_lsn)
if (err != DB_SUCCESS if (err != DB_SUCCESS
&& (retry == 1 && (retry == 1
|| it->restore_from_doublewrite())) { || recv_sys.dblwr.restore_first_page(
it->m_space_id, it->m_filepath,
it->handle()))) {
it->close(); it->close();

View File

@@ -18318,6 +18318,7 @@ checkpoint_now_set(THD*, st_mysql_sys_var*, void*, const void* save)
while (log_sys.last_checkpoint_lsn.load( while (log_sys.last_checkpoint_lsn.load(
std::memory_order_acquire) std::memory_order_acquire)
+ SIZE_OF_FILE_CHECKPOINT + SIZE_OF_FILE_CHECKPOINT
+ log_sys.framing_size()
< (lsn= log_sys.get_lsn(std::memory_order_acquire))) { < (lsn= log_sys.get_lsn(std::memory_order_acquire))) {
log_make_checkpoint(); log_make_checkpoint();
log_sys.log.flush(); log_sys.log.flush();
@@ -20060,30 +20061,6 @@ static TABLE* innodb_find_table_for_vc(THD* thd, dict_table_t* table)
return mysql_table; return mysql_table;
} }
/** Only used by the purge thread
@param[in,out] table table whose virtual column template to be built */
TABLE* innobase_init_vc_templ(dict_table_t* table)
{
DBUG_ENTER("innobase_init_vc_templ");
ut_ad(table->vc_templ == NULL);
TABLE *mysql_table= innodb_find_table_for_vc(current_thd, table);
ut_ad(mysql_table);
if (!mysql_table) {
DBUG_RETURN(NULL);
}
dict_vcol_templ_t* vc_templ = UT_NEW_NOKEY(dict_vcol_templ_t());
dict_sys.lock(SRW_LOCK_CALL);
table->vc_templ = vc_templ;
innobase_build_v_templ(mysql_table, table, vc_templ, nullptr, true);
dict_sys.unlock();
DBUG_RETURN(mysql_table);
}
/** Change dbname and table name in table->vc_templ. /** Change dbname and table name in table->vc_templ.
@param[in,out] table the table whose virtual column template @param[in,out] table the table whose virtual column template
dbname and tbname to be renamed. */ dbname and tbname to be renamed. */

View File

@@ -398,11 +398,6 @@ private:
else DB_ERROR. */ else DB_ERROR. */
dberr_t find_space_id(); dberr_t find_space_id();
/** Restore the first page of the tablespace from
the double write buffer.
@return whether the operation failed */
bool restore_from_doublewrite();
/** Points into m_filepath to the file name with extension */ /** Points into m_filepath to the file name with extension */
char* m_filename; char* m_filename;

View File

@@ -497,12 +497,16 @@ public:
void write_header_durable(lsn_t lsn); void write_header_durable(lsn_t lsn);
/** opens log file which must be closed prior this call */ /** opens log file which must be closed prior this call */
dberr_t rename(std::string path) { return fd.rename(path); } dberr_t rename(std::string path) { return fd.rename(path); }
MY_ATTRIBUTE((warn_unused_result))
/** reads buffer from log file /** reads buffer from log file
@param[in] offset offset in log file @param[in] offset offset in log file
@param[in] buf buffer where to read */ @param[in] buf buffer where to read */
void read(os_offset_t offset, span<byte> buf); dberr_t read(os_offset_t offset, span<byte> buf)
{ return fd.read(offset, buf); }
/** Tells whether writes require calling flush() */ /** Tells whether writes require calling flush() */
bool writes_are_durable() const noexcept; bool writes_are_durable() const noexcept
{ return fd.writes_are_durable(); }
/** writes buffer to log file /** writes buffer to log file
@param[in] offset offset in log file @param[in] offset offset in log file
@param[in] buf buffer from which to write */ @param[in] buf buffer from which to write */

View File

@@ -140,6 +140,15 @@ struct recv_dblwr_t
byte* find_page(const page_id_t page_id, const fil_space_t *space= NULL, byte* find_page(const page_id_t page_id, const fil_space_t *space= NULL,
byte *tmp_buf= NULL); byte *tmp_buf= NULL);
/** Restore the first page of the given tablespace from
doublewrite buffer.
@param space_id tablespace identifier
@param name tablespace filepath
@param file tablespace file handle
@return whether the operation failed */
bool restore_first_page(
ulint space_id, const char *name, os_file_t file);
typedef std::deque<byte*, ut_allocator<byte*> > list; typedef std::deque<byte*, ut_allocator<byte*> > list;
/** Recovered doublewrite buffer page frames */ /** Recovered doublewrite buffer page frames */
@@ -298,7 +307,8 @@ public:
/** Last added LSN to pages. */ /** Last added LSN to pages. */
lsn_t last_stored_lsn= 0; lsn_t last_stored_lsn= 0;
void read(os_offset_t offset, span<byte> buf); __attribute__((warn_unused_result))
dberr_t read(os_offset_t offset, span<byte> buf);
inline size_t files_size(); inline size_t files_size();
void close_files() { files.clear(); files.shrink_to_fit(); } void close_files() { files.clear(); files.shrink_to_fit(); }

View File

@@ -814,11 +814,6 @@ innobase_get_computed_value(
const upd_t* update=NULL, const upd_t* update=NULL,
bool ignore_warnings=false); bool ignore_warnings=false);
/** Get the computed value by supplying the base column values.
@param[in,out] table the table whose virtual column
template to be built */
TABLE* innobase_init_vc_templ(dict_table_t* table);
/** Change dbname and table name in table->vc_templ. /** Change dbname and table name in table->vc_templ.
@param[in,out] table the table whose virtual column template @param[in,out] table the table whose virtual column template
dbname and tbname to be renamed. */ dbname and tbname to be renamed. */

View File

@@ -276,6 +276,7 @@ dberr_t file_os_io::close() noexcept
return DB_SUCCESS; return DB_SUCCESS;
} }
__attribute__((warn_unused_result))
dberr_t file_os_io::read(os_offset_t offset, span<byte> buf) noexcept dberr_t file_os_io::read(os_offset_t offset, span<byte> buf) noexcept
{ {
return os_file_read(IORequestRead, m_fd, buf.data(), offset, buf.size(), return os_file_read(IORequestRead, m_fd, buf.data(), offset, buf.size(),
@@ -379,6 +380,7 @@ public:
: DB_ERROR; : DB_ERROR;
} }
dberr_t close() noexcept final { return m_file.unmap(); } dberr_t close() noexcept final { return m_file.unmap(); }
__attribute__((warn_unused_result))
dberr_t read(os_offset_t offset, span<byte> buf) noexcept final dberr_t read(os_offset_t offset, span<byte> buf) noexcept final
{ {
memcpy(buf.data(), m_file.data() + offset, buf.size()); memcpy(buf.data(), m_file.data() + offset, buf.size());
@@ -445,6 +447,8 @@ dberr_t log_file_t::close() noexcept
return DB_SUCCESS; return DB_SUCCESS;
} }
__attribute__((warn_unused_result))
dberr_t log_file_t::read(os_offset_t offset, span<byte> buf) noexcept dberr_t log_file_t::read(os_offset_t offset, span<byte> buf) noexcept
{ {
ut_ad(is_opened()); ut_ad(is_opened());
@@ -507,17 +511,6 @@ void log_t::file::write_header_durable(lsn_t lsn)
log_sys.log.flush(); log_sys.log.flush();
} }
void log_t::file::read(os_offset_t offset, span<byte> buf)
{
if (const dberr_t err= fd.read(offset, buf))
ib::fatal() << "read(" << fd.get_path() << ") returned "<< err;
}
bool log_t::file::writes_are_durable() const noexcept
{
return fd.writes_are_durable();
}
void log_t::file::write(os_offset_t offset, span<byte> buf) void log_t::file::write(os_offset_t offset, span<byte> buf)
{ {
srv_stats.os_log_pending_writes.inc(); srv_stats.os_log_pending_writes.inc();

View File

@@ -1231,14 +1231,14 @@ void recv_sys_t::open_log_files_if_needed()
} }
} }
void recv_sys_t::read(os_offset_t total_offset, span<byte> buf) MY_ATTRIBUTE((warn_unused_result))
dberr_t recv_sys_t::read(os_offset_t total_offset, span<byte> buf)
{ {
open_log_files_if_needed(); open_log_files_if_needed();
size_t file_idx= static_cast<size_t>(total_offset / log_sys.log.file_size); size_t file_idx= static_cast<size_t>(total_offset / log_sys.log.file_size);
os_offset_t offset= total_offset % log_sys.log.file_size; os_offset_t offset= total_offset % log_sys.log.file_size;
dberr_t err= recv_sys.files[file_idx].read(offset, buf); return recv_sys.files[file_idx].read(offset, buf);
ut_a(err == DB_SUCCESS);
} }
inline size_t recv_sys_t::files_size() inline size_t recv_sys_t::files_size()
@@ -1566,7 +1566,8 @@ loop:
ut_a((source_offset >> srv_page_size_shift) <= ULINT_MAX); ut_a((source_offset >> srv_page_size_shift) <= ULINT_MAX);
recv_sys.read(source_offset, {buf, len}); if (recv_sys.read(source_offset, {buf, len}))
return false;
for (ulint l = 0; l < len; l += OS_FILE_LOG_BLOCK_SIZE, for (ulint l = 0; l < len; l += OS_FILE_LOG_BLOCK_SIZE,
buf += OS_FILE_LOG_BLOCK_SIZE, buf += OS_FILE_LOG_BLOCK_SIZE,
@@ -1754,7 +1755,8 @@ ATTRIBUTE_COLD static dberr_t recv_log_recover_pre_10_2()
for (ulint field= LOG_CHECKPOINT_1; field <= LOG_CHECKPOINT_2; for (ulint field= LOG_CHECKPOINT_1; field <= LOG_CHECKPOINT_2;
field += LOG_CHECKPOINT_2 - LOG_CHECKPOINT_1) field += LOG_CHECKPOINT_2 - LOG_CHECKPOINT_1)
{ {
log_sys.log.read(field, {buf, OS_FILE_LOG_BLOCK_SIZE}); if (dberr_t err= log_sys.log.read(field, {buf, OS_FILE_LOG_BLOCK_SIZE}))
return err;
if (static_cast<uint32_t>(ut_fold_binary(buf, CHECKSUM_1)) != if (static_cast<uint32_t>(ut_fold_binary(buf, CHECKSUM_1)) !=
mach_read_from_4(buf + CHECKSUM_1) || mach_read_from_4(buf + CHECKSUM_1) ||
@@ -1806,7 +1808,8 @@ ATTRIBUTE_COLD static dberr_t recv_log_recover_pre_10_2()
"InnoDB: Upgrade after a crash is not supported." "InnoDB: Upgrade after a crash is not supported."
" This redo log was created before MariaDB 10.2.2"; " This redo log was created before MariaDB 10.2.2";
recv_sys.read(source_offset & ~511, {buf, 512}); if (dberr_t err= recv_sys.read(source_offset & ~511, {buf, 512}))
return err;
if (log_block_calc_checksum_format_0(buf) != log_block_get_checksum(buf) && if (log_block_calc_checksum_format_0(buf) != log_block_get_checksum(buf) &&
!log_crypt_101_read_block(buf, lsn)) !log_crypt_101_read_block(buf, lsn))
@@ -1873,8 +1876,10 @@ static dberr_t recv_log_recover_10_4()
return DB_CORRUPTION; return DB_CORRUPTION;
} }
if (dberr_t err=
recv_sys.read(source_offset & ~lsn_t(OS_FILE_LOG_BLOCK_SIZE - 1), recv_sys.read(source_offset & ~lsn_t(OS_FILE_LOG_BLOCK_SIZE - 1),
{buf, OS_FILE_LOG_BLOCK_SIZE}); {buf, OS_FILE_LOG_BLOCK_SIZE}))
return err;
ulint crc = log_block_calc_checksum_crc32(buf); ulint crc = log_block_calc_checksum_crc32(buf);
ulint cksum = log_block_get_checksum(buf); ulint cksum = log_block_get_checksum(buf);
@@ -1932,7 +1937,8 @@ recv_find_max_checkpoint(ulint* max_field)
buf = log_sys.checkpoint_buf; buf = log_sys.checkpoint_buf;
log_sys.log.read(0, {buf, OS_FILE_LOG_BLOCK_SIZE}); if (dberr_t err= log_sys.log.read(0, {buf, OS_FILE_LOG_BLOCK_SIZE}))
return err;
/* Check the header page checksum. There was no /* Check the header page checksum. There was no
checksum in the first redo log format (version 0). */ checksum in the first redo log format (version 0). */
log_sys.log.format = mach_read_from_4(buf + LOG_HEADER_FORMAT); log_sys.log.format = mach_read_from_4(buf + LOG_HEADER_FORMAT);
@@ -1971,7 +1977,8 @@ recv_find_max_checkpoint(ulint* max_field)
for (field = LOG_CHECKPOINT_1; field <= LOG_CHECKPOINT_2; for (field = LOG_CHECKPOINT_1; field <= LOG_CHECKPOINT_2;
field += LOG_CHECKPOINT_2 - LOG_CHECKPOINT_1) { field += LOG_CHECKPOINT_2 - LOG_CHECKPOINT_1) {
log_sys.log.read(field, {buf, OS_FILE_LOG_BLOCK_SIZE}); if (dberr_t err= log_sys.log.read(field, {buf, OS_FILE_LOG_BLOCK_SIZE}))
return err;
const ulint crc32 = log_block_calc_checksum_crc32(buf); const ulint crc32 = log_block_calc_checksum_crc32(buf);
const ulint cksum = log_block_get_checksum(buf); const ulint cksum = log_block_get_checksum(buf);
@@ -4415,7 +4422,10 @@ recv_recovery_from_checkpoint_start(lsn_t flush_lsn)
} }
buf = log_sys.checkpoint_buf; buf = log_sys.checkpoint_buf;
log_sys.log.read(max_cp_field, {buf, OS_FILE_LOG_BLOCK_SIZE}); if ((err= log_sys.log.read(max_cp_field, {buf, OS_FILE_LOG_BLOCK_SIZE}))) {
mysql_mutex_unlock(&log_sys.mutex);
return(err);
}
checkpoint_lsn = mach_read_from_8(buf + LOG_CHECKPOINT_LSN); checkpoint_lsn = mach_read_from_8(buf + LOG_CHECKPOINT_LSN);
checkpoint_no = mach_read_from_8(buf + LOG_CHECKPOINT_NO); checkpoint_no = mach_read_from_8(buf + LOG_CHECKPOINT_NO);
@@ -4512,7 +4522,8 @@ completed:
} else if (checkpoint_lsn != flush_lsn) { } else if (checkpoint_lsn != flush_lsn) {
ut_ad(!srv_log_file_created); ut_ad(!srv_log_file_created);
if (checkpoint_lsn + sizeof_checkpoint < flush_lsn) { if (checkpoint_lsn + sizeof_checkpoint
+ log_sys.framing_size() < flush_lsn) {
ib::warn() ib::warn()
<< "Are you sure you are using the right " << "Are you sure you are using the right "
<< LOG_FILE_NAME << LOG_FILE_NAME
@@ -4783,6 +4794,11 @@ byte *recv_dblwr_t::find_page(const page_id_t page_id,
if (page_get_page_no(page) != page_id.page_no() || if (page_get_page_no(page) != page_id.page_no() ||
page_get_space_id(page) != page_id.space()) page_get_space_id(page) != page_id.space())
continue; continue;
uint32_t flags= mach_read_from_4(
FSP_HEADER_OFFSET + FSP_SPACE_FLAGS + page);
if (!fil_space_t::is_valid_flags(flags, page_id.space()))
continue;
const lsn_t lsn= mach_read_from_8(page + FIL_PAGE_LSN); const lsn_t lsn= mach_read_from_8(page + FIL_PAGE_LSN);
if (lsn <= max_lsn || if (lsn <= max_lsn ||
!validate_page(page_id, page, space, tmp_buf)) !validate_page(page_id, page, space, tmp_buf))
@@ -4791,9 +4807,38 @@ byte *recv_dblwr_t::find_page(const page_id_t page_id,
memset(page + FIL_PAGE_LSN, 0, 8); memset(page + FIL_PAGE_LSN, 0, 8);
continue; continue;
} }
ut_a(page_get_page_no(page) == page_id.page_no());
max_lsn= lsn; max_lsn= lsn;
result= page; result= page;
} }
return result; return result;
} }
bool recv_dblwr_t::restore_first_page(ulint space_id, const char *name,
os_file_t file)
{
const page_id_t page_id(space_id, 0);
const byte* page= find_page(page_id);
if (!page)
{
/* If the first page of the given user tablespace is not there
in the doublewrite buffer, then the recovery is going to fail
now. Hence this is treated as error. */
ib::error()
<< "Corrupted page " << page_id << " of datafile '"
<< name <<"' could not be found in the doublewrite buffer.";
return true;
}
ulint physical_size= fil_space_t::physical_size(
mach_read_from_4(page + FSP_HEADER_OFFSET + FSP_SPACE_FLAGS));
ib::info() << "Restoring page " << page_id << " of datafile '"
<< name << "' from the doublewrite buffer. Writing "
<< physical_size << " bytes into file '" << name << "'";
return os_file_write(
IORequestWrite, name, file, page, 0, physical_size) !=
DB_SUCCESS;
}

View File

@@ -483,7 +483,8 @@ static ulint trx_rseg_get_n_undo_tablespaces()
@param[in] name tablespace file name @param[in] name tablespace file name
@param[in] i undo tablespace count @param[in] i undo tablespace count
@return undo tablespace identifier @return undo tablespace identifier
@retval 0 on failure */ @retval 0 if file doesn't exist
@retval ULINT_UNDEFINED if page0 is corrupted */
static ulint srv_undo_tablespace_open(bool create, const char* name, ulint i) static ulint srv_undo_tablespace_open(bool create, const char* name, ulint i)
{ {
bool success; bool success;
@@ -519,14 +520,13 @@ static ulint srv_undo_tablespace_open(bool create, const char* name, ulint i)
{ {
page_t *page= static_cast<byte*>(aligned_malloc(srv_page_size, page_t *page= static_cast<byte*>(aligned_malloc(srv_page_size,
srv_page_size)); srv_page_size));
dberr_t err= os_file_read(IORequestRead, fh, page, 0, srv_page_size, if (os_file_read(IORequestRead, fh, page, 0, srv_page_size, nullptr) !=
nullptr); DB_SUCCESS)
if (err != DB_SUCCESS)
{ {
err_exit: err_exit:
ib::error() << "Unable to read first page of file " << name; ib::error() << "Unable to read first page of file " << name;
aligned_free(page); aligned_free(page);
return err; return ULINT_UNDEFINED;
} }
uint32_t id= mach_read_from_4(FIL_PAGE_SPACE_ID + page); uint32_t id= mach_read_from_4(FIL_PAGE_SPACE_ID + page);
@@ -535,19 +535,20 @@ err_exit:
FSP_HEADER_OFFSET + FSP_SPACE_ID + page, 4)) FSP_HEADER_OFFSET + FSP_SPACE_ID + page, 4))
{ {
ib::error() << "Inconsistent tablespace ID in file " << name; ib::error() << "Inconsistent tablespace ID in file " << name;
err= DB_CORRUPTION;
goto err_exit;
}
fsp_flags= mach_read_from_4(FSP_HEADER_OFFSET + FSP_SPACE_FLAGS + page);
if (buf_page_is_corrupted(false, page, fsp_flags))
{
ib::error() << "Checksum mismatch in the first page of file " << name;
err= DB_CORRUPTION;
goto err_exit; goto err_exit;
} }
space_id= id; space_id= id;
fsp_flags= mach_read_from_4(FSP_HEADER_OFFSET + FSP_SPACE_FLAGS + page);
if (buf_page_is_corrupted(false, page, fsp_flags))
{
sql_print_error("InnoDB: Checksum mismatch in the first page of file %s",
name);
if (recv_sys.dblwr.restore_first_page(space_id, name, fh))
goto err_exit;
}
aligned_free(page); aligned_free(page);
} }
@@ -658,16 +659,18 @@ static dberr_t srv_all_undo_tablespaces_open(bool create_new_db, ulint n_undo)
char name[OS_FILE_MAX_PATH]; char name[OS_FILE_MAX_PATH];
snprintf(name, sizeof name, "%s/undo%03zu", srv_undo_dir, i + 1); snprintf(name, sizeof name, "%s/undo%03zu", srv_undo_dir, i + 1);
ulint space_id= srv_undo_tablespace_open(create_new_db, name, i); ulint space_id= srv_undo_tablespace_open(create_new_db, name, i);
if (!space_id) switch (space_id) {
{ case ULINT_UNDEFINED:
return DB_CORRUPTION;
case 0:
if (!create_new_db) if (!create_new_db)
break; goto unused_undo;
ib::error() << "Unable to open create tablespace '" << name << "'."; sql_print_error("InnoDB: Unable to open create tablespace '%s'", name);
return DB_ERROR; return DB_ERROR;
} default:
/* Should be no gaps in undo tablespace ids. */ /* Should be no gaps in undo tablespace ids. */
ut_a(!i || prev_id + 1 == space_id); ut_a(!i || prev_id + 1 == space_id);
}
prev_id= space_id; prev_id= space_id;
@@ -681,13 +684,14 @@ static dberr_t srv_all_undo_tablespaces_open(bool create_new_db, ulint n_undo)
We stop at the first failure. These are undo tablespaces that are We stop at the first failure. These are undo tablespaces that are
not in use and therefore not required by recovery. We only check not in use and therefore not required by recovery. We only check
that there are no gaps. */ that there are no gaps. */
unused_undo:
for (ulint i= prev_id + 1; i < srv_undo_space_id_start + TRX_SYS_N_RSEGS; for (ulint i= prev_id + 1; i < srv_undo_space_id_start + TRX_SYS_N_RSEGS;
++i) ++i)
{ {
char name[OS_FILE_MAX_PATH]; char name[OS_FILE_MAX_PATH];
snprintf(name, sizeof name, "%s/undo%03zu", srv_undo_dir, i); snprintf(name, sizeof name, "%s/undo%03zu", srv_undo_dir, i);
if (!srv_undo_tablespace_open(create_new_db, name, i)) ulint space_id= srv_undo_tablespace_open(create_new_db, name, i);
if (!space_id || space_id == ULINT_UNDEFINED)
break; break;
++srv_undo_tablespaces_open; ++srv_undo_tablespaces_open;
} }

View File

@@ -639,7 +639,8 @@ static void trx_undo_write_xid(buf_block_t *block, uint16_t offset,
static_cast<uint32_t>(xid.bqual_length)); static_cast<uint32_t>(xid.bqual_length));
const ulint xid_length= static_cast<ulint>(xid.gtrid_length const ulint xid_length= static_cast<ulint>(xid.gtrid_length
+ xid.bqual_length); + xid.bqual_length);
mtr->memcpy(*block, &block->page.frame[offset + TRX_UNDO_XA_XID], mtr->memcpy<mtr_t::MAYBE_NOP>(*block,
&block->page.frame[offset + TRX_UNDO_XA_XID],
xid.data, xid_length); xid.data, xid_length);
if (UNIV_LIKELY(xid_length < XIDDATASIZE)) if (UNIV_LIKELY(xid_length < XIDDATASIZE))
mtr->memset(block, offset + TRX_UNDO_XA_XID + xid_length, mtr->memset(block, offset + TRX_UNDO_XA_XID + xid_length,

View File

@@ -8427,12 +8427,14 @@ my_bool translog_is_file(uint file_no)
static uint32 translog_first_file(TRANSLOG_ADDRESS horizon, int is_protected) static uint32 translog_first_file(TRANSLOG_ADDRESS horizon, int is_protected)
{ {
uint min_file= 0, max_file; uint min_file= 1, max_file;
DBUG_ENTER("translog_first_file"); DBUG_ENTER("translog_first_file");
if (!is_protected) if (!is_protected)
mysql_mutex_lock(&log_descriptor.purger_lock); mysql_mutex_lock(&log_descriptor.purger_lock);
if (log_descriptor.min_file_number && if (log_descriptor.min_file_number)
translog_is_file(log_descriptor.min_file_number)) {
min_file= log_descriptor.min_file_number;
if (translog_is_file(log_descriptor.min_file_number))
{ {
DBUG_PRINT("info", ("cached %lu", DBUG_PRINT("info", ("cached %lu",
(ulong) log_descriptor.min_file_number)); (ulong) log_descriptor.min_file_number));
@@ -8440,21 +8442,26 @@ static uint32 translog_first_file(TRANSLOG_ADDRESS horizon, int is_protected)
mysql_mutex_unlock(&log_descriptor.purger_lock); mysql_mutex_unlock(&log_descriptor.purger_lock);
DBUG_RETURN(log_descriptor.min_file_number); DBUG_RETURN(log_descriptor.min_file_number);
} }
}
max_file= LSN_FILE_NO(horizon); max_file= LSN_FILE_NO(horizon);
if (!translog_is_file(max_file))
{
if (!is_protected)
mysql_mutex_unlock(&log_descriptor.purger_lock);
DBUG_RETURN(max_file); /* For compatibility */
}
/* binary search for last file */ /* binary search for last file */
while (min_file != max_file && min_file != (max_file - 1)) while (min_file < max_file)
{ {
uint test= (min_file + max_file) / 2; uint test= (min_file + max_file) / 2;
DBUG_PRINT("info", ("min_file: %u test: %u max_file: %u", DBUG_PRINT("info", ("min_file: %u test: %u max_file: %u",
min_file, test, max_file)); min_file, test, max_file));
if (test == max_file)
test--;
if (translog_is_file(test)) if (translog_is_file(test))
max_file= test; max_file= test;
else else
min_file= test; min_file= test+1;
} }
log_descriptor.min_file_number= max_file; log_descriptor.min_file_number= max_file;
if (!is_protected) if (!is_protected)
@@ -8723,9 +8730,9 @@ my_bool translog_purge(TRANSLOG_ADDRESS low)
/** /**
@brief Purges files by stored min need file in case of @brief Purges files by stored min need file in case of
"ondemend" purge type "one demand" purge type
@note This function do real work only if it is "ondemend" purge type @note This function do real work only if it is "one demand" purge type
and translog_purge() was called at least once and last time without and translog_purge() was called at least once and last time without
errors errors
@@ -8764,13 +8771,14 @@ my_bool translog_purge_at_flush()
min_file= translog_first_file(translog_get_horizon(), 1); min_file= translog_first_file(translog_get_horizon(), 1);
DBUG_ASSERT(min_file != 0); /* log is already started */ DBUG_ASSERT(min_file != 0); /* log is already started */
for(i= min_file; i < log_descriptor.min_need_file && rc == 0; i++) for(i= min_file; i < log_descriptor.min_need_file ; i++)
{ {
char path[FN_REFLEN], *file_name; char path[FN_REFLEN], *file_name;
DBUG_PRINT("info", ("purge file %lu\n", (ulong) i)); DBUG_PRINT("info", ("purge file %lu\n", (ulong) i));
file_name= translog_filename_by_fileno(i, path); file_name= translog_filename_by_fileno(i, path);
rc= MY_TEST(mysql_file_delete(key_file_translog, rc|= MY_TEST(mysql_file_delete(key_file_translog,
file_name, MYF(MY_WME))); file_name, MYF(MY_WME)));
DBUG_ASSERT(rc == 0);
} }
mysql_mutex_unlock(&log_descriptor.purger_lock); mysql_mutex_unlock(&log_descriptor.purger_lock);

View File

@@ -3068,7 +3068,6 @@ pfs_start_table_io_wait_v1(PSI_table_locker_state *state,
PFS_table_share *share= pfs_table->m_share; PFS_table_share *share= pfs_table->m_share;
wait->m_thread_internal_id= pfs_thread->m_thread_internal_id; wait->m_thread_internal_id= pfs_thread->m_thread_internal_id;
if (wait->m_class == NULL || wait->m_class->m_type != PFS_CLASS_TABLE_LOCK)
wait->m_class= &global_table_io_class; wait->m_class= &global_table_io_class;
wait->m_timer_start= timer_start; wait->m_timer_start= timer_start;
wait->m_timer_end= 0; wait->m_timer_end= 0;