File: dd_schema_assert_and_fill_table_names.inc

package info (click to toggle)
mysql-8.0 8.0.43-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,273,924 kB
  • sloc: cpp: 4,684,605; ansic: 412,450; pascal: 108,398; java: 83,641; perl: 30,221; cs: 27,067; sql: 26,594; sh: 24,181; python: 21,816; yacc: 17,169; php: 11,522; xml: 7,388; javascript: 7,076; makefile: 2,194; lex: 1,075; awk: 670; asm: 520; objc: 183; ruby: 97; lisp: 86
file content (131 lines) | stat: -rw-r--r-- 5,065 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
--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';