Skip to content

Commit 300f50f

Browse files
committed
Bug#20811494 SHOW_COMPATIBILITY_56 = OFF INCOMPATIBLE WITH CONNECTORS
Before this change, running a server with show_compatibility_56 = OFF caused failures in Connector/J (the java connector for MySQL) Root cause of failures is multiple. 1) SHOW VARIABLES WHERE ... The java connector uses these queries, but the server no longer support them. 2) SHOW VARIABLES output The output has changed from SESSION + GLOBAL variables to SESSION only variables. The java connector is not using SHOW GLOBAL VARIABLES, and is then missing some data. Both items are the result of the proposed deprecation related to SHOW_COMPATIBILITY_56 introduced in 5.7.6. With this fix, the restrictions are lifted, so that a server running with SHOW_COMPATIBILITY_56 = OFF behave in a way which is compatible with previous, established, usage. In particular: A) The deprecation of SHOW VARIABLES/STATUS WHERE is abandonned. WHERE clauses are fully supported, even with SHOW_COMPATIBILITY_56 = OFF. B) The table performance_schema.session_variables which is the underlying implementation of SHOW VARIABLES has been changed to report: - SESSION variables (no change) - and GLOBAL variables (changed) C) Likewise, table performance_schema.session_status reports both SESSION and GLOBAL status variables. As a result, the behavior of: - SHOW VARIABLES - SHOW STATUS is the same as the historical bahavior of MySQL, and in particular: - WHERE clauses are supported - both SESSION and GLOBAL data is reported. and this now happens both: - with SHOW_COMPATIBILITY_56 = ON - with SHOW_COMPATIBILITY_56 = OFF Note that the variable SHOW_COMPATIBILITY_56 itself still exists, but the scope controlled by this variable is reduced.
1 parent eac8363 commit 300f50f

15 files changed

+786
-268
lines changed

mysql-test/suite/perfschema/r/show_coverage.result

+24-16
Original file line numberDiff line numberDiff line change
@@ -6,30 +6,28 @@ SHOW_COMPATIBILITY_56 = ON
66
set global show_compatibility_56 = ON;
77

88
# TEST 1
9-
# Handling of SHOW STATUS/VARIABLES...WHERE, expect ERR_WARN_DEPRECATED_SYNTAX
9+
# Handling of SHOW STATUS/VARIABLES ... WHERE
1010
#
11+
SHOW STATUS WHERE VARIABLE_NAME LIKE "foo";
12+
Variable_name Value
13+
1114
SHOW GLOBAL STATUS WHERE VARIABLE_NAME LIKE "foo";
1215
Variable_name Value
13-
Warnings:
14-
Warning 1287 'SHOW GLOBAL STATUS WHERE' is deprecated and will be removed in a future release. Please use SHOW GLOBAL STATUS [LIKE] instead
1516

1617
SHOW SESSION STATUS WHERE VARIABLE_NAME LIKE "foo";
1718
Variable_name Value
18-
Warnings:
19-
Warning 1287 'SHOW SESSION STATUS WHERE' is deprecated and will be removed in a future release. Please use SHOW SESSION STATUS [LIKE] instead
19+
20+
SHOW VARIABLES WHERE VARIABLE_NAME LIKE "foo";
21+
Variable_name Value
2022

2123
SHOW GLOBAL VARIABLES WHERE VARIABLE_NAME LIKE "foo";
2224
Variable_name Value
23-
Warnings:
24-
Warning 1287 'SHOW GLOBAL VARIABLES WHERE' is deprecated and will be removed in a future release. Please use SHOW GLOBAL VARIABLES [LIKE] instead
2525

2626
SHOW SESSION VARIABLES WHERE VARIABLE_NAME LIKE "foo";
2727
Variable_name Value
28-
Warnings:
29-
Warning 1287 'SHOW SESSION VARIABLES WHERE' is deprecated and will be removed in a future release. Please use SHOW SESSION VARIABLES [LIKE] instead
3028

