Encrypted general tablespaces

Registered by Sergei Glushchenko on 2017-06-12

1. Extend `CREATE TABLESPACE' statement to accept `ENCRTYPTIION'="y/n"
   option
2. Pass encryption option to InnoDB handler and store it into tablespace
   flags
3. Make sure table flags and tablespace flags are in sync regarding
   encryption
4. Create test case to cover various scenarios of creating/altering
   tables, for example:
   - creating encrypted/unencrypted tables inside of
     encrypted/unencrypted tablespaces (compatibility of tablespace and
     table flags)
   - moving tables between tablespaces
   - discarding tables
   Make sure that server behave adequately.
5. Make sure that crash recovery works
6. Check that I_S tables reflect all changes

Table and tablespace must have compatible ENCRYPTION flags. For example:

,----
| CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd' ENCRYPTION="Y";
|
| -- ERROR - we must specify ENCRYPTION="Y" for table explicitly?
| CREATE TABLE t1 (a TEXT) TABLESPACE ts1;
|
| -- SUCCESS
| CREATE TABLE t2 (a TEXT) TABLESPACE ts1 ENCRYPTION="Y";
|
| -- ERROR
| CREATE TABLE t3 (a TEXT) TABLESPACE ts1 ENCRYPTION="N";
`----

,----
| CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd' ENCRYPTION="N";
|
| -- SUCCESS
| CREATE TABLE t1 (a TEXT) TABLESPACE ts1;
|
| -- ERROR
| CREATE TABLE t2 (a TEXT) TABLESPACE ts1 ENCRYPTION="Y";
|
| -- SUCCESS
| CREATE TABLE t3 (a TEXT) TABLESPACE ts1 ENCRYPTION="N";
`----

Blueprint information

Status:
Complete
Approver:
None
Priority:
High
Drafter:
Sergei Glushchenko
Direction:
Approved
Assignee:
Sergei Glushchenko
Definition:
Approved
Series goal:
Accepted for 5.7
Implementation:
Implemented
Milestone target:
milestone icon 5.7.20-18
Started by
Laurynas Biveinis on 2017-08-25
Completed by
Sergei Glushchenko on 2017-09-05

Related branches

Sprints

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.