WL#9532: InnoDB_New_DD: Move data dictionary tables to a single tablespace

Affects: Server-8.0   —   Status: Complete

Currently, data dictionary tables are created and stored in different InnoDB
tablespaces and .ibd files. The design is to have the data dictionary
storage engine (InnoDB) to create a data dictionary tablespace, which is used to
store all the data dictionary tables. 

In this worklog, InnoDB will hard-code the data dictionary tablespace like:

CREATE TABLESPACE mysql ADD DATAFILE 'mysql.ibd';

With this tablespace defined, all data dictionary tables would be created there.
And WL#6391 can add new non-hardcoded data dictionary tables as follows:

CREATE TABLESPACE mysql ADD DATAFILE 'mysql.ibd';
CREATE DATABASE mysql;
CREATE TABLE mysql.triggers … TABLESPACE=mysql;

With this change, all undo tablespace metadata is stored in this tablespace too.
Because undo logs can only be accessed after undo tablespaces has been located,
on startup, InnoDB should be able to scan the data dictionary tablespace to
get all the undo tablespace metadata and locate all the undo tablespaces.

Tablespace objects for undo tablespaces and temporary tablespace should be
created in the data dictionary tablespace too, so that they are visible by
a SELECT from data dictionary tables.