1# Tests for PERFORMANCE_SCHEMA
2
3--source include/not_embedded.inc
4--source include/have_perfschema.inc
5
6# This test verifies that the mysys and server instruments are properly
7# initialized and recorded by the performance schema during the bootstrap
8# sequence in mysqld main().
9# Note that some globals mutexes/rwlocks/conds that depend on #ifdef options
10# or runtime options are not tested here, to have a predictable result.
11
12use performance_schema;
13
14# Verify that these global mutexes have been properly initilized in mysys
15
16select count(name) from mutex_instances
17 where name like "wait/synch/mutex/mysys/THR_LOCK_malloc";
18
19select count(name) from mutex_instances
20 where name like "wait/synch/mutex/mysys/THR_LOCK_open";
21
22select count(name) from mutex_instances
23 where name like "wait/synch/mutex/mysys/THR_LOCK_myisam";
24
25select count(name) from mutex_instances
26 where name like "wait/synch/mutex/mysys/THR_LOCK_heap";
27
28select count(name) from mutex_instances
29 where name like "wait/synch/mutex/mysys/THR_LOCK_net";
30
31select count(name) from mutex_instances
32 where name like "wait/synch/mutex/mysys/THR_LOCK_charset";
33
34# There are no global rwlock in mysys
35
36# There are no global conditions in mysys
37# (THR_COND_threads is only present in debug builds
38
39# Verify that these global mutexes have been properly initilized in sql
40
41select count(name) from mutex_instances
42 where name like "wait/synch/mutex/sql/LOCK_open";
43
44select count(name) from mutex_instances
45 where name like "wait/synch/mutex/sql/LOCK_thd_list";
46
47select count(name) from mutex_instances
48 where name like "wait/synch/mutex/sql/LOCK_log_throttle_qni";
49
50select count(name) from mutex_instances
51 where name like "wait/synch/mutex/sql/LOCK_status";
52
53select count(name) from mutex_instances
54 where name like "wait/synch/mutex/sql/LOCK_uuid_generator";
55
56select count(name) from mutex_instances
57 where name like "wait/synch/mutex/sql/LOCK_crypt";
58
59select count(name) from mutex_instances
60 where name like "wait/synch/mutex/sql/LOCK_slave_list";
61
62select count(name) from mutex_instances
63 where name like "wait/synch/mutex/sql/LOCK_manager";
64
65select count(name) from mutex_instances
66 where name like "wait/synch/mutex/sql/LOCK_global_system_variables";
67
68select count(name) from mutex_instances
69 where name like "wait/synch/mutex/sql/LOCK_user_conn";
70
71select count(name) from mutex_instances
72 where name like "wait/synch/mutex/sql/LOCK_prepared_stmt_count";
73
74select count(name) from mutex_instances
75 where name like "wait/synch/mutex/sql/LOCK_connection_count";
76
77select count(name) from mutex_instances
78 where name like "wait/synch/mutex/sql/LOCK_server_started";
79
80# LOG_INFO object are created on demand, and are not global.
81# select count(name) from mutex_instances
82#  where name like "wait/synch/mutex/sql/LOG_INFO::lock";
83
84select count(name) from mutex_instances
85 where name like "wait/synch/mutex/sql/Query_cache::structure_guard_mutex";
86
87# The event scheduler may be disabled
88# select count(name) from mutex_instances
89#  where name like "wait/synch/mutex/sql/Event_scheduler::LOCK_scheduler_state";
90
91select count(name) from mutex_instances
92 where name like "wait/synch/mutex/sql/LOCK_event_queue";
93
94select count(name) from mutex_instances
95 where name like "wait/synch/mutex/sql/LOCK_item_func_sleep";
96
97select count(name) from mutex_instances
98 where name like "wait/synch/mutex/sql/LOCK_audit_mask";
99
100select count(name) from mutex_instances
101 where name like "wait/synch/mutex/sql/LOCK_transaction_cache";
102
103select count(name) from mutex_instances
104 where name like "wait/synch/mutex/sql/LOCK_plugin";
105
106# Not a global variable, may be destroyed already.
107# select count(name) from mutex_instances
108#  where name like "wait/synch/mutex/sql/LOCK_gdl";
109
110select count(name) from mutex_instances
111 where name like "wait/synch/mutex/sql/tz_LOCK";
112
113# Verify that these global rwlocks have been properly initilized in sql
114
115select count(name) from rwlock_instances
116 where name like "wait/synch/rwlock/sql/LOCK_sys_init_connect";
117
118select count(name) from rwlock_instances
119 where name like "wait/synch/rwlock/sql/LOCK_sys_init_slave";
120
121select count(name) from rwlock_instances
122 where name like "wait/synch/rwlock/sql/LOCK_system_variables_hash";
123
124# Verify that these global conditions have been properly initilized in sql
125
126select count(name) from cond_instances
127 where name like "wait/synch/cond/sql/COND_server_started";
128
129select count(name) from cond_instances
130 where name like "wait/synch/cond/sql/COND_refresh";
131
132select count(name) from cond_instances
133 where name like "wait/synch/cond/sql/COND_thread_count";
134
135select count(name) from cond_instances
136 where name like "wait/synch/cond/sql/COND_manager";
137
138select count(name) from cond_instances
139 where name like "wait/synch/cond/sql/COND_thread_cache";
140
141select count(name) from cond_instances
142 where name like "wait/synch/cond/sql/COND_flush_thread_cache";
143
144select count(name) from cond_instances
145 where name like "wait/synch/cond/sql/Query_cache::COND_cache_status_changed";
146
147# The event scheduler may be disabled
148# select count(name) from cond_instances
149#  where name like "wait/synch/cond/sql/Event_scheduler::COND_state";
150
151select count(name) from cond_instances
152 where name like "wait/synch/cond/sql/COND_queue_state";
153
154