File: errors.result

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 (365 lines) | stat: -rw-r--r-- 18,705 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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
#
# Test of various abuses of the plugin.
#
SET sql_mode = 'PIPES_AS_CONCAT';
CALL mtr.add_suppression("Plugin rewriter reported: " ||
"'Some rules failed to load.'");
CALL mtr.add_suppression("Plugin rewriter reported: " ||
"'Wrong column count or names when loading rules.'");
# In theory a user might try to install the UDF without the plugin. In
# this case, we should exit gracefully with an informative error.
CREATE FUNCTION load_rewrite_rules RETURNS STRING SONAME 'rewriter.xxx';
SELECT load_rewrite_rules();
ERROR HY000: Can't initialize function 'load_rewrite_rules'; Rewriter plugin needs to be installed.
DROP FUNCTION load_rewrite_rules;
CREATE TABLE t1 ( c1 VARCHAR(10), c2 VARCHAR(10) );
INSERT INTO t1 VALUES( 'abc', 'def' ), ( 'ghi', 'klm' ), ( 'nop', 'qrs' );
CREATE TABLE t2( c1 VARCHAR(10) );
INSERT INTO t2 VALUES ( 'tuv' ), ( 'wxy' );
#
# Create a table with insufficient number of columns.
#
CREATE DATABASE query_rewrite;
CREATE TABLE query_rewrite.rewrite_rules ( pattern INT, replacement INT );
Warnings:
Note	1007	Can't create database 'query_rewrite'; database exists
Warnings:
Note	1050	Table 'rewrite_rules' already exists
# Query rewrite plugin was installed.
SELECT c1 FROM t1;
c1
abc
ghi
nop
SHOW STATUS LIKE 'Rewriter_reload_error';
Variable_name	Value
Rewriter_reload_error	ON
SHOW STATUS LIKE 'Rewriter_number_loaded_rules';
Variable_name	Value
Rewriter_number_loaded_rules	0
CREATE TABLE IF NOT EXISTS error_log ( line TEXT );
DELETE FROM error_log;
LOAD DATA LOCAL INFILE 'ERROR_LOG'
INTO TABLE error_log FIELDS TERMINATED BY '\t';
UPDATE error_log SET line = replace ( line, '\r', '' );
# Avoid seeing any other error that might be there.
SELECT search_error_log( '[Error]', "%Plugin Rewriter reported: 'Wrong%" );
search_error_log( '[Error]', "%Plugin Rewriter reported: 'Wrong%" )
[ERROR] [MY-011276] [Server] Plugin Rewriter reported: 'Wrong column count or names when loading rules.'
SHOW STATUS LIKE 'Rewriter_number_reloads';
Variable_name	Value
Rewriter_number_reloads	1
Warnings:
Warning	1620	Plugin is busy and will be uninstalled on shutdown
# Query rewrite plugin was queued for uninstalling.
# Create another table with insufficient number of columns.
CREATE DATABASE query_rewrite;
CREATE TABLE query_rewrite.rewrite_rules ( enabled CHAR(1) DEFAULT 'Y' );
Warnings:
Note	1007	Can't create database 'query_rewrite'; database exists
Warnings:
Note	1050	Table 'rewrite_rules' already exists
# Query rewrite plugin was installed.
CREATE TABLE IF NOT EXISTS error_log ( line TEXT );
DELETE FROM error_log;
LOAD DATA LOCAL INFILE 'ERROR_LOG'
INTO TABLE error_log FIELDS TERMINATED BY '\t';
UPDATE error_log SET line = replace ( line, '\r', '' );
# Avoid seeing any other error that might be there.
SELECT search_error_log( '[Error]', "%Plugin Rewriter reported: 'Wrong%" );
search_error_log( '[Error]', "%Plugin Rewriter reported: 'Wrong%" )
[ERROR] [MY-011276] [Server] Plugin Rewriter reported: 'Wrong column count or names when loading rules.'
SHOW STATUS LIKE 'Rewriter_number_reloads';
Variable_name	Value
Rewriter_number_reloads	1
SELECT c1 FROM t1;
c1
abc
ghi
nop
SHOW STATUS LIKE 'Rewriter_reload_error';
Variable_name	Value
Rewriter_reload_error	ON
SHOW STATUS LIKE 'Rewriter_number_loaded_rules';
Variable_name	Value
Rewriter_number_loaded_rules	0
Warnings:
Warning	1620	Plugin is busy and will be uninstalled on shutdown
# Query rewrite plugin was queued for uninstalling.
# Query rewrite plugin was installed.
#
# We now try 6 rules with various errors in them:
#
SHOW STATUS LIKE 'Rewriter_reload_error';
Variable_name	Value
Rewriter_reload_error	OFF
SHOW STATUS LIKE 'Rewriter_number_loaded_rules';
Variable_name	Value
Rewriter_number_loaded_rules	0
# 1. Syntax error in the replacement.
INSERT INTO query_rewrite.rewrite_rules ( pattern, replacement )
VALUES ( 'SELECT c1 FROM test.t1 WHERE c1 = ?', 'SELECT c1 FROM test.t2 WHERE q c1 = ?' );
CALL query_rewrite.flush_rewrite_rules();
ERROR 45000: Loading of some rule(s) failed.
SHOW STATUS LIKE 'Rewriter_reload_error';
Variable_name	Value
Rewriter_reload_error	ON
SHOW STATUS LIKE 'Rewriter_number_loaded_rules';
Variable_name	Value
Rewriter_number_loaded_rules	0
SELECT c1 FROM test.t1 WHERE c1 = 'abc';
c1
abc
SELECT * FROM query_rewrite.rewrite_rules;
id	pattern	pattern_database	replacement	enabled	message
1	SELECT c1 FROM test.t1 WHERE c1 = ?	NULL	SELECT c1 FROM test.t2 WHERE q c1 = ?	YES	Parse error in replacement: >>You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'c1 = ?' at line 1<<
# 2. No error.
INSERT INTO query_rewrite.rewrite_rules ( pattern, replacement )
VALUES ( 'SELECT c1 FROM test.t1', 'SELECT * FROM test.t1' );
CALL query_rewrite.flush_rewrite_rules();
ERROR 45000: Loading of some rule(s) failed.
SHOW STATUS LIKE 'Rewriter_reload_error';
Variable_name	Value
Rewriter_reload_error	ON
SHOW STATUS LIKE 'Rewriter_number_loaded_rules';
Variable_name	Value
Rewriter_number_loaded_rules	1
SELECT * FROM query_rewrite.rewrite_rules;
id	pattern	pattern_database	replacement	enabled	message
1	SELECT c1 FROM test.t1 WHERE c1 = ?	NULL	SELECT c1 FROM test.t2 WHERE q c1 = ?	YES	Parse error in replacement: >>You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'c1 = ?' at line 1<<
2	SELECT c1 FROM test.t1	NULL	SELECT * FROM test.t1	YES	NULL
# 3. Syntax error in the pattern.
INSERT INTO query_rewrite.rewrite_rules ( pattern, replacement )
VALUES ( 'SELECT c1 FROM test.t1 WHERE dqdq c1 = ? OR c2 = ?',
'SELECT * FROM test.t1 WHERE c2 = ? OR c1 = ?' );
CALL query_rewrite.flush_rewrite_rules();
ERROR 45000: Loading of some rule(s) failed.
SHOW STATUS LIKE 'Rewriter_reload_error';
Variable_name	Value
Rewriter_reload_error	ON
SHOW STATUS LIKE 'Rewriter_number_loaded_rules';
Variable_name	Value
Rewriter_number_loaded_rules	1
SELECT * FROM query_rewrite.rewrite_rules;
id	pattern	pattern_database	replacement	enabled	message
1	SELECT c1 FROM test.t1 WHERE c1 = ?	NULL	SELECT c1 FROM test.t2 WHERE q c1 = ?	YES	Parse error in replacement: >>You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'c1 = ?' at line 1<<
2	SELECT c1 FROM test.t1	NULL	SELECT * FROM test.t1	YES	NULL
3	SELECT c1 FROM test.t1 WHERE dqdq c1 = ? OR c2 = ?	NULL	SELECT * FROM test.t1 WHERE c2 = ? OR c1 = ?	YES	Parse error in pattern: >>You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'c1 = ? OR c2 = ?' at line 1<<
# 4 Empty/NULL replacement/pattern
INSERT INTO query_rewrite.rewrite_rules ( pattern, replacement )
VALUES ( 'SELECT c1 FROM test.t1 WHERE c2 = ?', '' );
CALL query_rewrite.flush_rewrite_rules();
ERROR 45000: Loading of some rule(s) failed.
SHOW STATUS LIKE 'Rewriter_reload_error';
Variable_name	Value
Rewriter_reload_error	ON
SHOW STATUS LIKE 'Rewriter_number_loaded_rules';
Variable_name	Value
Rewriter_number_loaded_rules	1
SELECT * FROM query_rewrite.rewrite_rules;
id	pattern	pattern_database	replacement	enabled	message
1	SELECT c1 FROM test.t1 WHERE c1 = ?	NULL	SELECT c1 FROM test.t2 WHERE q c1 = ?	YES	Parse error in replacement: >>You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'c1 = ?' at line 1<<
2	SELECT c1 FROM test.t1	NULL	SELECT * FROM test.t1	YES	NULL
3	SELECT c1 FROM test.t1 WHERE dqdq c1 = ? OR c2 = ?	NULL	SELECT * FROM test.t1 WHERE c2 = ? OR c1 = ?	YES	Parse error in pattern: >>You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'c1 = ? OR c2 = ?' at line 1<<
4	SELECT c1 FROM test.t1 WHERE c2 = ?	NULL		YES	Parse error in replacement: >>Query was empty<<
DELETE FROM query_rewrite.rewrite_rules
WHERE pattern = 'SELECT c1 FROM test.t1 WHERE c2 = ?';
ALTER TABLE query_rewrite.rewrite_rules
MODIFY COLUMN replacement VARCHAR(10000) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
INSERT INTO query_rewrite.rewrite_rules ( pattern )
VALUES ( 'SELECT c1 FROM test.t1 WHERE c2 = ?' );
CALL query_rewrite.flush_rewrite_rules();
ERROR 45000: Loading of some rule(s) failed.
SHOW STATUS LIKE 'Rewriter_reload_error';
Variable_name	Value
Rewriter_reload_error	ON
SHOW STATUS LIKE 'Rewriter_number_loaded_rules';
Variable_name	Value
Rewriter_number_loaded_rules	1
SELECT * FROM query_rewrite.rewrite_rules;
id	pattern	pattern_database	replacement	enabled	message
1	SELECT c1 FROM test.t1 WHERE c1 = ?	NULL	SELECT c1 FROM test.t2 WHERE q c1 = ?	YES	Parse error in replacement: >>You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'c1 = ?' at line 1<<
2	SELECT c1 FROM test.t1	NULL	SELECT * FROM test.t1	YES	NULL
3	SELECT c1 FROM test.t1 WHERE dqdq c1 = ? OR c2 = ?	NULL	SELECT * FROM test.t1 WHERE c2 = ? OR c1 = ?	YES	Parse error in pattern: >>You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'c1 = ? OR c2 = ?' at line 1<<
5	SELECT c1 FROM test.t1 WHERE c2 = ?	NULL	NULL	YES	Replacement is NULL.
DELETE FROM query_rewrite.rewrite_rules
WHERE pattern = 'SELECT c1 FROM test.t1 WHERE c2 = ?';
ALTER TABLE query_rewrite.rewrite_rules
MODIFY COLUMN pattern VARCHAR(5000) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
INSERT INTO query_rewrite.rewrite_rules ( replacement )
VALUES ( 'SELECT c1 FROM test.t1 WHERE c2 = ?' );
CALL query_rewrite.flush_rewrite_rules();
ERROR 45000: Loading of some rule(s) failed.
SHOW STATUS LIKE 'Rewriter_reload_error';
Variable_name	Value
Rewriter_reload_error	ON
SHOW STATUS LIKE 'Rewriter_number_loaded_rules';
Variable_name	Value
Rewriter_number_loaded_rules	1
SELECT * FROM query_rewrite.rewrite_rules;
id	pattern	pattern_database	replacement	enabled	message
1	SELECT c1 FROM test.t1 WHERE c1 = ?	NULL	SELECT c1 FROM test.t2 WHERE q c1 = ?	YES	Parse error in replacement: >>You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'c1 = ?' at line 1<<
2	SELECT c1 FROM test.t1	NULL	SELECT * FROM test.t1	YES	NULL
3	SELECT c1 FROM test.t1 WHERE dqdq c1 = ? OR c2 = ?	NULL	SELECT * FROM test.t1 WHERE c2 = ? OR c1 = ?	YES	Parse error in pattern: >>You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'c1 = ? OR c2 = ?' at line 1<<
6	NULL	NULL	SELECT c1 FROM test.t1 WHERE c2 = ?	YES	Pattern is NULL.
# 5 More parameters in the replacement than the pattern
INSERT INTO query_rewrite.rewrite_rules ( pattern, replacement )
VALUES
( 'SELECT * FROM test.t1 WHERE c1 = ?', 'SELECT * FROM test.t2 WHERE c2 = ? AND c1 = ?' );
CALL query_rewrite.flush_rewrite_rules();
ERROR 45000: Loading of some rule(s) failed.
SHOW STATUS LIKE 'Rewriter_reload_error';
Variable_name	Value
Rewriter_reload_error	ON
SHOW STATUS LIKE 'Rewriter_number_loaded_rules';
Variable_name	Value
Rewriter_number_loaded_rules	1
SELECT * FROM test.t1 WHERE c1 = 'abc';
c1	c2
abc	def
SELECT * FROM query_rewrite.rewrite_rules;
id	pattern	pattern_database	replacement	enabled	message
1	SELECT c1 FROM test.t1 WHERE c1 = ?	NULL	SELECT c1 FROM test.t2 WHERE q c1 = ?	YES	Parse error in replacement: >>You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'c1 = ?' at line 1<<
2	SELECT c1 FROM test.t1	NULL	SELECT * FROM test.t1	YES	NULL
3	SELECT c1 FROM test.t1 WHERE dqdq c1 = ? OR c2 = ?	NULL	SELECT * FROM test.t1 WHERE c2 = ? OR c1 = ?	YES	Parse error in pattern: >>You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'c1 = ? OR c2 = ?' at line 1<<
6	NULL	NULL	SELECT c1 FROM test.t1 WHERE c2 = ?	YES	Pattern is NULL.
7	SELECT * FROM test.t1 WHERE c1 = ?	NULL	SELECT * FROM test.t2 WHERE c2 = ? AND c1 = ?	YES	Replacement has more parameter markers than pattern.
# 6 A replacement that does not have syntax errors in itself, but the
# rewritten query does.
INSERT INTO query_rewrite.rewrite_rules ( pattern, replacement )
VALUES ( 'SELECT "Fail, please", ?', 'SELECT 1 LIMIT ?' );
CALL query_rewrite.flush_rewrite_rules();
ERROR 45000: Loading of some rule(s) failed.
SELECT * FROM query_rewrite.rewrite_rules;
id	pattern	pattern_database	replacement	enabled	message
1	SELECT c1 FROM test.t1 WHERE c1 = ?	NULL	SELECT c1 FROM test.t2 WHERE q c1 = ?	YES	Parse error in replacement: >>You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'c1 = ?' at line 1<<
2	SELECT c1 FROM test.t1	NULL	SELECT * FROM test.t1	YES	NULL
3	SELECT c1 FROM test.t1 WHERE dqdq c1 = ? OR c2 = ?	NULL	SELECT * FROM test.t1 WHERE c2 = ? OR c1 = ?	YES	Parse error in pattern: >>You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'c1 = ? OR c2 = ?' at line 1<<
6	NULL	NULL	SELECT c1 FROM test.t1 WHERE c2 = ?	YES	Pattern is NULL.
7	SELECT * FROM test.t1 WHERE c1 = ?	NULL	SELECT * FROM test.t2 WHERE c2 = ? AND c1 = ?	YES	Replacement has more parameter markers than pattern.
8	SELECT "Fail, please", ?	NULL	SELECT 1 LIMIT ?	YES	NULL
SHOW STATUS LIKE 'Rewriter_reload_error';
Variable_name	Value
Rewriter_reload_error	ON
SHOW STATUS LIKE 'Rewriter_number_loaded_rules';
Variable_name	Value
Rewriter_number_loaded_rules	2
SET @@global.rewriter_verbose = 2;
SELECT 'Fail, please', 'a';
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''a'' at line 1
# Check that the one rule without errors is still rewritten and executed.
SELECT c1 FROM test.t1;
c1	c2
abc	def
ghi	klm
nop	qrs
Warnings:
Note	1105	Query 'SELECT c1 FROM test.t1' rewritten to 'SELECT * FROM test.t1' by a query rewrite plugin
# Fix rule 1 (error in the replacement.)
UPDATE query_rewrite.rewrite_rules
SET replacement = 'SELECT c1 FROM test.t2 WHERE c1 = ?', enabled = 'YES'
WHERE pattern = 'SELECT c1 FROM test.t1 WHERE c1 = ?';
CALL query_rewrite.flush_rewrite_rules();
ERROR 45000: Loading of some rule(s) failed.
SHOW STATUS LIKE 'Rewriter_number_loaded_rules';
Variable_name	Value
Rewriter_number_loaded_rules	3
SELECT c1 FROM test.t1 WHERE c1 = 'abc';
c1
Warnings:
Note	1105	Query 'SELECT c1 FROM test.t1 WHERE c1 = 'abc'' rewritten to 'SELECT c1 FROM test.t2 WHERE c1 = 'abc'' by a query rewrite plugin
SELECT c1 FROM test.t2 WHERE c1 = 'tuv';
c1
tuv
SELECT * FROM query_rewrite.rewrite_rules;
id	pattern	pattern_database	replacement	enabled	message
1	SELECT c1 FROM test.t1 WHERE c1 = ?	NULL	SELECT c1 FROM test.t2 WHERE c1 = ?	YES	NULL
2	SELECT c1 FROM test.t1	NULL	SELECT * FROM test.t1	YES	NULL
3	SELECT c1 FROM test.t1 WHERE dqdq c1 = ? OR c2 = ?	NULL	SELECT * FROM test.t1 WHERE c2 = ? OR c1 = ?	YES	Parse error in pattern: >>You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'c1 = ? OR c2 = ?' at line 1<<
6	NULL	NULL	SELECT c1 FROM test.t1 WHERE c2 = ?	YES	Pattern is NULL.
7	SELECT * FROM test.t1 WHERE c1 = ?	NULL	SELECT * FROM test.t2 WHERE c2 = ? AND c1 = ?	YES	Replacement has more parameter markers than pattern.
8	SELECT "Fail, please", ?	NULL	SELECT 1 LIMIT ?	YES	NULL
# Check that the rule without error is still executed and rewritten.
SELECT c1 FROM test.t1;
c1	c2
abc	def
ghi	klm
nop	qrs
Warnings:
Note	1105	Query 'SELECT c1 FROM test.t1' rewritten to 'SELECT * FROM test.t1' by a query rewrite plugin
# Remove all the rules that cause errors.
DELETE FROM query_rewrite.rewrite_rules WHERE pattern <> 'SELECT c1 FROM test.t1';
DELETE FROM query_rewrite.rewrite_rules WHERE pattern IS NULL;
DELETE FROM query_rewrite.rewrite_rules WHERE replacement IS NULL;
SHOW STATUS LIKE 'Rewriter_reload_error';
Variable_name	Value
Rewriter_reload_error	ON
SHOW STATUS LIKE 'Rewriter_number_loaded_rules';
Variable_name	Value
Rewriter_number_loaded_rules	3
SHOW STATUS LIKE 'Rewriter_number_reloads';
Variable_name	Value
Rewriter_number_reloads	10
# Check that a rule that used to have syntax error now works fine.
SELECT c1 FROM t1 WHERE c1 = 'abc';
c1
abc
# Check that the rule without error is still executed and rewritten.
SELECT c1 FROM test.t1;
c1	c2
abc	def
ghi	klm
nop	qrs
Warnings:
Note	1105	Query 'SELECT c1 FROM test.t1' rewritten to 'SELECT * FROM test.t1' by a query rewrite plugin
# A rule with parse error followed by a correct rule should still turn
# Rewriter_reload_error to true.
DELETE FROM query_rewrite.rewrite_rules;
INSERT INTO query_rewrite.rewrite_rules ( pattern, replacement )
VALUES ( 'error', 'error' ),
( 'select 1', 'select 2' );
CALL query_rewrite.flush_rewrite_rules();
ERROR 45000: Loading of some rule(s) failed.
SELECT * FROM query_rewrite.rewrite_rules;
id	pattern	pattern_database	replacement	enabled	message
9	error	NULL	error	YES	Parse error in pattern: >>You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'error' at line 1<<
10	select 1	NULL	select 2	YES	NULL
SHOW STATUS LIKE 'Rewriter_reload_error';
Variable_name	Value
Rewriter_reload_error	ON
#
# Test of what happens if pfs digests are turned off.
#
UPDATE performance_schema.setup_consumers
SET enabled = 'NO'
WHERE NAME = 'statements_digest';
# Rewrites should still work.
SELECT 1;
2
2
Warnings:
Note	1105	Query 'SELECT 1' rewritten to 'select 2' by a query rewrite plugin
PREPARE stmt1 FROM 'SELECT 1';
Warnings:
Note	1105	Query 'SELECT 1' rewritten to 'select 2' by a query rewrite plugin
EXECUTE stmt1;
2
2
# Restore the setting.
UPDATE performance_schema.setup_consumers
SET enabled = 'YES'
WHERE NAME = 'statements_digest';
# Let's try to uninstall the plugin the wrong way, that is, not using the
# script. The library will not be unloaded so we can still call the UDF
# but it should return an error.
UNINSTALL PLUGIN rewriter;
Warnings:
Warning	1620	Plugin is busy and will be uninstalled on shutdown
CALL query_rewrite.flush_rewrite_rules();
ERROR HY000: Can't initialize function 'load_rewrite_rules'; Rewriter plugin needs to be installed.
SELECT load_rewrite_rules();
ERROR HY000: Can't initialize function 'load_rewrite_rules'; Rewriter plugin needs to be installed.
# Query rewrite plugin was queued for uninstalling.
DROP TABLE error_log;
DROP FUNCTION search_error_log;
DROP TABLE t1, t2;