diff options
author | tnurnberg@mysql.com/white.intern.koehntopp.de <> | 2008-02-24 14:12:17 +0100 |
---|---|---|
committer | tnurnberg@mysql.com/white.intern.koehntopp.de <> | 2008-02-24 14:12:17 +0100 |
commit | 79491f93c8fdba2f75d968104ade0f88137cc036 (patch) | |
tree | d95d25d1f64c4bf0b5f7fb5748ed418eaee29c82 /storage/example | |
parent | 60fc91570b04f0202c7f58c74f493b18e9813923 (diff) | |
download | mariadb-git-79491f93c8fdba2f75d968104ade0f88137cc036.tar.gz |
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.
Diffstat (limited to 'storage/example')
-rw-r--r-- | storage/example/ha_example.cc | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/storage/example/ha_example.cc b/storage/example/ha_example.cc index 6d9f4841e06..604722c3c8c 100644 --- a/storage/example/ha_example.cc +++ b/storage/example/ha_example.cc @@ -849,6 +849,7 @@ struct st_mysql_storage_engine example_storage_engine= { MYSQL_HANDLERTON_INTERFACE_VERSION }; static ulong srv_enum_var= 0; +static ulong srv_ulong_var= 0; const char *enum_var_names[]= { @@ -871,8 +872,21 @@ static MYSQL_SYSVAR_ENUM( 0, // def &enum_var_typelib); // typelib +static MYSQL_SYSVAR_ULONG( + ulong_var, + srv_ulong_var, + PLUGIN_VAR_RQCMDARG, + "0..1000", + NULL, + NULL, + 8, + 0, + 1000, + 0); + static struct st_mysql_sys_var* example_system_variables[]= { MYSQL_SYSVAR(enum_var), + MYSQL_SYSVAR(ulong_var), NULL }; |