WL#4039: INFORMATION_SCHEMA: use internal views against mysql. system tables to supply data

Affects: Server-7.1   —   Status: Un-Assigned   —   Priority: Medium

The purpose of this worklog is to replace the current implementation of
INFORMATION_SCHEMA with an implementation that uses internal views against MySQL
relational data dictionary.

Currently only a subset of meta data is stored in tables: namely, events, stored
procedures and functions.

However, the current implementation of INFORMATION_SCHEMA tables does not take
advantage of the relational structure of the system tables even for the
mentioned subset: the data is copied first into an internal temporary table, and
only then the query is executed against the temporary table.

Instead of copying data from one representation to another, we should
implement internal classes and functions that allow one to represent an
INFORMATION_SCHEMA table as a view of a system table.

Since not all meta data is stored in relational tables, this worklog is
complementary to WL#4034, which suggests use of the storage engine interface (or
a subset thereof) to implement INFORMATION/PERFORMANCE schema access to
non-relational data sources.

On top of these two designs a common framework is necessary that would make use
of the right mechanism depending on the underlying data source.