- It is suspicious that we want to include PERCONA_SCHEMA. Why?
Shouldn't it be treated as user table for our purposes?
Also wouldn't it provide a hole around schema enforcement if
the server is missing PERCONA_SCHEMA schema, thus user is free
to create it? Such scenario is exactly how the MTR testcase
currently works, isn't it?
- Assuming PERCONA_SCHEMA is not desired, then there is no need
to maintain our own list of special schemas (also what about
case sensitivity?) There is get_table_category(), which will
return TABLE_CATEGORY_INFORMATION for I_S,
TABLE_CATEGORY_PERFROMANCE for P_S, TABLE_CATEGORY_SYSTEM for
mysql, TABLE_CATEGORY_LOG for slow/general logs if tables, and
TABLE_CATEGORY_USER. Thus it seems that we can simply call
get_table_category() and enforce storage engine only if it
returned TABLE_CATEGORY_USER. Note that it would cover log
tables as well, which we haven't discussed previously, but for
which SE enforcement is probably a bug too.
- Assuming PERCONA_SCHEMA is not desired, an MTR testcase becomes
more complicated. I'd look if it is possible to test through
the log tables, if possible.
- It is suspicious that we want to include PERCONA_SCHEMA. Why?
Shouldn't it be treated as user table for our purposes?
Also wouldn't it provide a hole around schema enforcement if
the server is missing PERCONA_SCHEMA schema, thus user is free
to create it? Such scenario is exactly how the MTR testcase
currently works, isn't it?
- Assuming PERCONA_SCHEMA is not desired, then there is no need category( ), which will INFORMATION for I_S, CATEGORY_ PERFROMANCE for P_S, TABLE_CATEGORY_ SYSTEM for CATEGORY_ USER. Thus it seems that we can simply call table_category( ) and enforce storage engine only if it USER. Note that it would cover log
to maintain our own list of special schemas (also what about
case sensitivity?) There is get_table_
return TABLE_CATEGORY_
TABLE_
mysql, TABLE_CATEGORY_LOG for slow/general logs if tables, and
TABLE_
get_
returned TABLE_CATEGORY_
tables as well, which we haven't discussed previously, but for
which SE enforcement is probably a bug too.
- Assuming PERCONA_SCHEMA is not desired, an MTR testcase becomes
more complicated. I'd look if it is possible to test through
the log tables, if possible.