File: tablespace_encrypt_4.inc

package info (click to toggle)
mysql-8.0 8.0.43-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,273,924 kB
  • sloc: cpp: 4,684,605; ansic: 412,450; pascal: 108,398; java: 83,641; perl: 30,221; cs: 27,067; sql: 26,594; sh: 24,181; python: 21,816; yacc: 17,169; php: 11,522; xml: 7,388; javascript: 7,076; makefile: 2,194; lex: 1,075; awk: 670; asm: 520; objc: 183; ruby: 97; lisp: 86
file content (457 lines) | stat: -rw-r--r-- 16,756 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
################################################################################
# InnoDB transparent tablespace data encryption for general shared tablespace.
# This test case will test
#    - Table movement from one tablespace to another tablespace
#    - Partitoned Table create/alter with different combination of tablespace at
#      table level and partition level.
################################################################################

# Waiting time when (re)starting the server
--let $explicit_default_wait_counter=10000

--disable_query_log
call mtr.add_suppression("ibd can't be decrypted, please confirm the keyfile is match and keyring plugin is loaded.");
--enable_query_log

--echo #########################################################################
--echo # START : WITHOUT KEYRING PLUGIN
--echo #########################################################################
--source include/keyring_tests/helper/instance_backup_manifest.inc
let $restart_parameters = restart: $PLUGIN_DIR_OPT;
--source include/restart_mysqld_no_echo.inc
--echo #########
--echo # SETUP #
--echo #########

--echo #########################################################################
--echo # RESTART 1 : WITH KEYRING PLUGIN
--echo #########################################################################
--source include/keyring_tests/helper/instance_restore_manifest.inc
let $restart_parameters = restart: $PLUGIN_DIR_OPT --performance-schema-consumer-events-stages-current=ON;
--source include/restart_mysqld_no_echo.inc

--echo #########################################################################
--echo # Non Partitioned Table                                                 #
--echo #########################################################################
--echo
--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_warnings
--echo # Create an Encrypted and an Unencrypted tablespace
CREATE TABLESPACE encrypt_ts add datafile 'encrypt_ts.ibd' ENCRYPTION='Y';
CREATE TABLESPACE unencrypt_ts add datafile 'unencrypt_ts.ibd' ENCRYPTION='N';

--echo # Create table with "encryption" option in general tablespace
CREATE TABLE t1 (c int) TABLESPACE=encrypt_ts ENCRYPTION='y';
SHOW WARNINGS;
DROP TABLE t1;
--error ER_INVALID_ENCRYPTION_REQUEST
CREATE TABLE t1 (c int) TABLESPACE=encrypt_ts ENCRYPTION='n';
SHOW WARNINGS;
--error ER_INVALID_ENCRYPTION_REQUEST
CREATE TABLE t1 (c int) TABLESPACE=innodb_system ENCRYPTION='y';
SHOW WARNINGS;
CREATE TABLE t1 (c int) TABLESPACE=innodb_system ENCRYPTION='n';
SHOW WARNINGS;
DROP TABLE t1;

--echo #-------------------------------------------------------

--echo #  general [encrypted] => general [unencrypted]
CREATE TABLE t1 (c int) TABLESPACE=encrypt_ts ENCRYPTION='Y';
--error ER_TARGET_TABLESPACE_UNENCRYPTED
ALTER TABLE t1 TABLESPACE=unencrypt_ts ENCRYPTION='N', ALGORITHM=INPLACE;

--error ER_TARGET_TABLESPACE_UNENCRYPTED
ALTER TABLE t1 TABLESPACE=unencrypt_ts ENCRYPTION='N', ALGORITHM=COPY;

--echo #  general [unencrypted] => general [encrypted]
DROP TABLE t1;
CREATE TABLE t1 (c int) TABLESPACE=unencrypt_ts;
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
ALTER TABLE t1 TABLESPACE=encrypt_ts ENCRYPTION='Y', ALGORITHM=INPLACE;

