WL#8594: Provide an option to reject creation of user tables for a list of storage engines

Affects: Server-Prototype Only   —   Status: Complete

We have users who want to prevent MyISAM tables sneaking into production systems.  This can happen because MyISAM is the default in a developer's environment (using older version).

This worklog shall provide a command-line option --disabled-storage-engines in
which user shall supply a list of storage engines to be disabled. All user
create related DDLs shall be disabled for the list of storage engines specified.

User Story
----------

Michael is a DBA.  He has a goal of making sure all systems are up and running, 
and backups can be taken with very little system locking.

Last quarter, a developer at Michael's company introduced a MyISAM table as part 
of a new feature deployment, and the table has grown to such a point where it is 
blocking a large part of the backup.

Since this feature is now in production (and important), Michael can not just 
blind convert it to InnoDB without some investigation and testing.  However, in 
parallel to his investigation, Michael would like to ensure that no new MyISAM 
tables are introduced.

Operational semantics for storage engines specified in disabled-storage-engines
-------------------------------------------------------------------------------

* All existing tables is allowed to be read/written from 
* The DDL CREATE TABLE is prevented, resulting in an error message:
"The storage engine 'storage engine name' is disabled (Table creation is
disallowed)."
* Other DDL such as CREATE INDEX, DROP INDEX, TRUNCATE, OPTIMIZE, ALTER, RENAME,
  DROP TABLE, DROP TABLESPACE must continue to be supported.

User Documentation