mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge branch '10.0' into bb-10.1-merge
Conflicts: .bzrignore VERSION cmake/plugin.cmake debian/dist/Debian/control debian/dist/Ubuntu/control mysql-test/r/join_outer.result mysql-test/r/join_outer_jcl6.result mysql-test/r/null.result mysql-test/r/old-mode.result mysql-test/r/union.result mysql-test/t/join_outer.test mysql-test/t/null.test mysql-test/t/old-mode.test mysql-test/t/union.test packaging/rpm-oel/mysql.spec.in scripts/mysql_config.sh sql/ha_ndbcluster.cc sql/ha_ndbcluster_binlog.cc sql/ha_ndbcluster_cond.cc sql/item_cmpfunc.h sql/lock.cc sql/sql_select.cc sql/sql_show.cc sql/sql_update.cc sql/sql_yacc.yy storage/innobase/buf/buf0flu.cc storage/innobase/fil/fil0fil.cc storage/innobase/include/srv0srv.h storage/innobase/lock/lock0lock.cc storage/tokudb/CMakeLists.txt storage/xtradb/buf/buf0flu.cc storage/xtradb/fil/fil0fil.cc storage/xtradb/include/srv0srv.h storage/xtradb/lock/lock0lock.cc support-files/mysql.spec.sh
This commit is contained in:
@ -9,4 +9,4 @@
|
||||
# Do not use any TAB characters for whitespace.
|
||||
#
|
||||
##############################################################################
|
||||
innodb_bug14676111: MDEV-4396
|
||||
|
||||
|
16
mysql-test/suite/innodb/r/foreign-keys.result
Normal file
16
mysql-test/suite/innodb/r/foreign-keys.result
Normal file
@ -0,0 +1,16 @@
|
||||
#
|
||||
# Bug #19471516 SERVER CRASHES WHEN EXECUTING ALTER TABLE
|
||||
# ADD FOREIGN KEY
|
||||
#
|
||||
CREATE TABLE `department` (`department_id` INT, `department_people_fk` INT,
|
||||
PRIMARY KEY (`department_id`)) engine=innodb;
|
||||
CREATE TABLE `title` (`title_id` INT, `title_manager_fk` INT,
|
||||
`title_reporter_fk` INT, PRIMARY KEY (`title_id`)) engine=innodb;
|
||||
CREATE TABLE `people` (`people_id` INT, PRIMARY KEY (`people_id`)) engine=innodb;
|
||||
ALTER TABLE `department` ADD FOREIGN KEY (`department_people_fk`) REFERENCES
|
||||
`people` (`people_id`);
|
||||
ALTER TABLE `title` ADD FOREIGN KEY (`title_manager_fk`) REFERENCES `people`
|
||||
(`people_id`);
|
||||
ALTER TABLE `title` ADD FOREIGN KEY (`title_reporter_fk`) REFERENCES `people`
|
||||
(`people_id`);
|
||||
drop table title, department, people;
|
22
mysql-test/suite/innodb/r/innodb-mdev7046.result
Normal file
22
mysql-test/suite/innodb/r/innodb-mdev7046.result
Normal file
@ -0,0 +1,22 @@
|
||||
call mtr.add_suppression("InnoDB: File ./test/t1*");
|
||||
call mtr.add_suppression("nnoDB: Error number*");
|
||||
USE test;
|
||||
create table t1(f1 INT,f2 INT,f3 CHAR (10),primary key(f1,f2)) partition by range(f1) subpartition by hash(f2) subpartitions 2 (partition p1 values less than (0),partition p2 values less than (2),partition p3 values less than (2147483647));
|
||||
RENAME TABLE t1 TO `t2_new..............................................end`;
|
||||
ERROR HY000: Error on rename of 't2_new' (Errcode: 36 "File name too long")
|
||||
alter table t1 engine=innodb;
|
||||
RENAME TABLE t1 TO `t2_new..............................................end`;
|
||||
ERROR HY000: Error on rename of 't2_new' (errno: -1 "Internal error < 0 (Not system error)")
|
||||
show warnings;
|
||||
Level Code Message
|
||||
Error 1025 Error on rename of 't2_new' (errno: -1 "Internal error < 0 (Not system error)")
|
||||
drop table t1;
|
||||
DROP DATABASE test;
|
||||
CREATE DATABASE test;
|
||||
USE test;
|
||||
SET @@session.storage_engine=MYISAM;
|
||||
CREATE TABLE t1(id INT,purchased DATE)PARTITION BY RANGE(YEAR(purchased)) SUBPARTITION BY HASH(TO_DAYS(purchased)) SUBPARTITIONS 2 (PARTITION p0 VALUES LESS THAN MAXVALUE (SUBPARTITION sp0 DATA DIRECTORY='/tmp/not-existing' INDEX DIRECTORY='/tmp/not-existing',SUBPARTITION sp1));
|
||||
ERROR HY000: Can't create/write to file '/tmp/not-existing/t1#P#p0#SP#sp0.MYI' (Errcode: 2 "No such file or directory")
|
||||
CREATE TABLE t1(id INT,purchased DATE)PARTITION BY RANGE(YEAR(purchased)) SUBPARTITION BY HASH(TO_DAYS(purchased)) SUBPARTITIONS 2 (PARTITION p0 VALUES LESS THAN MAXVALUE (SUBPARTITION sp0,SUBPARTITION sp1));
|
||||
ALTER TABLE t1 ENGINE=InnoDB;
|
||||
drop table t1;
|
4
mysql-test/suite/innodb/r/innodb-stats-sample.result
Normal file
4
mysql-test/suite/innodb/r/innodb-stats-sample.result
Normal file
@ -0,0 +1,4 @@
|
||||
Variable_name Value
|
||||
innodb_stats_sample_pages 1
|
||||
Variable_name Value
|
||||
innodb_stats_traditional OFF
|
@ -1,4 +1,6 @@
|
||||
drop table if exists t1;
|
||||
call mtr.add_suppression("option 'innodb-purge-threads': unsigned value 0 adjusted to*");
|
||||
set global innodb_stats_persistent = false;
|
||||
CREATE TABLE t1 (a int not null primary key) engine=InnoDB;
|
||||
set global innodb_limit_optimistic_insert_debug = 2;
|
||||
insert into t1 values (1);
|
||||
@ -9,45 +11,55 @@ insert into t1 values (2);
|
||||
analyze table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status OK
|
||||
select DATA_LENGTH / 16384 from information_schema.TABLES where TABLE_SCHEMA = 'test' and TABLE_NAME = 't1';
|
||||
DATA_LENGTH / 16384
|
||||
10.0000
|
||||
select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME = 'test/t1';
|
||||
CLUST_INDEX_SIZE
|
||||
10
|
||||
delete from t1 where a=4;
|
||||
set global innodb_purge_stop_now=ON;
|
||||
set global innodb_purge_run_now=ON;
|
||||
analyze table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status OK
|
||||
select DATA_LENGTH / 16384 from information_schema.TABLES where TABLE_SCHEMA = 'test' and TABLE_NAME = 't1';
|
||||
DATA_LENGTH / 16384
|
||||
8.0000
|
||||
select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME = 'test/t1';
|
||||
CLUST_INDEX_SIZE
|
||||
8
|
||||
delete from t1 where a=5;
|
||||
set global innodb_purge_stop_now=ON;
|
||||
set global innodb_purge_run_now=ON;
|
||||
analyze table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status OK
|
||||
select DATA_LENGTH / 16384 from information_schema.TABLES where TABLE_SCHEMA = 'test' and TABLE_NAME = 't1';
|
||||
DATA_LENGTH / 16384
|
||||
5.0000
|
||||
set global innodb_limit_optimistic_insert_debug = 10000;
|
||||
select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME = 'test/t1';
|
||||
CLUST_INDEX_SIZE
|
||||
5
|
||||
set global innodb_limit_optimistic_insert_debug = 0;
|
||||
delete from t1 where a=2;
|
||||
set global innodb_purge_stop_now=ON;
|
||||
set global innodb_purge_run_now=ON;
|
||||
analyze table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status OK
|
||||
select DATA_LENGTH / 16384 from information_schema.TABLES where TABLE_SCHEMA = 'test' and TABLE_NAME = 't1';
|
||||
DATA_LENGTH / 16384
|
||||
3.0000
|
||||
select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME = 'test/t1';
|
||||
CLUST_INDEX_SIZE
|
||||
3
|
||||
insert into t1 values (2);
|
||||
delete from t1 where a=2;
|
||||
set global innodb_purge_stop_now=ON;
|
||||
set global innodb_purge_run_now=ON;
|
||||
analyze table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status OK
|
||||
select DATA_LENGTH / 16384 from information_schema.TABLES where TABLE_SCHEMA = 'test' and TABLE_NAME = 't1';
|
||||
DATA_LENGTH / 16384
|
||||
2.0000
|
||||
select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME = 'test/t1';
|
||||
CLUST_INDEX_SIZE
|
||||
2
|
||||
insert into t1 values (2);
|
||||
delete from t1 where a=2;
|
||||
set global innodb_purge_stop_now=ON;
|
||||
set global innodb_purge_run_now=ON;
|
||||
analyze table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status OK
|
||||
select DATA_LENGTH / 16384 from information_schema.TABLES where TABLE_SCHEMA = 'test' and TABLE_NAME = 't1';
|
||||
DATA_LENGTH / 16384
|
||||
1.0000
|
||||
select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME = 'test/t1';
|
||||
CLUST_INDEX_SIZE
|
||||
1
|
||||
drop table t1;
|
||||
|
605
mysql-test/suite/innodb/r/innodb_monitor.result
Normal file
605
mysql-test/suite/innodb/r/innodb_monitor.result
Normal file
@ -0,0 +1,605 @@
|
||||
set global innodb_monitor_disable = All;
|
||||
select name, status from information_schema.innodb_metrics;
|
||||
name status
|
||||
metadata_table_handles_opened disabled
|
||||
metadata_table_handles_closed disabled
|
||||
metadata_table_reference_count disabled
|
||||
metadata_mem_pool_size disabled
|
||||
lock_deadlocks disabled
|
||||
lock_timeouts disabled
|
||||
lock_rec_lock_waits disabled
|
||||
lock_table_lock_waits disabled
|
||||
lock_rec_lock_requests disabled
|
||||
lock_rec_lock_created disabled
|
||||
lock_rec_lock_removed disabled
|
||||
lock_rec_locks disabled
|
||||
lock_table_lock_created disabled
|
||||
lock_table_lock_removed disabled
|
||||
lock_table_locks disabled
|
||||
lock_row_lock_current_waits disabled
|
||||
lock_row_lock_time disabled
|
||||
lock_row_lock_time_max disabled
|
||||
lock_row_lock_waits disabled
|
||||
lock_row_lock_time_avg disabled
|
||||
buffer_pool_size disabled
|
||||
buffer_pool_reads disabled
|
||||
buffer_pool_read_requests disabled
|
||||
buffer_pool_write_requests disabled
|
||||
buffer_pool_wait_free disabled
|
||||
buffer_pool_read_ahead disabled
|
||||
buffer_pool_read_ahead_evicted disabled
|
||||
buffer_pool_pages_total disabled
|
||||
buffer_pool_pages_misc disabled
|
||||
buffer_pool_pages_data disabled
|
||||
buffer_pool_bytes_data disabled
|
||||
buffer_pool_pages_dirty disabled
|
||||
buffer_pool_bytes_dirty disabled
|
||||
buffer_pool_pages_free disabled
|
||||
buffer_pages_created disabled
|
||||
buffer_pages_written disabled
|
||||
buffer_index_pages_written disabled
|
||||
buffer_non_index_pages_written disabled
|
||||
buffer_pages_read disabled
|
||||
buffer_index_sec_rec_cluster_reads disabled
|
||||
buffer_index_sec_rec_cluster_reads_avoided disabled
|
||||
buffer_data_reads disabled
|
||||
buffer_data_written disabled
|
||||
buffer_flush_batch_scanned disabled
|
||||
buffer_flush_batch_num_scan disabled
|
||||
buffer_flush_batch_scanned_per_call disabled
|
||||
buffer_flush_batch_rescan disabled
|
||||
buffer_flush_batch_total_pages disabled
|
||||
buffer_flush_batches disabled
|
||||
buffer_flush_batch_pages disabled
|
||||
buffer_flush_neighbor_total_pages disabled
|
||||
buffer_flush_neighbor disabled
|
||||
buffer_flush_neighbor_pages disabled
|
||||
buffer_flush_n_to_flush_requested disabled
|
||||
buffer_flush_avg_page_rate disabled
|
||||
buffer_flush_lsn_avg_rate disabled
|
||||
buffer_flush_pct_for_dirty disabled
|
||||
buffer_flush_pct_for_lsn disabled
|
||||
buffer_flush_sync_waits disabled
|
||||
buffer_flush_adaptive_total_pages disabled
|
||||
buffer_flush_adaptive disabled
|
||||
buffer_flush_adaptive_pages disabled
|
||||
buffer_flush_sync_total_pages disabled
|
||||
buffer_flush_sync disabled
|
||||
buffer_flush_sync_pages disabled
|
||||
buffer_flush_background_total_pages disabled
|
||||
buffer_flush_background disabled
|
||||
buffer_flush_background_pages disabled
|
||||
buffer_LRU_batch_scanned disabled
|
||||
buffer_LRU_batch_num_scan disabled
|
||||
buffer_LRU_batch_scanned_per_call disabled
|
||||
buffer_LRU_batch_flush_total_pages disabled
|
||||
buffer_LRU_batches_flush disabled
|
||||
buffer_LRU_batch_flush_pages disabled
|
||||
buffer_LRU_batch_evict_total_pages disabled
|
||||
buffer_LRU_batches_evict disabled
|
||||
buffer_LRU_batch_evict_pages disabled
|
||||
buffer_LRU_single_flush_scanned disabled
|
||||
buffer_LRU_single_flush_num_scan disabled
|
||||
buffer_LRU_single_flush_scanned_per_call disabled
|
||||
buffer_LRU_single_flush_failure_count disabled
|
||||
buffer_LRU_get_free_search disabled
|
||||
buffer_LRU_search_scanned disabled
|
||||
buffer_LRU_search_num_scan disabled
|
||||
buffer_LRU_search_scanned_per_call disabled
|
||||
buffer_LRU_unzip_search_scanned disabled
|
||||
buffer_LRU_unzip_search_num_scan disabled
|
||||
buffer_LRU_unzip_search_scanned_per_call disabled
|
||||
buffer_page_read_index_leaf disabled
|
||||
buffer_page_read_index_non_leaf disabled
|
||||
buffer_page_read_index_ibuf_leaf disabled
|
||||
buffer_page_read_index_ibuf_non_leaf disabled
|
||||
buffer_page_read_undo_log disabled
|
||||
buffer_page_read_index_inode disabled
|
||||
buffer_page_read_ibuf_free_list disabled
|
||||
buffer_page_read_ibuf_bitmap disabled
|
||||
buffer_page_read_system_page disabled
|
||||
buffer_page_read_trx_system disabled
|
||||
buffer_page_read_fsp_hdr disabled
|
||||
buffer_page_read_xdes disabled
|
||||
buffer_page_read_blob disabled
|
||||
buffer_page_read_zblob disabled
|
||||
buffer_page_read_zblob2 disabled
|
||||
buffer_page_read_other disabled
|
||||
buffer_page_written_index_leaf disabled
|
||||
buffer_page_written_index_non_leaf disabled
|
||||
buffer_page_written_index_ibuf_leaf disabled
|
||||
buffer_page_written_index_ibuf_non_leaf disabled
|
||||
buffer_page_written_undo_log disabled
|
||||
buffer_page_written_index_inode disabled
|
||||
buffer_page_written_ibuf_free_list disabled
|
||||
buffer_page_written_ibuf_bitmap disabled
|
||||
buffer_page_written_system_page disabled
|
||||
buffer_page_written_trx_system disabled
|
||||
buffer_page_written_fsp_hdr disabled
|
||||
buffer_page_written_xdes disabled
|
||||
buffer_page_written_blob disabled
|
||||
buffer_page_written_zblob disabled
|
||||
buffer_page_written_zblob2 disabled
|
||||
buffer_page_written_other disabled
|
||||
os_data_reads disabled
|
||||
os_data_writes disabled
|
||||
os_data_fsyncs disabled
|
||||
os_pending_reads disabled
|
||||
os_pending_writes disabled
|
||||
os_log_bytes_written disabled
|
||||
os_log_fsyncs disabled
|
||||
os_log_pending_fsyncs disabled
|
||||
os_log_pending_writes disabled
|
||||
trx_rw_commits disabled
|
||||
trx_ro_commits disabled
|
||||
trx_nl_ro_commits disabled
|
||||
trx_commits_insert_update disabled
|
||||
trx_rollbacks disabled
|
||||
trx_rollbacks_savepoint disabled
|
||||
trx_rollback_active disabled
|
||||
trx_active_transactions disabled
|
||||
trx_rseg_history_len disabled
|
||||
trx_undo_slots_used disabled
|
||||
trx_undo_slots_cached disabled
|
||||
trx_rseg_current_size disabled
|
||||
purge_del_mark_records disabled
|
||||
purge_upd_exist_or_extern_records disabled
|
||||
purge_invoked disabled
|
||||
purge_undo_log_pages disabled
|
||||
purge_dml_delay_usec disabled
|
||||
purge_stop_count disabled
|
||||
purge_resume_count disabled
|
||||
log_checkpoints disabled
|
||||
log_lsn_last_flush disabled
|
||||
log_lsn_last_checkpoint disabled
|
||||
log_lsn_current disabled
|
||||
log_lsn_checkpoint_age disabled
|
||||
log_lsn_buf_pool_oldest disabled
|
||||
log_max_modified_age_async disabled
|
||||
log_max_modified_age_sync disabled
|
||||
log_pending_log_writes disabled
|
||||
log_pending_checkpoint_writes disabled
|
||||
log_num_log_io disabled
|
||||
log_waits disabled
|
||||
log_write_requests disabled
|
||||
log_writes disabled
|
||||
compress_pages_compressed disabled
|
||||
compress_pages_decompressed disabled
|
||||
compression_pad_increments disabled
|
||||
compression_pad_decrements disabled
|
||||
compress_saved disabled
|
||||
compress_trim_sect512 disabled
|
||||
compress_trim_sect1024 disabled
|
||||
compress_trim_sect2048 disabled
|
||||
compress_trim_sect4096 disabled
|
||||
compress_trim_sect8192 disabled
|
||||
compress_trim_sect16384 disabled
|
||||
compress_trim_sect32768 disabled
|
||||
compress_pages_page_compressed disabled
|
||||
compress_page_compressed_trim_op disabled
|
||||
compress_page_compressed_trim_op_saved disabled
|
||||
compress_pages_page_decompressed disabled
|
||||
compress_pages_page_compression_error disabled
|
||||
index_page_splits disabled
|
||||
index_page_merge_attempts disabled
|
||||
index_page_merge_successful disabled
|
||||
index_page_reorg_attempts disabled
|
||||
index_page_reorg_successful disabled
|
||||
index_page_discards disabled
|
||||
adaptive_hash_searches disabled
|
||||
adaptive_hash_searches_btree disabled
|
||||
adaptive_hash_pages_added disabled
|
||||
adaptive_hash_pages_removed disabled
|
||||
adaptive_hash_rows_added disabled
|
||||
adaptive_hash_rows_removed disabled
|
||||
adaptive_hash_rows_deleted_no_hash_entry disabled
|
||||
adaptive_hash_rows_updated disabled
|
||||
file_num_open_files disabled
|
||||
ibuf_merges_insert disabled
|
||||
ibuf_merges_delete_mark disabled
|
||||
ibuf_merges_delete disabled
|
||||
ibuf_merges_discard_insert disabled
|
||||
ibuf_merges_discard_delete_mark disabled
|
||||
ibuf_merges_discard_delete disabled
|
||||
ibuf_merges disabled
|
||||
ibuf_size disabled
|
||||
innodb_master_thread_sleeps disabled
|
||||
innodb_activity_count disabled
|
||||
innodb_master_active_loops disabled
|
||||
innodb_master_idle_loops disabled
|
||||
innodb_background_drop_table_usec disabled
|
||||
innodb_ibuf_merge_usec disabled
|
||||
innodb_log_flush_usec disabled
|
||||
innodb_mem_validate_usec disabled
|
||||
innodb_master_purge_usec disabled
|
||||
innodb_dict_lru_usec disabled
|
||||
innodb_checkpoint_usec disabled
|
||||
innodb_dblwr_writes disabled
|
||||
innodb_dblwr_pages_written disabled
|
||||
innodb_page_size disabled
|
||||
innodb_rwlock_s_spin_waits disabled
|
||||
innodb_rwlock_x_spin_waits disabled
|
||||
innodb_rwlock_s_spin_rounds disabled
|
||||
innodb_rwlock_x_spin_rounds disabled
|
||||
innodb_rwlock_s_os_waits disabled
|
||||
innodb_rwlock_x_os_waits disabled
|
||||
dml_reads disabled
|
||||
dml_inserts disabled
|
||||
dml_deletes disabled
|
||||
dml_updates disabled
|
||||
dml_system_reads disabled
|
||||
dml_system_inserts disabled
|
||||
dml_system_deletes disabled
|
||||
dml_system_updates disabled
|
||||
ddl_background_drop_indexes disabled
|
||||
ddl_background_drop_tables disabled
|
||||
ddl_online_create_index disabled
|
||||
ddl_pending_alter_table disabled
|
||||
icp_attempts disabled
|
||||
icp_no_match disabled
|
||||
icp_out_of_range disabled
|
||||
icp_match disabled
|
||||
set global innodb_monitor_enable = all;
|
||||
select name from information_schema.innodb_metrics where status!='enabled';
|
||||
name
|
||||
set global innodb_monitor_enable = aaa;
|
||||
ERROR 42000: Variable 'innodb_monitor_enable' can't be set to the value of 'aaa'
|
||||
set global innodb_monitor_disable = All;
|
||||
select name from information_schema.innodb_metrics where status!='disabled';
|
||||
name
|
||||
set global innodb_monitor_reset_all = all;
|
||||
select name from information_schema.innodb_metrics where count!=0;
|
||||
name
|
||||
set global innodb_monitor_enable = "%lock%";
|
||||
select name from information_schema.innodb_metrics
|
||||
where status != IF(name like "%lock%", 'enabled', 'disabled');
|
||||
name
|
||||
set global innodb_monitor_disable = "%lock%";
|
||||
select name, status from information_schema.innodb_metrics
|
||||
where name like "%lock%";
|
||||
name status
|
||||
lock_deadlocks disabled
|
||||
lock_timeouts disabled
|
||||
lock_rec_lock_waits disabled
|
||||
lock_table_lock_waits disabled
|
||||
lock_rec_lock_requests disabled
|
||||
lock_rec_lock_created disabled
|
||||
lock_rec_lock_removed disabled
|
||||
lock_rec_locks disabled
|
||||
lock_table_lock_created disabled
|
||||
lock_table_lock_removed disabled
|
||||
lock_table_locks disabled
|
||||
lock_row_lock_current_waits disabled
|
||||
lock_row_lock_time disabled
|
||||
lock_row_lock_time_max disabled
|
||||
lock_row_lock_waits disabled
|
||||
lock_row_lock_time_avg disabled
|
||||
innodb_rwlock_s_spin_waits disabled
|
||||
innodb_rwlock_x_spin_waits disabled
|
||||
innodb_rwlock_s_spin_rounds disabled
|
||||
innodb_rwlock_x_spin_rounds disabled
|
||||
innodb_rwlock_s_os_waits disabled
|
||||
innodb_rwlock_x_os_waits disabled
|
||||
set global innodb_monitor_enable = "%lock*";
|
||||
ERROR 42000: Variable 'innodb_monitor_enable' can't be set to the value of '%lock*'
|
||||
set global innodb_monitor_enable="%%%%%%%%%%%%%%%%%%%%%%%%%%%";
|
||||
select name from information_schema.innodb_metrics where status!='enabled';
|
||||
name
|
||||
set global innodb_monitor_disable="%%%%%";
|
||||
select name from information_schema.innodb_metrics where status!='disabled';
|
||||
name
|
||||
set global innodb_monitor_enable="%";
|
||||
select name from information_schema.innodb_metrics where status!='enabled';
|
||||
name
|
||||
set global innodb_monitor_disable="%_%";
|
||||
select name from information_schema.innodb_metrics where status!='disabled';
|
||||
name
|
||||
set global innodb_monitor_enable="log%%%%";
|
||||
select name from information_schema.innodb_metrics
|
||||
where status != IF(name like "log%", 'enabled', 'disabled');
|
||||
name
|
||||
set global innodb_monitor_enable="os_%a_fs_ncs";
|
||||
set global innodb_monitor_enable="os%pending%";
|
||||
select name, status from information_schema.innodb_metrics
|
||||
where name like "os%";
|
||||
name status
|
||||
os_data_reads disabled
|
||||
os_data_writes disabled
|
||||
os_data_fsyncs enabled
|
||||
os_pending_reads enabled
|
||||
os_pending_writes enabled
|
||||
os_log_bytes_written disabled
|
||||
os_log_fsyncs disabled
|
||||
os_log_pending_fsyncs enabled
|
||||
os_log_pending_writes enabled
|
||||
set global innodb_monitor_enable="";
|
||||
ERROR 42000: Variable 'innodb_monitor_enable' can't be set to the value of ''
|
||||
set global innodb_monitor_enable="_";
|
||||
ERROR 42000: Variable 'innodb_monitor_enable' can't be set to the value of '_'
|
||||
set global innodb_monitor_disable = module_metadata;
|
||||
set global innodb_monitor_reset_all = module_metadata;
|
||||
set global innodb_monitor_enable = metadata_table_handles_opened;
|
||||
create table monitor_test(col int) engine = innodb;
|
||||
select * from monitor_test;
|
||||
col
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
metadata_table_handles_opened 1 NULL 1 1 NULL 1 enabled
|
||||
set global innodb_monitor_reset = metadata_table_handles_opened;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
metadata_table_handles_opened 1 NULL 1 NULL NULL 0 enabled
|
||||
drop table monitor_test;
|
||||
create table monitor_test(col int) engine = innodb;
|
||||
select * from monitor_test;
|
||||
col
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
metadata_table_handles_opened 2 NULL 2 1 NULL 1 enabled
|
||||
set global innodb_monitor_reset_all = metadata_table_handles_opened;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
metadata_table_handles_opened 2 NULL 2 1 NULL 1 enabled
|
||||
set global innodb_monitor_disable = metadata_table_handles_opened;
|
||||
set global innodb_monitor_reset = metadata_table_handles_opened;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
metadata_table_handles_opened 2 NULL 2 NULL NULL 0 disabled
|
||||
drop table monitor_test;
|
||||
create table monitor_test(col int) engine = innodb;
|
||||
select * from monitor_test;
|
||||
col
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
metadata_table_handles_opened 2 NULL 2 NULL NULL 0 disabled
|
||||
set global innodb_monitor_reset_all = metadata_table_handles_opened;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
metadata_table_handles_opened NULL NULL 0 NULL NULL 0 disabled
|
||||
set global innodb_monitor_enable = metadata_table_handles_opened;
|
||||
drop table monitor_test;
|
||||
create table monitor_test(col int) engine = innodb stats_persistent=0;
|
||||
select * from monitor_test;
|
||||
col
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
metadata_table_handles_opened 1 NULL 1 1 NULL 1 enabled
|
||||
set global innodb_monitor_enable = metadata_table_handles_closed;
|
||||
create index idx on monitor_test(col);
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_closed";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
metadata_table_handles_closed 1 NULL 1 1 NULL 1 enabled
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "metadata%";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
metadata_table_handles_opened 2 NULL 2 2 NULL 2 enabled
|
||||
metadata_table_handles_closed 1 NULL 1 1 NULL 1 enabled
|
||||
metadata_table_reference_count NULL NULL 0 NULL NULL 0 disabled
|
||||
metadata_mem_pool_size NULL NULL 0 NULL NULL 0 disabled
|
||||
set global innodb_monitor_disable = module_metadata;
|
||||
set global innodb_monitor_reset = module_metadata;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "metadata%";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
metadata_table_handles_opened 2 NULL 2 NULL NULL 0 disabled
|
||||
metadata_table_handles_closed 1 NULL 1 NULL NULL 0 disabled
|
||||
metadata_table_reference_count NULL NULL 0 NULL NULL 0 disabled
|
||||
metadata_mem_pool_size NULL NULL 0 NULL NULL 0 disabled
|
||||
set global innodb_monitor_reset_all = module_metadata;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "metadata%";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
metadata_table_handles_opened NULL NULL 0 NULL NULL 0 disabled
|
||||
metadata_table_handles_closed NULL NULL 0 NULL NULL 0 disabled
|
||||
metadata_table_reference_count NULL NULL 0 NULL NULL 0 disabled
|
||||
metadata_mem_pool_size NULL NULL 0 NULL NULL 0 disabled
|
||||
set global innodb_monitor_enable = module_trx;
|
||||
begin;
|
||||
insert into monitor_test values(9);
|
||||
commit;
|
||||
begin;
|
||||
insert into monitor_test values(9);
|
||||
rollback;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "trx_rollbacks" or name like "trx_active_transactions";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
trx_rollbacks 1 NULL 1 1 NULL 1 enabled
|
||||
trx_active_transactions 1 0 0 1 0 0 enabled
|
||||
set global innodb_monitor_disable = module_trx;
|
||||
set global innodb_monitor_enable = module_dml;
|
||||
insert into monitor_test values(9);
|
||||
update monitor_test set col = 10 where col = 9;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
dml_reads 4 NULL 4 4 NULL 4 enabled
|
||||
dml_inserts 1 NULL 1 1 NULL 1 enabled
|
||||
dml_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_updates 2 NULL 2 2 NULL 2 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
delete from monitor_test;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
dml_reads 6 NULL 6 6 NULL 6 enabled
|
||||
dml_inserts 1 NULL 1 1 NULL 1 enabled
|
||||
dml_deletes 2 NULL 2 2 NULL 2 enabled
|
||||
dml_updates 2 NULL 2 2 NULL 2 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
set global innodb_monitor_reset = module_dml;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
dml_reads 6 NULL 6 0 NULL 0 enabled
|
||||
dml_inserts 1 NULL 1 0 NULL 0 enabled
|
||||
dml_deletes 2 NULL 2 0 NULL 0 enabled
|
||||
dml_updates 2 NULL 2 0 NULL 0 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
insert into monitor_test values(9);
|
||||
insert into monitor_test values(1);
|
||||
delete from monitor_test;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
dml_reads 8 NULL 8 2 NULL 2 enabled
|
||||
dml_inserts 3 NULL 3 2 NULL 2 enabled
|
||||
dml_deletes 4 NULL 4 2 NULL 2 enabled
|
||||
dml_updates 2 NULL 2 0 NULL 0 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
set global innodb_monitor_reset_all = module_dml;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
dml_reads 8 NULL 8 2 NULL 2 enabled
|
||||
dml_inserts 3 NULL 3 2 NULL 2 enabled
|
||||
dml_deletes 4 NULL 4 2 NULL 2 enabled
|
||||
dml_updates 2 NULL 2 0 NULL 0 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
set global innodb_monitor_disable = module_dml;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
dml_reads 8 NULL 8 2 NULL 2 disabled
|
||||
dml_inserts 3 NULL 3 2 NULL 2 disabled
|
||||
dml_deletes 4 NULL 4 2 NULL 2 disabled
|
||||
dml_updates 2 NULL 2 0 NULL 0 disabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 disabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 disabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 disabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 disabled
|
||||
set global innodb_monitor_reset_all = module_dml;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
dml_reads NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_inserts NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_deletes NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_updates NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_reads NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_inserts NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_deletes NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_updates NULL NULL 0 NULL NULL 0 disabled
|
||||
set global innodb_monitor_enable = dml_inserts;
|
||||
insert into monitor_test values(9);
|
||||
insert into monitor_test values(1);
|
||||
delete from monitor_test;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
dml_reads NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_inserts 2 NULL 2 2 NULL 2 enabled
|
||||
dml_deletes NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_updates NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_reads NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_inserts NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_deletes NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_updates NULL NULL 0 NULL NULL 0 disabled
|
||||
set global innodb_monitor_disable = module_dml;
|
||||
drop table monitor_test;
|
||||
set global innodb_monitor_enable = file_num_open_files;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "file_num_open_files";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
file_num_open_files # # # # # # enabled
|
||||
set global innodb_monitor_disable = file_num_open_files;
|
||||
set global innodb_monitor_enable = "icp%";
|
||||
create table monitor_test(a char(3), b int, c char(2),
|
||||
primary key (a(1), c(1)), key(b)) engine = innodb;
|
||||
insert into monitor_test values("13", 2, "aa");
|
||||
select a from monitor_test where b < 1 for update;
|
||||
a
|
||||
select name, count from information_schema.innodb_metrics
|
||||
where name like "icp%";
|
||||
name count
|
||||
icp_attempts 1
|
||||
icp_no_match 0
|
||||
icp_out_of_range 1
|
||||
icp_match 0
|
||||
select a from monitor_test where b < 3 for update;
|
||||
a
|
||||
13
|
||||
select name, count from information_schema.innodb_metrics
|
||||
where name like "icp%";
|
||||
name count
|
||||
icp_attempts 2
|
||||
icp_no_match 0
|
||||
icp_out_of_range 1
|
||||
icp_match 1
|
||||
drop table monitor_test;
|
||||
set global innodb_monitor_disable = all;
|
||||
set global innodb_monitor_reset_all = all;
|
||||
select 1 from `information_schema`.`INNODB_METRICS`
|
||||
where case (1) when (1) then (AVG_COUNT_RESET) else (1) end;
|
||||
1
|
||||
set global innodb_monitor_enable = default;
|
||||
set global innodb_monitor_disable = default;
|
||||
set global innodb_monitor_reset = default;
|
||||
set global innodb_monitor_reset_all = default;
|
31
mysql-test/suite/innodb/t/foreign-keys.test
Normal file
31
mysql-test/suite/innodb/t/foreign-keys.test
Normal file
@ -0,0 +1,31 @@
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_debug.inc
|
||||
|
||||
if (`select plugin_auth_version <= "5.5.39-MariaDB-36.0" from information_schema.plugins where plugin_name='innodb'`)
|
||||
{
|
||||
--skip Not fixed in XtraDB as of 5.5.39-MariaDB-36.0 or earlier
|
||||
}
|
||||
|
||||
--echo #
|
||||
--echo # Bug #19471516 SERVER CRASHES WHEN EXECUTING ALTER TABLE
|
||||
--echo # ADD FOREIGN KEY
|
||||
--echo #
|
||||
|
||||
CREATE TABLE `department` (`department_id` INT, `department_people_fk` INT,
|
||||
PRIMARY KEY (`department_id`)) engine=innodb;
|
||||
|
||||
CREATE TABLE `title` (`title_id` INT, `title_manager_fk` INT,
|
||||
`title_reporter_fk` INT, PRIMARY KEY (`title_id`)) engine=innodb;
|
||||
|
||||
CREATE TABLE `people` (`people_id` INT, PRIMARY KEY (`people_id`)) engine=innodb;
|
||||
|
||||
ALTER TABLE `department` ADD FOREIGN KEY (`department_people_fk`) REFERENCES
|
||||
`people` (`people_id`);
|
||||
|
||||
ALTER TABLE `title` ADD FOREIGN KEY (`title_manager_fk`) REFERENCES `people`
|
||||
(`people_id`);
|
||||
|
||||
ALTER TABLE `title` ADD FOREIGN KEY (`title_reporter_fk`) REFERENCES `people`
|
||||
(`people_id`);
|
||||
|
||||
drop table title, department, people;
|
34
mysql-test/suite/innodb/t/innodb-mdev7046.test
Normal file
34
mysql-test/suite/innodb/t/innodb-mdev7046.test
Normal file
@ -0,0 +1,34 @@
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_partition.inc
|
||||
|
||||
# Ignore OS errors
|
||||
call mtr.add_suppression("InnoDB: File ./test/t1*");
|
||||
call mtr.add_suppression("nnoDB: Error number*");
|
||||
|
||||
# MDEV-7046: MySQL#74480 - Failing assertion: os_file_status(newpath, &exists, &type)
|
||||
# after Operating system error number 36 in a file operation
|
||||
|
||||
USE test;
|
||||
create table t1(f1 INT,f2 INT,f3 CHAR (10),primary key(f1,f2)) partition by range(f1) subpartition by hash(f2) subpartitions 2 (partition p1 values less than (0),partition p2 values less than (2),partition p3 values less than (2147483647));
|
||||
--replace_regex /'.*t2_new.*'/'t2_new'/
|
||||
--error 7
|
||||
RENAME TABLE t1 TO `t2_new..............................................end`;
|
||||
alter table t1 engine=innodb;
|
||||
--replace_regex /'.*t2_new.*'/'t2_new'/
|
||||
--error 1025
|
||||
RENAME TABLE t1 TO `t2_new..............................................end`;
|
||||
--replace_regex /'.*t2_new.*'/'t2_new'/
|
||||
show warnings;
|
||||
drop table t1;
|
||||
|
||||
DROP DATABASE test;CREATE DATABASE test;USE test;
|
||||
SET @@session.storage_engine=MYISAM;
|
||||
--error 1
|
||||
CREATE TABLE t1(id INT,purchased DATE)PARTITION BY RANGE(YEAR(purchased)) SUBPARTITION BY HASH(TO_DAYS(purchased)) SUBPARTITIONS 2 (PARTITION p0 VALUES LESS THAN MAXVALUE (SUBPARTITION sp0 DATA DIRECTORY='/tmp/not-existing' INDEX DIRECTORY='/tmp/not-existing',SUBPARTITION sp1));
|
||||
CREATE TABLE t1(id INT,purchased DATE)PARTITION BY RANGE(YEAR(purchased)) SUBPARTITION BY HASH(TO_DAYS(purchased)) SUBPARTITIONS 2 (PARTITION p0 VALUES LESS THAN MAXVALUE (SUBPARTITION sp0,SUBPARTITION sp1));
|
||||
ALTER TABLE t1 ENGINE=InnoDB;
|
||||
|
||||
drop table t1;
|
||||
|
||||
let $datadir=`select @@datadir`;
|
||||
--remove_file $datadir/test/db.opt
|
78
mysql-test/suite/innodb/t/innodb-stats-sample.test
Normal file
78
mysql-test/suite/innodb/t/innodb-stats-sample.test
Normal file
@ -0,0 +1,78 @@
|
||||
--source include/have_innodb.inc
|
||||
#
|
||||
# Test that mysqld does not crash when running ANALYZE TABLE with
|
||||
# different values of the parameter innodb_stats_sample_pages.
|
||||
#
|
||||
|
||||
# we care only that the following SQL commands do not produce errors
|
||||
# and do not crash the server
|
||||
-- disable_query_log
|
||||
-- disable_result_log
|
||||
-- enable_warnings
|
||||
|
||||
let $sample_pages=`select @@innodb_stats_sample_pages`;
|
||||
let $traditional=`select @@innodb_stats_traditional`;
|
||||
SET GLOBAL innodb_stats_sample_pages=0;
|
||||
#use new method to calculate statistics
|
||||
SET GLOBAL innodb_stats_traditional=0;
|
||||
|
||||
# check that the value has been adjusted to 1
|
||||
-- enable_result_log
|
||||
SHOW VARIABLES LIKE 'innodb_stats_sample_pages';
|
||||
SHOW VARIABLES LIKE 'innodb_stats_traditional';
|
||||
-- disable_result_log
|
||||
|
||||
CREATE TABLE innodb_analyze (
|
||||
a INT,
|
||||
b INT,
|
||||
c char(50),
|
||||
KEY(a),
|
||||
KEY(b,a)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
# test with empty table
|
||||
ANALYZE TABLE innodb_analyze;
|
||||
|
||||
SET GLOBAL innodb_stats_sample_pages=2;
|
||||
ANALYZE TABLE innodb_analyze;
|
||||
|
||||
SET GLOBAL innodb_stats_sample_pages=1;
|
||||
ANALYZE TABLE innodb_analyze;
|
||||
|
||||
SET GLOBAL innodb_stats_sample_pages=8000;
|
||||
ANALYZE TABLE innodb_analyze;
|
||||
|
||||
delimiter //;
|
||||
create procedure innodb_insert_proc (repeat_count int)
|
||||
begin
|
||||
declare current_num int;
|
||||
set current_num = 0;
|
||||
while current_num < repeat_count do
|
||||
insert into innodb_analyze values(current_num, current_num*100,substring(MD5(RAND()), -44));
|
||||
set current_num = current_num + 1;
|
||||
end while;
|
||||
end//
|
||||
delimiter ;//
|
||||
commit;
|
||||
|
||||
set autocommit=0;
|
||||
call innodb_insert_proc(7000);
|
||||
commit;
|
||||
set autocommit=1;
|
||||
|
||||
SET GLOBAL innodb_stats_sample_pages=1;
|
||||
ANALYZE TABLE innodb_analyze;
|
||||
|
||||
SET GLOBAL innodb_stats_sample_pages=8;
|
||||
ANALYZE TABLE innodb_analyze;
|
||||
|
||||
SET GLOBAL innodb_stats_sample_pages=16;
|
||||
ANALYZE TABLE innodb_analyze;
|
||||
|
||||
SET GLOBAL innodb_stats_sample_pages=8000;
|
||||
ANALYZE TABLE innodb_analyze;
|
||||
|
||||
DROP PROCEDURE innodb_insert_proc;
|
||||
DROP TABLE innodb_analyze;
|
||||
EVAL SET GLOBAL innodb_stats_sample_pages=$sample_pages;
|
||||
EVAL SET GLOBAL innodb_stats_traditional=$traditional;
|
@ -1315,7 +1315,7 @@ drop table t1;
|
||||
|
||||
# Test for testable InnoDB status variables. This test
|
||||
# uses previous ones(pages_created, rows_deleted, ...).
|
||||
--replace_result 511 ok 512 ok 2047 ok 513 ok
|
||||
--replace_result 511 ok 512 ok 2047 ok 513 ok 515 ok
|
||||
SELECT variable_value FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_buffer_pool_pages_total';
|
||||
SELECT variable_value FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_page_size';
|
||||
SELECT variable_value - @innodb_rows_deleted_orig FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_rows_deleted';
|
||||
|
1
mysql-test/suite/innodb/t/innodb_bug14676111.opt
Normal file
1
mysql-test/suite/innodb/t/innodb_bug14676111.opt
Normal file
@ -0,0 +1 @@
|
||||
--innodb-sys-tablestats=1
|
@ -3,11 +3,6 @@
|
||||
-- source include/have_innodb.inc
|
||||
-- source include/have_debug.inc
|
||||
|
||||
# Note that this test needs to be able to manipulate how/when purge is done
|
||||
# using @@innodb_limit_optimistic_insert_debug. This does not work with
|
||||
# background purge threads, so we disabled them in the -master.opt (they are
|
||||
# off by default in normal 5.5 innodb but on by default in xtradb)
|
||||
|
||||
if (`select count(*)=0 from information_schema.global_variables where variable_name = 'INNODB_LIMIT_OPTIMISTIC_INSERT_DEBUG'`)
|
||||
{
|
||||
--skip Test requires InnoDB built with UNIV_DEBUG definition.
|
||||
@ -15,16 +10,20 @@ if (`select count(*)=0 from information_schema.global_variables where variable_n
|
||||
|
||||
--disable_query_log
|
||||
set @old_innodb_limit_optimistic_insert_debug = @@innodb_limit_optimistic_insert_debug;
|
||||
set @old_innodb_stats_persistent = @@innodb_stats_persistent;
|
||||
set @old_innodb_undo_logs = @@innodb_undo_logs;
|
||||
# Limit undo segments for stable progress of purge.
|
||||
set global innodb_undo_logs = 1;
|
||||
--enable_query_log
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
CREATE TABLE t1 (a int not null primary key) engine=InnoDB;
|
||||
call mtr.add_suppression("option 'innodb-purge-threads': unsigned value 0 adjusted to*");
|
||||
|
||||
let $wait_condition=
|
||||
SELECT VARIABLE_VALUE < 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS
|
||||
WHERE VARIABLE_NAME = 'INNODB_PURGE_TRX_ID_AGE';
|
||||
set global innodb_stats_persistent = false;
|
||||
|
||||
CREATE TABLE t1 (a int not null primary key) engine=InnoDB;
|
||||
|
||||
#
|
||||
# make 4 leveled straight tree
|
||||
@ -55,10 +54,12 @@ insert into t1 values (2);
|
||||
#(1, 2) (3) (4) (5)
|
||||
|
||||
analyze table t1;
|
||||
select DATA_LENGTH / 16384 from information_schema.TABLES where TABLE_SCHEMA = 'test' and TABLE_NAME = 't1';
|
||||
select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME = 'test/t1';
|
||||
|
||||
delete from t1 where a=4;
|
||||
--source include/wait_condition.inc
|
||||
set global innodb_purge_stop_now=ON;
|
||||
set global innodb_purge_run_now=ON;
|
||||
--source include/wait_innodb_all_purged.inc
|
||||
#deleting 1 record of 2 records don't cause merge artificially.
|
||||
#current tree form
|
||||
# (1, 5)
|
||||
@ -67,10 +68,12 @@ delete from t1 where a=4;
|
||||
#(1, 2) (3) (5)
|
||||
|
||||
analyze table t1;
|
||||
select DATA_LENGTH / 16384 from information_schema.TABLES where TABLE_SCHEMA = 'test' and TABLE_NAME = 't1';
|
||||
select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME = 'test/t1';
|
||||
|
||||
delete from t1 where a=5;
|
||||
--source include/wait_condition.inc
|
||||
set global innodb_purge_stop_now=ON;
|
||||
set global innodb_purge_run_now=ON;
|
||||
--source include/wait_innodb_all_purged.inc
|
||||
#deleting 1 record of 2 records don't cause merge artificially.
|
||||
#current tree form
|
||||
# (1)
|
||||
@ -79,16 +82,18 @@ delete from t1 where a=5;
|
||||
#(1, 2) (3) <- merged next
|
||||
|
||||
analyze table t1;
|
||||
select DATA_LENGTH / 16384 from information_schema.TABLES where TABLE_SCHEMA = 'test' and TABLE_NAME = 't1';
|
||||
select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME = 'test/t1';
|
||||
|
||||
#
|
||||
# cause merge at level 0
|
||||
#
|
||||
|
||||
#disable the artificial limitation of records in a page
|
||||
set global innodb_limit_optimistic_insert_debug = 10000;
|
||||
set global innodb_limit_optimistic_insert_debug = 0;
|
||||
delete from t1 where a=2;
|
||||
--source include/wait_condition.inc
|
||||
set global innodb_purge_stop_now=ON;
|
||||
set global innodb_purge_run_now=ON;
|
||||
--source include/wait_innodb_all_purged.inc
|
||||
#merge page occurs. and lift up occurs.
|
||||
#current tree form
|
||||
# (1)
|
||||
@ -96,7 +101,7 @@ delete from t1 where a=2;
|
||||
# (1, 3)
|
||||
|
||||
analyze table t1;
|
||||
select DATA_LENGTH / 16384 from information_schema.TABLES where TABLE_SCHEMA = 'test' and TABLE_NAME = 't1';
|
||||
select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME = 'test/t1';
|
||||
|
||||
insert into t1 values (2);
|
||||
#current tree form
|
||||
@ -105,13 +110,15 @@ insert into t1 values (2);
|
||||
# (1, 2, 3)
|
||||
|
||||
delete from t1 where a=2;
|
||||
--source include/wait_condition.inc
|
||||
set global innodb_purge_stop_now=ON;
|
||||
set global innodb_purge_run_now=ON;
|
||||
--source include/wait_innodb_all_purged.inc
|
||||
#current tree form
|
||||
# (1)
|
||||
# (1, 3)
|
||||
|
||||
analyze table t1;
|
||||
select DATA_LENGTH / 16384 from information_schema.TABLES where TABLE_SCHEMA = 'test' and TABLE_NAME = 't1';
|
||||
select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME = 'test/t1';
|
||||
|
||||
insert into t1 values (2);
|
||||
#current tree form
|
||||
@ -119,15 +126,19 @@ insert into t1 values (2);
|
||||
# (1, 2, 3) <- lift up this level next, because the father is root
|
||||
|
||||
delete from t1 where a=2;
|
||||
--source include/wait_condition.inc
|
||||
set global innodb_purge_stop_now=ON;
|
||||
set global innodb_purge_run_now=ON;
|
||||
--source include/wait_innodb_all_purged.inc
|
||||
#current tree form
|
||||
# (1, 3)
|
||||
|
||||
analyze table t1;
|
||||
select DATA_LENGTH / 16384 from information_schema.TABLES where TABLE_SCHEMA = 'test' and TABLE_NAME = 't1';
|
||||
select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME = 'test/t1';
|
||||
|
||||
drop table t1;
|
||||
|
||||
--disable_query_log
|
||||
set global innodb_limit_optimistic_insert_debug = @old_innodb_limit_optimistic_insert_debug;
|
||||
set global innodb_stats_persistent = @old_innodb_stats_persistent;
|
||||
set global innodb_undo_logs = @old_innodb_undo_logs;
|
||||
--enable_query_log
|
||||
|
@ -122,7 +122,7 @@ SELECT * FROM ```t'\"_str` WHERE c1 = '4' FOR UPDATE;
|
||||
# then its contents will never change because the cache from which it is
|
||||
# filled is updated only if it has not been read for 0.1 seconds. See
|
||||
# CACHE_MIN_IDLE_TIME_US in trx/trx0i_s.c.
|
||||
let $cnt=10;
|
||||
let $cnt=200;
|
||||
while ($cnt)
|
||||
{
|
||||
let $success=`SELECT COUNT(*) = 14 FROM INFORMATION_SCHEMA.INNODB_LOCKS`;
|
||||
|
387
mysql-test/suite/innodb/t/innodb_monitor.test
Normal file
387
mysql-test/suite/innodb/t/innodb_monitor.test
Normal file
@ -0,0 +1,387 @@
|
||||
# This is the test for Metrics Monitor Table feature.
|
||||
# Test the metrics monitor system's control system
|
||||
# and counter accuracy.
|
||||
|
||||
--source include/have_innodb.inc
|
||||
|
||||
set global innodb_monitor_disable = All;
|
||||
|
||||
# Test turn on/off the monitor counter with "all" option
|
||||
# By default, they will be off
|
||||
select name, status from information_schema.innodb_metrics;
|
||||
|
||||
# Turn on all monitor counters
|
||||
set global innodb_monitor_enable = all;
|
||||
|
||||
# status should all change to "enabled"
|
||||
select name from information_schema.innodb_metrics where status!='enabled';
|
||||
|
||||
# Test wrong argument to the global configure option
|
||||
--error ER_WRONG_VALUE_FOR_VAR
|
||||
set global innodb_monitor_enable = aaa;
|
||||
|
||||
# We require a valid monitor counter/module name. There is no default
|
||||
# counter name or module. A warning will be printed asking user to
|
||||
# specify a valid counter name.
|
||||
#--disable_warnings
|
||||
#set global innodb_monitor_enable = default;
|
||||
#--enable_warnings
|
||||
|
||||
# Turn off all monitor counters, option name should be case
|
||||
# insensitive
|
||||
set global innodb_monitor_disable = All;
|
||||
|
||||
# status should all change to "disabled"
|
||||
select name from information_schema.innodb_metrics where status!='disabled';
|
||||
|
||||
# Reset all counter values
|
||||
set global innodb_monitor_reset_all = all;
|
||||
|
||||
# count should all change to 0
|
||||
select name from information_schema.innodb_metrics where count!=0;
|
||||
|
||||
# Test wildcard match, turn on all counters contain string "lock"
|
||||
set global innodb_monitor_enable = "%lock%";
|
||||
|
||||
# All lock related counter should be enabled
|
||||
select name from information_schema.innodb_metrics
|
||||
where status != IF(name like "%lock%", 'enabled', 'disabled');
|
||||
|
||||
# Disable them
|
||||
set global innodb_monitor_disable = "%lock%";
|
||||
|
||||
# All lock related counter should be disabled
|
||||
select name, status from information_schema.innodb_metrics
|
||||
where name like "%lock%";
|
||||
|
||||
# No match for "%lock*"
|
||||
--error ER_WRONG_VALUE_FOR_VAR
|
||||
set global innodb_monitor_enable = "%lock*";
|
||||
|
||||
# All counters will be turned on with wildcard match string with all "%"
|
||||
set global innodb_monitor_enable="%%%%%%%%%%%%%%%%%%%%%%%%%%%";
|
||||
|
||||
select name from information_schema.innodb_metrics where status!='enabled';
|
||||
|
||||
# Turn off all counters
|
||||
set global innodb_monitor_disable="%%%%%";
|
||||
|
||||
select name from information_schema.innodb_metrics where status!='disabled';
|
||||
|
||||
# One more round testing. All counters will be turned on with
|
||||
# single wildcard character "%"
|
||||
set global innodb_monitor_enable="%";
|
||||
|
||||
select name from information_schema.innodb_metrics where status!='enabled';
|
||||
|
||||
# Turn off all the counters with "%_%"
|
||||
set global innodb_monitor_disable="%_%";
|
||||
|
||||
select name from information_schema.innodb_metrics where status!='disabled';
|
||||
|
||||
# Turn on all counters start with "log"
|
||||
set global innodb_monitor_enable="log%%%%";
|
||||
|
||||
select name from information_schema.innodb_metrics
|
||||
where status != IF(name like "log%", 'enabled', 'disabled');
|
||||
|
||||
# Turn on counters "os_data_fsync" with wildcard match "os_%a_fs_ncs", "_"
|
||||
# is single character wildcard match word
|
||||
set global innodb_monitor_enable="os_%a_fs_ncs";
|
||||
|
||||
# Turn on counters whose name contains "os" and "pending" with
|
||||
# wildcard match "os%pending%"
|
||||
set global innodb_monitor_enable="os%pending%";
|
||||
|
||||
select name, status from information_schema.innodb_metrics
|
||||
where name like "os%";
|
||||
|
||||
# Empty string is an invalid option
|
||||
--error ER_WRONG_VALUE_FOR_VAR
|
||||
set global innodb_monitor_enable="";
|
||||
|
||||
--error ER_WRONG_VALUE_FOR_VAR
|
||||
set global innodb_monitor_enable="_";
|
||||
|
||||
# Reset counters only in "module_metadata" module
|
||||
set global innodb_monitor_disable = module_metadata;
|
||||
|
||||
set global innodb_monitor_reset_all = module_metadata;
|
||||
|
||||
# Only turn on "table_open" counter
|
||||
set global innodb_monitor_enable = metadata_table_handles_opened;
|
||||
|
||||
# Create a new table to test "metadata_table_handles_opened" counter
|
||||
create table monitor_test(col int) engine = innodb;
|
||||
|
||||
# This will open the monitor_test table
|
||||
select * from monitor_test;
|
||||
|
||||
# "metadata_table_handles_opened" should increment by 1
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
|
||||
# Reset the counter value while counter is still on (started)
|
||||
# This will reset value "count_reset" but not
|
||||
# "count"
|
||||
set global innodb_monitor_reset = metadata_table_handles_opened;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
|
||||
# re-create table again to increment "metadata_table_handles_opened" again
|
||||
drop table monitor_test;
|
||||
|
||||
# Create a new table to test "metadata_table_handles_opened" counter
|
||||
create table monitor_test(col int) engine = innodb;
|
||||
|
||||
select * from monitor_test;
|
||||
|
||||
# "metadata_table_handles_opened" should increment
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
|
||||
# Cannot reset all monitor value while the counter is on
|
||||
set global innodb_monitor_reset_all = metadata_table_handles_opened;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
|
||||
# Turn off the counter "metadata_table_handles_opened"
|
||||
set global innodb_monitor_disable = metadata_table_handles_opened;
|
||||
|
||||
# Reset the counter value while counter is off (disabled)
|
||||
set global innodb_monitor_reset = metadata_table_handles_opened;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
|
||||
# re-create table again. Since monitor is off, "metadata_table_handles_opened"
|
||||
# should not be incremented
|
||||
drop table monitor_test;
|
||||
|
||||
# Create a new table to test "metadata_table_handles_opened" counter
|
||||
create table monitor_test(col int) engine = innodb;
|
||||
|
||||
# "metadata_table_handles_opened" should increment
|
||||
select * from monitor_test;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
|
||||
# Reset all the counters, include those counter *_since_start
|
||||
set global innodb_monitor_reset_all = metadata_table_handles_opened;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
|
||||
# Turn on "table_open" counter again
|
||||
set global innodb_monitor_enable = metadata_table_handles_opened;
|
||||
|
||||
# Test metadata_table_handles_opened again to see if it is working correctly
|
||||
# after above round of turning on/off/reset
|
||||
drop table monitor_test;
|
||||
|
||||
# Create a new table to test "metadata_table_handles_opened" counter
|
||||
create table monitor_test(col int) engine = innodb stats_persistent=0;
|
||||
|
||||
select * from monitor_test;
|
||||
|
||||
# "metadata_table_handles_opened" should increment
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
|
||||
# Test counter "metadata_table_handles_closed",
|
||||
# create index will close the old handle
|
||||
set global innodb_monitor_enable = metadata_table_handles_closed;
|
||||
|
||||
create index idx on monitor_test(col);
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_closed";
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "metadata%";
|
||||
|
||||
# Reset counters only in "module_metadata" module
|
||||
set global innodb_monitor_disable = module_metadata;
|
||||
|
||||
set global innodb_monitor_reset = module_metadata;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "metadata%";
|
||||
|
||||
set global innodb_monitor_reset_all = module_metadata;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "metadata%";
|
||||
|
||||
# Test Transaction Module
|
||||
set global innodb_monitor_enable = module_trx;
|
||||
|
||||
begin;
|
||||
insert into monitor_test values(9);
|
||||
commit;
|
||||
|
||||
begin;
|
||||
insert into monitor_test values(9);
|
||||
rollback;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "trx_rollbacks" or name like "trx_active_transactions";
|
||||
|
||||
set global innodb_monitor_disable = module_trx;
|
||||
|
||||
# Test DML Module
|
||||
set global innodb_monitor_enable = module_dml;
|
||||
|
||||
insert into monitor_test values(9);
|
||||
|
||||
update monitor_test set col = 10 where col = 9;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
|
||||
delete from monitor_test;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
|
||||
# test reset counter while the counter is on
|
||||
set global innodb_monitor_reset = module_dml;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
|
||||
# insert/delete some rows after the reset
|
||||
insert into monitor_test values(9);
|
||||
insert into monitor_test values(1);
|
||||
|
||||
delete from monitor_test;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
|
||||
# We do not allow reset_all while the counter is on, nothing
|
||||
# should be reset here
|
||||
set global innodb_monitor_reset_all = module_dml;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
|
||||
# Turn off the counter
|
||||
set global innodb_monitor_disable = module_dml;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
|
||||
# Reset all counter values
|
||||
set global innodb_monitor_reset_all = module_dml;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
|
||||
# Open individual counter "dml_inserts"
|
||||
set global innodb_monitor_enable = dml_inserts;
|
||||
|
||||
insert into monitor_test values(9);
|
||||
insert into monitor_test values(1);
|
||||
|
||||
delete from monitor_test;
|
||||
|
||||
# Only counter "dml_inserts" should be updated
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
|
||||
set global innodb_monitor_disable = module_dml;
|
||||
|
||||
drop table monitor_test;
|
||||
|
||||
set global innodb_monitor_enable = file_num_open_files;
|
||||
|
||||
# Counters are unpredictable when innodb-file-per-table is on
|
||||
--replace_column 2 # 3 # 4 # 5 # 6 # 7 #
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "file_num_open_files";
|
||||
|
||||
set global innodb_monitor_disable = file_num_open_files;
|
||||
|
||||
# Test ICP module counters
|
||||
set global innodb_monitor_enable = "icp%";
|
||||
|
||||
create table monitor_test(a char(3), b int, c char(2),
|
||||
primary key (a(1), c(1)), key(b)) engine = innodb;
|
||||
|
||||
insert into monitor_test values("13", 2, "aa");
|
||||
|
||||
select a from monitor_test where b < 1 for update;
|
||||
|
||||
# should have icp_attempts = 1 and icp_out_of_range = 1
|
||||
select name, count from information_schema.innodb_metrics
|
||||
where name like "icp%";
|
||||
|
||||
# should have icp_attempts = 2 and icp_match = 1
|
||||
select a from monitor_test where b < 3 for update;
|
||||
|
||||
select name, count from information_schema.innodb_metrics
|
||||
where name like "icp%";
|
||||
|
||||
drop table monitor_test;
|
||||
|
||||
set global innodb_monitor_disable = all;
|
||||
set global innodb_monitor_reset_all = all;
|
||||
|
||||
# Test for bug #13966091
|
||||
select 1 from `information_schema`.`INNODB_METRICS`
|
||||
where case (1) when (1) then (AVG_COUNT_RESET) else (1) end;
|
||||
|
||||
-- disable_warnings
|
||||
set global innodb_monitor_enable = default;
|
||||
set global innodb_monitor_disable = default;
|
||||
set global innodb_monitor_reset = default;
|
||||
set global innodb_monitor_reset_all = default;
|
||||
-- enable_warnings
|
Reference in New Issue
Block a user