3129
# TEST 2
32-
# CREATE..SELECT -- Expect correct ERR_WARN_DEPRECATED_SYNTAX
30+
# CREATE..SELECT -- Expect correct ER_WARN_DEPRECATED_SYNTAX
3331
#
3432
USE test;
3533
CREATE TABLE t0 SELECT * FROM information_schema.global_status WHERE variable_name = 'COM_SELECT';
@@ -58,19 +56,29 @@ select * from status_by_host order by variable_name;
5856
select * from status_by_account order by variable_name;
5957

6058
# TEST 4
61-
# Handling of SHOW STATUS/VARIABLES...WHERE, expect usage error.
59+
# Handling of SHOW STATUS/VARIABLES ... WHERE
6260
#
63-
SHOW SESSION STATUS WHERE VARIABLE_NAME LIKE "foo";
64-
ERROR HY000: Incorrect usage of SHOW STATUS and WHERE
61+
SHOW STATUS WHERE VARIABLE_NAME LIKE "foo";
62+
Variable_name Value
63+
64+
SHOW GLOBAL STATUS WHERE VARIABLE_NAME LIKE "foo";
65+
Variable_name Value
6566

6667
SHOW SESSION STATUS WHERE VARIABLE_NAME LIKE "foo";
67-
ERROR HY000: Incorrect usage of SHOW STATUS and WHERE
68+
Variable_name Value
69+
70+
SHOW VARIABLES WHERE VARIABLE_NAME LIKE "foo";
71+
Variable_name Value
72+
Warnings:
73+
Warning 1681 '@@SESSION.GTID_EXECUTED' is deprecated and will be removed in a future release.
6874

6975
SHOW GLOBAL VARIABLES WHERE VARIABLE_NAME LIKE "foo";
70-
ERROR HY000: Incorrect usage of SHOW VARIABLES and WHERE
76+
Variable_name Value
7177

7278
SHOW SESSION VARIABLES WHERE VARIABLE_NAME LIKE "foo";
73-
ERROR HY000: Incorrect usage of SHOW VARIABLES and WHERE
79+
Variable_name Value
80+
Warnings:
81+
Warning 1681 '@@SESSION.GTID_EXECUTED' is deprecated and will be removed in a future release.
7482

7583
# TEST 5
7684
# Confirm FLUSH STATUS resets counters for all threads.

mysql-test/suite/perfschema/r/show_plugin.result

+120
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,13 @@ example_status_var6 8250
163163

164164
SHOW SESSION STATUS LIKE "example_%";
165165
Variable_name Value
166+
example_func_example enum_var is 0, ulong_var is 8, double_var is 8.500000, really
167+
example_status_array_var1 100
168+
example_status_array_var2 20.010000
169+
example_status_var3 three hundred
170+
example_status_var4 ON
171+
example_status_var5 OFF
172+
example_status_var6 8250
166173

167174
SHOW GLOBAL VARIABLES LIKE "example_%";
168175
Variable_name Value
@@ -174,6 +181,9 @@ example_ulong_var 8
174181
SHOW SESSION VARIABLES LIKE "example_%";
175182
Variable_name Value
176183
example_double_thdvar 8.500000
184+
example_double_var 8.500000
185+
example_enum_var e1
186+
example_ulong_var 8
177187

178188
SELECT variable_name, variable_value FROM performance_schema.global_status WHERE variable_name LIKE "example_%";
179189
variable_name variable_value
@@ -187,6 +197,13 @@ example_status_var6 8250
187197

188198
SELECT variable_name, variable_value FROM performance_schema.session_status WHERE variable_name LIKE "example_%";
189199
variable_name variable_value
200+
example_func_example enum_var is 0, ulong_var is 8, double_var is 8.500000, really
201+
example_status_array_var1 100
202+
example_status_array_var2 20.010000
203+
example_status_var3 three hundred
204+
example_status_var4 ON
205+
example_status_var5 OFF
206+
example_status_var6 8250
190207

191208
SELECT variable_name, variable_value FROM performance_schema.global_variables WHERE variable_name LIKE "example_%";
192209
variable_name variable_value
@@ -198,6 +215,9 @@ example_ulong_var 8
198215
SELECT variable_name, variable_value FROM performance_schema.session_variables WHERE variable_name LIKE "example_%";
199216
variable_name variable_value
200217
example_double_thdvar 8.500000
218+
example_double_var 8.500000
219+
example_enum_var e1
220+
example_ulong_var 8
201221
disconnect con0;
202222

203223
================================================================================
@@ -293,6 +313,13 @@ example_status_var6 8250
293313

294314
SHOW SESSION STATUS LIKE "example_%";
295315
Variable_name Value
316+
example_func_example enum_var is 0, ulong_var is 100, double_var is 100.999000, really
317+
example_status_array_var1 100
318+
example_status_array_var2 20.010000
319+
example_status_var3 three hundred
320+
example_status_var4 ON
321+
example_status_var5 OFF
322+
example_status_var6 8250
296323

297324
SHOW GLOBAL VARIABLES LIKE "example_%";
298325
Variable_name Value
@@ -304,6 +331,9 @@ example_ulong_var 100
304331
SHOW SESSION VARIABLES LIKE "example_%";
305332
Variable_name Value
306333
example_double_thdvar 102.999200
334+
example_double_var 100.999000
335+
example_enum_var e1
336+
example_ulong_var 100
307337

308338
SELECT variable_name, variable_value FROM performance_schema.global_status WHERE variable_name LIKE "example_%";
309339
variable_name variable_value
@@ -317,6 +347,13 @@ example_status_var6 8250
317347

318348
SELECT variable_name, variable_value FROM performance_schema.session_status WHERE variable_name LIKE "example_%";
319349
variable_name variable_value
350+
example_func_example enum_var is 0, ulong_var is 100, double_var is 100.999000, really
351+
example_status_array_var1 100
352+
example_status_array_var2 20.010000
353+
example_status_var3 three hundred
354+
example_status_var4 ON
355+
example_status_var5 OFF
356+
example_status_var6 8250
320357

321358
SELECT variable_name, variable_value FROM performance_schema.global_variables WHERE variable_name LIKE "example_%";
322359
variable_name variable_value
@@ -328,6 +365,9 @@ example_ulong_var 100
328365
SELECT variable_name, variable_value FROM performance_schema.session_variables WHERE variable_name LIKE "example_%";
329366
variable_name variable_value
330367
example_double_thdvar 102.999200
368+
example_double_var 100.999000
369+
example_enum_var e1
370+
example_ulong_var 100
331371

332372
================================================================================
333373
2.4 - UNINSTALL PLUGIN
@@ -490,6 +530,13 @@ example_status_var6 8250
490530

491531
SHOW SESSION STATUS LIKE "example_%";
492532
Variable_name Value
533+
example_func_example enum_var is 1, ulong_var is 200, double_var is 200.888000, really
534+
example_status_array_var1 100
535+
example_status_array_var2 20.010000
536+
example_status_var3 three hundred
537+
example_status_var4 ON
538+
example_status_var5 OFF
539+
example_status_var6 8250
493540

494541
SHOW GLOBAL VARIABLES LIKE "example_%";
495542
Variable_name Value
@@ -501,6 +548,9 @@ example_ulong_var 200
501548
SHOW SESSION VARIABLES LIKE "example_%";
502549
Variable_name Value
503550
example_double_thdvar 202.888200
551+
example_double_var 200.888000
552+
example_enum_var e2
553+
example_ulong_var 200
504554

505555
SELECT variable_name, variable_value FROM performance_schema.global_status WHERE variable_name LIKE "example_%";
506556
variable_name variable_value
@@ -514,6 +564,13 @@ example_status_var6 8250
514564

