Uploaded image for project: 'Percona Server'
  1. Percona Server
  2. PS-5865

Switching SE from InnoDB to MyRocks isn't supported in 8.0.16

    Details

    • Type: Bug
    • Status: In Progress
    • Priority: Medium
    • Resolution: Unresolved
    • Affects Version/s: 8.0.16-7
    • Fix Version/s: None
    • Component/s: MyRocks

      Description

      Switching SE from InnoDB to MyRocks
      isn't supported in 8.0.16 and results with:

      ERROR 1235 (42000): This version of MySQL doesn't yet support 'ENCRYPTION for the RocksDB storage engine'
      

      Testcase:

      mysql> show create table world.City;
      +-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
      | Table | Create Table                                                                                                                                                                                                                                                                                                                                                                                                                                         |
      +-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
      | City  | CREATE TABLE `City` (
        `ID` int(11) NOT NULL AUTO_INCREMENT,
        `Name` char(35) NOT NULL DEFAULT '',
        `CountryCode` char(3) NOT NULL DEFAULT '',
        `District` char(20) NOT NULL DEFAULT '',
        `Population` int(11) NOT NULL DEFAULT '0',
        PRIMARY KEY (`ID`),
        KEY `CountryCode` (`CountryCode`),
        CONSTRAINT `city_ibfk_1` FOREIGN KEY (`CountryCode`) REFERENCES `Country` (`Code`)
      ) ENGINE=InnoDB AUTO_INCREMENT=4080 DEFAULT CHARSET=latin1 |
      +-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
      1 row in set (0.00 sec)
      mysql> Bye
      root@stretch:~# mysql
      Welcome to the MySQL monitor.  Commands end with ; or \g.
      Your MySQL connection id is 25
      Server version: 8.0.16-7 Percona Server (GPL), Release '7', Revision '613e312'
      Copyright (c) 2009-2019 Percona LLC and/or its affiliates
      Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
      Oracle is a registered trademark of Oracle Corporation and/or its
      affiliates. Other names may be trademarks of their respective
      owners.
      Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
      mysql> use world;
      Reading table information for completion of table and column names
      You can turn off this feature to get a quicker startup with -A
      Database changed
      mysql> ALTER TABLE City DROP FOREIGN KEY city_ibfk_1;
      Query OK, 0 rows affected (0.03 sec)
      Records: 0  Duplicates: 0  Warnings: 0
      mysql> ALTER TABLE City Engine=RocksDB;
      ERROR 1235 (42000): This version of MySQL doesn't yet support 'ENCRYPTION for the RocksDB storage engine'
      

      From discussion with Robert Golebiowski this is by the upstream design:

      • EVERY table now has ENCRYPTION clause assigned. Un-encrypted tables have ENCRYPTION='N', encrypted ENCRYPTION='Y'
      • MySQL introduced this check HTON_SUPPORTS_TABLE_ENCRYPTION and if SE supports it - its tables get ENCRYPTION='Y/N' assigned
      • now when you ALTER table with ENGINE that do not support encryption you will get this error because this engine do not support any ENCRYPTION clause Y or N

        Smart Checklist

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  george.lorch George Lorch
                  Reporter:
                  hrvoje.matijakovic Hrvoje Matijakovic
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  4 Start watching this issue

                  Dates

                  • Created:
                    Updated:

                    Time Tracking

                    Estimated:
                    Original Estimate - Not Specified
                    Not Specified
                    Remaining:
                    Remaining Estimate - 0 minutes
                    0m
                    Logged:
                    Time Spent - 1 day, 35 minutes
                    1d 35m