polardbxengine/mysql-test/include/dd_schema_assert_and_fill_t...

132 lines
4.9 KiB
PHP

--echo ########################################################################
--echo # Verify the existence of the expected DD tables, neither less nor more.
--echo # Fill two help tables with the DD and DDSE table names.
--echo ########################################################################
--source include/have_debug.inc
SET debug = '+d,skip_dd_table_access_check';
--echo ########################################################################
--echo # The number of hidden DD/DDSE tables must be as expected.
--echo ########################################################################
let $number_of_hidden_dd_tables = 32;
let $assert_cond = "[SELECT COUNT(*) from mysql.tables
WHERE schema_id = 1 AND hidden = \'System\']"
= $number_of_hidden_dd_tables;
--let $assert_text = There are 32 hidden DD/DDSE tables.
--source include/assert.inc
# Fill two help tables with the names of the DDSE and DD tables.
# Unless the table names are set by the caller, create two tables
# temporarily and delete them at the end of this file.
--disable_query_log
--disable_result_log
if (!$ddse_table_names)
{
let $ddse_table_names = test.ddse_table_names;
eval CREATE TABLE $ddse_table_names (name VARCHAR(64) PRIMARY KEY);
let $drop_ddse_table_names = $ddse_table_names;
}
if (!$dd_table_names)
{
let $dd_table_names = test.dd_table_names;
eval CREATE TABLE $dd_table_names (name VARCHAR(64) PRIMARY KEY);
let $drop_dd_table_names = $dd_table_names;
}
eval INSERT INTO $ddse_table_names (name) VALUES
('innodb_ddl_log'),
('innodb_dynamic_metadata'),
('innodb_index_stats'),
('innodb_table_stats');
eval INSERT INTO $dd_table_names (name) VALUES
('catalogs'),
('character_sets'),
('collations'),
('check_constraints'),
('column_statistics'),
('column_type_elements'),
('columns'),
('dd_properties'),
('events'),
('foreign_key_column_usage'),
('foreign_keys'),
('index_column_usage'),
('index_partitions'),
('index_stats'),
('indexes'),
('parameter_type_elements'),
('parameters'),
('resource_groups'),
('routines'),
('schemata'),
('st_spatial_reference_systems'),
('table_partition_values'),
('table_partitions'),
('table_stats'),
('tables'),
('tablespace_files'),
('tablespaces'),
('triggers'),
('view_routine_usage'),
('view_table_usage');
--enable_result_log
--enable_query_log
let $assert_cond = "[SELECT (SELECT COUNT(*) FROM $dd_table_names) +
(SELECT COUNT(*) FROM $ddse_table_names)]"
= $number_of_hidden_dd_tables + 2;
--let $assert_text = There are 34 DD/DDSE tables in total.
--source include/assert.inc
--echo ########################################################################
--echo # No unexpected DD tables must be present.
--echo ########################################################################
let $assert_cond = "[SELECT COUNT(*) FROM mysql.tables
WHERE schema_id = 1
AND hidden = \'System\'
AND name NOT IN (SELECT name FROM $dd_table_names)
AND name NOT IN (SELECT name FROM $ddse_table_names)]"
= 0;
--let $assert_text = No unexpected DD tables are present.
--source include/assert.inc
--echo ########################################################################
--echo # All expected DD tables must be present.
--echo ########################################################################
let $assert_cond = "[SELECT COUNT(*) FROM $dd_table_names
WHERE name NOT IN
(SELECT name FROM mysql.tables WHERE schema_id = 1)]"
= 0;
--let $assert_text = All expected DD tables are present.
--source include/assert.inc
--echo ########################################################################
--echo # All expected DDSE tables must be present.
--echo ########################################################################
let $assert_cond = "[SELECT COUNT(*) FROM $ddse_table_names
WHERE name NOT IN
(SELECT name FROM mysql.tables WHERE schema_id = 1)]"
= 0;
--let $assert_text = All expected DDSE are be present.
--source include/assert.inc
if ($drop_ddse_table_names)
{
eval DROP TABLE $drop_ddse_table_names;
let $ddse_table_names =;
let $drop_ddse_table_names =;
}
if ($drop_dd_table_names)
{
eval DROP TABLE $drop_dd_table_names;
let $dd_table_names =;
let $drop_dd_table_names =;
}
SET debug = '-d,skip_dd_table_access_check';