1--source include/have_rocksdb.inc 2--source include/have_partition.inc 3 4--source include/restart_mysqld.inc 5 6# 7# SHOW ENGINE STATUS command 8# Checking that the command doesn't produce an error. 9# If it starts producing an actual result, the result file 10# will need to be updated, and possibly masked. 11 12--disable_warnings 13DROP TABLE IF EXISTS t1; 14DROP TABLE IF EXISTS t2; 15DROP TABLE IF EXISTS t3; 16DROP TABLE IF EXISTS t4; 17--enable_warnings 18 19CREATE TABLE t1 (i INT, PRIMARY KEY (i) COMMENT 'cf_t1') ENGINE = ROCKSDB; 20CREATE TABLE t2 (j INT, PRIMARY KEY (j) COMMENT 'rev:cf_t2') ENGINE = ROCKSDB; 21CREATE TABLE t3 (k INT, PRIMARY KEY (k) COMMENT 'cf_t1') ENGINE = ROCKSDB; 22 23# With partition based column family creation we now expect all the partitions 24# to belong to a default column family because mapping wasn't specified in 25# this case. 26CREATE TABLE t4 (l INT, PRIMARY KEY (l) COMMENT 'cf_t4') ENGINE = ROCKSDB 27 PARTITION BY KEY(l) PARTITIONS 4; 28 29SET @save.rocksdb_max_background_jobs= @@global.rocksdb_max_background_jobs; 30SET GLOBAL rocksdb_max_background_jobs= 1; 31 32INSERT INTO t1 VALUES (1), (2), (3); 33SELECT COUNT(*) FROM t1; 34 35INSERT INTO t2 VALUES (1), (2), (3), (4); 36SELECT COUNT(*) FROM t2; 37 38INSERT INTO t4 VALUES (1), (2), (3), (4), (5); 39SELECT COUNT(*) FROM t4; 40 41SET GLOBAL rocksdb_force_flush_memtable_now=1; 42SET GLOBAL rocksdb_compact_cf="cf_t1"; 43--replace_column 2 # 3 # 44SHOW ENGINE rocksdb STATUS; 45 46# Fetch data from information schema as well 47--replace_column 3 # 48SELECT * FROM INFORMATION_SCHEMA.ROCKSDB_CFSTATS; 49 50--replace_column 2 # 51SELECT * FROM INFORMATION_SCHEMA.ROCKSDB_DBSTATS; 52 53SELECT TABLE_SCHEMA, TABLE_NAME, PARTITION_NAME, COUNT(STAT_TYPE) 54FROM INFORMATION_SCHEMA.ROCKSDB_PERF_CONTEXT 55WHERE TABLE_SCHEMA = 'test' 56GROUP BY TABLE_NAME, PARTITION_NAME; 57 58--replace_column 3 # 59SELECT * FROM INFORMATION_SCHEMA.ROCKSDB_CF_OPTIONS; 60 61DROP TABLE t1; 62DROP TABLE t2; 63DROP TABLE t3; 64DROP TABLE t4; 65 66SHOW ENGINE rocksdb MUTEX; 67# For SHOW ALL MUTEX even the number of lines is volatile, so the result logging is disabled 68--disable_result_log 69SHOW ENGINE ALL MUTEX; 70--enable_result_log 71 72# The output from SHOW ENGINE ROCKSDB TRANSACTION STATUS has some 73# non-deterministic results. Replace the timestamp with 'TIMESTAMP', the 74# number of seconds active with 'NUM', the thread id with 'TID' and the thread 75# pointer with 'PTR'. This test may fail in the future if it is being run in 76# parallel with other tests as the number of snapshots would then be greater 77# than expected. We may need to turn off the result log if that is the case. 78--replace_regex /[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}/TIMESTAMP/ /(ACTIVE) [0-9]+ /\1 NUM / /(thread id) [0-9]+/\1 TID/ /0x[0-9a-f]+/PTR/ 79SHOW ENGINE rocksdb TRANSACTION STATUS; 80 81START TRANSACTION WITH CONSISTENT SNAPSHOT; 82 83#select sleep(10); 84--replace_regex /[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}/TIMESTAMP/ /(ACTIVE) [0-9]+ /\1 NUM / /(thread id) [0-9]+/\1 TID/ /0x[0-9a-f]+/PTR/ /(query id) [0-9]+/\1 QID/ /(root) [a-z ]+/\1 ACTION/ 85SHOW ENGINE rocksdb TRANSACTION STATUS; 86 87ROLLBACK; 88 89# Check if explicit snapshots are correctly populated 90START TRANSACTION WITH SHARED ROCKSDB SNAPSHOT; 91--replace_column 2 # 3 # 92SHOW ENGINE rocksdb STATUS; 93ROLLBACK; 94CREATE EXPLICIT rocksdb SNAPSHOT; 95--replace_column 2 # 3 # 96SHOW ENGINE rocksdb STATUS; 97RELEASE EXPLICIT rocksdb SNAPSHOT; 98--replace_column 2 # 3 # 99SHOW ENGINE rocksdb STATUS; 100 101 102# Restore old values 103SET GLOBAL rocksdb_max_background_jobs= @save.rocksdb_max_background_jobs; 104