--echo #  Changing encryption type without explicit ENCRYPTION clause fails.
--error ER_INVALID_ENCRYPTION_REQUEST
ALTER TABLE t1 TABLESPACE=encrypt_ts, ALGORITHM=COPY;

--error ER_INVALID_ENCRYPTION_REQUEST
ALTER TABLE t1 TABLESPACE=encrypt_ts, ALGORITHM=INPLACE;

DROP TABLE t1;
CREATE TABLE t1 (c int) TABLESPACE=unencrypt_ts;
ALTER TABLE t1 TABLESPACE=encrypt_ts ENCRYPTION='Y', ALGORITHM=COPY;

--echo #-------------------------------------------------------

--echo #  general [encrypted] => file-per-table [unencrypted]
DROP TABLE t1;
CREATE TABLE t1 (c int) TABLESPACE=encrypt_ts ENCRYPTION='Y';
--error ER_TARGET_TABLESPACE_UNENCRYPTED
ALTER TABLE t1 TABLESPACE=innodb_file_per_table, ALGORITHM=INPLACE;

--error ER_TARGET_TABLESPACE_UNENCRYPTED
ALTER TABLE t1 TABLESPACE=innodb_file_per_table, ALGORITHM=COPY;

--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
ALTER TABLE t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n', ALGORITHM=INPLACE;

ALTER TABLE t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n', ALGORITHM=COPY;
SHOW CREATE TABLE t1;
DROP TABLE t1;

--echo #  general [encrypted] => file-per-table [encrypted]
CREATE TABLE t1 (c int) TABLESPACE=encrypt_ts ENCRYPTION= 'Y';
ALTER TABLE t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y', ALGORITHM=INPLACE;

ALTER TABLE t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y', ALGORITHM=COPY;
SHOW CREATE TABLE t1;

--echo #-------------------------------------------------------

--echo #  general [unencrypted] => file-per-table [unencrypted]
DROP TABLE t1;
CREATE TABLE t1 (c int) TABLESPACE=unencrypt_ts;
SHOW CREATE TABLE t1;
ALTER TABLE t1 TABLESPACE=innodb_file_per_table, ALGORITHM=INPLACE;
SHOW CREATE TABLE t1;

DROP TABLE t1;
CREATE TABLE t1 (c int) TABLESPACE=unencrypt_ts;
SHOW CREATE TABLE t1;
ALTER TABLE t1 TABLESPACE=innodb_file_per_table, ALGORITHM=COPY;
SHOW CREATE TABLE t1;

--echo #  general [unencrypted] => file-per-table [encrypted]
DROP TABLE t1;
CREATE TABLE t1 (c int) TABLESPACE=unencrypt_ts;
SHOW CREATE TABLE t1;
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
ALTER TABLE t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y', ALGORITHM=INPLACE;

ALTER TABLE t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y', ALGORITHM=COPY;
SHOW CREATE TABLE t1;

--echo #  general [unencrypted] => file-per-table [unencrypted]
DROP TABLE t1;
CREATE TABLE t1 (c int) TABLESPACE=unencrypt_ts;
SHOW CREATE TABLE t1;
ALTER TABLE t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n', ALGORITHM=INPLACE;
SHOW CREATE TABLE t1;

DROP TABLE t1;
CREATE TABLE t1 (c int) TABLESPACE=unencrypt_ts;
SHOW CREATE TABLE t1;
ALTER TABLE t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n', ALGORITHM=COPY;
SHOW CREATE TABLE t1;

--echo #-------------------------------------------------------

--echo #  file-per-table [unencrypted] => general [encrypted]
DROP TABLE t1;
CREATE TABLE t1 (c int) ENCRYPTION='n';
SHOW CREATE TABLE t1;
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
ALTER TABLE t1 TABLESPACE=encrypt_ts ENCRYPTION='Y', ALGORITHM=INPLACE;
SHOW CREATE TABLE t1;

DROP TABLE t1;
CREATE TABLE t1 (c int) ENCRYPTION='n';
SHOW CREATE TABLE t1;
ALTER TABLE t1 TABLESPACE=encrypt_ts ENCRYPTION='Y', ALGORITHM=COPY;
SHOW CREATE TABLE t1;

--echo #  file-per-table [encrypted] => general [encrypted]
DROP TABLE t1;
CREATE TABLE t1 (c int) ENCRYPTION='y';
SHOW CREATE TABLE t1;
ALTER TABLE t1 TABLESPACE=encrypt_ts, ALGORITHM=INPLACE;

DROP TABLE t1;
CREATE TABLE t1 (c int) ENCRYPTION='y';
SHOW CREATE TABLE t1;
ALTER TABLE t1 TABLESPACE=encrypt_ts, ALGORITHM=COPY;
SHOW CREATE TABLE t1;

--echo #  file-per-table [encrypted] => general [unencrypted]
DROP TABLE t1;
CREATE TABLE t1 (c int) ENCRYPTION='y';
SHOW CREATE TABLE t1;
--error ER_TARGET_TABLESPACE_UNENCRYPTED
ALTER TABLE t1 TABLESPACE=unencrypt_ts ENCRYPTION='N', ALGORITHM=INPLACE;

--error ER_TARGET_TABLESPACE_UNENCRYPTED
ALTER TABLE t1 TABLESPACE=unencrypt_ts ENCRYPTION='N', ALGORITHM=COPY;

--echo #  file-per-table [unencrypted] => general [unencrypted]
DROP TABLE t1;
CREATE TABLE t1 (c int) ENCRYPTION='n';
SHOW CREATE TABLE t1;
ALTER TABLE t1 TABLESPACE=unencrypt_ts, ALGORITHM=INPLACE;
SHOW CREATE TABLE t1;

DROP TABLE t1;
CREATE TABLE t1 (c int) ENCRYPTION='n';
SHOW CREATE TABLE t1;
ALTER TABLE t1 TABLESPACE=unencrypt_ts, ALGORITHM=COPY;
SHOW CREATE TABLE t1;
DROP TABLE t1;

--echo #-------------------------------------------------------
--echo # ALTER TABLE ADD COLUMN/INDEX WITH MOVING TO DIFFERENT TABLESPACE

CREATE TABLESPACE encrypt_ts1 add datafile 'encrypt_ts1.ibd' ENCRYPTION='Y';
CREATE TABLESPACE unencrypt_ts1 add datafile 'unencrypt_ts1.ibd' ENCRYPTION='N';

--echo # ALGORITHM=DEFAULT
CREATE TABLE t1 (c int) TABLESPACE=encrypt_ts ENCRYPTION='Y';
--error ER_TARGET_TABLESPACE_UNENCRYPTED
ALTER TABLE t1 ADD c2 char(10), TABLESPACE=unencrypt_ts ENCRYPTION='N';
ALTER TABLE t1 ADD c2 char(10), TABLESPACE=encrypt_ts1;
SHOW CREATE TABLE t1;
ALTER TABLE t1 ADD INDEX (c), TABLESPACE=encrypt_ts;
SHOW CREATE TABLE t1;
DROP TABLE t1;

CREATE TABLE t1 (c int) TABLESPACE=unencrypt_ts;
ALTER TABLE t1 ADD c2 char(10), TABLESPACE=unencrypt_ts1;
SHOW CREATE TABLE t1;
ALTER TABLE t1 ADD INDEX (c), TABLESPACE=unencrypt_ts;
SHOW CREATE TABLE t1;
ALTER TABLE t1 ADD INDEX (c2), TABLESPACE=encrypt_ts ENCRYPTION='Y';
SHOW CREATE TABLE t1;
DROP TABLE t1;

