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;