diff options
Diffstat (limited to 'storage/example')
-rw-r--r-- | storage/example/ha_example.cc | 62 | ||||
-rw-r--r-- | storage/example/ha_example.h | 5 |
2 files changed, 34 insertions, 33 deletions
diff --git a/storage/example/ha_example.cc b/storage/example/ha_example.cc index ac36f0bc864..10dd3b1c33f 100644 --- a/storage/example/ha_example.cc +++ b/storage/example/ha_example.cc @@ -107,6 +107,8 @@ static handler *example_create_handler(handlerton *hton, handlerton *example_hton; +static MYSQL_THDVAR_ULONG(varopt_default, PLUGIN_VAR_RQCMDARG, + "default value of the VAROPT table option", NULL, NULL, 5, 0, 100, 0); /** Structure for CREATE TABLE options (table options). @@ -122,6 +124,7 @@ struct ha_table_option_struct ulonglong ullparam; uint enumparam; bool boolparam; + ulonglong varparam; }; @@ -168,6 +171,12 @@ ha_create_table_option example_table_option_list[]= The default is 1, that is true, yes, on. */ HA_TOPTION_BOOL("YESNO", boolparam, 1), + /* + one option defined by the system variable. The type, the range, or + a list of allowed values is the same as for the system variable. + */ + HA_TOPTION_SYSVAR("VAROPT", varparam, varopt_default), + HA_TOPTION_END }; @@ -207,6 +216,28 @@ static void init_example_psi_keys() #endif +/** + @brief + If frm_error() is called then we will use this to determine + the file extensions that exist for the storage engine. This is also + used by the default rename_table and delete_table method in + handler.cc and by the default discover_many method. + + For engines that have two file name extentions (separate meta/index file + and data file), the order of elements is relevant. First element of engine + file name extentions array should be meta/index file extention. Second + element - data file extention. This order is assumed by + prepare_for_repair() when REPAIR TABLE ... USE_FRM is issued. + + @see + rename_table method in handler.cc and + delete_table method in handler.cc +*/ + +static const char *ha_example_exts[] = { + NullS +}; + Example_share::Example_share() { thr_lock_init(&lock); @@ -229,6 +260,7 @@ static int example_init_func(void *p) example_hton->flags= HTON_CAN_RECREATE; example_hton->table_options= example_table_option_list; example_hton->field_options= example_field_option_list; + example_hton->tablefile_extensions= ha_example_exts; DBUG_RETURN(0); } @@ -276,33 +308,6 @@ ha_example::ha_example(handlerton *hton, TABLE_SHARE *table_arg) /** @brief - If frm_error() is called then we will use this to determine - the file extensions that exist for the storage engine. This is also - used by the default rename_table and delete_table method in - handler.cc. - - For engines that have two file name extentions (separate meta/index file - and data file), the order of elements is relevant. First element of engine - file name extentions array should be meta/index file extention. Second - element - data file extention. This order is assumed by - prepare_for_repair() when REPAIR TABLE ... USE_FRM is issued. - - @see - rename_table method in handler.cc and - delete_table method in handler.cc -*/ - -static const char *ha_example_exts[] = { - NullS -}; - -const char **ha_example::bas_ext() const -{ - return ha_example_exts; -} - -/** - @brief Used for opening tables. The name will be the name of the file. @details @@ -1025,6 +1030,7 @@ static MYSQL_SYSVAR_ULONG( static struct st_mysql_sys_var* example_system_variables[]= { MYSQL_SYSVAR(enum_var), MYSQL_SYSVAR(ulong_var), + MYSQL_SYSVAR(varopt_default), NULL }; @@ -1043,7 +1049,7 @@ static int show_func_example(MYSQL_THD thd, struct st_mysql_show_var *var, static struct st_mysql_show_var func_status[]= { - {"example_func_example", (char *)show_func_example, SHOW_SIMPLE_FUNC}, + {"func_example", (char *)show_func_example, SHOW_SIMPLE_FUNC}, {0,0,SHOW_UNDEF} }; diff --git a/storage/example/ha_example.h b/storage/example/ha_example.h index 5a66d15e54f..d25541f7422 100644 --- a/storage/example/ha_example.h +++ b/storage/example/ha_example.h @@ -79,11 +79,6 @@ public: const char *index_type(uint inx) { return "HASH"; } /** @brief - The file extensions. - */ - const char **bas_ext() const; - - /** @brief This is a list of flags that indicate what functionality the storage engine implements. The current table flags are documented in handler.h */ |