summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThirunarayanan Balathandayuthapani <thiru@mariadb.com>2019-04-25 16:42:11 +0530
committerThirunarayanan Balathandayuthapani <thiru@mariadb.com>2019-04-25 16:42:11 +0530
commit3a9fd58d469dba274b6d78f6fd286a86d037b4c5 (patch)
tree96312895113fbcea9ede3b88d670b207cb3efcf2
parent63dca232b7fc7ef5d76bb4b385768e43526f463e (diff)
downloadmariadb-git-bb-10.4-MDEV-14398.tar.gz
- Fixed all the test case failures.bb-10.4-MDEV-14398
-rw-r--r--mysql-test/suite/encryption/r/innodb_lotoftables.result708
-rw-r--r--mysql-test/suite/encryption/t/innodb_lotoftables.test8
-rw-r--r--storage/innobase/fil/fil0fil.cc60
3 files changed, 744 insertions, 32 deletions
diff --git a/mysql-test/suite/encryption/r/innodb_lotoftables.result b/mysql-test/suite/encryption/r/innodb_lotoftables.result
index 3de38dc59ea..82ba21e01f3 100644
--- a/mysql-test/suite/encryption/r/innodb_lotoftables.result
+++ b/mysql-test/suite/encryption/r/innodb_lotoftables.result
@@ -11,9 +11,109 @@ use innodb_encrypted_1;
set autocommit=0;
set autocommit=1;
commit work;
-# should be empty
-SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE NAME LIKE 'innodb_encrypted%';
+# should have 100 tables which are not encrypted
+SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE NAME LIKE 'innodb_encrypted%' and min_key_version = 0;
NAME
+innodb_encrypted_1/t_100
+innodb_encrypted_1/t_99
+innodb_encrypted_1/t_98
+innodb_encrypted_1/t_97
+innodb_encrypted_1/t_96
+innodb_encrypted_1/t_95
+innodb_encrypted_1/t_94
+innodb_encrypted_1/t_93
+innodb_encrypted_1/t_92
+innodb_encrypted_1/t_91
+innodb_encrypted_1/t_90
+innodb_encrypted_1/t_89
+innodb_encrypted_1/t_88
+innodb_encrypted_1/t_87
+innodb_encrypted_1/t_86
+innodb_encrypted_1/t_85
+innodb_encrypted_1/t_84
+innodb_encrypted_1/t_83
+innodb_encrypted_1/t_82
+innodb_encrypted_1/t_81
+innodb_encrypted_1/t_80
+innodb_encrypted_1/t_79
+innodb_encrypted_1/t_78
+innodb_encrypted_1/t_77
+innodb_encrypted_1/t_76
+innodb_encrypted_1/t_75
+innodb_encrypted_1/t_74
+innodb_encrypted_1/t_73
+innodb_encrypted_1/t_72
+innodb_encrypted_1/t_71
+innodb_encrypted_1/t_70
+innodb_encrypted_1/t_69
+innodb_encrypted_1/t_68
+innodb_encrypted_1/t_67
+innodb_encrypted_1/t_66
+innodb_encrypted_1/t_65
+innodb_encrypted_1/t_64
+innodb_encrypted_1/t_63
+innodb_encrypted_1/t_62
+innodb_encrypted_1/t_61
+innodb_encrypted_1/t_60
+innodb_encrypted_1/t_59
+innodb_encrypted_1/t_58
+innodb_encrypted_1/t_57
+innodb_encrypted_1/t_56
+innodb_encrypted_1/t_55
+innodb_encrypted_1/t_54
+innodb_encrypted_1/t_53
+innodb_encrypted_1/t_52
+innodb_encrypted_1/t_51
+innodb_encrypted_1/t_50
+innodb_encrypted_1/t_49
+innodb_encrypted_1/t_48
+innodb_encrypted_1/t_47
+innodb_encrypted_1/t_46
+innodb_encrypted_1/t_45
+innodb_encrypted_1/t_44
+innodb_encrypted_1/t_43
+innodb_encrypted_1/t_42
+innodb_encrypted_1/t_41
+innodb_encrypted_1/t_40
+innodb_encrypted_1/t_39
+innodb_encrypted_1/t_38
+innodb_encrypted_1/t_37
+innodb_encrypted_1/t_36
+innodb_encrypted_1/t_35
+innodb_encrypted_1/t_34
+innodb_encrypted_1/t_33
+innodb_encrypted_1/t_32
+innodb_encrypted_1/t_31
+innodb_encrypted_1/t_30
+innodb_encrypted_1/t_29
+innodb_encrypted_1/t_28
+innodb_encrypted_1/t_27
+innodb_encrypted_1/t_26
+innodb_encrypted_1/t_25
+innodb_encrypted_1/t_24
+innodb_encrypted_1/t_23
+innodb_encrypted_1/t_22
+innodb_encrypted_1/t_21
+innodb_encrypted_1/t_20
+innodb_encrypted_1/t_19
+innodb_encrypted_1/t_18
+innodb_encrypted_1/t_17
+innodb_encrypted_1/t_16
+innodb_encrypted_1/t_15
+innodb_encrypted_1/t_14
+innodb_encrypted_1/t_13
+innodb_encrypted_1/t_12
+innodb_encrypted_1/t_11
+innodb_encrypted_1/t_10
+innodb_encrypted_1/t_9
+innodb_encrypted_1/t_8
+innodb_encrypted_1/t_7
+innodb_encrypted_1/t_6
+innodb_encrypted_1/t_5
+innodb_encrypted_1/t_4
+innodb_encrypted_1/t_3
+innodb_encrypted_1/t_2
+innodb_encrypted_1/t_1
create database innodb_encrypted_2;
use innodb_encrypted_2;
set autocommit=0;
@@ -122,9 +222,109 @@ innodb_encrypted_2/t_96
innodb_encrypted_2/t_97
innodb_encrypted_2/t_98
innodb_encrypted_2/t_99
-# should contain 0 tables
+# should contain 100 tables
SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0 AND NAME LIKE 'innodb_encrypted%' ORDER BY NAME;
NAME
+innodb_encrypted_1/t_1
+innodb_encrypted_1/t_10
+innodb_encrypted_1/t_100
+innodb_encrypted_1/t_11
+innodb_encrypted_1/t_12
+innodb_encrypted_1/t_13
+innodb_encrypted_1/t_14
+innodb_encrypted_1/t_15
+innodb_encrypted_1/t_16
+innodb_encrypted_1/t_17
+innodb_encrypted_1/t_18
+innodb_encrypted_1/t_19
+innodb_encrypted_1/t_2
+innodb_encrypted_1/t_20
+innodb_encrypted_1/t_21
+innodb_encrypted_1/t_22
+innodb_encrypted_1/t_23
+innodb_encrypted_1/t_24
+innodb_encrypted_1/t_25
+innodb_encrypted_1/t_26
+innodb_encrypted_1/t_27
+innodb_encrypted_1/t_28
+innodb_encrypted_1/t_29
+innodb_encrypted_1/t_3
+innodb_encrypted_1/t_30
+innodb_encrypted_1/t_31
+innodb_encrypted_1/t_32
+innodb_encrypted_1/t_33
+innodb_encrypted_1/t_34
+innodb_encrypted_1/t_35
+innodb_encrypted_1/t_36
+innodb_encrypted_1/t_37
+innodb_encrypted_1/t_38
+innodb_encrypted_1/t_39
+innodb_encrypted_1/t_4
+innodb_encrypted_1/t_40
+innodb_encrypted_1/t_41
+innodb_encrypted_1/t_42
+innodb_encrypted_1/t_43
+innodb_encrypted_1/t_44
+innodb_encrypted_1/t_45
+innodb_encrypted_1/t_46
+innodb_encrypted_1/t_47
+innodb_encrypted_1/t_48
+innodb_encrypted_1/t_49
+innodb_encrypted_1/t_5
+innodb_encrypted_1/t_50
+innodb_encrypted_1/t_51
+innodb_encrypted_1/t_52
+innodb_encrypted_1/t_53
+innodb_encrypted_1/t_54
+innodb_encrypted_1/t_55
+innodb_encrypted_1/t_56
+innodb_encrypted_1/t_57
+innodb_encrypted_1/t_58
+innodb_encrypted_1/t_59
+innodb_encrypted_1/t_6
+innodb_encrypted_1/t_60
+innodb_encrypted_1/t_61
+innodb_encrypted_1/t_62
+innodb_encrypted_1/t_63
+innodb_encrypted_1/t_64
+innodb_encrypted_1/t_65
+innodb_encrypted_1/t_66
+innodb_encrypted_1/t_67
+innodb_encrypted_1/t_68
+innodb_encrypted_1/t_69
+innodb_encrypted_1/t_7
+innodb_encrypted_1/t_70
+innodb_encrypted_1/t_71
+innodb_encrypted_1/t_72
+innodb_encrypted_1/t_73
+innodb_encrypted_1/t_74
+innodb_encrypted_1/t_75
+innodb_encrypted_1/t_76
+innodb_encrypted_1/t_77
+innodb_encrypted_1/t_78
+innodb_encrypted_1/t_79
+innodb_encrypted_1/t_8
+innodb_encrypted_1/t_80
+innodb_encrypted_1/t_81
+innodb_encrypted_1/t_82
+innodb_encrypted_1/t_83
+innodb_encrypted_1/t_84
+innodb_encrypted_1/t_85
+innodb_encrypted_1/t_86
+innodb_encrypted_1/t_87
+innodb_encrypted_1/t_88
+innodb_encrypted_1/t_89
+innodb_encrypted_1/t_9
+innodb_encrypted_1/t_90
+innodb_encrypted_1/t_91
+innodb_encrypted_1/t_92
+innodb_encrypted_1/t_93
+innodb_encrypted_1/t_94
+innodb_encrypted_1/t_95
+innodb_encrypted_1/t_96
+innodb_encrypted_1/t_97
+innodb_encrypted_1/t_98
+innodb_encrypted_1/t_99
create database innodb_encrypted_3;
use innodb_encrypted_3;
set autocommit=0;
@@ -234,8 +434,108 @@ innodb_encrypted_2/t_97
innodb_encrypted_2/t_98
innodb_encrypted_2/t_99
# should contain 100 tables
-SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0 AND NAME LIKE 'innodb_encrypted%' ORDER BY NAME;
+SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0 and NAME LIKE 'innodb_encrypted%' ORDER BY NAME;
NAME
+innodb_encrypted_1/t_1
+innodb_encrypted_1/t_10
+innodb_encrypted_1/t_100
+innodb_encrypted_1/t_11
+innodb_encrypted_1/t_12
+innodb_encrypted_1/t_13
+innodb_encrypted_1/t_14
+innodb_encrypted_1/t_15
+innodb_encrypted_1/t_16
+innodb_encrypted_1/t_17
+innodb_encrypted_1/t_18
+innodb_encrypted_1/t_19
+innodb_encrypted_1/t_2
+innodb_encrypted_1/t_20
+innodb_encrypted_1/t_21
+innodb_encrypted_1/t_22
+innodb_encrypted_1/t_23
+innodb_encrypted_1/t_24
+innodb_encrypted_1/t_25
+innodb_encrypted_1/t_26
+innodb_encrypted_1/t_27
+innodb_encrypted_1/t_28
+innodb_encrypted_1/t_29
+innodb_encrypted_1/t_3
+innodb_encrypted_1/t_30
+innodb_encrypted_1/t_31
+innodb_encrypted_1/t_32
+innodb_encrypted_1/t_33
+innodb_encrypted_1/t_34
+innodb_encrypted_1/t_35
+innodb_encrypted_1/t_36
+innodb_encrypted_1/t_37
+innodb_encrypted_1/t_38
+innodb_encrypted_1/t_39
+innodb_encrypted_1/t_4
+innodb_encrypted_1/t_40
+innodb_encrypted_1/t_41
+innodb_encrypted_1/t_42
+innodb_encrypted_1/t_43
+innodb_encrypted_1/t_44
+innodb_encrypted_1/t_45
+innodb_encrypted_1/t_46
+innodb_encrypted_1/t_47
+innodb_encrypted_1/t_48
+innodb_encrypted_1/t_49
+innodb_encrypted_1/t_5
+innodb_encrypted_1/t_50
+innodb_encrypted_1/t_51
+innodb_encrypted_1/t_52
+innodb_encrypted_1/t_53
+innodb_encrypted_1/t_54
+innodb_encrypted_1/t_55
+innodb_encrypted_1/t_56
+innodb_encrypted_1/t_57
+innodb_encrypted_1/t_58
+innodb_encrypted_1/t_59
+innodb_encrypted_1/t_6
+innodb_encrypted_1/t_60
+innodb_encrypted_1/t_61
+innodb_encrypted_1/t_62
+innodb_encrypted_1/t_63
+innodb_encrypted_1/t_64
+innodb_encrypted_1/t_65
+innodb_encrypted_1/t_66
+innodb_encrypted_1/t_67
+innodb_encrypted_1/t_68
+innodb_encrypted_1/t_69
+innodb_encrypted_1/t_7
+innodb_encrypted_1/t_70
+innodb_encrypted_1/t_71
+innodb_encrypted_1/t_72
+innodb_encrypted_1/t_73
+innodb_encrypted_1/t_74
+innodb_encrypted_1/t_75
+innodb_encrypted_1/t_76
+innodb_encrypted_1/t_77
+innodb_encrypted_1/t_78
+innodb_encrypted_1/t_79
+innodb_encrypted_1/t_8
+innodb_encrypted_1/t_80
+innodb_encrypted_1/t_81
+innodb_encrypted_1/t_82
+innodb_encrypted_1/t_83
+innodb_encrypted_1/t_84
+innodb_encrypted_1/t_85
+innodb_encrypted_1/t_86
+innodb_encrypted_1/t_87
+innodb_encrypted_1/t_88
+innodb_encrypted_1/t_89
+innodb_encrypted_1/t_9
+innodb_encrypted_1/t_90
+innodb_encrypted_1/t_91
+innodb_encrypted_1/t_92
+innodb_encrypted_1/t_93
+innodb_encrypted_1/t_94
+innodb_encrypted_1/t_95
+innodb_encrypted_1/t_96
+innodb_encrypted_1/t_97
+innodb_encrypted_1/t_98
+innodb_encrypted_1/t_99
innodb_encrypted_3/t_1
innodb_encrypted_3/t_10
innodb_encrypted_3/t_100
@@ -441,6 +741,106 @@ innodb_encrypted_2/t_98
innodb_encrypted_2/t_99
SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0 AND NAME LIKE 'innodb_encrypted%' ORDER BY NAME;
NAME
+innodb_encrypted_1/t_1
+innodb_encrypted_1/t_10
+innodb_encrypted_1/t_100
+innodb_encrypted_1/t_11
+innodb_encrypted_1/t_12
+innodb_encrypted_1/t_13
+innodb_encrypted_1/t_14
+innodb_encrypted_1/t_15
+innodb_encrypted_1/t_16
+innodb_encrypted_1/t_17
+innodb_encrypted_1/t_18
+innodb_encrypted_1/t_19
+innodb_encrypted_1/t_2
+innodb_encrypted_1/t_20
+innodb_encrypted_1/t_21
+innodb_encrypted_1/t_22
+innodb_encrypted_1/t_23
+innodb_encrypted_1/t_24
+innodb_encrypted_1/t_25
+innodb_encrypted_1/t_26
+innodb_encrypted_1/t_27
+innodb_encrypted_1/t_28
+innodb_encrypted_1/t_29
+innodb_encrypted_1/t_3
+innodb_encrypted_1/t_30
+innodb_encrypted_1/t_31
+innodb_encrypted_1/t_32
+innodb_encrypted_1/t_33
+innodb_encrypted_1/t_34
+innodb_encrypted_1/t_35
+innodb_encrypted_1/t_36
+innodb_encrypted_1/t_37
+innodb_encrypted_1/t_38
+innodb_encrypted_1/t_39
+innodb_encrypted_1/t_4
+innodb_encrypted_1/t_40
+innodb_encrypted_1/t_41
+innodb_encrypted_1/t_42
+innodb_encrypted_1/t_43
+innodb_encrypted_1/t_44
+innodb_encrypted_1/t_45
+innodb_encrypted_1/t_46
+innodb_encrypted_1/t_47
+innodb_encrypted_1/t_48
+innodb_encrypted_1/t_49
+innodb_encrypted_1/t_5
+innodb_encrypted_1/t_50
+innodb_encrypted_1/t_51
+innodb_encrypted_1/t_52
+innodb_encrypted_1/t_53
+innodb_encrypted_1/t_54
+innodb_encrypted_1/t_55
+innodb_encrypted_1/t_56
+innodb_encrypted_1/t_57
+innodb_encrypted_1/t_58
+innodb_encrypted_1/t_59
+innodb_encrypted_1/t_6
+innodb_encrypted_1/t_60
+innodb_encrypted_1/t_61
+innodb_encrypted_1/t_62
+innodb_encrypted_1/t_63
+innodb_encrypted_1/t_64
+innodb_encrypted_1/t_65
+innodb_encrypted_1/t_66
+innodb_encrypted_1/t_67
+innodb_encrypted_1/t_68
+innodb_encrypted_1/t_69
+innodb_encrypted_1/t_7
+innodb_encrypted_1/t_70
+innodb_encrypted_1/t_71
+innodb_encrypted_1/t_72
+innodb_encrypted_1/t_73
+innodb_encrypted_1/t_74
+innodb_encrypted_1/t_75
+innodb_encrypted_1/t_76
+innodb_encrypted_1/t_77
+innodb_encrypted_1/t_78
+innodb_encrypted_1/t_79
+innodb_encrypted_1/t_8
+innodb_encrypted_1/t_80
+innodb_encrypted_1/t_81
+innodb_encrypted_1/t_82
+innodb_encrypted_1/t_83
+innodb_encrypted_1/t_84
+innodb_encrypted_1/t_85
+innodb_encrypted_1/t_86
+innodb_encrypted_1/t_87
+innodb_encrypted_1/t_88
+innodb_encrypted_1/t_89
+innodb_encrypted_1/t_9
+innodb_encrypted_1/t_90
+innodb_encrypted_1/t_91
+innodb_encrypted_1/t_92
+innodb_encrypted_1/t_93
+innodb_encrypted_1/t_94
+innodb_encrypted_1/t_95
+innodb_encrypted_1/t_96
+innodb_encrypted_1/t_97
+innodb_encrypted_1/t_98
+innodb_encrypted_1/t_99
innodb_encrypted_3/t_1
innodb_encrypted_3/t_10
innodb_encrypted_3/t_100
@@ -647,6 +1047,106 @@ innodb_encrypted_2/t_98
innodb_encrypted_2/t_99
SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0 AND NAME LIKE 'innodb_encrypted%' ORDER BY NAME;
NAME
+innodb_encrypted_1/t_1
+innodb_encrypted_1/t_10
+innodb_encrypted_1/t_100
+innodb_encrypted_1/t_11
+innodb_encrypted_1/t_12
+innodb_encrypted_1/t_13
+innodb_encrypted_1/t_14
+innodb_encrypted_1/t_15
+innodb_encrypted_1/t_16
+innodb_encrypted_1/t_17
+innodb_encrypted_1/t_18
+innodb_encrypted_1/t_19
+innodb_encrypted_1/t_2
+innodb_encrypted_1/t_20
+innodb_encrypted_1/t_21
+innodb_encrypted_1/t_22
+innodb_encrypted_1/t_23
+innodb_encrypted_1/t_24
+innodb_encrypted_1/t_25
+innodb_encrypted_1/t_26
+innodb_encrypted_1/t_27
+innodb_encrypted_1/t_28
+innodb_encrypted_1/t_29
+innodb_encrypted_1/t_3
+innodb_encrypted_1/t_30
+innodb_encrypted_1/t_31
+innodb_encrypted_1/t_32
+innodb_encrypted_1/t_33
+innodb_encrypted_1/t_34
+innodb_encrypted_1/t_35
+innodb_encrypted_1/t_36
+innodb_encrypted_1/t_37
+innodb_encrypted_1/t_38
+innodb_encrypted_1/t_39
+innodb_encrypted_1/t_4
+innodb_encrypted_1/t_40
+innodb_encrypted_1/t_41
+innodb_encrypted_1/t_42
+innodb_encrypted_1/t_43
+innodb_encrypted_1/t_44
+innodb_encrypted_1/t_45
+innodb_encrypted_1/t_46
+innodb_encrypted_1/t_47
+innodb_encrypted_1/t_48
+innodb_encrypted_1/t_49
+innodb_encrypted_1/t_5
+innodb_encrypted_1/t_50
+innodb_encrypted_1/t_51
+innodb_encrypted_1/t_52
+innodb_encrypted_1/t_53
+innodb_encrypted_1/t_54
+innodb_encrypted_1/t_55
+innodb_encrypted_1/t_56
+innodb_encrypted_1/t_57
+innodb_encrypted_1/t_58
+innodb_encrypted_1/t_59
+innodb_encrypted_1/t_6
+innodb_encrypted_1/t_60
+innodb_encrypted_1/t_61
+innodb_encrypted_1/t_62
+innodb_encrypted_1/t_63
+innodb_encrypted_1/t_64
+innodb_encrypted_1/t_65
+innodb_encrypted_1/t_66
+innodb_encrypted_1/t_67
+innodb_encrypted_1/t_68
+innodb_encrypted_1/t_69
+innodb_encrypted_1/t_7
+innodb_encrypted_1/t_70
+innodb_encrypted_1/t_71
+innodb_encrypted_1/t_72
+innodb_encrypted_1/t_73
+innodb_encrypted_1/t_74
+innodb_encrypted_1/t_75
+innodb_encrypted_1/t_76
+innodb_encrypted_1/t_77
+innodb_encrypted_1/t_78
+innodb_encrypted_1/t_79
+innodb_encrypted_1/t_8
+innodb_encrypted_1/t_80
+innodb_encrypted_1/t_81
+innodb_encrypted_1/t_82
+innodb_encrypted_1/t_83
+innodb_encrypted_1/t_84
+innodb_encrypted_1/t_85
+innodb_encrypted_1/t_86
+innodb_encrypted_1/t_87
+innodb_encrypted_1/t_88
+innodb_encrypted_1/t_89
+innodb_encrypted_1/t_9
+innodb_encrypted_1/t_90
+innodb_encrypted_1/t_91
+innodb_encrypted_1/t_92
+innodb_encrypted_1/t_93
+innodb_encrypted_1/t_94
+innodb_encrypted_1/t_95
+innodb_encrypted_1/t_96
+innodb_encrypted_1/t_97
+innodb_encrypted_1/t_98
+innodb_encrypted_1/t_99
innodb_encrypted_3/t_1
innodb_encrypted_3/t_10
innodb_encrypted_3/t_100
@@ -755,6 +1255,106 @@ use innodb_encrypted_2;
use innodb_encrypted_3;
SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0 AND NAME LIKE 'innodb_encrypted%' ORDER BY NAME;
NAME
+innodb_encrypted_1/t_1
+innodb_encrypted_1/t_10
+innodb_encrypted_1/t_100
+innodb_encrypted_1/t_11
+innodb_encrypted_1/t_12
+innodb_encrypted_1/t_13
+innodb_encrypted_1/t_14
+innodb_encrypted_1/t_15
+innodb_encrypted_1/t_16
+innodb_encrypted_1/t_17
+innodb_encrypted_1/t_18
+innodb_encrypted_1/t_19
+innodb_encrypted_1/t_2
+innodb_encrypted_1/t_20
+innodb_encrypted_1/t_21
+innodb_encrypted_1/t_22
+innodb_encrypted_1/t_23
+innodb_encrypted_1/t_24
+innodb_encrypted_1/t_25
+innodb_encrypted_1/t_26
+innodb_encrypted_1/t_27
+innodb_encrypted_1/t_28
+innodb_encrypted_1/t_29
+innodb_encrypted_1/t_3
+innodb_encrypted_1/t_30
+innodb_encrypted_1/t_31
+innodb_encrypted_1/t_32
+innodb_encrypted_1/t_33
+innodb_encrypted_1/t_34
+innodb_encrypted_1/t_35
+innodb_encrypted_1/t_36
+innodb_encrypted_1/t_37
+innodb_encrypted_1/t_38
+innodb_encrypted_1/t_39
+innodb_encrypted_1/t_4
+innodb_encrypted_1/t_40
+innodb_encrypted_1/t_41
+innodb_encrypted_1/t_42
+innodb_encrypted_1/t_43
+innodb_encrypted_1/t_44
+innodb_encrypted_1/t_45
+innodb_encrypted_1/t_46
+innodb_encrypted_1/t_47
+innodb_encrypted_1/t_48
+innodb_encrypted_1/t_49
+innodb_encrypted_1/t_5
+innodb_encrypted_1/t_50
+innodb_encrypted_1/t_51
+innodb_encrypted_1/t_52
+innodb_encrypted_1/t_53
+innodb_encrypted_1/t_54
+innodb_encrypted_1/t_55
+innodb_encrypted_1/t_56
+innodb_encrypted_1/t_57
+innodb_encrypted_1/t_58
+innodb_encrypted_1/t_59
+innodb_encrypted_1/t_6
+innodb_encrypted_1/t_60
+innodb_encrypted_1/t_61
+innodb_encrypted_1/t_62
+innodb_encrypted_1/t_63
+innodb_encrypted_1/t_64
+innodb_encrypted_1/t_65
+innodb_encrypted_1/t_66
+innodb_encrypted_1/t_67
+innodb_encrypted_1/t_68
+innodb_encrypted_1/t_69
+innodb_encrypted_1/t_7
+innodb_encrypted_1/t_70
+innodb_encrypted_1/t_71
+innodb_encrypted_1/t_72
+innodb_encrypted_1/t_73
+innodb_encrypted_1/t_74
+innodb_encrypted_1/t_75
+innodb_encrypted_1/t_76
+innodb_encrypted_1/t_77
+innodb_encrypted_1/t_78
+innodb_encrypted_1/t_79
+innodb_encrypted_1/t_8
+innodb_encrypted_1/t_80
+innodb_encrypted_1/t_81
+innodb_encrypted_1/t_82
+innodb_encrypted_1/t_83
+innodb_encrypted_1/t_84
+innodb_encrypted_1/t_85
+innodb_encrypted_1/t_86
+innodb_encrypted_1/t_87
+innodb_encrypted_1/t_88
+innodb_encrypted_1/t_89
+innodb_encrypted_1/t_9
+innodb_encrypted_1/t_90
+innodb_encrypted_1/t_91
+innodb_encrypted_1/t_92
+innodb_encrypted_1/t_93
+innodb_encrypted_1/t_94
+innodb_encrypted_1/t_95
+innodb_encrypted_1/t_96
+innodb_encrypted_1/t_97
+innodb_encrypted_1/t_98
+innodb_encrypted_1/t_99
innodb_encrypted_3/t_1
innodb_encrypted_3/t_10
innodb_encrypted_3/t_100
@@ -1063,6 +1663,106 @@ innodb_encrypted_2/t_98
innodb_encrypted_2/t_99
SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0 AND NAME LIKE 'innodb_encrypted%' ORDER BY NAME;
NAME
+innodb_encrypted_1/t_1
+innodb_encrypted_1/t_10
+innodb_encrypted_1/t_100
+innodb_encrypted_1/t_11
+innodb_encrypted_1/t_12
+innodb_encrypted_1/t_13
+innodb_encrypted_1/t_14
+innodb_encrypted_1/t_15
+innodb_encrypted_1/t_16
+innodb_encrypted_1/t_17
+innodb_encrypted_1/t_18
+innodb_encrypted_1/t_19
+innodb_encrypted_1/t_2
+innodb_encrypted_1/t_20
+innodb_encrypted_1/t_21
+innodb_encrypted_1/t_22
+innodb_encrypted_1/t_23
+innodb_encrypted_1/t_24
+innodb_encrypted_1/t_25
+innodb_encrypted_1/t_26
+innodb_encrypted_1/t_27
+innodb_encrypted_1/t_28
+innodb_encrypted_1/t_29
+innodb_encrypted_1/t_3
+innodb_encrypted_1/t_30
+innodb_encrypted_1/t_31
+innodb_encrypted_1/t_32
+innodb_encrypted_1/t_33
+innodb_encrypted_1/t_34
+innodb_encrypted_1/t_35
+innodb_encrypted_1/t_36
+innodb_encrypted_1/t_37
+innodb_encrypted_1/t_38
+innodb_encrypted_1/t_39
+innodb_encrypted_1/t_4
+innodb_encrypted_1/t_40
+innodb_encrypted_1/t_41
+innodb_encrypted_1/t_42
+innodb_encrypted_1/t_43
+innodb_encrypted_1/t_44
+innodb_encrypted_1/t_45
+innodb_encrypted_1/t_46
+innodb_encrypted_1/t_47
+innodb_encrypted_1/t_48
+innodb_encrypted_1/t_49
+innodb_encrypted_1/t_5
+innodb_encrypted_1/t_50
+innodb_encrypted_1/t_51
+innodb_encrypted_1/t_52
+innodb_encrypted_1/t_53
+innodb_encrypted_1/t_54
+innodb_encrypted_1/t_55
+innodb_encrypted_1/t_56
+innodb_encrypted_1/t_57
+innodb_encrypted_1/t_58
+innodb_encrypted_1/t_59
+innodb_encrypted_1/t_6
+innodb_encrypted_1/t_60
+innodb_encrypted_1/t_61
+innodb_encrypted_1/t_62
+innodb_encrypted_1/t_63
+innodb_encrypted_1/t_64
+innodb_encrypted_1/t_65
+innodb_encrypted_1/t_66
+innodb_encrypted_1/t_67
+innodb_encrypted_1/t_68
+innodb_encrypted_1/t_69
+innodb_encrypted_1/t_7
+innodb_encrypted_1/t_70
+innodb_encrypted_1/t_71
+innodb_encrypted_1/t_72
+innodb_encrypted_1/t_73
+innodb_encrypted_1/t_74
+innodb_encrypted_1/t_75
+innodb_encrypted_1/t_76
+innodb_encrypted_1/t_77
+innodb_encrypted_1/t_78
+innodb_encrypted_1/t_79
+innodb_encrypted_1/t_8
+innodb_encrypted_1/t_80
+innodb_encrypted_1/t_81
+innodb_encrypted_1/t_82
+innodb_encrypted_1/t_83
+innodb_encrypted_1/t_84
+innodb_encrypted_1/t_85
+innodb_encrypted_1/t_86
+innodb_encrypted_1/t_87
+innodb_encrypted_1/t_88
+innodb_encrypted_1/t_89
+innodb_encrypted_1/t_9
+innodb_encrypted_1/t_90
+innodb_encrypted_1/t_91
+innodb_encrypted_1/t_92
+innodb_encrypted_1/t_93
+innodb_encrypted_1/t_94
+innodb_encrypted_1/t_95
+innodb_encrypted_1/t_96
+innodb_encrypted_1/t_97
+innodb_encrypted_1/t_98
+innodb_encrypted_1/t_99
innodb_encrypted_3/t_1
innodb_encrypted_3/t_10
innodb_encrypted_3/t_100
diff --git a/mysql-test/suite/encryption/t/innodb_lotoftables.test b/mysql-test/suite/encryption/t/innodb_lotoftables.test
index 413fc8685f2..71cd9be7f42 100644
--- a/mysql-test/suite/encryption/t/innodb_lotoftables.test
+++ b/mysql-test/suite/encryption/t/innodb_lotoftables.test
@@ -46,8 +46,8 @@ commit work;
#
# Verify
#
---echo # should be empty
-SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE NAME LIKE 'innodb_encrypted%';
+--echo # should have 100 tables which are not encrypted
+SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE NAME LIKE 'innodb_encrypted%' and min_key_version = 0;
#
# This will create 100 tables that are encrypted always
@@ -81,7 +81,7 @@ set autocommit=1;
#
--echo # should contain 100 tables
SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION <> 0 AND NAME LIKE 'innodb_encrypted%' ORDER BY NAME;
---echo # should contain 0 tables
+--echo # should contain 100 tables
SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0 AND NAME LIKE 'innodb_encrypted%' ORDER BY NAME;
#
@@ -117,7 +117,7 @@ set autocommit=1;
--echo # should contain 100 tables
SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION <> 0 AND NAME LIKE 'innodb_encrypted%' ORDER BY NAME;
--echo # should contain 100 tables
-SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0 AND NAME LIKE 'innodb_encrypted%' ORDER BY NAME;
+SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0 and NAME LIKE 'innodb_encrypted%' ORDER BY NAME;
use test;
diff --git a/storage/innobase/fil/fil0fil.cc b/storage/innobase/fil/fil0fil.cc
index e7656a93762..b76a2104aff 100644
--- a/storage/innobase/fil/fil0fil.cc
+++ b/storage/innobase/fil/fil0fil.cc
@@ -1175,8 +1175,9 @@ inline bool fil_space_t::detach()
ut_a(magic_n == FIL_SPACE_MAGIC_N);
ut_a(n_pending_flushes == 0);
- bool changed = purpose == FIL_TYPE_TABLESPACE && crypt_delist()
- && !srv_read_only_mode;
+ bool changed = (purpose == FIL_TYPE_TABLESPACE
+ || purpose == FIL_TYPE_IMPORT)
+ && crypt_delist() && !srv_read_only_mode;
HASH_DELETE(fil_space_t, hash, fil_system.spaces, id, this);
@@ -2504,6 +2505,7 @@ fil_delete_tablespace(
return(err);
}
+ ut_a(space->id == id);
ut_a(space);
ut_a(path != 0);
@@ -2530,6 +2532,35 @@ fil_delete_tablespace(
buf_LRU_flush_or_remove_pages(id, NULL);
+ /* If it is a delete then also delete any generated files, otherwise
+ when we drop the database the remove directory will fail. */
+ {
+ /* Before deleting the file, write a log record about
+ it, so that InnoDB crash recovery will expect the file
+ to be gone. */
+ mtr_t mtr;
+
+ mtr_start(&mtr);
+ fil_op_write_log(MLOG_FILE_DELETE, id, 0, path, NULL, 0, &mtr);
+ mtr_commit(&mtr);
+ /* Even if we got killed shortly after deleting the
+ tablespace file, the record must have already been
+ written to the redo log. */
+ log_write_up_to(mtr.commit_lsn(), true);
+
+ char* cfg_name = fil_make_filepath(path, NULL, CFG, false);
+ if (cfg_name != NULL) {
+ os_file_delete_if_exists(
+ innodb_data_file_key, cfg_name, NULL);
+ ut_free(cfg_name);
+ }
+ }
+
+ /* Delete the link file pointing to the ibd file we are deleting. */
+ if (FSP_FLAGS_HAS_DATA_DIR(space->flags)) {
+ RemoteDatafile::delete_link_file(space->name);
+ }
+
mutex_enter(&fil_system.mutex);
/* Double check the sanity of pending ops after reacquiring
@@ -2555,21 +2586,12 @@ fil_delete_tablespace(
log_mutex_exit();
fil_space_free_low(space);
- /* Before deleting the file, write a log record about
- it, so that InnoDB crash recovery will expect the file
- to be gone. */
-
- mtr_t mtr;
- mtr.start();
- fil_op_write_log(MLOG_FILE_DELETE, id, 0, path, NULL, 0, &mtr);
if (changed) {
+ mtr_t mtr;
+ mtr.start();
dict_hdr_crypt_status_update(&mtr, st);
+ mtr.commit();
}
- mtr.commit();
- /* Even if we got killed shortly after deleting the
- tablespace file, the record must have already been
- written to the redo log. */
- log_write_up_to(mtr.commit_lsn(), true);
if (!os_file_delete(innodb_data_file_key, path)
&& !os_file_delete_if_exists(
@@ -2585,16 +2607,6 @@ fil_delete_tablespace(
err = DB_TABLESPACE_NOT_FOUND;
}
- if (char* cfg_name = fil_make_filepath(path, NULL, CFG, false)) {
- os_file_delete_if_exists(innodb_data_file_key, cfg_name, NULL);
- ut_free(cfg_name);
- }
-
- /* Delete the link file pointing to the ibd file we are deleting. */
- if (FSP_FLAGS_HAS_DATA_DIR(space->flags)) {
- RemoteDatafile::delete_link_file(space->name);
- }
-
ut_free(path);
return(err);