WL#9457: Deprecate support for non-native partitioning
Affects: Server-5.7 — Status: Complete — Priority: Medium
Support for non-native partitioning has been removed in 8.0. This feature must be deprecated in 5.7. User Documentation ================== * http://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_disable-partition-engine-check * http://dev.mysql.com/doc/refman/5.7/en/partitioning.html (initial note)
F0. For the deprecation warning, use error code 'ER_WARN_DEPRECATED_SYNTAX' with the following message: "The partition engine, used by table '<schema>.<table>', is deprecated and will be removed in a future release. Please use native partitioning instead." F1. Issue a deprecation warning when reading the table definition from file. This will ensure that warnings are issued: 1. While executing DML on a non-natively partitioned table, if the table definition is not already cached. 2. While creating a non-natively partitioned table. 3. While altering a table in a way where the destination table is a non-natively partitioned table. F2. Issue a deprecation warning on CHECK TABLE for a non-natively partitioned table, regardless of the table definition being read from file or not. F3. Issue a deprecation warning on SHOW CREATE TABLE for a non-natively partitioned table, regardless of the table definition being read from file or not. F4. Issue a deprecation warning when executing I_S queries doing SELECT from INFORMATION_SCHEMA.TABLES, provided the query will read the table definition. Thus, a query such as 'SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES' will not return warnings since it is executed without reading the table definitions. On the other hand, queries such as 'SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE CREATE_OPTIONS LIKE '%partitioned%'' will return warnings since the table definitions are read. F5. Execute an I_S query reading table definitions at server start to scan for non-natively partitioned tables. Write a warning in the error log for every non-natively partitioned table. F6. Introduce a command line option '--disable-partition-engine-check' for the MySQL server to be used use for skipping the execution of the I_S query in F6 during server start. This does not affect the deprecation warnings issued in F1 - F4.
1. Warn when opening the .FRM file of a table. This will make sure we get warnings on DDL statements. However, this will also limit the amount of warnings fro DML if the table definition is already present in the cache. 2. Run an I_S query during server restart. Write the warning in 1. above in a way that logs a warning to the error log if the server is not fully started. 3. Extend the bootstrap infrastructure to run a single query. Needed to support item 2. above. 4. Suppress the warning from 1. for I_S queries, SHOW CREATE and CHECK. Instead, push a warning explicitly. Done to get repeatable results. 5. Add the command line option described in F6.
Copyright (c) 2000, 2019, Oracle Corporation and/or its affiliates. All rights reserved.