WL#7593: New data dictionary: don't hold LOCK_open while reading table definition.

Affects: Server-5.7   —   Status: Complete

With new data-dictionary TABLE_SHARE objects are constructed from table
definitions coming from data-dictionary subsystem. This subsystem may
need to read information about tables from data-dictionary tables which
means that it might need to construct TABLE_SHARE objects for them.
(There is no problem with reading definitions for data-dictionary
tables from data-dictionary tables thanks to the fact that we have
hard-coded definitions of these tables around). Since TABLE_SHARE
objects are created under protection of LOCK_open mutex such recursion
is impossible currently. To allow it we need to change code not to
hold LOCK_open during most of the process of TABLE_SHARE creation.
Since after this step we will still need some way to avoid access
to TABLE_SHARE which was not fully constructed a new flag indicating
such TABLE_SHARE objects is required.

User Documentation
==================

No user-visible effects. No user documentation required.