null+****@clear*****
null+****@clear*****
2011年 12月 26日 (月) 23:28:22 JST
Kentoku 2011-12-26 23:28:22 +0900 (Mon, 26 Dec 2011)
New Revision: 6060d13e77c45069a310fcd39ec36ea5a2ee0b74
Log:
add parameter 'groonga_default_wrapper_engine'. refs #1195
Modified files:
ha_mroonga.cc
mrn_table.cc
Modified: ha_mroonga.cc (+9 -0)
===================================================================
--- ha_mroonga.cc 2011-12-26 02:19:49 +0900 (3fd3a79)
+++ ha_mroonga.cc 2011-12-26 23:28:22 +0900 (d3adaa2)
@@ -456,6 +456,7 @@ static bool mrn_log_file_opened = false;
static grn_log_level mrn_log_level_default = GRN_LOG_DEFAULT_LEVEL;
static ulong mrn_log_level = (ulong) mrn_log_level_default;
char *mrn_default_parser = NULL;
+char *mrn_default_wrapper_engine = NULL;
static char *mrn_libgroonga_version = (char *) grn_get_version();
static char *mrn_version = (char *) MRN_VERSION;
@@ -645,6 +646,13 @@ static bool mrn_dry_write(THD *thd)
DBUG_RETURN(dry_write_p);
}
+static MYSQL_SYSVAR_STR(default_wrapper_engine, mrn_default_wrapper_engine,
+ PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
+ "The default engine for wrapper mode",
+ NULL,
+ NULL,
+ NULL);
+
static MYSQL_SYSVAR_STR(libgroonga_version, mrn_libgroonga_version,
PLUGIN_VAR_NOCMDOPT | PLUGIN_VAR_READONLY,
"The version of libgroonga",
@@ -665,6 +673,7 @@ struct st_mysql_sys_var *mrn_system_variables[] =
MYSQL_SYSVAR(log_file),
MYSQL_SYSVAR(default_parser),
MYSQL_SYSVAR(dry_write),
+ MYSQL_SYSVAR(default_wrapper_engine),
MYSQL_SYSVAR(libgroonga_version),
MYSQL_SYSVAR(version),
NULL
Modified: mrn_table.cc (+14 -0)
===================================================================
--- mrn_table.cc 2011-12-26 02:19:49 +0900 (dd59b33)
+++ mrn_table.cc 2011-12-26 23:28:22 +0900 (397bee1)
@@ -43,6 +43,7 @@
extern HASH mrn_open_tables;
extern pthread_mutex_t mrn_open_tables_mutex;
extern char *mrn_default_parser;
+extern char *mrn_default_wrapper_engine;
extern handlerton *mrn_hton_ptr;
extern HASH mrn_allocated_thds;
extern pthread_mutex_t mrn_allocated_thds_mutex;
@@ -415,6 +416,19 @@ int mrn_parse_table_param(MRN_SHARE *share, TABLE *table)
}
}
+ if (!share->engine && mrn_default_wrapper_engine)
+ {
+ share->engine_length = strlen(mrn_default_wrapper_engine);
+ if (
+ !(share->engine = mrn_create_string(
+ mrn_default_wrapper_engine,
+ share->engine_length))
+ ) {
+ error = HA_ERR_OUT_OF_MEM;
+ goto error;
+ }
+ }
+
if (share->engine)
{
LEX_STRING engine_name;