diff options
author | Thirunarayanan Balathandayuthapani <thiru@mariadb.com> | 2019-04-25 16:42:11 +0530 |
---|---|---|
committer | Thirunarayanan Balathandayuthapani <thiru@mariadb.com> | 2019-04-25 16:42:11 +0530 |
commit | 3a9fd58d469dba274b6d78f6fd286a86d037b4c5 (patch) | |
tree | 96312895113fbcea9ede3b88d670b207cb3efcf2 | |
parent | 63dca232b7fc7ef5d76bb4b385768e43526f463e (diff) | |
download | mariadb-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.result | 708 | ||||
-rw-r--r-- | mysql-test/suite/encryption/t/innodb_lotoftables.test | 8 | ||||
-rw-r--r-- | storage/innobase/fil/fil0fil.cc | 60 |
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); |