Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions mysql-test/suite/encryption/r/innodb-encryption-alter.result
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
SET GLOBAL innodb_encrypt_tables = ON;
SET GLOBAL innodb_encryption_threads = 4;
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB ENCRYPTED=NO ENCRYPTION_KEY_ID=4;
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB ENCRYPTED='False' ENCRYPTION_KEY_ID=4;
Warnings:
Warning 140 InnoDB: ENCRYPTED=NO implies ENCRYPTION_KEY_ID=1
DROP TABLE t1;
Expand All @@ -27,14 +27,14 @@ Warning 140 InnoDB: ENCRYPTION_KEY_ID 99 not available
Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
set innodb_default_encryption_key_id = 4;
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB ENCRYPTED=YES;
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB ENCRYPTED='on';
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`pk` int(11) NOT NULL AUTO_INCREMENT,
`c` varchar(256) DEFAULT NULL,
PRIMARY KEY (`pk`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci `ENCRYPTED`=YES `ENCRYPTION_KEY_ID`=4
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci `ENCRYPTED`='on' `ENCRYPTION_KEY_ID`=4
DROP TABLE t1;
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB;
SHOW CREATE TABLE t1;
Expand Down
4 changes: 2 additions & 2 deletions mysql-test/suite/encryption/t/innodb-encryption-alter.test
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
SET GLOBAL innodb_encrypt_tables = ON;
SET GLOBAL innodb_encryption_threads = 4;

CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB ENCRYPTED=NO ENCRYPTION_KEY_ID=4;
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB ENCRYPTED='False' ENCRYPTION_KEY_ID=4;
DROP TABLE t1;
set @save_global = @@GLOBAL.innodb_default_encryption_key_id;
set innodb_default_encryption_key_id = 99;
Expand All @@ -23,7 +23,7 @@ SHOW WARNINGS;
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB ENCRYPTED=YES;
SHOW WARNINGS;
set innodb_default_encryption_key_id = 4;
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB ENCRYPTED=YES;
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB ENCRYPTED='on';
SHOW CREATE TABLE t1;
DROP TABLE t1;
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, c VARCHAR(256)) ENGINE=INNODB;
Expand Down
37 changes: 37 additions & 0 deletions mysql-test/suite/innodb/r/index_ahi_option,ahi.rdiff
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
--- index_ahi_option.result
+++ index_ahi_option,ahi.result
@@ -2,7 +2,7 @@
# Test InnoDB index-level adaptive_hash_index options
#
SET @start_global_value = @@global.innodb_adaptive_hash_index;
-SET GLOBAL innodb_adaptive_hash_index=OFF;
+SET GLOBAL innodb_adaptive_hash_index=ON;
#
# Scenario 1: complete_fields parameter with point lookups
#
@@ -30,20 +30,20 @@
SET GLOBAL innodb_monitor_enable = module_adaptive_hash;
# Warming up AHI
# Warmed up AHI
-# No AHI used in SELECT (idx_1)
-# No AHI used in SELECT (idx_2)
+# Used AHI in SELECT (idx_1)
+# Used AHI in SELECT (idx_2)
# No AHI used in SELECT (idx_3)
ALTER TABLE t1 adaptive_hash_index=OFF;
# Warming up AHI
# Warmed up AHI
# No AHI used in SELECT (idx_1)
-# No AHI used in SELECT (idx_2)
+# Used AHI in SELECT (idx_2)
# No AHI used in SELECT (idx_3)
ALTER TABLE t1 adaptive_hash_index='ON';
# Warming up AHI
# Warmed up AHI
-# No AHI used in SELECT (idx_1)
-# No AHI used in SELECT (idx_2)
+# Used AHI in SELECT (idx_1)
+# Used AHI in SELECT (idx_2)
# No AHI used in SELECT (idx_3)
DROP TABLE t1;
SET @@global.innodb_adaptive_hash_index = @start_global_value;
35 changes: 35 additions & 0 deletions mysql-test/suite/innodb/r/index_ahi_option,if_specified.rdiff
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
--- index_ahi_option.result
+++ index_ahi_option,if_specified.result
@@ -2,7 +2,7 @@
# Test InnoDB index-level adaptive_hash_index options
#
SET @start_global_value = @@global.innodb_adaptive_hash_index;
-SET GLOBAL innodb_adaptive_hash_index=OFF;
+SET GLOBAL innodb_adaptive_hash_index=if_specified;
#
# Scenario 1: complete_fields parameter with point lookups
#
@@ -31,19 +31,19 @@
# Warming up AHI
# Warmed up AHI
# No AHI used in SELECT (idx_1)
-# No AHI used in SELECT (idx_2)
+# Used AHI in SELECT (idx_2)
# No AHI used in SELECT (idx_3)
ALTER TABLE t1 adaptive_hash_index=OFF;
# Warming up AHI
# Warmed up AHI
# No AHI used in SELECT (idx_1)
-# No AHI used in SELECT (idx_2)
+# Used AHI in SELECT (idx_2)
# No AHI used in SELECT (idx_3)
ALTER TABLE t1 adaptive_hash_index='ON';
# Warming up AHI
# Warmed up AHI
-# No AHI used in SELECT (idx_1)
-# No AHI used in SELECT (idx_2)
+# Used AHI in SELECT (idx_1)
+# Used AHI in SELECT (idx_2)
# No AHI used in SELECT (idx_3)
DROP TABLE t1;
SET @@global.innodb_adaptive_hash_index = @start_global_value;
52 changes: 52 additions & 0 deletions mysql-test/suite/innodb/r/index_ahi_option.result
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
#
# Test InnoDB index-level adaptive_hash_index options
#
SET @start_global_value = @@global.innodb_adaptive_hash_index;
SET GLOBAL innodb_adaptive_hash_index=OFF;
#
# Scenario 1: complete_fields parameter with point lookups
#
CREATE TABLE t1 (
id INT PRIMARY KEY,
col1 INT, col2 INT, col3 INT,
INDEX idx_1 (col1) adaptive_hash_index=DEFAULT,
INDEX idx_2 (col1, col2) adaptive_hash_index=YES,
INDEX idx_3 (col1, col2, col3) adaptive_hash_index=NO
) ENGINE=InnoDB STATS_PERSISTENT=0 adaptive_hash_index=DEFAULT;
INSERT INTO t1 SELECT seq, seq % 100, seq % 10, seq % 5 FROM seq_1_to_50000;
INSERT INTO t1 VALUES (50001, 50, 1, 1), (50002, 50, 2, 2),
(50003, 50, 3, 3), (50004, 50, 4, 4), (50005, 50, 5, 0),
(50006, 50, 6, 1), (50007, 50, 7, 2), (50008, 50, 8, 3),
(50009, 50, 9, 4);
#
# AHI usage in searches is verified by measuring an increase in
# the "count" of "adaptive_hash_searches" InnoDB metric.
# An alternative strategy would use "ANALYZE FORMAT=JSON" and
# check the "pages_accessed" entry: lower values w.r.t. the
# base case would imply that AHI was used for the search.
# Unfortunately, that is not really stable.
# Hopefully using "innodb_metrics" is more stable.
#
SET GLOBAL innodb_monitor_enable = module_adaptive_hash;
# Warming up AHI
# Warmed up AHI
# No AHI used in SELECT (idx_1)
# No AHI used in SELECT (idx_2)
# No AHI used in SELECT (idx_3)
ALTER TABLE t1 adaptive_hash_index=OFF;
# Warming up AHI
# Warmed up AHI
# No AHI used in SELECT (idx_1)
# No AHI used in SELECT (idx_2)
# No AHI used in SELECT (idx_3)
ALTER TABLE t1 adaptive_hash_index='ON';
# Warming up AHI
# Warmed up AHI
# No AHI used in SELECT (idx_1)
# No AHI used in SELECT (idx_2)
# No AHI used in SELECT (idx_3)
DROP TABLE t1;
SET @@global.innodb_adaptive_hash_index = @start_global_value;
SET GLOBAL innodb_monitor_disable = module_adaptive_hash;
SET GLOBAL innodb_monitor_disable = default;
SET GLOBAL innodb_monitor_enable = default;
4 changes: 2 additions & 2 deletions mysql-test/suite/innodb/r/innodb_buffer_pool_resize.result
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@ SET STATEMENT foreign_key_checks=0, unique_checks=0 FOR
INSERT INTO t2 SELECT seq*4,seq*4 FROM seq_1_to_16384;
SELECT @@GLOBAL.innodb_adaptive_hash_index;
@@GLOBAL.innodb_adaptive_hash_index
1
ON
SET STATEMENT max_statement_time=1e-9 FOR
SET GLOBAL innodb_buffer_pool_size = 7340032;
SELECT @@GLOBAL.innodb_adaptive_hash_index;
@@GLOBAL.innodb_adaptive_hash_index
1
ON
FOUND 1 /innodb_buffer_pool_size=7m.*resized from|innodb_buffer_pool_size change aborted/ in mysqld.1.err
set global innodb_buffer_pool_size = 7340032;
select count(val) from t1;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ SET GLOBAL innodb_buffer_pool_size=8388608;
ERROR HY000: innodb_buffer_pool_size change aborted
SELECT @@GLOBAL.innodb_adaptive_hash_index,@@GLOBAL.innodb_buffer_pool_size;
@@GLOBAL.innodb_adaptive_hash_index @@GLOBAL.innodb_buffer_pool_size
1 16777216
ON 16777216
SET GLOBAL innodb_adaptive_hash_index = @old_innodb_adaptive_hash_index;
CREATE TEMPORARY TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO t1 SELECT seq FROM seq_1_to_200;
Expand Down
3 changes: 3 additions & 0 deletions mysql-test/suite/innodb/t/index_ahi_option.combinations
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[ahi]
[no_ahi]
[if_specified]
Loading