WL#9457: Deprecate support for non-native partitioning
Affects: Server-5.7
—
Status: Complete
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 '.', 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, 2025, Oracle Corporation and/or its affiliates. All rights reserved.