Commit a90109dd authored by istruewing@chilla.local's avatar istruewing@chilla.local

Merge bk-internal.mysql.com:/home/bk/mysql-5.1-wl2936

into  chilla.local:/home/mydev/mysql-5.1-wl2936-two
parents 3e87e65b 98ff6f0a
...@@ -111,6 +111,9 @@ int handle_options(int *argc, char ***argv, ...@@ -111,6 +111,9 @@ int handle_options(int *argc, char ***argv,
int error, i; int error, i;
LINT_INIT(opt_found); LINT_INIT(opt_found);
/* handle_options() assumes arg0 (program name) always exists */
DBUG_ASSERT(argc && *argc >= 1);
DBUG_ASSERT(argv && *argv);
(*argc)--; /* Skip the program name */ (*argc)--; /* Skip the program name */
(*argv)++; /* --- || ---- */ (*argv)++; /* --- || ---- */
init_variables(longopts); init_variables(longopts);
......
...@@ -215,6 +215,29 @@ static struct st_mysql_show_var simple_status[]= ...@@ -215,6 +215,29 @@ static struct st_mysql_show_var simple_status[]=
{0,0,0} {0,0,0}
}; };
/*
Plugin system variables.
*/
static long sysvar_one_value;
static char *sysvar_two_value;
static MYSQL_SYSVAR_LONG(simple_sysvar_one, sysvar_one_value,
PLUGIN_VAR_RQCMDARG,
"Simple fulltext parser example system variable number one. Give a number.",
NULL, NULL, 100L, 10L, ~0L, 0);
static MYSQL_SYSVAR_STR(simple_sysvar_two, sysvar_two_value,
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_MEMALLOC,
"Simple fulltext parser example system variable number two. Give a string.",
NULL, NULL, NULL);
static struct st_mysql_sys_var* simple_system_variables[]= {
MYSQL_SYSVAR(simple_sysvar_one),
MYSQL_SYSVAR(simple_sysvar_two),
NULL
};
/* /*
Plugin library descriptor Plugin library descriptor
*/ */
...@@ -231,8 +254,8 @@ mysql_declare_plugin(ftexample) ...@@ -231,8 +254,8 @@ mysql_declare_plugin(ftexample)
simple_parser_plugin_deinit,/* deinit function (when unloaded) */ simple_parser_plugin_deinit,/* deinit function (when unloaded) */
0x0001, /* version */ 0x0001, /* version */
simple_status, /* status variables */ simple_status, /* status variables */
NULL, /* system variables */ simple_system_variables, /* system variables */
NULL /* config options */ NULL
} }
mysql_declare_plugin_end; mysql_declare_plugin_end;
...@@ -701,6 +701,8 @@ static bool plugin_add(MEM_ROOT *tmp_root, ...@@ -701,6 +701,8 @@ static bool plugin_add(MEM_ROOT *tmp_root,
sql_print_error(ER(ER_UDF_EXISTS), name->str); sql_print_error(ER(ER_UDF_EXISTS), name->str);
DBUG_RETURN(TRUE); DBUG_RETURN(TRUE);
} }
/* Clear the whole struct to catch future extensions. */
bzero((char*) &tmp, sizeof(tmp));
if (! (tmp.plugin_dl= plugin_dl_add(dl, report))) if (! (tmp.plugin_dl= plugin_dl_add(dl, report)))
DBUG_RETURN(TRUE); DBUG_RETURN(TRUE);
/* Find plugin by name */ /* Find plugin by name */
...@@ -1569,7 +1571,8 @@ bool mysql_install_plugin(THD *thd, const LEX_STRING *name, const LEX_STRING *dl ...@@ -1569,7 +1571,8 @@ bool mysql_install_plugin(THD *thd, const LEX_STRING *name, const LEX_STRING *dl
{ {
TABLE_LIST tables; TABLE_LIST tables;
TABLE *table; TABLE *table;
int error, argc=0; int error, argc;
char *argv[2];
struct st_plugin_int *tmp; struct st_plugin_int *tmp;
DBUG_ENTER("mysql_install_plugin"); DBUG_ENTER("mysql_install_plugin");
...@@ -1585,7 +1588,10 @@ bool mysql_install_plugin(THD *thd, const LEX_STRING *name, const LEX_STRING *dl ...@@ -1585,7 +1588,10 @@ bool mysql_install_plugin(THD *thd, const LEX_STRING *name, const LEX_STRING *dl
pthread_mutex_lock(&LOCK_plugin); pthread_mutex_lock(&LOCK_plugin);
rw_wrlock(&LOCK_system_variables_hash); rw_wrlock(&LOCK_system_variables_hash);
error= plugin_add(thd->mem_root, name, dl, &argc, NULL, REPORT_TO_USER); argv[0]= ""; /* handle_options() assumes arg0 (program name) always exists */
argv[1]= NULL;
argc= 1;
error= plugin_add(thd->mem_root, name, dl, &argc, argv, REPORT_TO_USER);
rw_unlock(&LOCK_system_variables_hash); rw_unlock(&LOCK_system_variables_hash);
if (error || !(tmp= plugin_find_internal(name, MYSQL_ANY_PLUGIN))) if (error || !(tmp= plugin_find_internal(name, MYSQL_ANY_PLUGIN)))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment