mirror of
https://github.com/MariaDB/server.git
synced 2025-05-01 08:45:04 +03:00
76 lines
2.7 KiB
Plaintext
76 lines
2.7 KiB
Plaintext
--source include/have_innodb.inc
|
|
--source include/have_file_key_management_plugin.inc
|
|
|
|
#
|
|
# MDEV-11974: MariaDB 10.2 encryption does not support spatial indexes
|
|
#
|
|
|
|
#
|
|
# (1) Do not allow creating table with ENCRYPTED=YES
|
|
#
|
|
#
|
|
--error ER_CANT_CREATE_TABLE
|
|
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT,
|
|
c VARCHAR(256), coordinate POINT NOT NULL, SPATIAL index(coordinate)) ENGINE=INNODB
|
|
ENCRYPTED=YES;
|
|
|
|
#
|
|
# (2) Alter table
|
|
#
|
|
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT,
|
|
c VARCHAR(256), coordinate POINT NOT NULL, SPATIAL index(coordinate)) ENGINE=INNODB;
|
|
--error ER_ILLEGAL_HA_CREATE_OPTION
|
|
ALTER TABLE t1 ENCRYPTED=YES;
|
|
DROP TABLE t1;
|
|
|
|
#
|
|
# Index creation
|
|
#
|
|
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT,
|
|
c VARCHAR(256), coordinate POINT NOT NULL) ENCRYPTED=YES ENGINE=INNODB;
|
|
# FIXME: MDEV-13851 Encrypted table refuses some form of ALGORITHM=COPY,
|
|
# but allows rebuild by FORCE
|
|
--error ER_CANT_CREATE_TABLE
|
|
ALTER TABLE t1 ADD SPATIAL INDEX b(coordinate), ALGORITHM=COPY;
|
|
--error ER_ILLEGAL_HA_CREATE_OPTION
|
|
ALTER TABLE t1 ADD SPATIAL INDEX b(coordinate), FORCE, ALGORITHM=INPLACE;
|
|
--error ER_ILLEGAL_HA_CREATE_OPTION
|
|
ALTER TABLE t1 ADD SPATIAL INDEX(coordinate);
|
|
--error ER_ILLEGAL_HA_CREATE_OPTION
|
|
CREATE SPATIAL INDEX b on t1(coordinate);
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT,
|
|
c VARCHAR(256), coordinate POINT NOT NULL) ENCRYPTED=DEFAULT ENGINE=INNODB;
|
|
CREATE SPATIAL INDEX b on t1(coordinate);
|
|
INSERT INTO t1 values(1, 'secret', ST_GeomFromText('POINT(903994614 180726515)'));
|
|
ALTER TABLE t1 DROP INDEX b;
|
|
INSERT INTO t1 values(2, 'secret', ST_GeomFromText('POINT(903994614 180726515)'));
|
|
ALTER TABLE t1 ADD SPATIAL INDEX b(coordinate);
|
|
INSERT INTO t1 values(3, 'secret', ST_GeomFromText('POINT(903994614 180726515)'));
|
|
DROP TABLE t1;
|
|
#
|
|
# (3) Default encryption should still work
|
|
#
|
|
|
|
CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT,
|
|
c VARCHAR(256), coordinate POINT NOT NULL, SPATIAL index(coordinate)) ENGINE=INNODB;
|
|
CREATE TABLE t2 (pk INT PRIMARY KEY AUTO_INCREMENT,
|
|
c VARCHAR(256), coordinate POINT NOT NULL, SPATIAL index(coordinate)) ENGINE=INNODB PAGE_COMPRESSED=YES;
|
|
|
|
INSERT INTO t1 values(1, 'secret', ST_GeomFromText('POINT(903994614 180726515)'));
|
|
INSERT INTO t2 values(1, 'secret', ST_GeomFromText('POINT(903994614 180726515)'));
|
|
|
|
--let $wait_timeout=600
|
|
--let $wait_condition=SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0;
|
|
--source include/wait_condition.inc
|
|
|
|
--echo # Success!
|
|
|
|
--sorted_result
|
|
SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION > 0;
|
|
--sorted_result
|
|
SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0;
|
|
|
|
DROP TABLE t1, t2;
|