WL#11571: Deprecate Shared tablespaces in partitioned table

Affects: Server-8.0   —   Status: Complete

WL#9286 aims to provide encryption for general/shared tablespaces. Currently in
InnoDB, for a shared tablespace, we don't have a mechanism to keep pages for few
tables encrypted and for unencrypted. Thus decision was taken to disallow usage
of shared tablespaces in partitioned table in MySQL 8.0 and deprecating the same
in MySQL 5.7.
FR1 : Whenever a partition of a tablespace is created/moved to be in a shared
tablespace, this operation should be successful but there should be a warning
thrown : 
Warnings:
Warning        1681    'InnoDB : A table partition in a shared tablespace' is
deprecated and will be removed in a future release.
Add a new function which, given a name of tablespace, checks if tablespace is
shared or not.

/** Check if tablespace is shared tablespace.
@param[in]      tablespace_name Name of the tablespace
@return true if tablespace is a shared tablespace. */
bool is_shared_tablespace(const char *tablespace_name) {}

While Creating a new 
 - partition table
 - Adding a new partition
 - Altering an existing partition 
if tablespace used is shared tablespace, then return warning.

ha_innopart::create(
ha_innopart::create_new_partition(
ha_innopart::prepare_inplace_alter_table(

And this applies for sub-partitions as  well.