diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:00:34 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:00:34 +0000 |
commit | 3f619478f796eddbba6e39502fe941b285dd97b1 (patch) | |
tree | e2c7b5777f728320e5b5542b6213fd3591ba51e2 /mysql-test/main/userstat.test | |
parent | Initial commit. (diff) | |
download | mariadb-upstream.tar.xz mariadb-upstream.zip |
Adding upstream version 1:10.11.6.upstream/1%10.11.6upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'mysql-test/main/userstat.test')
-rw-r--r-- | mysql-test/main/userstat.test | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/mysql-test/main/userstat.test b/mysql-test/main/userstat.test new file mode 100644 index 00000000..a452bd9e --- /dev/null +++ b/mysql-test/main/userstat.test @@ -0,0 +1,135 @@ +# +# Testing of user status (the userstat variable). +# Note that this test requires a fresh restart to not have problems with the +# old status values + +-- source include/have_innodb.inc +-- source include/have_log_bin.inc +-- source include/have_perfschema.inc + +--enable_prepare_warnings +--disable_ps2_protocol +select variable_value from information_schema.global_status where variable_name="handler_read_key" into @global_read_key; +--disable_prepare_warnings +show columns from information_schema.client_statistics; +show columns from information_schema.user_statistics; +show columns from information_schema.index_statistics; +show columns from information_schema.table_statistics; + +# Disable logging to get right number of writes into the tables. +set @save_general_log=@@global.general_log; +set @@global.general_log=0; +set @@global.userstat=1; +flush status; + +create table t1 (a int, primary key (a), b int default 0) engine=innodb; +insert into t1 (a) values (1),(2),(3),(4); +update t1 set b=1; +update t1 set b=5 where a=2; +delete from t1 where a=3; + +/* Empty query */ +select * from t1 where a=999; + +drop table t1; + +# test SSL connections +--connect (ssl_con,localhost,root,,,,,SSL) +SELECT (VARIABLE_VALUE <> '') AS have_ssl FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_cipher'; +--connection default + +# +# Test the commit and rollback are counted +# + +create table t1 (a int, primary key (a), b int default 0) engine=innodb; +begin; +insert into t1 values(1,1); +commit; +begin; +insert into t1 values(2,2); +commit; +begin; +insert into t1 values(3,3); +rollback; +drop table t1; + +select sleep(1); + +show status like "rows%"; +show status like "ha%"; +select variable_value - @global_read_key as "handler_read_key" from information_schema.global_status where variable_name="handler_read_key"; + +--disconnect ssl_con + +# Ensure that the following commands doesn't change statistics + +set @@global.userstat=0; + +# +# Check that we got right statistics +# +select * from information_schema.index_statistics; +select * from information_schema.table_statistics; +show table_statistics; +show index_statistics; +--query_vertical select TOTAL_CONNECTIONS, TOTAL_SSL_CONNECTIONS, CONCURRENT_CONNECTIONS, ROWS_READ, ROWS_SENT, ROWS_DELETED, ROWS_INSERTED, ROWS_UPDATED, SELECT_COMMANDS, UPDATE_COMMANDS, COMMIT_TRANSACTIONS, ROLLBACK_TRANSACTIONS, DENIED_CONNECTIONS, LOST_CONNECTIONS, ACCESS_DENIED, EMPTY_QUERIES from information_schema.client_statistics; +--query_vertical select TOTAL_CONNECTIONS, TOTAL_SSL_CONNECTIONS, CONCURRENT_CONNECTIONS, ROWS_READ, ROWS_SENT, ROWS_DELETED, ROWS_INSERTED, ROWS_UPDATED, SELECT_COMMANDS, UPDATE_COMMANDS, COMMIT_TRANSACTIONS, ROLLBACK_TRANSACTIONS, DENIED_CONNECTIONS, LOST_CONNECTIONS, ACCESS_DENIED, EMPTY_QUERIES from information_schema.user_statistics; +# different values in --ps-protocol +select OTHER_COMMANDS IN (7,8) from information_schema.client_statistics; +select OTHER_COMMANDS IN (7,8) from information_schema.user_statistics; +flush table_statistics; +flush index_statistics; +select * from information_schema.index_statistics; +select * from information_schema.table_statistics; +show status like "%generic%"; + +# +# Test that some variables are not 0 +# + +select connected_time <> 0, busy_time <> 0, bytes_received <> 0, + bytes_sent <> 0, binlog_bytes_written <> 0 + from information_schema.user_statistics; +select connected_time <> 0, busy_time <> 0, bytes_received <> 0, + bytes_sent <> 0, binlog_bytes_written <> 0 + from information_schema.client_statistics; + +# +# Test of in transaction +# + +create table t1 (a int) engine=innodb; +select @@in_transaction; +begin; +select @@in_transaction; +insert into t1 values (1); +select @@in_transaction; +commit; +select @@in_transaction; +set @@autocommit=0; +select @@in_transaction; +insert into t1 values (2); +select @@in_transaction; +set @@autocommit=1; +select @@in_transaction; +drop table t1; + +set @@global.general_log=@save_general_log; + +--echo # +--echo # MDEV-25242 Server crashes in check_grant upon invoking function with userstat enabled +--echo # +create function f() returns int return (select 1 from performance_schema.threads); +set global userstat= 1; +--error ER_SUBQUERY_NO_1_ROW +select f() from information_schema.table_statistics; +--error ER_SUBQUERY_NO_1_ROW +select f() from information_schema.index_statistics; +set global userstat= 0; +drop function f; +--enable_ps2_protocol + +--echo # +--echo # End of 10.2 tests +--echo # |