515565
SELECT variable_name, variable_value FROM performance_schema.session_status WHERE variable_name LIKE "example_%";
516566
variable_name variable_value
567+
example_func_example enum_var is 1, ulong_var is 200, double_var is 200.888000, really
568+
example_status_array_var1 100
569+
example_status_array_var2 20.010000
570+
example_status_var3 three hundred
571+
example_status_var4 ON
572+
example_status_var5 OFF
573+
example_status_var6 8250
517574

518575
SELECT variable_name, variable_value FROM performance_schema.global_variables WHERE variable_name LIKE "example_%";
519576
variable_name variable_value
@@ -525,6 +582,9 @@ example_ulong_var 200
525582
SELECT variable_name, variable_value FROM performance_schema.session_variables WHERE variable_name LIKE "example_%";
526583
variable_name variable_value
527584
example_double_thdvar 202.888200
585+
example_double_var 200.888000
586+
example_enum_var e2
587+
example_ulong_var 200
528588

529589
================================================================================
530590
2.9 - UNINSTALL PLUGIN
@@ -703,6 +763,13 @@ example_status_var6 8250
703763

704764
SHOW SESSION STATUS LIKE "example_%";
705765
Variable_name Value
766+
example_func_example enum_var is 0, ulong_var is 300, double_var is 301.000000, really
767+
example_status_array_var1 100
768+
example_status_array_var2 20.010000
769+
example_status_var3 three hundred
770+
example_status_var4 ON
771+
example_status_var5 OFF
772+
example_status_var6 8250
706773

707774
SHOW GLOBAL VARIABLES LIKE "example_%";
708775
Variable_name Value
@@ -714,6 +781,9 @@ example_ulong_var 300
714781
SHOW SESSION VARIABLES LIKE "example_%";
715782
Variable_name Value
716783
example_double_thdvar 300.000000
784+
example_double_var 301.000000
785+
example_enum_var e1
786+
example_ulong_var 300
717787

718788
SELECT variable_name, variable_value FROM performance_schema.global_status WHERE variable_name LIKE "example_%";
719789
variable_name variable_value
@@ -727,6 +797,13 @@ example_status_var6 8250
727797

728798
SELECT variable_name, variable_value FROM performance_schema.session_status WHERE variable_name LIKE "example_%";
729799
variable_name variable_value
800+
example_func_example enum_var is 0, ulong_var is 300, double_var is 301.000000, really
801+
example_status_array_var1 100
802+
example_status_array_var2 20.010000
803+
example_status_var3 three hundred
804+
example_status_var4 ON
805+
example_status_var5 OFF
806+
example_status_var6 8250
730807

731808
SELECT variable_name, variable_value FROM performance_schema.global_variables WHERE variable_name LIKE "example_%";
732809
variable_name variable_value
@@ -738,6 +815,9 @@ example_ulong_var 300
738815
SELECT variable_name, variable_value FROM performance_schema.session_variables WHERE variable_name LIKE "example_%";
739816
variable_name variable_value
740817
example_double_thdvar 300.000000
818+
example_double_var 301.000000
819+
example_enum_var e1
820+
example_ulong_var 300
741821

742822
# Variables by thread
743823
SELECT variable_name, variable_value FROM performance_schema.variables_by_thread
@@ -843,6 +923,13 @@ example_status_var6 8250
843923

844924
SHOW SESSION STATUS LIKE "example_%";
845925
Variable_name Value
926+
example_func_example enum_var is 0, ulong_var is 300, double_var is 301.000000, really
927+
example_status_array_var1 100
928+
example_status_array_var2 20.010000
929+
example_status_var3 three hundred
930+
example_status_var4 ON
931+
example_status_var5 OFF
932+
example_status_var6 8250
846933

