Hi!
On Jan 23, Antony T Curtis wrote:
> >>diff -Nrup a/mysql-test/t/plugin_bug33358-master.opt
> b/mysql-test/t/plugin_bug33358-master.opt
> >>--- /dev/null Wed Dec 31 16:00:00 196900
> >>+++ b/mysql-test/t/plugin_bug33358-master.opt 2008-01-21 12:01:15
> >>-08:00
> >>@@ -0,0 +1,3 @@
> >>+$EXAMPLE_PLUGIN_OPT
> >>+--plugin-load=EXAMPLE=ha_example.so::
> >>+--plugin-example-enum-var=e2
> >>diff -Nrup a/mysql-test/t/plugin_bug33358.test b/mysql-test/t/
> >>plugin_bug33358.test
> >>--- /dev/null Wed Dec 31 16:00:00 196900
> >>+++ b/mysql-test/t/plugin_bug33358.test 2008-01-21 12:01:15 -08:00
> >>@@ -0,0 +1,3 @@
> >>+--source include/have_example_plugin.inc
> >>+
> >>+SELECT @@global.example_enum_var = 'e2';
> >
> >perhaps you could add this test to an existing test file that already
> >requires ha_example.so ? One restart less for the test suite...
>
> Choices are limited and doing this would alter results from other
> tests... I suppose I can just ass it to existing plugin test and fixup
> changed results accordingly.
Good idea, please do it.
Ok to push with this change.
> >> sql_print_error("Couldn't load plugin named '%s' with soname '%s'.",
> >> name.str, dl.str);
> >> DBUG_RETURN(TRUE);
> >>@@ -3017,7 +3030,22 @@ static int construct_options(MEM_ROOT *m
> >> optnamelen= namelen + optnamelen + 1;
> >> }
> >> else
> >>- optname= (char*) memdup_root(mem_root, v->key + 1, (optnamelen=
> v->name_len) + 1);
> >>+ {
> >>+ if (!(v= find_bookmark(name, opt->name, opt->flags)))
> >>+ {
> >>+ sql_print_error("Thread local variable '%s' not allocated "
> >>+ "in plugin '%s'.", opt->name, plugin_name);
> >
> >why could that happen ?
>
> This is a very unlikely event and would only occur if for some reason
> register_var failed to insert into the hash. Would it be preferred if
> I remove the 'if' and simply put an assert?
No, it's ok with sql_print_error().
> >>+ DBUG_RETURN(-1);
> >>+ }
> >>+
> >>+ *(int*)(opt + 1)= offset= v->offset;
> >>+
> >>+ if (opt->flags & PLUGIN_VAR_NOCMDOPT)
> >>+ continue;
> >>+
> >>+ optname= (char*) memdup_root(mem_root, v->key + 1,
> >>+ (optnamelen= v->name_len) + 1);
> >>+ }
> >>
> >> /* convert '_' to '-' */
> >> for (p= optname; *p; p++)
> >
Regards / Mit vielen Grüssen,
Sergei
--
__ ___ ___ ____ __
/ |/ /_ __/ __/ __ \/ / Sergei Golubchik <serg@stripped>
/ /|_/ / // /\ \/ /_/ / /__ Principal Software Developer
/_/ /_/\_, /___/\___\_\___/ MySQL GmbH, Dachauer Str. 37, D-80335 München
<___/ Geschäftsführer: Kaj Arnö - HRB
München 162140