mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
Bug#32757: hang with sql_mode set when setting some global variables
If setting a system-variable provided by a plug-in failed, no OK or error was sent in some cases, hanging the client. We now send an error in the case from the ticket (integer-argument out of range in STRICT mode). We also provide a semi-generic fallback message for possible future cases like this where an error is signalled, but no message is sent to the client. The error/warning handling is unified so it's the same again for variables provided by plugins and those in the server proper.
This commit is contained in:
parent
60fc91570b
commit
79491f93c8
@@ -27,3 +27,30 @@ SET GLOBAL example_enum_var= e2;
|
||||
SET GLOBAL example_enum_var= impossible;
|
||||
ERROR 42000: Variable 'enum_var' can't be set to the value of 'impossible'
|
||||
UNINSTALL PLUGIN example;
|
||||
INSTALL PLUGIN example SONAME 'ha_example.so';
|
||||
select @@session.sql_mode into @old_sql_mode;
|
||||
set session sql_mode='';
|
||||
set global example_ulong_var=500;
|
||||
select @@global.example_ulong_var;
|
||||
@@global.example_ulong_var
|
||||
500
|
||||
set global example_ulong_var=1111;
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect ulong_var value: '1111'
|
||||
select @@global.example_ulong_var;
|
||||
@@global.example_ulong_var
|
||||
1000
|
||||
set session sql_mode='STRICT_ALL_TABLES';
|
||||
set global example_ulong_var=500;
|
||||
select @@global.example_ulong_var;
|
||||
@@global.example_ulong_var
|
||||
500
|
||||
set global example_ulong_var=1111;
|
||||
ERROR 42000: Variable 'ulong_var' can't be set to the value of '1111'
|
||||
select @@global.example_ulong_var;
|
||||
@@global.example_ulong_var
|
||||
500
|
||||
set session sql_mode=@old_sql_mode;
|
||||
set session old=bla;
|
||||
ERROR HY000: Variable 'old' is a read only variable
|
||||
UNINSTALL PLUGIN example;
|
||||
|
||||
Reference in New Issue
Block a user