← Back to team overview

maria-developers team mailing list archive

Re: [Commits] 90010cb4cbc: MDEV-11974: MariaDB 10.2 encryption does not support spatial indexes

 

On Tue, Feb 7, 2017 at 3:56 PM, jan <jan.lindstrom@xxxxxxxxxxx> wrote:
> revision-id: 90010cb4cbcc538181f043dbeccd776776bdd5a4 (mariadb-10.2.3-171-g90010cb4cbc)
> parent(s): 92bbf4ad0477e09bcc86907696cd114ef42e6914
> author: Jan Lindström
> committer: Jan Lindström
> timestamp: 2017-02-07 15:55:01 +0200
> message:
>
> MDEV-11974: MariaDB 10.2 encryption does not support spatial indexes

Add a short explanation why we cannot support encrypted spatial indexes.

> fil0crypt.cc: Do not encrypt page if page type is
> FIL_PAGE_RTREE (this is required for background
> encryption innodb-encrypt-tables=ON)
>
> ha_innodb.cc: check_table_options() Do not allow creating
> table with ENCRYPTED=YES if table contains spatial index.

Instead of file names, please use the function names in the commit comment.

> +#
> +# Index creation
> +#
> +CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT,
> +c VARCHAR(256), coordinate POINT NOT NULL) ENCRYPTED=YES ENGINE=INNODB;
> +--replace_regex /#sql-[0-9a-f_]*`/#sql-temporary`/
> +--error ER_CANT_CREATE_TABLE
> +CREATE SPATIAL INDEX b on t1(coordinate);
> +--replace_regex /#sql-[0-9a-f_]*`/#sql-temporary`/
> +--error ER_CANT_CREATE_TABLE
> +ALTER TABLE t1 ADD SPATIAL INDEX b(coordinate);
> +DROP TABLE t1;

Test this also with default encryption.

> +--echo # Wait max 10 min for key encryption threads to encrypt all space
> +let $cnt=600;
> +while ($cnt)
> +{
> +    let $success=`SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0`;

Use
--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

> +DROP TABLE t1, t2;
> \ No newline at end of file

Add the missing newline to the end of the .test file.

Please demonstrate in some way that page compression actually works
with SPATIAL INDEX. Can you for example run --suite=innodb_gis with
some --mysqld=--innodb… option that will cause all tables to be
compressed by default?

Marko
-- 
DON’T MISS
M|17
April 11 - 12, 2017
The Conrad Hotel
New York City
https://m17.mariadb.com/

Marko Mäkelä, Lead Developer InnoDB
MariaDB Corporation