--echo # ALGORITHM=INPLACE
CREATE TABLE t1 (c int) TABLESPACE=encrypt_ts ENCRYPTION='Y';
--error ER_TARGET_TABLESPACE_UNENCRYPTED
ALTER TABLE t1 ADD c2 char(10), TABLESPACE=unencrypt_ts ENCRYPTION='N', ALGORITHM=INPLACE;
ALTER TABLE t1 ADD c2 char(10), TABLESPACE=encrypt_ts1 ENCRYPTION='Y', ALGORITHM=INPLACE;
SHOW CREATE TABLE t1;
ALTER TABLE t1 ADD INDEX (c), TABLESPACE=encrypt_ts, ALGORITHM=INPLACE;
SHOW CREATE TABLE t1;
DROP TABLE t1;

CREATE TABLE t1 (c int) TABLESPACE=unencrypt_ts;
ALTER TABLE t1 ADD c2 char(10), TABLESPACE=unencrypt_ts1, ALGORITHM=INPLACE;
SHOW CREATE TABLE t1;
ALTER TABLE t1 ADD INDEX (c), TABLESPACE=unencrypt_ts, ALGORITHM=INPLACE;
SHOW CREATE TABLE t1;
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
ALTER TABLE t1 ADD INDEX (c2), TABLESPACE=encrypt_ts ENCRYPTION='Y', ALGORITHM=INPLACE;
SHOW CREATE TABLE t1;
DROP TABLE t1;

--echo # ALGORITHM=COPY
CREATE TABLE t1 (c int) TABLESPACE=encrypt_ts ENCRYPTION='Y';
--error ER_TARGET_TABLESPACE_UNENCRYPTED
ALTER TABLE t1 ADD c2 char(10), TABLESPACE=unencrypt_ts ENCRYPTION='N', ALGORITHM=COPY;
ALTER TABLE t1 ADD c2 char(10), TABLESPACE=encrypt_ts1, ALGORITHM=COPY;
SHOW CREATE TABLE t1;
ALTER TABLE t1 ADD INDEX (c), TABLESPACE=encrypt_ts, ALGORITHM=COPY;
SHOW CREATE TABLE t1;
DROP TABLE t1;

CREATE TABLE t1 (c int) TABLESPACE=unencrypt_ts;
ALTER TABLE t1 ADD c2 char(10), TABLESPACE=unencrypt_ts1, ALGORITHM=COPY;
SHOW CREATE TABLE t1;
ALTER TABLE t1 ADD INDEX (c), TABLESPACE=unencrypt_ts, ALGORITHM=COPY;
SHOW CREATE TABLE t1;
ALTER TABLE t1 ADD INDEX (c2), TABLESPACE=encrypt_ts ENCRYPTION='Y', ALGORITHM=COPY;
SHOW CREATE TABLE t1;
DROP TABLE t1;

--echo #########################################################################
--echo # Partitioned Table                                                     #
--echo #########################################################################
--echo
--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_warnings
--echo # Create table without explicit tablespace name
CREATE TABLE t1 (id INT, name VARCHAR(50))
	PARTITION BY RANGE(id) (
		PARTITION p0 VALUES LESS THAN (10),
		PARTITION p1 VALUES LESS THAN (20),
		PARTITION p2 VALUES LESS THAN (30));
--echo # Try to ALTER TABLE to have general tablespace at table level
--error ER_ILLEGAL_HA_CREATE_OPTION
ALTER TABLE t1 TABLESPACE=unencrypt_ts;
SHOW WARNINGS;
--echo # Alter encryption option
ALTER TABLE t1 ENCRYPTION='Y';
DROP TABLE t1;

--echo # Create table with general tablespace at table level
--error ER_ILLEGAL_HA_CREATE_OPTION
CREATE TABLE t1 (id INT, name VARCHAR(50))
	TABLESPACE=encrypt_ts ENCRYPTION='Y'
	PARTITION BY RANGE(id) (
		PARTITION p0 VALUES LESS THAN (10),
		PARTITION p1 VALUES LESS THAN (20),
		PARTITION p2 VALUES LESS THAN (30));
