summaryrefslogtreecommitdiffstats
path: root/mysql-test/suite/plugins/t/feedback_plugin_load.test
blob: f67397afdfee7af072ae3465fcc612be92338f4f (plain)
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
if (`select count(*) = 0 from information_schema.plugins where plugin_name = 'feedback' and plugin_status='active'`)
{
  --skip Feedback plugin is not active
}
if (`select @@feedback_url = ""`)
{
  --skip Feedback plugin is not active
}

select plugin_status from information_schema.plugins where plugin_name='feedback';

# Every SELECT from INFORMATION_SCHEMA.FEEDBACK increases the value of 'FEEDBACK used'.
# We cannot record the actual value, because the test can be executed more than once,
# but we can check that the value indeed increases as expected.
# There is still a room for some race condition, e.g. if at the very moment
# between first SELECT to store the value and the next SELECT to check that it increases,
# the feedback plugin is activated. But the probability of it is close to 0,
# so lets get back to it if it ever happens.

# Lets say the plugin was used X times before this SELECT
SELECT variable_value INTO @feedback_used FROM information_schema.feedback where variable_name = 'FEEDBACK used';

# Now $feedback_used == X+1, and 'FEEDBACK used' is also X+1. And variable_value is increased again when we run the next SELECT
SELECT variable_value = @feedback_used + 1 as 'MUST BE 1' FROM information_schema.feedback where variable_name = 'FEEDBACK used';

# Now when we are happy with 'FEEDBACK used', we can check everything else

--replace_result https http
--sorted_result
select * from information_schema.feedback where variable_name like 'feed%'
       and variable_name not like '%_uid' and variable_name not like 'FEEDBACK used'
       and variable_name not like '%debug%';

# Embedded server does not use the table mysqld.user and thus
# does not automatically use utf8mb4 on startup. Use it manually.
--disable_query_log
if (`SELECT VERSION() LIKE '%embedded%'`)
{
  create temporary table t1 (a json);
}
--enable_query_log
SELECT VARIABLE_VALUE>0, VARIABLE_NAME FROM INFORMATION_SCHEMA.FEEDBACK
WHERE VARIABLE_NAME LIKE 'Collation used %'
ORDER BY VARIABLE_NAME;

prepare stmt from "SELECT VARIABLE_VALUE>0, VARIABLE_NAME FROM INFORMATION_SCHEMA.FEEDBACK WHERE VARIABLE_NAME LIKE 'Collation used %' ORDER BY VARIABLE_NAME";

execute stmt;
execute stmt;

deallocate prepare stmt;