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
&& log_sys.log.format != 0) {
if (max_cp_field == LOG_CHECKPOINT_1) {
log_sys.log.read(max_cp_field,
switch (max_cp_field) {
case LOG_CHECKPOINT_1:
if (log_sys.log.read(max_cp_field,
{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(
log_sys.checkpoint_buf + LOG_CHECKPOINT_LSN);
msg("mariabackup: The latest check point"
" (for incremental): '" LSN_PF "'",
metadata_to_lsn);
}
} else {
msg("Error: recv_find_max_checkpoint() failed.");
}
@@ -4771,14 +4779,14 @@ reread_log_header:
checkpoint_lsn_start = log_sys.log.get_lsn();
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)
|| checkpoint_lsn_start
!= mach_read_from_8(buf + LOG_CHECKPOINT_LSN)
|| 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;
}
mysql_mutex_unlock(&log_sys.mutex);

View File

@@ -11,6 +11,7 @@
connection default;
let $default_db=`select database()`;
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
#let $status_var= Threads_connected;
@@ -23,6 +24,7 @@ wait-maria_empty_logs.inc
EOF
--source include/mysqladmin_shutdown.inc
--source include/wait_until_no_pidfile.inc
--disable_warnings
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_view_protocol
--delimiter //
CREATE FUNCTION `get_zero`() RETURNS int(11)
@@ -182,6 +183,7 @@ drop table tab_MDEV_30820, tab2;
drop function get_zero;
--enable_ps2_protocol
--enable_view_protocol
--echo #
--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
#
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 (
pk1 int(11) NOT NULL,
pk2 int(11) NOT NULL,
@@ -18,13 +14,13 @@ UNIQUE KEY ux_pk1_fd5 (pk1,fd5)
) ENGINE=InnoDB;
insert into t2
select
round(log(2,t1.a+1)),
t1.a,
t1.a,
round(log(2,seq+1)),
seq,
seq,
REPEAT('filler-data-', 10),
REPEAT('filler-data-', 10)
from
t1;
seq_0_to_1999;
select pk1, count(*) from t2 group by pk1;
pk1 count(*)
0 1
@@ -37,7 +33,8 @@ pk1 count(*)
7 91
8 181
9 362
10 276
10 724
11 552
# 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;
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;
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
drop table t0,t1, t2;
drop table t2;
#
# 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_sequence.inc
SET @save_stats_persistent=@@GLOBAL.innodb_stats_persistent;
SET GLOBAL innodb_stats_persistent=OFF;
@@ -6,11 +7,6 @@ SET GLOBAL innodb_stats_persistent=OFF;
--echo #
--echo # MDEV-6402: Optimizer doesn't choose best execution plan when composite key is used
--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 (
pk1 int(11) NOT NULL,
@@ -24,13 +20,13 @@ CREATE TABLE t2 (
insert into t2
select
round(log(2,t1.a+1)),
t1.a,
t1.a,
round(log(2,seq+1)),
seq,
seq,
REPEAT('filler-data-', 10),
REPEAT('filler-data-', 10)
from
t1;
seq_0_to_1999;
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
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 # 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
1
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;
DROP TABLE t;
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 $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.
let $wait_condition=
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';
let $wait_condition= select count(*) = 1 from performance_schema.threads where `type`='foreground';
--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
connection default;
USE test;
flush status;
#
# Create results table
CREATE TABLE test.status_results
@@ -82,9 +83,9 @@ ROLLBACK;
connection default;
# Get thread ids for each connection.
USE performance_schema;
SELECT thread_id INTO @con1_id FROM threads WHERE processlist_user IN ('user1');
SELECT thread_id INTO @con2_id FROM threads WHERE processlist_user IN ('user2');
SELECT thread_id INTO @con3_id FROM threads WHERE processlist_user IN ('user3');
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') and processlist_id;
SELECT thread_id INTO @con3_id FROM threads WHERE processlist_user IN ('user3') and processlist_id;
#=================
# Global results
#=================
@@ -204,100 +205,99 @@ USE performance_schema;
#
# 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
con_1 Handler_delete 1 OK
con_1 Handler_rollback 1 OK
con_1 Handler_delete 1 OK1
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
con_2 Handler_delete 2 OK
con_2 Handler_rollback 2 OK
con_2 Handler_delete 2 OK2
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
con_3 Handler_delete 3 OK
con_3 Handler_rollback 3 OK
con_3 Handler_delete 3 OK3
con_3 Handler_rollback 3 OK3
#
# 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
ORDER BY variable_name;
variable_name t1 t2 t3 delta thread Expected
Handler_delete 1 2 3 6 6 OK
Handler_rollback 1 2 3 6 6 OK
Handler_delete 1 2 3 6 6 OK4
Handler_rollback 1 2 3 6 6 OK4
#
# ================================================================================
# 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
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
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
user3 Handler_delete 3 OK
user3 Handler_delete 3 OK7
#
# 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
ORDER BY variable_name;
variable_name u1 u2 u3 delta user Expected
Handler_delete 1 2 3 6 6 OK
Handler_rollback 1 2 3 6 6 OK
Handler_delete 1 2 3 6 6 OK8
Handler_rollback 1 2 3 6 6 OK8
#
# ================================================================================
# 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
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
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
user3 localhost Handler_delete 3 OK
user3 localhost Handler_delete 3 OKb
#
# 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
ORDER BY variable_name;
variable_name a1 a2 a3 delta acct Expected
Handler_delete 1 2 3 6 6 OK
Handler_rollback 1 2 3 6 6 OK
Handler_delete 1 2 3 6 6 OKc
Handler_rollback 1 2 3 6 6 OKc
# ================================================================================
# 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
localhost Handler_delete 6 OK
localhost Handler_delete 6 OKd
#
# STATUS_BY_HOST vs. GLOBAL_STATUS
#
# Special case: No way to isolate pre-existing 'localhost' activity, so
# 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
ORDER BY variable_name;
variable_name h1 h2 h3 delta host Expected
Handler_delete 6 0 0 6 6 OK
Handler_rollback 6 0 0 6 6 OK
Handler_delete 6 0 0 6 6 OKe
Handler_rollback 6 0 0 6 6 OKe
#
# ================================================================================
# DISCONNECT ALL USERS AND RUN THE TESTS AGAIN. RESULTS SHOULD NOT CHANGE.
# ================================================================================
connection default;
disconnect con1;
disconnect con2;
disconnect con3;
@@ -429,68 +429,68 @@ USE performance_schema;
# ================================================================================
# 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
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
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
user3 Handler_delete 3 OK
user3 Handler_delete 3 OKh
#
# 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
ORDER BY variable_name;
variable_name u1 u2 u3 delta user Expected
Handler_delete 1 2 3 6 6 OK
Handler_rollback 1 2 3 6 6 OK
Handler_delete 1 2 3 6 6 OKi
Handler_rollback 1 2 3 6 6 OKi
#
# ================================================================================
# 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
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
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
user3 localhost Handler_delete 3 OK
user3 localhost Handler_delete 3 OKl
#
# 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
ORDER BY variable_name;
variable_name a1 a2 a3 delta acct Expected
Handler_delete 1 2 3 6 6 OK
Handler_rollback 1 2 3 6 6 OK
Handler_delete 1 2 3 6 6 OKn
Handler_rollback 1 2 3 6 6 OKn
# ================================================================================
# 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
localhost Handler_delete 6 OK
localhost Handler_delete 6 OKo
#
# STATUS_BY_HOST vs. GLOBAL_STATUS
#
# Special case: No way to isolate pre-existing 'localhost' activity, so
# 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
ORDER BY variable_name;
variable_name h1 h2 h3 delta host Expected
Handler_delete 6 0 0 6 6 OK
Handler_rollback 6 0 0 6 6 OK
Handler_delete 6 0 0 6 6 OKp
Handler_rollback 6 0 0 6 6 OKp
# ================================================================================
# 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
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1
wait/lock/table/sql/handler 29 TABLE test t3
wait/io/table/sql/handler 8 TABLE test t1
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;
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
@@ -260,8 +262,10 @@ wait/io/table/sql/handler 23
wait/lock/table/sql/handler 24
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1
wait/lock/table/sql/handler 29 TABLE test t3
wait/io/table/sql/handler 8 TABLE test t1
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;
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
@@ -324,8 +328,10 @@ wait/io/table/sql/handler 23
wait/lock/table/sql/handler 24
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1
wait/lock/table/sql/handler 29 TABLE test t3
wait/io/table/sql/handler 8 TABLE test t1
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;
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
@@ -423,8 +429,10 @@ wait/io/table/sql/handler 23
wait/lock/table/sql/handler 24
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1
wait/lock/table/sql/handler 29 TABLE test t3
wait/io/table/sql/handler 8 TABLE test t1
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;
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
@@ -492,8 +500,10 @@ wait/io/table/sql/handler 23
wait/lock/table/sql/handler 24
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1
wait/lock/table/sql/handler 29 TABLE test t3
wait/io/table/sql/handler 8 TABLE test t1
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;
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
@@ -603,8 +613,10 @@ wait/io/table/sql/handler 71
wait/lock/table/sql/handler 48
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 41 TABLE test t1
wait/lock/table/sql/handler 78 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
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;
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
@@ -677,8 +689,10 @@ wait/io/table/sql/handler 71
wait/lock/table/sql/handler 48
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 41 TABLE test t1
wait/lock/table/sql/handler 78 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
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;
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
@@ -800,8 +814,10 @@ wait/io/table/sql/handler 71
wait/lock/table/sql/handler 48
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 41 TABLE test t1
wait/lock/table/sql/handler 78 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
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;
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
@@ -875,8 +891,10 @@ wait/io/table/sql/handler 71
wait/lock/table/sql/handler 56
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
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;
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
@@ -947,8 +965,10 @@ wait/io/table/sql/handler 71
wait/lock/table/sql/handler 56
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
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;
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
@@ -1019,8 +1039,10 @@ wait/io/table/sql/handler 71
wait/lock/table/sql/handler 56
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
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;
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
@@ -1088,8 +1110,10 @@ wait/io/table/sql/handler 71
wait/lock/table/sql/handler 56
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
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;
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
@@ -1156,8 +1180,10 @@ wait/io/table/sql/handler 71
wait/lock/table/sql/handler 56
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
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;
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
@@ -1223,8 +1249,10 @@ wait/io/table/sql/handler 71
wait/lock/table/sql/handler 56
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
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;
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
@@ -1289,8 +1317,10 @@ wait/io/table/sql/handler 71
wait/lock/table/sql/handler 56
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
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;
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
@@ -1357,8 +1387,10 @@ wait/io/table/sql/handler 71
wait/lock/table/sql/handler 56
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
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;
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
@@ -1424,8 +1456,10 @@ wait/io/table/sql/handler 71
wait/lock/table/sql/handler 56
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
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;
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
@@ -1491,8 +1525,10 @@ wait/io/table/sql/handler 71
wait/lock/table/sql/handler 56
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
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;
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
@@ -1558,8 +1594,10 @@ wait/io/table/sql/handler 71
wait/lock/table/sql/handler 56
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
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;
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
@@ -1625,8 +1663,10 @@ wait/io/table/sql/handler 0
wait/lock/table/sql/handler 0
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1
wait/lock/table/sql/handler 82 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
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;
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

View File

@@ -211,9 +211,12 @@ wait/io/table/sql/handler 33
wait/lock/table/sql/handler 36
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1
wait/lock/table/sql/handler 22 TABLE test t2
wait/lock/table/sql/handler 29 TABLE test t3
wait/io/table/sql/handler 8 TABLE test t1
wait/lock/table/sql/handler 10 TABLE test t1
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;
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
@@ -276,9 +279,12 @@ wait/io/table/sql/handler 33
wait/lock/table/sql/handler 36
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1
wait/lock/table/sql/handler 22 TABLE test t2
wait/lock/table/sql/handler 29 TABLE test t3
wait/io/table/sql/handler 8 TABLE test t1
wait/lock/table/sql/handler 10 TABLE test t1
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;
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
@@ -347,9 +353,12 @@ wait/io/table/sql/handler 33
wait/lock/table/sql/handler 36
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1
wait/lock/table/sql/handler 22 TABLE test t2
wait/lock/table/sql/handler 29 TABLE test t3
wait/io/table/sql/handler 8 TABLE test t1
wait/lock/table/sql/handler 10 TABLE test t1
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;
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
@@ -453,9 +462,12 @@ wait/io/table/sql/handler 33
wait/lock/table/sql/handler 36
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1
wait/lock/table/sql/handler 22 TABLE test t2
wait/lock/table/sql/handler 29 TABLE test t3
wait/io/table/sql/handler 8 TABLE test t1
wait/lock/table/sql/handler 10 TABLE test t1
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;
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
@@ -529,9 +541,12 @@ wait/io/table/sql/handler 33
wait/lock/table/sql/handler 36
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1
wait/lock/table/sql/handler 22 TABLE test t2
wait/lock/table/sql/handler 29 TABLE test t3
wait/io/table/sql/handler 8 TABLE test t1
wait/lock/table/sql/handler 10 TABLE test t1
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;
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
@@ -647,9 +662,12 @@ wait/io/table/sql/handler 103
wait/lock/table/sql/handler 72
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 41 TABLE test t1
wait/lock/table/sql/handler 56 TABLE test t2
wait/lock/table/sql/handler 78 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 20 TABLE test t1
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;
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
@@ -728,9 +746,12 @@ wait/io/table/sql/handler 103
wait/lock/table/sql/handler 72
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 41 TABLE test t1
wait/lock/table/sql/handler 56 TABLE test t2
wait/lock/table/sql/handler 78 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 20 TABLE test t1
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;
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
@@ -858,9 +879,12 @@ wait/io/table/sql/handler 103
wait/lock/table/sql/handler 72
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 41 TABLE test t1
wait/lock/table/sql/handler 56 TABLE test t2
wait/lock/table/sql/handler 78 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 20 TABLE test t1
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;
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
@@ -940,9 +964,12 @@ wait/io/table/sql/handler 103
wait/lock/table/sql/handler 84
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1
wait/lock/table/sql/handler 60 TABLE test t2
wait/lock/table/sql/handler 82 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 24 TABLE test t1
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;
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
@@ -1019,9 +1046,12 @@ wait/io/table/sql/handler 103
wait/lock/table/sql/handler 84
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1
wait/lock/table/sql/handler 60 TABLE test t2
wait/lock/table/sql/handler 82 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 24 TABLE test t1
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;
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
@@ -1098,9 +1128,12 @@ wait/io/table/sql/handler 103
wait/lock/table/sql/handler 84
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1
wait/lock/table/sql/handler 60 TABLE test t2
wait/lock/table/sql/handler 82 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 24 TABLE test t1
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;
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
@@ -1174,9 +1207,12 @@ wait/io/table/sql/handler 103
wait/lock/table/sql/handler 84
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1
wait/lock/table/sql/handler 60 TABLE test t2
wait/lock/table/sql/handler 82 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 24 TABLE test t1
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;
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
@@ -1249,9 +1285,12 @@ wait/io/table/sql/handler 103
wait/lock/table/sql/handler 84
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1
wait/lock/table/sql/handler 60 TABLE test t2
wait/lock/table/sql/handler 82 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 24 TABLE test t1
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;
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
@@ -1323,9 +1362,12 @@ wait/io/table/sql/handler 103
wait/lock/table/sql/handler 84
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1
wait/lock/table/sql/handler 60 TABLE test t2
wait/lock/table/sql/handler 82 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 24 TABLE test t1
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;
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
@@ -1396,9 +1438,12 @@ wait/io/table/sql/handler 103
wait/lock/table/sql/handler 84
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1
wait/lock/table/sql/handler 60 TABLE test t2
wait/lock/table/sql/handler 82 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 24 TABLE test t1
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;
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
@@ -1471,9 +1516,12 @@ wait/io/table/sql/handler 103
wait/lock/table/sql/handler 84
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1
wait/lock/table/sql/handler 60 TABLE test t2
wait/lock/table/sql/handler 82 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 24 TABLE test t1
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;
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
@@ -1545,9 +1593,12 @@ wait/io/table/sql/handler 103
wait/lock/table/sql/handler 84
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1
wait/lock/table/sql/handler 60 TABLE test t2
wait/lock/table/sql/handler 82 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 24 TABLE test t1
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;
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
@@ -1619,9 +1670,12 @@ wait/io/table/sql/handler 103
wait/lock/table/sql/handler 84
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1
wait/lock/table/sql/handler 60 TABLE test t2
wait/lock/table/sql/handler 82 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 24 TABLE test t1
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;
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
@@ -1693,9 +1747,12 @@ wait/io/table/sql/handler 103
wait/lock/table/sql/handler 84
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1
wait/lock/table/sql/handler 60 TABLE test t2
wait/lock/table/sql/handler 82 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 24 TABLE test t1
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;
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
@@ -1767,9 +1824,12 @@ wait/io/table/sql/handler 0
wait/lock/table/sql/handler 0
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 45 TABLE test t1
wait/lock/table/sql/handler 60 TABLE test t2
wait/lock/table/sql/handler 82 TABLE test t3
wait/io/table/sql/handler 21 TABLE test t1
wait/lock/table/sql/handler 24 TABLE test t1
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;
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

View File

@@ -202,8 +202,10 @@ wait/io/table/sql/handler 23
wait/lock/table/sql/handler 24
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1
wait/lock/table/sql/handler 29 TABLE test t3
wait/io/table/sql/handler 8 TABLE test t1
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;
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
@@ -260,8 +262,10 @@ wait/io/table/sql/handler 23
wait/lock/table/sql/handler 24
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1
wait/lock/table/sql/handler 29 TABLE test t3
wait/io/table/sql/handler 8 TABLE test t1
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;
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
@@ -324,8 +328,10 @@ wait/io/table/sql/handler 23
wait/lock/table/sql/handler 24
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1
wait/lock/table/sql/handler 29 TABLE test t3
wait/io/table/sql/handler 8 TABLE test t1
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;
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
@@ -423,8 +429,10 @@ wait/io/table/sql/handler 58
wait/lock/table/sql/handler 48
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 38 TABLE test t1
wait/lock/table/sql/handler 68 TABLE test t3
wait/io/table/sql/handler 18 TABLE test t1
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;
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
@@ -492,8 +500,10 @@ wait/io/table/sql/handler 58
wait/lock/table/sql/handler 48
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 38 TABLE test t1
wait/lock/table/sql/handler 68 TABLE test t3
wait/io/table/sql/handler 18 TABLE test t1
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;
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
@@ -603,8 +613,10 @@ wait/io/table/sql/handler 106
wait/lock/table/sql/handler 72
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 61 TABLE test t1
wait/lock/table/sql/handler 117 TABLE test t3
wait/io/table/sql/handler 31 TABLE test t1
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;
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
@@ -677,8 +689,10 @@ wait/io/table/sql/handler 106
wait/lock/table/sql/handler 72
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 61 TABLE test t1
wait/lock/table/sql/handler 117 TABLE test t3
wait/io/table/sql/handler 31 TABLE test t1
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;
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
@@ -800,8 +814,10 @@ wait/io/table/sql/handler 167
wait/lock/table/sql/handler 96
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 87 TABLE test t1
wait/lock/table/sql/handler 176 TABLE test t3
wait/io/table/sql/handler 47 TABLE test t1
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;
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
@@ -875,8 +891,10 @@ wait/io/table/sql/handler 167
wait/lock/table/sql/handler 104
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3
wait/io/table/sql/handler 47 TABLE test t1
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;
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
@@ -947,8 +965,10 @@ wait/io/table/sql/handler 167
wait/lock/table/sql/handler 104
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3
wait/io/table/sql/handler 47 TABLE test t1
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;
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
@@ -1019,8 +1039,10 @@ wait/io/table/sql/handler 167
wait/lock/table/sql/handler 104
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3
wait/io/table/sql/handler 47 TABLE test t1
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;
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
@@ -1088,8 +1110,10 @@ wait/io/table/sql/handler 167
wait/lock/table/sql/handler 104
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3
wait/io/table/sql/handler 47 TABLE test t1
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;
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
@@ -1156,8 +1180,10 @@ wait/io/table/sql/handler 167
wait/lock/table/sql/handler 104
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3
wait/io/table/sql/handler 47 TABLE test t1
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;
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
@@ -1223,8 +1249,10 @@ wait/io/table/sql/handler 167
wait/lock/table/sql/handler 104
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3
wait/io/table/sql/handler 47 TABLE test t1
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;
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
@@ -1289,8 +1317,10 @@ wait/io/table/sql/handler 167
wait/lock/table/sql/handler 104
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3
wait/io/table/sql/handler 47 TABLE test t1
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;
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
@@ -1357,8 +1387,10 @@ wait/io/table/sql/handler 167
wait/lock/table/sql/handler 104
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3
wait/io/table/sql/handler 47 TABLE test t1
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;
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
@@ -1424,8 +1456,10 @@ wait/io/table/sql/handler 167
wait/lock/table/sql/handler 104
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3
wait/io/table/sql/handler 47 TABLE test t1
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;
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
@@ -1491,8 +1525,10 @@ wait/io/table/sql/handler 167
wait/lock/table/sql/handler 104
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3
wait/io/table/sql/handler 47 TABLE test t1
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;
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
@@ -1558,8 +1594,10 @@ wait/io/table/sql/handler 167
wait/lock/table/sql/handler 104
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3
wait/io/table/sql/handler 47 TABLE test t1
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;
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
@@ -1625,8 +1663,10 @@ wait/io/table/sql/handler 0
wait/lock/table/sql/handler 0
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1
wait/lock/table/sql/handler 180 TABLE test t3
wait/io/table/sql/handler 47 TABLE test t1
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;
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

View File

@@ -211,9 +211,12 @@ wait/io/table/sql/handler 33
wait/lock/table/sql/handler 36
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1
wait/lock/table/sql/handler 22 TABLE test t2
wait/lock/table/sql/handler 29 TABLE test t3
wait/io/table/sql/handler 8 TABLE test t1
wait/lock/table/sql/handler 10 TABLE test t1
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;
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
@@ -276,9 +279,12 @@ wait/io/table/sql/handler 33
wait/lock/table/sql/handler 36
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1
wait/lock/table/sql/handler 22 TABLE test t2
wait/lock/table/sql/handler 29 TABLE test t3
wait/io/table/sql/handler 8 TABLE test t1
wait/lock/table/sql/handler 10 TABLE test t1
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;
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
@@ -347,9 +353,12 @@ wait/io/table/sql/handler 33
wait/lock/table/sql/handler 36
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 18 TABLE test t1
wait/lock/table/sql/handler 22 TABLE test t2
wait/lock/table/sql/handler 29 TABLE test t3
wait/io/table/sql/handler 8 TABLE test t1
wait/lock/table/sql/handler 10 TABLE test t1
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;
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
@@ -453,9 +462,12 @@ wait/io/table/sql/handler 84
wait/lock/table/sql/handler 72
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 38 TABLE test t1
wait/lock/table/sql/handler 50 TABLE test t2
wait/lock/table/sql/handler 68 TABLE test t3
wait/io/table/sql/handler 18 TABLE test t1
wait/lock/table/sql/handler 20 TABLE test t1
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;
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
@@ -529,9 +541,12 @@ wait/io/table/sql/handler 84
wait/lock/table/sql/handler 72
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 38 TABLE test t1
wait/lock/table/sql/handler 50 TABLE test t2
wait/lock/table/sql/handler 68 TABLE test t3
wait/io/table/sql/handler 18 TABLE test t1
wait/lock/table/sql/handler 20 TABLE test t1
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;
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
@@ -647,9 +662,12 @@ wait/io/table/sql/handler 154
wait/lock/table/sql/handler 108
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 61 TABLE test t1
wait/lock/table/sql/handler 84 TABLE test t2
wait/lock/table/sql/handler 117 TABLE test t3
wait/io/table/sql/handler 31 TABLE test t1
wait/lock/table/sql/handler 30 TABLE test t1
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;
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
@@ -728,9 +746,12 @@ wait/io/table/sql/handler 154
wait/lock/table/sql/handler 108
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 61 TABLE test t1
wait/lock/table/sql/handler 84 TABLE test t2
wait/lock/table/sql/handler 117 TABLE test t3
wait/io/table/sql/handler 31 TABLE test t1
wait/lock/table/sql/handler 30 TABLE test t1
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;
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
@@ -858,9 +879,12 @@ wait/io/table/sql/handler 243
wait/lock/table/sql/handler 144
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 87 TABLE test t1
wait/lock/table/sql/handler 124 TABLE test t2
wait/lock/table/sql/handler 176 TABLE test t3
wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 40 TABLE test t1
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;
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
@@ -940,9 +964,12 @@ wait/io/table/sql/handler 243
wait/lock/table/sql/handler 156
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1
wait/lock/table/sql/handler 128 TABLE test t2
wait/lock/table/sql/handler 180 TABLE test t3
wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 44 TABLE test t1
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;
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
@@ -1019,9 +1046,12 @@ wait/io/table/sql/handler 243
wait/lock/table/sql/handler 156
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1
wait/lock/table/sql/handler 128 TABLE test t2
wait/lock/table/sql/handler 180 TABLE test t3
wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 44 TABLE test t1
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;
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
@@ -1098,9 +1128,12 @@ wait/io/table/sql/handler 243
wait/lock/table/sql/handler 156
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1
wait/lock/table/sql/handler 128 TABLE test t2
wait/lock/table/sql/handler 180 TABLE test t3
wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 44 TABLE test t1
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;
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
@@ -1174,9 +1207,12 @@ wait/io/table/sql/handler 243
wait/lock/table/sql/handler 156
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1
wait/lock/table/sql/handler 128 TABLE test t2
wait/lock/table/sql/handler 180 TABLE test t3
wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 44 TABLE test t1
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;
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
@@ -1249,9 +1285,12 @@ wait/io/table/sql/handler 243
wait/lock/table/sql/handler 156
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1
wait/lock/table/sql/handler 128 TABLE test t2
wait/lock/table/sql/handler 180 TABLE test t3
wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 44 TABLE test t1
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;
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
@@ -1323,9 +1362,12 @@ wait/io/table/sql/handler 243
wait/lock/table/sql/handler 156
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1
wait/lock/table/sql/handler 128 TABLE test t2
wait/lock/table/sql/handler 180 TABLE test t3
wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 44 TABLE test t1
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;
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
@@ -1396,9 +1438,12 @@ wait/io/table/sql/handler 243
wait/lock/table/sql/handler 156
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1
wait/lock/table/sql/handler 128 TABLE test t2
wait/lock/table/sql/handler 180 TABLE test t3
wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 44 TABLE test t1
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;
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
@@ -1471,9 +1516,12 @@ wait/io/table/sql/handler 243
wait/lock/table/sql/handler 156
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1
wait/lock/table/sql/handler 128 TABLE test t2
wait/lock/table/sql/handler 180 TABLE test t3
wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 44 TABLE test t1
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;
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
@@ -1545,9 +1593,12 @@ wait/io/table/sql/handler 243
wait/lock/table/sql/handler 156
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1
wait/lock/table/sql/handler 128 TABLE test t2
wait/lock/table/sql/handler 180 TABLE test t3
wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 44 TABLE test t1
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;
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
@@ -1619,9 +1670,12 @@ wait/io/table/sql/handler 243
wait/lock/table/sql/handler 156
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1
wait/lock/table/sql/handler 128 TABLE test t2
wait/lock/table/sql/handler 180 TABLE test t3
wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 44 TABLE test t1
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;
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
@@ -1693,9 +1747,12 @@ wait/io/table/sql/handler 243
wait/lock/table/sql/handler 156
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1
wait/lock/table/sql/handler 128 TABLE test t2
wait/lock/table/sql/handler 180 TABLE test t3
wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 44 TABLE test t1
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;
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
@@ -1767,9 +1824,12 @@ wait/io/table/sql/handler 0
wait/lock/table/sql/handler 0
execute dump_waits_history;
event_name count(event_name) object_type object_schema object_name
wait/lock/table/sql/handler 91 TABLE test t1
wait/lock/table/sql/handler 128 TABLE test t2
wait/lock/table/sql/handler 180 TABLE test t3
wait/io/table/sql/handler 47 TABLE test t1
wait/lock/table/sql/handler 44 TABLE test t1
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;
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

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/no_protocol.inc
--source include/maybe_pool_of_threads.inc
--enable_connect_log
--source include/wait_for_pfs_thread_count.inc
--echo #
--echo # ================================================================================
@@ -26,10 +25,7 @@ SET @@session.sql_log_bin=OFF;
connection default;
USE test;
# Clear user, host and account status accumulated from preliminary checks by mtr.
--disable_query_log
flush status;
--enable_query_log
--echo #
--echo # Create results table
@@ -112,9 +108,9 @@ ROLLBACK;
connection default;
--echo # Get thread ids for each connection.
USE performance_schema;
SELECT thread_id INTO @con1_id FROM threads WHERE processlist_user IN ('user1');
SELECT thread_id INTO @con2_id FROM threads WHERE processlist_user IN ('user2');
SELECT thread_id INTO @con3_id FROM threads WHERE processlist_user IN ('user3');
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') and processlist_id;
SELECT thread_id INTO @con3_id FROM threads WHERE processlist_user IN ('user3') and processlist_id;
--source ../include/show_aggregate.inc
@@ -135,18 +131,18 @@ USE performance_schema;
--echo # Verify expected counts for 'handler_delete' per thread
--echo #
--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 #
--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 #
--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 # STATUS_BY_THREAD vs. GLOBAL_STATUS
--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
ORDER BY variable_name;
@@ -154,16 +150,16 @@ ORDER BY variable_name;
--echo # ================================================================================
--echo # TEST 2: STATUS_BY_USER: Verify expected status counts per user (1,2,3)
--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 #
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 #
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 # STATUS_BY_USER vs. GLOBAL_STATUS
--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
ORDER BY variable_name;
@@ -171,23 +167,23 @@ ORDER BY variable_name;
--echo # ================================================================================
--echo # TEST 3: STATUS_BY_ACCOUNT: Verify expected status counts per user, host (1,2,3)
--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 #
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 #
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 # STATUS_BY_ACCOUNT vs. GLOBAL_STATUS
--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
ORDER BY variable_name;
--echo # ================================================================================
--echo # TEST 4: STATUS_BY_HOST: Verify expected status counts per host (6)
--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 # 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 # just check global totals = sum(status_by_host).
--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
ORDER BY variable_name;
@@ -203,10 +199,10 @@ ORDER BY variable_name;
--echo # ================================================================================
--echo # DISCONNECT ALL USERS AND RUN THE TESTS AGAIN. RESULTS SHOULD NOT CHANGE.
--echo # ================================================================================
connection default;
disconnect con1;
disconnect con2;
disconnect con3;
--echo #
USE test;
--echo #
@@ -218,6 +214,9 @@ UPDATE test.status_results
h1=0, h2=0, h3=0, host=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
#SELECT * FROM test.status_results;
--echo #
@@ -232,16 +231,16 @@ USE performance_schema;
--echo # ================================================================================
--echo # TEST 5: STATUS_BY_USER: Verify expected status counts per user (1,2,3)
--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 #
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 #
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 # STATUS_BY_USER vs. GLOBAL_STATUS
--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
ORDER BY variable_name;
@@ -249,23 +248,23 @@ ORDER BY variable_name;
--echo # ================================================================================
--echo # TEST 6: STATUS_BY_ACCOUNT: Verify expected status counts per user:host (1,2,3)
--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 #
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 #
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 # STATUS_BY_ACCOUNT vs. GLOBAL_STATUS
--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
ORDER BY variable_name;
--echo # ================================================================================
--echo # TEST 7: STATUS_BY_HOST: Verify expected status counts per host (6)
--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 # 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 # just check global totals = sum(status_by_host).
--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
ORDER BY variable_name;
--echo # ================================================================================
--echo # TEST 8: FLUSH STATUS should clear account, host and user status
--echo # ================================================================================
@@ -290,7 +288,6 @@ SELECT * FROM status_by_host WHERE host IN ('localhost') AND variable_name IN ('
--echo #
SELECT * FROM status_by_user WHERE user IN ('user1', 'user2', 'user3') AND variable_name IN ('handler_delete');
--echo # ================================================================================
--echo # CLEANUP
--echo # ================================================================================

View File

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

View File

@@ -4689,6 +4689,30 @@ bool Field_longlong::is_max()
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 error;
@@ -4837,6 +4861,40 @@ Binlog_type_info Field_float::binlog_type_info() const
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 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));
}
@@ -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);
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,
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, zero_arg, unsigned_arg)
{
if (dec_arg >= FLOATING_POINT_DECIMALS)
dec_arg= NOT_FIXED_DEC;
}
decimal_digits_t dec_arg,bool zero_arg,bool unsigned_arg);
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, 0, 0)
{
if (dec_arg >= FLOATING_POINT_DECIMALS)
dec_arg= NOT_FIXED_DEC;
}
const LEX_CSTRING *field_name_arg, decimal_digits_t dec_arg);
const Type_handler *type_handler() const override
{ return &type_handler_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,
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, zero_arg, unsigned_arg)
{
if (dec_arg >= FLOATING_POINT_DECIMALS)
dec_arg= NOT_FIXED_DEC;
}
decimal_digits_t dec_arg,bool zero_arg,bool unsigned_arg);
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, 0, 0)
{
if (dec_arg >= FLOATING_POINT_DECIMALS)
dec_arg= NOT_FIXED_DEC;
}
const LEX_CSTRING *field_name_arg, decimal_digits_t dec_arg);
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, 0, 0)
{
not_fixed= not_fixed_arg;
if (dec_arg >= FLOATING_POINT_DECIMALS)
dec_arg= NOT_FIXED_DEC;
}
decimal_digits_t dec_arg, bool not_fixed_arg);
void init_for_tmp_table(Field *org_field, TABLE *new_table) override
{
Field::init_for_tmp_table(org_field, new_table);

View File

@@ -364,7 +364,7 @@ void buf_dblwr_t::recover()
{
byte *page= *i;
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;
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;
}
__attribute__((warn_unused_result, nonnull))
/** Open a tablespace file.
@param node data file
@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_AIO, type,
srv_read_only_mode, &success);
if (node->is_open())
if (success && node->is_open())
{
ut_ad(success);
#ifndef _WIN32
if (!node->space->id && !srv_read_only_mode && my_disable_locking &&
os_file_lock(node->handle, node->name))

View File

@@ -450,7 +450,8 @@ Datafile::validate_for_recovery()
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;
}
@@ -759,60 +760,6 @@ Datafile::find_space_id()
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.
@param link_filepath filepath of the ISL file
@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
&& (retry == 1
|| it->restore_from_doublewrite())) {
|| recv_sys.dblwr.restore_first_page(
it->m_space_id, it->m_filepath,
it->handle()))) {
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(
std::memory_order_acquire)
+ SIZE_OF_FILE_CHECKPOINT
+ log_sys.framing_size()
< (lsn= log_sys.get_lsn(std::memory_order_acquire))) {
log_make_checkpoint();
log_sys.log.flush();
@@ -20060,30 +20061,6 @@ static TABLE* innodb_find_table_for_vc(THD* thd, dict_table_t* 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.
@param[in,out] table the table whose virtual column template
dbname and tbname to be renamed. */

View File

@@ -398,11 +398,6 @@ private:
else DB_ERROR. */
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 */
char* m_filename;

View File

@@ -497,12 +497,16 @@ public:
void write_header_durable(lsn_t lsn);
/** opens log file which must be closed prior this call */
dberr_t rename(std::string path) { return fd.rename(path); }
MY_ATTRIBUTE((warn_unused_result))
/** reads buffer from log file
@param[in] offset offset in log file
@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() */
bool writes_are_durable() const noexcept;
bool writes_are_durable() const noexcept
{ return fd.writes_are_durable(); }
/** writes buffer to log file
@param[in] offset offset in log file
@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 *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;
/** Recovered doublewrite buffer page frames */
@@ -298,7 +307,8 @@ public:
/** Last added LSN to pages. */
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();
void close_files() { files.clear(); files.shrink_to_fit(); }

View File

@@ -814,11 +814,6 @@ innobase_get_computed_value(
const upd_t* update=NULL,
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.
@param[in,out] table the table whose virtual column template
dbname and tbname to be renamed. */

View File

@@ -276,6 +276,7 @@ dberr_t file_os_io::close() noexcept
return DB_SUCCESS;
}
__attribute__((warn_unused_result))
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(),
@@ -379,6 +380,7 @@ public:
: DB_ERROR;
}
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
{
memcpy(buf.data(), m_file.data() + offset, buf.size());
@@ -445,6 +447,8 @@ dberr_t log_file_t::close() noexcept
return DB_SUCCESS;
}
__attribute__((warn_unused_result))
dberr_t log_file_t::read(os_offset_t offset, span<byte> buf) noexcept
{
ut_ad(is_opened());
@@ -507,17 +511,6 @@ void log_t::file::write_header_durable(lsn_t lsn)
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)
{
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();
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;
dberr_t err= recv_sys.files[file_idx].read(offset, buf);
ut_a(err == DB_SUCCESS);
return recv_sys.files[file_idx].read(offset, buf);
}
inline size_t recv_sys_t::files_size()
@@ -1566,7 +1566,8 @@ loop:
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,
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;
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)) !=
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."
" 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) &&
!log_crypt_101_read_block(buf, lsn))
@@ -1873,8 +1876,10 @@ static dberr_t recv_log_recover_10_4()
return DB_CORRUPTION;
}
if (dberr_t err=
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 cksum = log_block_get_checksum(buf);
@@ -1932,7 +1937,8 @@ recv_find_max_checkpoint(ulint* max_field)
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
checksum in the first redo log format (version 0). */
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;
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 cksum = log_block_get_checksum(buf);
@@ -4415,7 +4422,10 @@ recv_recovery_from_checkpoint_start(lsn_t flush_lsn)
}
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_no = mach_read_from_8(buf + LOG_CHECKPOINT_NO);
@@ -4512,7 +4522,8 @@ completed:
} else if (checkpoint_lsn != flush_lsn) {
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()
<< "Are you sure you are using the right "
<< 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() ||
page_get_space_id(page) != page_id.space())
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);
if (lsn <= max_lsn ||
!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);
continue;
}
ut_a(page_get_page_no(page) == page_id.page_no());
max_lsn= lsn;
result= page;
}
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] i undo tablespace count
@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)
{
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,
srv_page_size));
dberr_t err= os_file_read(IORequestRead, fh, page, 0, srv_page_size,
nullptr);
if (err != DB_SUCCESS)
if (os_file_read(IORequestRead, fh, page, 0, srv_page_size, nullptr) !=
DB_SUCCESS)
{
err_exit:
ib::error() << "Unable to read first page of file " << name;
aligned_free(page);
return err;
return ULINT_UNDEFINED;
}
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))
{
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;
}
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);
}
@@ -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];
snprintf(name, sizeof name, "%s/undo%03zu", srv_undo_dir, i + 1);
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)
break;
ib::error() << "Unable to open create tablespace '" << name << "'.";
goto unused_undo;
sql_print_error("InnoDB: Unable to open create tablespace '%s'", name);
return DB_ERROR;
}
default:
/* Should be no gaps in undo tablespace ids. */
ut_a(!i || prev_id + 1 == 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
not in use and therefore not required by recovery. We only check
that there are no gaps. */
unused_undo:
for (ulint i= prev_id + 1; i < srv_undo_space_id_start + TRX_SYS_N_RSEGS;
++i)
{
char name[OS_FILE_MAX_PATH];
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;
++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));
const ulint xid_length= static_cast<ulint>(xid.gtrid_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);
if (UNIV_LIKELY(xid_length < XIDDATASIZE))
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)
{
uint min_file= 0, max_file;
uint min_file= 1, max_file;
DBUG_ENTER("translog_first_file");
if (!is_protected)
mysql_mutex_lock(&log_descriptor.purger_lock);
if (log_descriptor.min_file_number &&
translog_is_file(log_descriptor.min_file_number))
if (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",
(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);
DBUG_RETURN(log_descriptor.min_file_number);
}
}
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 */
while (min_file != max_file && min_file != (max_file - 1))
while (min_file < max_file)
{
uint test= (min_file + max_file) / 2;
DBUG_PRINT("info", ("min_file: %u test: %u max_file: %u",
min_file, test, max_file));
if (test == max_file)
test--;
if (translog_is_file(test))
max_file= test;
else
min_file= test;
min_file= test+1;
}
log_descriptor.min_file_number= max_file;
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
"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
errors
@@ -8764,13 +8771,14 @@ my_bool translog_purge_at_flush()
min_file= translog_first_file(translog_get_horizon(), 1);
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;
DBUG_PRINT("info", ("purge file %lu\n", (ulong) i));
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)));
DBUG_ASSERT(rc == 0);
}
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;
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_timer_start= timer_start;
wait->m_timer_end= 0;