847934
SHOW GLOBAL VARIABLES LIKE "example_%";
848935
Variable_name Value
@@ -854,6 +941,9 @@ example_ulong_var 300
854941
SHOW SESSION VARIABLES LIKE "example_%";
855942
Variable_name Value
856943
example_double_thdvar 300.000000
944+
example_double_var 301.000000
945+
example_enum_var e1
946+
example_ulong_var 300
857947

858948
SELECT variable_name, variable_value FROM performance_schema.global_status WHERE variable_name LIKE "example_%";
859949
variable_name variable_value
@@ -867,6 +957,13 @@ example_status_var6 8250
867957

868958
SELECT variable_name, variable_value FROM performance_schema.session_status WHERE variable_name LIKE "example_%";
869959
variable_name variable_value
960+
example_func_example enum_var is 0, ulong_var is 300, double_var is 301.000000, really
961+
example_status_array_var1 100
962+
example_status_array_var2 20.010000
963+
example_status_var3 three hundred
964+
example_status_var4 ON
965+
example_status_var5 OFF
966+
example_status_var6 8250
870967

871968
SELECT variable_name, variable_value FROM performance_schema.global_variables WHERE variable_name LIKE "example_%";
872969
variable_name variable_value
@@ -878,6 +975,9 @@ example_ulong_var 300
878975
SELECT variable_name, variable_value FROM performance_schema.session_variables WHERE variable_name LIKE "example_%";
879976
variable_name variable_value
880977
example_double_thdvar 300.000000
978+
example_double_var 301.000000
979+
example_enum_var e1
980+
example_ulong_var 300
881981

882982
# Variables by thread
883983
SELECT variable_name, variable_value FROM performance_schema.variables_by_thread
@@ -983,6 +1083,13 @@ example_status_var6 8250
9831083

9841084
SHOW SESSION STATUS LIKE "example_%";
9851085
Variable_name Value
1086+
example_func_example enum_var is 0, ulong_var is 300, double_var is 301.000000, really
1087+
example_status_array_var1 100
1088+
example_status_array_var2 20.010000
1089+
example_status_var3 three hundred
1090+
example_status_var4 ON
1091+
example_status_var5 OFF
1092+
example_status_var6 8250
9861093

9871094
SHOW GLOBAL VARIABLES LIKE "example_%";
9881095
Variable_name Value
@@ -994,6 +1101,9 @@ example_ulong_var 300
9941101
SHOW SESSION VARIABLES LIKE "example_%";
9951102
Variable_name Value
9961103
example_double_thdvar 300.000000
1104+
example_double_var 301.000000
1105+
example_enum_var e1
1106+
example_ulong_var 300
9971107

9981108
SELECT variable_name, variable_value FROM performance_schema.global_status WHERE variable_name LIKE "example_%";
9991109
variable_name variable_value
@@ -1007,6 +1117,13 @@ example_status_var6 8250
10071117

10081118
SELECT variable_name, variable_value FROM performance_schema.session_status WHERE variable_name LIKE "example_%";
10091119
variable_name variable_value
1120+
example_func_example enum_var is 0, ulong_var is 300, double_var is 301.000000, really
1121+
example_status_array_var1 100
1122+
example_status_array_var2 20.010000
1123+
example_status_var3 three hundred
1124+
example_status_var4 ON
1125+
example_status_var5 OFF
1126+
example_status_var6 8250
10101127

10111128
SELECT variable_name, variable_value FROM performance_schema.global_variables WHERE variable_name LIKE "example_%";
10121129
variable_name variable_value
@@ -1018,6 +1135,9 @@ example_ulong_var 300
10181135
SELECT variable_name, variable_value FROM performance_schema.session_variables WHERE variable_name LIKE "example_%";
10191136
variable_name variable_value
10201137
example_double_thdvar 300.000000
1138+
example_double_var 301.000000
1139+
example_enum_var e1
1140+
example_ulong_var 300
10211141

10221142
# Variables by thread
10231143
SELECT variable_name, variable_value FROM performance_schema.variables_by_thread

0 commit comments

Comments
 (0)