SHOW WARNINGS;

--echo # Create table with system tablespace at table level
--error ER_ILLEGAL_HA_CREATE_OPTION
CREATE TABLE t1 (id INT, name VARCHAR(50))
	TABLESPACE=innodb_system
	PARTITION BY RANGE(id) (
		PARTITION p0 VALUES LESS THAN (10),
		PARTITION p1 VALUES LESS THAN (20),
		PARTITION p2 VALUES LESS THAN (30));
SHOW WARNINGS;

--echo # Create table with innodb_file_per_table tablespace at table level
CREATE TABLE t1 (id INT, name VARCHAR(50))
	TABLESPACE=innodb_file_per_table
	PARTITION BY RANGE(id) (
		PARTITION p0 VALUES LESS THAN (10),
		PARTITION p1 VALUES LESS THAN (20),
		PARTITION p2 VALUES LESS THAN (30));
DROP TABLE t1;

--echo # Create table with general tablespace at partition level
--error ER_ILLEGAL_HA_CREATE_OPTION
CREATE TABLE t1 (id INT, name VARCHAR(50)) ENCRYPTION='Y'
	PARTITION BY RANGE(id) (
		PARTITION p0 VALUES LESS THAN (10),
		PARTITION p1 VALUES LESS THAN (20),
		PARTITION p2 VALUES LESS THAN (30) TABLESPACE=encrypt_ts);
SHOW WARNINGS;

--echo # Create table with system tablespace at partition level
--error ER_ILLEGAL_HA_CREATE_OPTION
CREATE TABLE t1 (id INT, name VARCHAR(50))
	PARTITION BY RANGE(id) (
		PARTITION p0 VALUES LESS THAN (10),
		PARTITION p1 VALUES LESS THAN (20),
		PARTITION p2 VALUES LESS THAN (30) TABLESPACE=innodb_system);
SHOW WARNINGS;

--echo # Create table with innodb_file_per_table tablespace at partition level
CREATE TABLE t1 (id INT, name VARCHAR(50))
	PARTITION BY RANGE(id) (
		PARTITION p0 VALUES LESS THAN (10),
		PARTITION p1 VALUES LESS THAN (20),
		PARTITION p2 VALUES LESS THAN (30) TABLESPACE=innodb_file_per_table);
DROP TABLE t1;

--echo # Create table with ENCRYPTION='y' option
CREATE TABLE t1 (id INT, name VARCHAR(50))
	ENCRYPTION='Y'
	PARTITION BY RANGE(id) (
		PARTITION p0 VALUES LESS THAN (10),
		PARTITION p1 VALUES LESS THAN (20),
		PARTITION p2 VALUES LESS THAN (30));
INSERT INTO t1 VALUES (5,'test');
INSERT INTO t1 VALUES (12,'test1');
INSERT INTO t1 VALUES (22,'test2');

--echo # Truncate specific partition of encrypted table
ALTER TABLE t1 TRUNCATE PARTITION p0;

--echo # Alter encryption option
ALTER TABLE t1 ENCRYPTION='N';
DROP TABLE t1;

--echo # Create table with ENCRYPTION='y' option and innodb_file_per_table
--echo # tablespace at table level
CREATE TABLE t1 (id INT, name VARCHAR(50))
	ENCRYPTION='Y' TABLESPACE=innodb_file_per_table
	PARTITION BY RANGE(id) (
		PARTITION p0 VALUES LESS THAN (10),
		PARTITION p1 VALUES LESS THAN (20),
		PARTITION p2 VALUES LESS THAN (30));

--echo # Alter encryption option
ALTER TABLE t1 ENCRYPTION='N';

--echo # Alter table to move a partition to general tablespace.
--error ER_INVALID_ENCRYPTION_REQUEST
ALTER TABLE t1 REORGANIZE PARTITION P2 INTO (
	PARTITION P2 VALUES LESS THAN (30) TABLESPACE=encrypt_ts);
SHOW WARNINGS;
--error ER_ILLEGAL_HA_CREATE_OPTION
ALTER TABLE t1 REORGANIZE PARTITION P2 INTO (
	PARTITION P2 VALUES LESS THAN (30) TABLESPACE=unencrypt_ts);
SHOW WARNINGS;

--echo # Alter table to move a partition to system tablespace.
--error ER_ILLEGAL_HA_CREATE_OPTION
ALTER TABLE t1 REORGANIZE PARTITION P2 INTO (
	PARTITION P2 VALUES LESS THAN (30) TABLESPACE=innodb_system);
SHOW WARNINGS;

--echo # Alter table to move a partition to file_per_table tablespace.
ALTER TABLE t1 REORGANIZE PARTITION P2 INTO (
	PARTITION P2 VALUES LESS THAN (30) TABLESPACE=innodb_file_per_table);

SHOW CREATE TABLE t1;

--echo # Alter table to add a new partition in general tablespace
--error ER_INVALID_ENCRYPTION_REQUEST
ALTER TABLE t1 ADD PARTITION (
	PARTITION p3 VALUES LESS THAN (40) tablespace=encrypt_ts);
SHOW WARNINGS;
--error ER_ILLEGAL_HA_CREATE_OPTION
ALTER TABLE t1 ADD PARTITION (
	PARTITION p3 VALUES LESS THAN (40) tablespace=unencrypt_ts);
SHOW WARNINGS;

--echo # Alter table to add a new partition in innodb_system tablespace
--error ER_ILLEGAL_HA_CREATE_OPTION
ALTER TABLE t1 ADD PARTITION (
	PARTITION p3 VALUES LESS THAN (40) tablespace=innodb_system);
SHOW WARNINGS;

--echo # Alter table to add a new partition in innodb_file_per_table tablespace
ALTER TABLE t1 ADD PARTITION (
	PARTITION p3 VALUES LESS THAN (40) tablespace=innodb_file_per_table);

--echo # Alter table to add a new partition without giving tablespace
ALTER TABLE t1 ADD PARTITION (
	PARTITION p4 VALUES LESS THAN (50));

SHOW CREATE TABLE t1;

--echo # Alter table to add a new partition with encryption option at partition
--echo # level.
--error ER_PARSE_ERROR
ALTER TABLE t1 ADD PARTITION (
	PARTITION p5 VALUES LESS THAN (60) encryption='Y');

DROP TABLE t1;

--echo # Create table with ENCRYPTION='y' option and general tablespace
--echo # at table level
--error ER_ILLEGAL_HA_CREATE_OPTION
CREATE TABLE t1 (id INT, name VARCHAR(50))
	ENCRYPTION='Y' TABLESPACE=encrypt_ts
	PARTITION BY RANGE(id) (
		PARTITION p0 VALUES LESS THAN (10),
		PARTITION p1 VALUES LESS THAN (20),
		PARTITION p2 VALUES LESS THAN (30));
SHOW WARNINGS;

--echo # Create table with ENCRYPTION='y' option and general tablespace
--echo # at partition level
--error ER_ILLEGAL_HA_CREATE_OPTION
CREATE TABLE t1 (id INT, name VARCHAR(50))
	ENCRYPTION='Y'
	PARTITION BY RANGE(id) (
		PARTITION p0 VALUES LESS THAN (10),
		PARTITION p1 VALUES LESS THAN (20),
		PARTITION p2 VALUES LESS THAN (30) TABLESPACE=encrypt_ts);
SHOW WARNINGS;

--echo ###########
--echo # Cleanup #
--echo ###########
--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_warnings
DROP TABLESPACE encrypt_ts;
DROP TABLESPACE encrypt_ts1;
DROP TABLESPACE unencrypt_ts;
DROP TABLESPACE unencrypt_ts1;