Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
093b232a
Commit
093b232a
authored
Jan 12, 2015
by
Jan Lindström
Committed by
Sergei Golubchik
Feb 10, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Do not yet allow encrypted tables with compressed tables.
parent
e2e80986
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
461 additions
and
119 deletions
+461
-119
mysql-test/suite/innodb/r/innodb-page_encryption.result
mysql-test/suite/innodb/r/innodb-page_encryption.result
+64
-13
mysql-test/suite/innodb/r/innodb-page_encryption_compression.result
.../suite/innodb/r/innodb-page_encryption_compression.result
+35
-11
mysql-test/suite/innodb/r/innodb_encryption-page-compression.result
.../suite/innodb/r/innodb_encryption-page-compression.result
+9
-0
mysql-test/suite/innodb/r/innodb_encryption_tables.result
mysql-test/suite/innodb/r/innodb_encryption_tables.result
+167
-0
mysql-test/suite/innodb/t/innodb-page_encryption.test
mysql-test/suite/innodb/t/innodb-page_encryption.test
+28
-1
mysql-test/suite/innodb/t/innodb-page_encryption_compression.test
...st/suite/innodb/t/innodb-page_encryption_compression.test
+13
-1
mysql-test/suite/innodb/t/innodb_encryption-page-compression.test
...st/suite/innodb/t/innodb_encryption-page-compression.test
+6
-93
mysql-test/suite/innodb/t/innodb_encryption_tables.opt
mysql-test/suite/innodb/t/innodb_encryption_tables.opt
+6
-0
mysql-test/suite/innodb/t/innodb_encryption_tables.test
mysql-test/suite/innodb/t/innodb_encryption_tables.test
+117
-0
storage/innobase/handler/ha_innodb.cc
storage/innobase/handler/ha_innodb.cc
+8
-0
storage/xtradb/handler/ha_innodb.cc
storage/xtradb/handler/ha_innodb.cc
+8
-0
No files found.
mysql-test/suite/innodb/r/innodb-page_encryption.result
View file @
093b232a
...
...
@@ -40,29 +40,46 @@ end while;
end//
commit;
set autocommit=0;
call innodb_insert_proc(
5
000);
call innodb_insert_proc(
2
000);
commit;
set autocommit=1;
insert into innodb_compact select * from innodb_normal;
insert into innodb_compressed select * from innodb_normal;
insert into innodb_dynamic select * from innodb_normal;
insert into innodb_redundant select * from innodb_normal;
update innodb_normal set c1 = c1 +1;
update innodb_compact set c1 = c1 + 1;
update innodb_compressed set c1 = c1 + 1;
update innodb_dynamic set c1 = c1 + 1;
update innodb_redundant set c1 = c1 + 1;
select count(*) from innodb_compact where c1 < 1500000;
count(*)
5
000
2
000
select count(*) from innodb_compressed where c1 < 1500000;
count(*)
5
000
2
000
select count(*) from innodb_dynamic where c1 < 1500000;
count(*)
5
000
2
000
select count(*) from innodb_redundant where c1 < 1500000;
count(*)
5000
2000
select count(*) from innodb_compact t1, innodb_normal t2 where
t1.c1 = t2.c1 and t1.b = t2.b;
count(*)
2000
select count(*) from innodb_dynamic t1, innodb_normal t2 where
t1.c1 = t2.c1 and t1.b = t2.b;
count(*)
2000
select count(*) from innodb_compressed t1, innodb_normal t2 where
t1.c1 = t2.c1 and t1.b = t2.b;
count(*)
2000
select count(*) from innodb_redundant t1, innodb_normal t2 where
t1.c1 = t2.c1 and t1.b = t2.b;
count(*)
2000
SELECT variable_value >= 0 FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_num_pages_page_encrypted';
variable_value >= 0
1
...
...
@@ -74,22 +91,39 @@ variable_value = 0
1
SET GLOBAL innodb_file_format = `Barracuda`;
SET GLOBAL innodb_file_per_table = ON;
update innodb_normal set c1 = c1 +1;
update innodb_compact set c1 = c1 + 1;
update innodb_compressed set c1 = c1 + 1;
update innodb_dynamic set c1 = c1 + 1;
update innodb_redundant set c1 = c1 + 1;
select count(*) from innodb_compact where c1 < 1500000;
count(*)
5
000
2
000
select count(*) from innodb_compressed where c1 < 1500000;
count(*)
5
000
2
000
select count(*) from innodb_dynamic where c1 < 1500000;
count(*)
5
000
2
000
select count(*) from innodb_redundant where c1 < 1500000;
count(*)
5000
2000
select count(*) from innodb_compact t1, innodb_normal t2 where
t1.c1 = t2.c1 and t1.b = t2.b;
count(*)
2000
select count(*) from innodb_dynamic t1, innodb_normal t2 where
t1.c1 = t2.c1 and t1.b = t2.b;
count(*)
2000
select count(*) from innodb_compressed t1, innodb_normal t2 where
t1.c1 = t2.c1 and t1.b = t2.b;
count(*)
2000
select count(*) from innodb_redundant t1, innodb_normal t2 where
t1.c1 = t2.c1 and t1.b = t2.b;
count(*)
2000
SELECT variable_value >= 0 FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_num_pages_page_encrypted';
variable_value >= 0
1
...
...
@@ -153,22 +187,39 @@ innodb_redundant CREATE TABLE `innodb_redundant` (
`c1` bigint(20) NOT NULL,
`b` char(200) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=REDUNDANT
update innodb_normal set c1 = c1 +1;
update innodb_compact set c1 = c1 + 1;
update innodb_compressed set c1 = c1 + 1;
update innodb_dynamic set c1 = c1 + 1;
update innodb_redundant set c1 = c1 + 1;
select count(*) from innodb_compact where c1 < 1500000;
count(*)
5
000
2
000
select count(*) from innodb_compressed where c1 < 1500000;
count(*)
5
000
2
000
select count(*) from innodb_dynamic where c1 < 1500000;
count(*)
5
000
2
000
select count(*) from innodb_redundant where c1 < 1500000;
count(*)
5000
2000
select count(*) from innodb_compact t1, innodb_normal t2 where
t1.c1 = t2.c1 and t1.b = t2.b;
count(*)
2000
select count(*) from innodb_dynamic t1, innodb_normal t2 where
t1.c1 = t2.c1 and t1.b = t2.b;
count(*)
2000
select count(*) from innodb_compressed t1, innodb_normal t2 where
t1.c1 = t2.c1 and t1.b = t2.b;
count(*)
2000
select count(*) from innodb_redundant t1, innodb_normal t2 where
t1.c1 = t2.c1 and t1.b = t2.b;
count(*)
2000
SELECT variable_value = 0 FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_num_pages_page_encrypted';
variable_value = 0
1
...
...
mysql-test/suite/innodb/r/innodb-page_encryption_compression.result
View file @
093b232a
...
...
@@ -35,7 +35,7 @@ end while;
end//
commit;
set autocommit=0;
call innodb_insert_proc(
5
000);
call innodb_insert_proc(
2
000);
commit;
set autocommit=1;
insert into innodb_compact select * from innodb_normal;
...
...
@@ -45,13 +45,21 @@ update innodb_compact set c1 = c1 + 1;
update innodb_dynamic set c1 = c1 + 1;
select count(*) from innodb_normal;
count(*)
5
000
2
000
select count(*) from innodb_compact where c1 < 1500000;
count(*)
5
000
2
000
select count(*) from innodb_dynamic where c1 < 1500000;
count(*)
5000
2000
select count(*) from innodb_compact t1, innodb_normal t2 where
t1.c1 = t2.c1 and t1.b = t2.b;
count(*)
2000
select count(*) from innodb_dynamic t1, innodb_normal t2 where
t1.c1 = t2.c1 and t1.b = t2.b;
count(*)
2000
SELECT variable_value >= 0 FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_num_pages_page_encrypted';
variable_value >= 0
1
...
...
@@ -75,13 +83,21 @@ update innodb_compact set c1 = c1 + 1;
update innodb_dynamic set c1 = c1 + 1;
select count(*) from innodb_normal;
count(*)
5
000
2
000
select count(*) from innodb_compact where c1 < 1500000;
count(*)
5
000
2
000
select count(*) from innodb_dynamic where c1 < 1500000;
count(*)
5000
2000
select count(*) from innodb_compact t1, innodb_normal t2 where
t1.c1 = t2.c1 and t1.b = t2.b;
count(*)
2000
select count(*) from innodb_dynamic t1, innodb_normal t2 where
t1.c1 = t2.c1 and t1.b = t2.b;
count(*)
2000
SELECT variable_value >= 0 FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_num_pages_page_encrypted';
variable_value >= 0
1
...
...
@@ -93,7 +109,7 @@ variable_value = 0
1
SELECT variable_value > 0 FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_num_pages_page_compressed';
variable_value > 0
0
1
SELECT variable_value > 0 FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_num_pages_page_decompressed';
variable_value > 0
1
...
...
@@ -143,13 +159,21 @@ update innodb_compact set c1 = c1 + 1;
update innodb_dynamic set c1 = c1 + 1;
select count(*) from innodb_normal;
count(*)
5
000
2
000
select count(*) from innodb_compact where c1 < 1500000;
count(*)
5
000
2
000
select count(*) from innodb_dynamic where c1 < 1500000;
count(*)
5000
2000
select count(*) from innodb_compact t1, innodb_normal t2 where
t1.c1 = t2.c1 and t1.b = t2.b;
count(*)
2000
select count(*) from innodb_dynamic t1, innodb_normal t2 where
t1.c1 = t2.c1 and t1.b = t2.b;
count(*)
2000
SELECT variable_value = 0 FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_num_pages_page_encrypted';
variable_value = 0
1
...
...
mysql-test/suite/innodb/r/innodb_encryption-page-compression.result
0 → 100644
View file @
093b232a
SET GLOBAL innodb_file_format = `Barracuda`;
SET GLOBAL innodb_file_per_table = ON;
set global innodb_compression_algorithm = 1;
create table innodb_normal(c1 bigint not null, b char(200)) engine=innodb page_compressed=1;
ERROR HY000: Can't create table `test`.`innodb_normal` (errno: 140 "Wrong create options")
create table innodb_compact(c1 bigint not null, b char(200)) engine=innodb row_format=compact page_compressed=1;
ERROR HY000: Can't create table `test`.`innodb_compact` (errno: 140 "Wrong create options")
create table innodb_dynamic(c1 bigint not null, b char(200)) engine=innodb row_format=dynamic page_compressed=1;
ERROR HY000: Can't create table `test`.`innodb_dynamic` (errno: 140 "Wrong create options")
mysql-test/suite/innodb/r/innodb_encryption_tables.result
0 → 100644
View file @
093b232a
SET GLOBAL innodb_file_format = `Barracuda`;
SET GLOBAL innodb_file_per_table = ON;
create table innodb_normal(c1 bigint not null, b char(200)) engine=innodb;
create table innodb_compact(c1 bigint not null, b char(200)) engine=innodb row_format=compact;
create table innodb_dynamic(c1 bigint not null, b char(200)) engine=innodb row_format=dynamic;
create table innodb_compressed(c1 bigint not null, b char(200)) engine=innodb row_format=compressed;
create table innodb_redundant(c1 bigint not null, b char(200)) engine=innodb row_format=redundant;
show warnings;
Level Code Message
show create table innodb_normal;
Table Create Table
innodb_normal CREATE TABLE `innodb_normal` (
`c1` bigint(20) NOT NULL,
`b` char(200) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
show create table innodb_compact;
Table Create Table
innodb_compact CREATE TABLE `innodb_compact` (
`c1` bigint(20) NOT NULL,
`b` char(200) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT
show create table innodb_dynamic;
Table Create Table
innodb_dynamic CREATE TABLE `innodb_dynamic` (
`c1` bigint(20) NOT NULL,
`b` char(200) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
show create table innodb_compressed;
Table Create Table
innodb_compressed CREATE TABLE `innodb_compressed` (
`c1` bigint(20) NOT NULL,
`b` char(200) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED
show create table innodb_redundant;
Table Create Table
innodb_redundant CREATE TABLE `innodb_redundant` (
`c1` bigint(20) NOT NULL,
`b` char(200) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=REDUNDANT
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_normal values(current_num, substring(MD5(RAND()), -64));
set current_num = current_num + 1;
end while;
end//
commit;
set autocommit=0;
call innodb_insert_proc(2000);
commit;
set autocommit=1;
insert into innodb_compact select * from innodb_normal;
insert into innodb_dynamic select * from innodb_normal;
insert into innodb_compressed select * from innodb_normal;
insert into innodb_redundant select * from innodb_normal;
update innodb_normal set c1 = c1 + 1;
update innodb_compact set c1 = c1 + 1;
update innodb_dynamic set c1 = c1 + 1;
update innodb_compressed set c1 = c1 + 1;
update innodb_redundant set c1 = c1 + 1;
select count(*) from innodb_normal;
count(*)
2000
select count(*) from innodb_compact where c1 < 1500000;
count(*)
2000
select count(*) from innodb_dynamic where c1 < 1500000;
count(*)
2000
select count(*) from innodb_compressed where c1 < 1500000;
count(*)
2000
select count(*) from innodb_redundant where c1 < 1500000;
count(*)
2000
select count(*) from innodb_compact t1, innodb_normal t2 where
t1.c1 = t2.c1 and t1.b = t2.b;
count(*)
2000
select count(*) from innodb_dynamic t1, innodb_normal t2 where
t1.c1 = t2.c1 and t1.b = t2.b;
count(*)
2000
select count(*) from innodb_compressed t1, innodb_normal t2 where
t1.c1 = t2.c1 and t1.b = t2.b;
count(*)
2000
select count(*) from innodb_redundant t1, innodb_normal t2 where
t1.c1 = t2.c1 and t1.b = t2.b;
count(*)
2000
SELECT variable_value >= 0 FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_num_pages_page_encrypted';
variable_value >= 0
1
SELECT variable_value >= 0 FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_num_pages_page_decrypted';
variable_value >= 0
1
SELECT variable_value = 0 FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_num_pages_page_encryption_error';
variable_value = 0
1
SELECT variable_value >= 0 FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_num_pages_page_compressed';
variable_value >= 0
1
SELECT variable_value >= 0 FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_num_pages_page_decompressed';
variable_value >= 0
1
SET GLOBAL innodb_file_format = `Barracuda`;
SET GLOBAL innodb_file_per_table = ON;
update innodb_normal set c1 = c1 + 1;
update innodb_compact set c1 = c1 + 1;
update innodb_dynamic set c1 = c1 + 1;
update innodb_compressed set c1 = c1 + 1;
update innodb_redundant set c1 = c1 + 1;
select count(*) from innodb_normal;
count(*)
2000
select count(*) from innodb_compact where c1 < 1500000;
count(*)
2000
select count(*) from innodb_dynamic where c1 < 1500000;
count(*)
2000
select count(*) from innodb_compressed where c1 < 1500000;
count(*)
2000
select count(*) from innodb_redundant where c1 < 1500000;
count(*)
2000
select count(*) from innodb_compact t1, innodb_normal t2 where
t1.c1 = t2.c1 and t1.b = t2.b;
count(*)
2000
select count(*) from innodb_dynamic t1, innodb_normal t2 where
t1.c1 = t2.c1 and t1.b = t2.b;
count(*)
2000
select count(*) from innodb_compressed t1, innodb_normal t2 where
t1.c1 = t2.c1 and t1.b = t2.b;
count(*)
2000
select count(*) from innodb_redundant t1, innodb_normal t2 where
t1.c1 = t2.c1 and t1.b = t2.b;
count(*)
2000
SELECT variable_value >= 0 FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_num_pages_page_encrypted';
variable_value >= 0
1
SELECT variable_value >= 0 FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_num_pages_page_decrypted';
variable_value >= 0
1
SELECT variable_value = 0 FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_num_pages_page_encryption_error';
variable_value = 0
1
SELECT variable_value > 0 FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_num_pages_page_compressed';
variable_value > 0
0
SELECT variable_value > 0 FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_num_pages_page_decompressed';
variable_value > 0
0
drop procedure innodb_insert_proc;
drop table innodb_normal;
drop table innodb_compact;
drop table innodb_dynamic;
drop table innodb_compressed;
drop table innodb_redundant;
mysql-test/suite/innodb/t/innodb-page_encryption.test
View file @
093b232a
...
...
@@ -34,7 +34,7 @@ delimiter ;//
commit
;
set
autocommit
=
0
;
call
innodb_insert_proc
(
5
000
);
call
innodb_insert_proc
(
2
000
);
commit
;
set
autocommit
=
1
;
...
...
@@ -43,6 +43,7 @@ insert into innodb_compressed select * from innodb_normal;
insert
into
innodb_dynamic
select
*
from
innodb_normal
;
insert
into
innodb_redundant
select
*
from
innodb_normal
;
update
innodb_normal
set
c1
=
c1
+
1
;
update
innodb_compact
set
c1
=
c1
+
1
;
update
innodb_compressed
set
c1
=
c1
+
1
;
update
innodb_dynamic
set
c1
=
c1
+
1
;
...
...
@@ -51,6 +52,14 @@ select count(*) from innodb_compact where c1 < 1500000;
select
count
(
*
)
from
innodb_compressed
where
c1
<
1500000
;
select
count
(
*
)
from
innodb_dynamic
where
c1
<
1500000
;
select
count
(
*
)
from
innodb_redundant
where
c1
<
1500000
;
select
count
(
*
)
from
innodb_compact
t1
,
innodb_normal
t2
where
t1
.
c1
=
t2
.
c1
and
t1
.
b
=
t2
.
b
;
select
count
(
*
)
from
innodb_dynamic
t1
,
innodb_normal
t2
where
t1
.
c1
=
t2
.
c1
and
t1
.
b
=
t2
.
b
;
select
count
(
*
)
from
innodb_compressed
t1
,
innodb_normal
t2
where
t1
.
c1
=
t2
.
c1
and
t1
.
b
=
t2
.
b
;
select
count
(
*
)
from
innodb_redundant
t1
,
innodb_normal
t2
where
t1
.
c1
=
t2
.
c1
and
t1
.
b
=
t2
.
b
;
# Note there that these variables are updated only when real I/O is done, thus they are not reliable
SELECT
variable_value
>=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_encrypted'
;
...
...
@@ -62,6 +71,7 @@ SELECT variable_value = 0 FROM information_schema.global_status WHERE LOWER(vari
SET
GLOBAL
innodb_file_format
=
`Barracuda`
;
SET
GLOBAL
innodb_file_per_table
=
ON
;
update
innodb_normal
set
c1
=
c1
+
1
;
update
innodb_compact
set
c1
=
c1
+
1
;
update
innodb_compressed
set
c1
=
c1
+
1
;
update
innodb_dynamic
set
c1
=
c1
+
1
;
...
...
@@ -70,6 +80,14 @@ select count(*) from innodb_compact where c1 < 1500000;
select
count
(
*
)
from
innodb_compressed
where
c1
<
1500000
;
select
count
(
*
)
from
innodb_dynamic
where
c1
<
1500000
;
select
count
(
*
)
from
innodb_redundant
where
c1
<
1500000
;
select
count
(
*
)
from
innodb_compact
t1
,
innodb_normal
t2
where
t1
.
c1
=
t2
.
c1
and
t1
.
b
=
t2
.
b
;
select
count
(
*
)
from
innodb_dynamic
t1
,
innodb_normal
t2
where
t1
.
c1
=
t2
.
c1
and
t1
.
b
=
t2
.
b
;
select
count
(
*
)
from
innodb_compressed
t1
,
innodb_normal
t2
where
t1
.
c1
=
t2
.
c1
and
t1
.
b
=
t2
.
b
;
select
count
(
*
)
from
innodb_redundant
t1
,
innodb_normal
t2
where
t1
.
c1
=
t2
.
c1
and
t1
.
b
=
t2
.
b
;
SELECT
variable_value
>=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_encrypted'
;
SELECT
variable_value
>=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_decrypted'
;
...
...
@@ -94,6 +112,7 @@ show create table innodb_compressed;
show
create
table
innodb_dynamic
;
show
create
table
innodb_redundant
;
update
innodb_normal
set
c1
=
c1
+
1
;
update
innodb_compact
set
c1
=
c1
+
1
;
update
innodb_compressed
set
c1
=
c1
+
1
;
update
innodb_dynamic
set
c1
=
c1
+
1
;
...
...
@@ -102,6 +121,14 @@ select count(*) from innodb_compact where c1 < 1500000;
select
count
(
*
)
from
innodb_compressed
where
c1
<
1500000
;
select
count
(
*
)
from
innodb_dynamic
where
c1
<
1500000
;
select
count
(
*
)
from
innodb_redundant
where
c1
<
1500000
;
select
count
(
*
)
from
innodb_compact
t1
,
innodb_normal
t2
where
t1
.
c1
=
t2
.
c1
and
t1
.
b
=
t2
.
b
;
select
count
(
*
)
from
innodb_dynamic
t1
,
innodb_normal
t2
where
t1
.
c1
=
t2
.
c1
and
t1
.
b
=
t2
.
b
;
select
count
(
*
)
from
innodb_compressed
t1
,
innodb_normal
t2
where
t1
.
c1
=
t2
.
c1
and
t1
.
b
=
t2
.
b
;
select
count
(
*
)
from
innodb_redundant
t1
,
innodb_normal
t2
where
t1
.
c1
=
t2
.
c1
and
t1
.
b
=
t2
.
b
;
# After alter+restart these should be 0
SELECT
variable_value
=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_encrypted'
;
...
...
mysql-test/suite/innodb/t/innodb-page_encryption_compression.test
View file @
093b232a
...
...
@@ -35,7 +35,7 @@ delimiter ;//
commit
;
set
autocommit
=
0
;
call
innodb_insert_proc
(
5
000
);
call
innodb_insert_proc
(
2
000
);
commit
;
set
autocommit
=
1
;
...
...
@@ -48,6 +48,10 @@ update innodb_dynamic set c1 = c1 + 1;
select
count
(
*
)
from
innodb_normal
;
select
count
(
*
)
from
innodb_compact
where
c1
<
1500000
;
select
count
(
*
)
from
innodb_dynamic
where
c1
<
1500000
;
select
count
(
*
)
from
innodb_compact
t1
,
innodb_normal
t2
where
t1
.
c1
=
t2
.
c1
and
t1
.
b
=
t2
.
b
;
select
count
(
*
)
from
innodb_dynamic
t1
,
innodb_normal
t2
where
t1
.
c1
=
t2
.
c1
and
t1
.
b
=
t2
.
b
;
SELECT
variable_value
>=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_encrypted'
;
SELECT
variable_value
>=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_decrypted'
;
...
...
@@ -68,6 +72,10 @@ update innodb_dynamic set c1 = c1 + 1;
select
count
(
*
)
from
innodb_normal
;
select
count
(
*
)
from
innodb_compact
where
c1
<
1500000
;
select
count
(
*
)
from
innodb_dynamic
where
c1
<
1500000
;
select
count
(
*
)
from
innodb_compact
t1
,
innodb_normal
t2
where
t1
.
c1
=
t2
.
c1
and
t1
.
b
=
t2
.
b
;
select
count
(
*
)
from
innodb_dynamic
t1
,
innodb_normal
t2
where
t1
.
c1
=
t2
.
c1
and
t1
.
b
=
t2
.
b
;
SELECT
variable_value
>=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_encrypted'
;
SELECT
variable_value
>=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_decrypted'
;
...
...
@@ -97,6 +105,10 @@ update innodb_dynamic set c1 = c1 + 1;
select
count
(
*
)
from
innodb_normal
;
select
count
(
*
)
from
innodb_compact
where
c1
<
1500000
;
select
count
(
*
)
from
innodb_dynamic
where
c1
<
1500000
;
select
count
(
*
)
from
innodb_compact
t1
,
innodb_normal
t2
where
t1
.
c1
=
t2
.
c1
and
t1
.
b
=
t2
.
b
;
select
count
(
*
)
from
innodb_dynamic
t1
,
innodb_normal
t2
where
t1
.
c1
=
t2
.
c1
and
t1
.
b
=
t2
.
b
;
SELECT
variable_value
=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_encrypted'
;
SELECT
variable_value
=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_decrypted'
;
...
...
mysql-test/suite/innodb/t/innodb_encryption-page-compression.test
View file @
093b232a
...
...
@@ -16,102 +16,15 @@ SET GLOBAL innodb_file_per_table = ON;
# zlib
set
global
innodb_compression_algorithm
=
1
;
--
replace_regex
/
#sql-[0-9a-f_]*`/#sql-temporary`/
--
error
1005
create
table
innodb_normal
(
c1
bigint
not
null
,
b
char
(
200
))
engine
=
innodb
page_compressed
=
1
;
--
replace_regex
/
#sql-[0-9a-f_]*`/#sql-temporary`/
--
error
1005
create
table
innodb_compact
(
c1
bigint
not
null
,
b
char
(
200
))
engine
=
innodb
row_format
=
compact
page_compressed
=
1
;
--
replace_regex
/
#sql-[0-9a-f_]*`/#sql-temporary`/
--
error
1005
create
table
innodb_dynamic
(
c1
bigint
not
null
,
b
char
(
200
))
engine
=
innodb
row_format
=
dynamic
page_compressed
=
1
;
show
warnings
;
show
create
table
innodb_normal
;
show
create
table
innodb_compact
;
show
create
table
innodb_dynamic
;
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_normal
values
(
current_num
,
substring
(
MD5
(
RAND
()),
-
64
));
set
current_num
=
current_num
+
1
;
end
while
;
end
//
delimiter
;
//
commit
;
set
autocommit
=
0
;
call
innodb_insert_proc
(
5000
);
commit
;
set
autocommit
=
1
;
insert
into
innodb_compact
select
*
from
innodb_normal
;
insert
into
innodb_dynamic
select
*
from
innodb_normal
;
update
innodb_normal
set
c1
=
c1
+
1
;
update
innodb_compact
set
c1
=
c1
+
1
;
update
innodb_dynamic
set
c1
=
c1
+
1
;
select
count
(
*
)
from
innodb_normal
;
select
count
(
*
)
from
innodb_compact
where
c1
<
1500000
;
select
count
(
*
)
from
innodb_dynamic
where
c1
<
1500000
;
SELECT
variable_value
>=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_encrypted'
;
SELECT
variable_value
>=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_decrypted'
;
SELECT
variable_value
=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_encryption_error'
;
SELECT
variable_value
>=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_compressed'
;
SELECT
variable_value
>=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_decompressed'
;
--
source
include
/
restart_mysqld
.
inc
SET
GLOBAL
innodb_file_format
=
`Barracuda`
;
SET
GLOBAL
innodb_file_per_table
=
ON
;
# zlib
set
global
innodb_compression_algorithm
=
1
;
update
innodb_normal
set
c1
=
c1
+
1
;
update
innodb_compact
set
c1
=
c1
+
1
;
update
innodb_dynamic
set
c1
=
c1
+
1
;
select
count
(
*
)
from
innodb_normal
;
select
count
(
*
)
from
innodb_compact
where
c1
<
1500000
;
select
count
(
*
)
from
innodb_dynamic
where
c1
<
1500000
;
SELECT
variable_value
>=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_encrypted'
;
SELECT
variable_value
>=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_decrypted'
;
SELECT
variable_value
=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_encryption_error'
;
SELECT
variable_value
>
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_compressed'
;
SELECT
variable_value
>
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_decompressed'
;
alter
table
innodb_normal
engine
=
innodb
page_compressed
=
DEFAULT
;
show
create
table
innodb_normal
;
alter
table
innodb_compact
engine
=
innodb
page_compressed
=
DEFAULT
;
show
create
table
innodb_compact
;
alter
table
innodb_dynamic
engine
=
innodb
page_compressed
=
DEFAULT
;
show
create
table
innodb_dynamic
;
--
source
include
/
restart_mysqld
.
inc
SET
GLOBAL
innodb_file_format
=
`Barracuda`
;
SET
GLOBAL
innodb_file_per_table
=
ON
;
show
create
table
innodb_normal
;
show
create
table
innodb_compact
;
show
create
table
innodb_dynamic
;
update
innodb_normal
set
c1
=
c1
+
1
;
update
innodb_compact
set
c1
=
c1
+
1
;
update
innodb_dynamic
set
c1
=
c1
+
1
;
select
count
(
*
)
from
innodb_normal
;
select
count
(
*
)
from
innodb_compact
where
c1
<
1500000
;
select
count
(
*
)
from
innodb_dynamic
where
c1
<
1500000
;
SELECT
variable_value
=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_encrypted'
;
SELECT
variable_value
=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_decrypted'
;
SELECT
variable_value
=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_encryption_error'
;
SELECT
variable_value
=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_compressed'
;
SELECT
variable_value
=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_decompressed'
;
drop
procedure
innodb_insert_proc
;
drop
table
innodb_normal
;
drop
table
innodb_compact
;
drop
table
innodb_dynamic
;
# reset system
--
disable_query_log
...
...
mysql-test/suite/innodb/t/innodb_encryption_tables.opt
0 → 100644
View file @
093b232a
--aria-encrypt-tables=ON
--encrypt-tmp-disk-tables=ON
--innodb-encrypt-tables=ON
--innodb-encryption-rotate-key-age=15
--innodb-encryption-threads=4
--innodb-tablespaces-encryption
mysql-test/suite/innodb/t/innodb_encryption_tables.test
0 → 100644
View file @
093b232a
--
source
include
/
have_innodb
.
inc
--
source
include
/
have_example_key_management_plugin
.
inc
--
source
include
/
have_openssl_ctr
.
inc
--
source
include
/
not_embedded
.
inc
--
disable_query_log
let
$innodb_file_format_orig
=
`SELECT @@innodb_file_format`
;
let
$innodb_file_per_table_orig
=
`SELECT @@innodb_file_per_table`
;
--
enable_query_log
SET
GLOBAL
innodb_file_format
=
`Barracuda`
;
SET
GLOBAL
innodb_file_per_table
=
ON
;
create
table
innodb_normal
(
c1
bigint
not
null
,
b
char
(
200
))
engine
=
innodb
;
create
table
innodb_compact
(
c1
bigint
not
null
,
b
char
(
200
))
engine
=
innodb
row_format
=
compact
;
create
table
innodb_dynamic
(
c1
bigint
not
null
,
b
char
(
200
))
engine
=
innodb
row_format
=
dynamic
;
create
table
innodb_compressed
(
c1
bigint
not
null
,
b
char
(
200
))
engine
=
innodb
row_format
=
compressed
;
create
table
innodb_redundant
(
c1
bigint
not
null
,
b
char
(
200
))
engine
=
innodb
row_format
=
redundant
;
show
warnings
;
show
create
table
innodb_normal
;
show
create
table
innodb_compact
;
show
create
table
innodb_dynamic
;
show
create
table
innodb_compressed
;
show
create
table
innodb_redundant
;
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_normal
values
(
current_num
,
substring
(
MD5
(
RAND
()),
-
64
));
set
current_num
=
current_num
+
1
;
end
while
;
end
//
delimiter
;
//
commit
;
set
autocommit
=
0
;
call
innodb_insert_proc
(
2000
);
commit
;
set
autocommit
=
1
;
insert
into
innodb_compact
select
*
from
innodb_normal
;
insert
into
innodb_dynamic
select
*
from
innodb_normal
;
insert
into
innodb_compressed
select
*
from
innodb_normal
;
insert
into
innodb_redundant
select
*
from
innodb_normal
;
update
innodb_normal
set
c1
=
c1
+
1
;
update
innodb_compact
set
c1
=
c1
+
1
;
update
innodb_dynamic
set
c1
=
c1
+
1
;
update
innodb_compressed
set
c1
=
c1
+
1
;
update
innodb_redundant
set
c1
=
c1
+
1
;
select
count
(
*
)
from
innodb_normal
;
select
count
(
*
)
from
innodb_compact
where
c1
<
1500000
;
select
count
(
*
)
from
innodb_dynamic
where
c1
<
1500000
;
select
count
(
*
)
from
innodb_compressed
where
c1
<
1500000
;
select
count
(
*
)
from
innodb_redundant
where
c1
<
1500000
;
select
count
(
*
)
from
innodb_compact
t1
,
innodb_normal
t2
where
t1
.
c1
=
t2
.
c1
and
t1
.
b
=
t2
.
b
;
select
count
(
*
)
from
innodb_dynamic
t1
,
innodb_normal
t2
where
t1
.
c1
=
t2
.
c1
and
t1
.
b
=
t2
.
b
;
select
count
(
*
)
from
innodb_compressed
t1
,
innodb_normal
t2
where
t1
.
c1
=
t2
.
c1
and
t1
.
b
=
t2
.
b
;
select
count
(
*
)
from
innodb_redundant
t1
,
innodb_normal
t2
where
t1
.
c1
=
t2
.
c1
and
t1
.
b
=
t2
.
b
;
SELECT
variable_value
>=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_encrypted'
;
SELECT
variable_value
>=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_decrypted'
;
SELECT
variable_value
=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_encryption_error'
;
SELECT
variable_value
>=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_compressed'
;
SELECT
variable_value
>=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_decompressed'
;
--
source
include
/
restart_mysqld
.
inc
SET
GLOBAL
innodb_file_format
=
`Barracuda`
;
SET
GLOBAL
innodb_file_per_table
=
ON
;
update
innodb_normal
set
c1
=
c1
+
1
;
update
innodb_compact
set
c1
=
c1
+
1
;
update
innodb_dynamic
set
c1
=
c1
+
1
;
update
innodb_compressed
set
c1
=
c1
+
1
;
update
innodb_redundant
set
c1
=
c1
+
1
;
select
count
(
*
)
from
innodb_normal
;
select
count
(
*
)
from
innodb_compact
where
c1
<
1500000
;
select
count
(
*
)
from
innodb_dynamic
where
c1
<
1500000
;
select
count
(
*
)
from
innodb_compressed
where
c1
<
1500000
;
select
count
(
*
)
from
innodb_redundant
where
c1
<
1500000
;
select
count
(
*
)
from
innodb_compact
t1
,
innodb_normal
t2
where
t1
.
c1
=
t2
.
c1
and
t1
.
b
=
t2
.
b
;
select
count
(
*
)
from
innodb_dynamic
t1
,
innodb_normal
t2
where
t1
.
c1
=
t2
.
c1
and
t1
.
b
=
t2
.
b
;
select
count
(
*
)
from
innodb_compressed
t1
,
innodb_normal
t2
where
t1
.
c1
=
t2
.
c1
and
t1
.
b
=
t2
.
b
;
select
count
(
*
)
from
innodb_redundant
t1
,
innodb_normal
t2
where
t1
.
c1
=
t2
.
c1
and
t1
.
b
=
t2
.
b
;
SELECT
variable_value
>=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_encrypted'
;
SELECT
variable_value
>=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_decrypted'
;
SELECT
variable_value
=
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_encryption_error'
;
SELECT
variable_value
>
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_compressed'
;
SELECT
variable_value
>
0
FROM
information_schema
.
global_status
WHERE
LOWER
(
variable_name
)
=
'innodb_num_pages_page_decompressed'
;
drop
procedure
innodb_insert_proc
;
drop
table
innodb_normal
;
drop
table
innodb_compact
;
drop
table
innodb_dynamic
;
drop
table
innodb_compressed
;
drop
table
innodb_redundant
;
# reset system
--
disable_query_log
EVAL
SET
GLOBAL
innodb_file_per_table
=
$innodb_file_per_table_orig
;
EVAL
SET
GLOBAL
innodb_file_format
=
$innodb_file_format_orig
;
--
enable_query_log
storage/innobase/handler/ha_innodb.cc
View file @
093b232a
...
...
@@ -11286,6 +11286,14 @@ ha_innobase::check_table_options(
/* Check page compression requirements */
if
(
options
->
page_compressed
)
{
if
(
srv_encrypt_tables
)
{
push_warning
(
thd
,
Sql_condition
::
WARN_LEVEL_WARN
,
HA_WRONG_CREATE_OPTION
,
"InnoDB: PAGE_COMPRESSION not available if innodb_encrypt_tables=ON"
);
return
"PAGE_COMPRESSED"
;
}
if
(
row_format
==
ROW_TYPE_COMPRESSED
)
{
push_warning
(
thd
,
Sql_condition
::
WARN_LEVEL_WARN
,
...
...
storage/xtradb/handler/ha_innodb.cc
View file @
093b232a
...
...
@@ -11803,6 +11803,14 @@ ha_innobase::check_table_options(
/* Check page compression requirements */
if
(
options
->
page_compressed
)
{
if
(
srv_encrypt_tables
)
{
push_warning
(
thd
,
Sql_condition
::
WARN_LEVEL_WARN
,
HA_WRONG_CREATE_OPTION
,
"InnoDB: PAGE_COMPRESSION not available if innodb_encrypt_tables=ON"
);
return
"PAGE_COMPRESSED"
;
}
if
(
row_format
==
ROW_TYPE_COMPRESSED
)
{
push_warning
(
thd
,
Sql_condition
::
WARN_LEVEL_WARN
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment