Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
c7baf602
Commit
c7baf602
authored
Sep 01, 2006
by
brian@zim.(none)
Browse files
Options
Browse Files
Download
Plain Diff
Merge baker@bk-internal.mysql.com:/home/bk/mysql-5.1
into zim.(none):/tmp/mysql-5.1-arch
parents
e1c245bf
b5fdcc29
Changes
19
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
210 additions
and
130 deletions
+210
-130
include/mysql/plugin.h
include/mysql/plugin.h
+3
-1
plugin/fulltext/plugin_example.c
plugin/fulltext/plugin_example.c
+3
-1
sql/ha_innodb.cc
sql/ha_innodb.cc
+3
-1
sql/ha_ndbcluster.cc
sql/ha_ndbcluster.cc
+5
-1
sql/ha_partition.cc
sql/ha_partition.cc
+3
-1
sql/handler.cc
sql/handler.cc
+51
-19
sql/handler.h
sql/handler.h
+5
-1
sql/log.cc
sql/log.cc
+3
-1
sql/mysqld.cc
sql/mysqld.cc
+3
-4
sql/sql_plugin.cc
sql/sql_plugin.cc
+105
-87
sql/sql_plugin.h
sql/sql_plugin.h
+2
-5
storage/archive/ha_archive.cc
storage/archive/ha_archive.cc
+3
-1
storage/blackhole/ha_blackhole.cc
storage/blackhole/ha_blackhole.cc
+3
-1
storage/csv/ha_tina.cc
storage/csv/ha_tina.cc
+3
-1
storage/example/ha_example.cc
storage/example/ha_example.cc
+3
-1
storage/federated/ha_federated.cc
storage/federated/ha_federated.cc
+3
-1
storage/heap/ha_heap.cc
storage/heap/ha_heap.cc
+3
-1
storage/myisam/ha_myisam.cc
storage/myisam/ha_myisam.cc
+3
-1
storage/myisammrg/ha_myisammrg.cc
storage/myisammrg/ha_myisammrg.cc
+3
-1
No files found.
include/mysql/plugin.h
View file @
c7baf602
...
...
@@ -60,7 +60,7 @@ __MYSQL_DECLARE_PLUGIN(NAME, \
builtin_ ## NAME ## _sizeof_struct_st_plugin, \
builtin_ ## NAME ## _plugin)
#define mysql_declare_plugin_end ,{0,0,0,0,0,0,0,0,0}}
#define mysql_declare_plugin_end ,{0,0,0,0,0,0,0,0,0
,0,0
}}
/*
declarations for SHOW STATUS support in plugins
...
...
@@ -96,6 +96,8 @@ struct st_mysql_plugin
int
(
*
deinit
)(
void
);
/* the function to invoke when plugin is unloaded */
unsigned
int
version
;
/* plugin version (for SHOW PLUGINS) */
struct
st_mysql_show_var
*
status_vars
;
void
*
__reserved1
;
/* placeholder for system variables */
void
*
__reserved2
;
/* placeholder for config options */
};
/*************************************************************************
...
...
plugin/fulltext/plugin_example.c
View file @
c7baf602
...
...
@@ -225,7 +225,9 @@ mysql_declare_plugin(ftexample)
simple_parser_plugin_init
,
/* init function (when loaded) */
simple_parser_plugin_deinit
,
/* deinit function (when unloaded) */
0x0001
,
/* version */
simple_status
/* status variables */
simple_status
,
/* status variables */
NULL
,
/* system variables */
NULL
/* config options */
}
mysql_declare_plugin_end
;
sql/ha_innodb.cc
View file @
c7baf602
...
...
@@ -7616,7 +7616,9 @@ mysql_declare_plugin(innobase)
innobase_init
,
/* Plugin Init */
NULL
,
/* Plugin Deinit */
0x0100
/* 1.0 */
,
innodb_status_variables_export
innodb_status_variables_export
,
/* status variables */
NULL
,
/* system variables */
NULL
/* config options */
}
mysql_declare_plugin_end
;
sql/ha_ndbcluster.cc
View file @
c7baf602
...
...
@@ -6389,6 +6389,8 @@ static int ndbcluster_init()
#endif
h
.
flags
=
HTON_CAN_RECREATE
|
HTON_TEMPORARY_NOT_SUPPORTED
;
h
.
discover
=
ndbcluster_discover
;
h
.
find_files
=
ndbcluster_find_files
;
h
.
table_exists_in_engine
=
ndbcluster_table_exists_in_engine
;
}
if
(
have_ndbcluster
!=
SHOW_OPTION_YES
)
...
...
@@ -10598,7 +10600,9 @@ mysql_declare_plugin(ndbcluster)
ndbcluster_init
,
/* Plugin Init */
NULL
,
/* Plugin Deinit */
0x0100
/* 1.0 */
,
ndb_status_variables_export
ndb_status_variables_export
,
/* status variables */
NULL
,
/* system variables */
NULL
/* config options */
}
mysql_declare_plugin_end
;
...
...
sql/ha_partition.cc
View file @
c7baf602
...
...
@@ -5640,7 +5640,9 @@ mysql_declare_plugin(partition)
partition_initialize
,
/* Plugin Init */
NULL
,
/* Plugin Deinit */
0x0100
,
/* 1.0 */
0
NULL
,
/* status variables */
NULL
,
/* system variables */
NULL
/* config options */
}
mysql_declare_plugin_end
;
...
...
sql/handler.cc
View file @
c7baf602
...
...
@@ -28,11 +28,6 @@
#include <myisampack.h>
#include <errno.h>
#ifdef WITH_NDBCLUSTER_STORAGE_ENGINE
#define NDB_MAX_ATTRIBUTES_IN_TABLE 128
#include "ha_ndbcluster.h"
#endif
#ifdef WITH_PARTITION_STORAGE_ENGINE
#include "ha_partition.h"
#endif
...
...
@@ -430,12 +425,6 @@ int ha_initialize_handlerton(st_plugin_int *plugin)
savepoint_alloc_size
+=
tmp
;
hton
->
slot
=
total_ha
++
;
hton2plugin
[
hton
->
slot
]
=
plugin
;
/* This is just a temp need until plugin/engine startup is fixed */
if
(
plugin
->
plugin
->
status_vars
)
{
add_status_vars
(
plugin
->
plugin
->
status_vars
);
}
if
(
hton
->
prepare
)
total_ha_2pc
++
;
break
;
...
...
@@ -2751,6 +2740,29 @@ int ha_discover(THD *thd, const char *db, const char *name,
to ask engine if there are any new tables that should be written to disk
or any dropped tables that need to be removed from disk
*/
typedef
struct
st_find_files_args
{
const
char
*
db
;
const
char
*
path
;
const
char
*
wild
;
bool
dir
;
List
<
char
>
*
files
;
};
static
my_bool
find_files_handlerton
(
THD
*
thd
,
st_plugin_int
*
plugin
,
void
*
arg
)
{
st_find_files_args
*
vargs
=
(
st_find_files_args
*
)
arg
;
handlerton
*
hton
=
(
handlerton
*
)
plugin
->
data
;
if
(
hton
->
state
==
SHOW_OPTION_YES
&&
hton
->
find_files
)
if
(
hton
->
find_files
(
thd
,
vargs
->
db
,
vargs
->
path
,
vargs
->
wild
,
vargs
->
dir
,
vargs
->
files
))
return
TRUE
;
return
FALSE
;
}
int
ha_find_files
(
THD
*
thd
,
const
char
*
db
,
const
char
*
path
,
...
...
@@ -2760,10 +2772,11 @@ ha_find_files(THD *thd,const char *db,const char *path,
DBUG_ENTER
(
"ha_find_files"
);
DBUG_PRINT
(
"enter"
,
(
"db: %s, path: %s, wild: %s, dir: %d"
,
db
,
path
,
wild
,
dir
));
#ifdef WITH_NDBCLUSTER_STORAGE_ENGINE
if
(
have_ndbcluster
==
SHOW_OPTION_YES
)
error
=
ndbcluster_find_files
(
thd
,
db
,
path
,
wild
,
dir
,
files
);
#endif
st_find_files_args
args
=
{
db
,
path
,
wild
,
dir
,
files
};
plugin_foreach
(
thd
,
find_files_handlerton
,
MYSQL_STORAGE_ENGINE_PLUGIN
,
&
args
);
/* The return value is not currently used */
DBUG_RETURN
(
error
);
}
...
...
@@ -2777,15 +2790,34 @@ ha_find_files(THD *thd,const char *db,const char *path,
# Error code
*/
typedef
struct
st_table_exists_in_engine_args
{
const
char
*
db
;
const
char
*
name
;
};
static
my_bool
table_exists_in_engine_handlerton
(
THD
*
thd
,
st_plugin_int
*
plugin
,
void
*
arg
)
{
st_table_exists_in_engine_args
*
vargs
=
(
st_table_exists_in_engine_args
*
)
arg
;
handlerton
*
hton
=
(
handlerton
*
)
plugin
->
data
;
if
(
hton
->
state
==
SHOW_OPTION_YES
&&
hton
->
table_exists_in_engine
)
if
((
hton
->
table_exists_in_engine
(
thd
,
vargs
->
db
,
vargs
->
name
))
==
1
)
return
TRUE
;
return
FALSE
;
}
int
ha_table_exists_in_engine
(
THD
*
thd
,
const
char
*
db
,
const
char
*
name
)
{
int
error
=
0
;
DBUG_ENTER
(
"ha_table_exists_in_engine"
);
DBUG_PRINT
(
"enter"
,
(
"db: %s, name: %s"
,
db
,
name
));
#ifdef WITH_NDBCLUSTER_STORAGE_ENGINE
if
(
have_ndbcluster
==
SHOW_OPTION_YES
)
error
=
ndbcluster_table_exists_in_engine
(
thd
,
db
,
name
);
#endif
st_table_exists_in_engine_args
args
=
{
db
,
name
};
error
=
plugin_foreach
(
thd
,
table_exists_in_engine_handlerton
,
MYSQL_STORAGE_ENGINE_PLUGIN
,
&
args
);
DBUG_PRINT
(
"exit"
,
(
"error: %d"
,
error
));
DBUG_RETURN
(
error
);
}
...
...
sql/handler.h
View file @
c7baf602
...
...
@@ -668,7 +668,11 @@ struct handlerton
(
*
create_iterator
)(
enum
handler_iterator_type
type
,
struct
handler_iterator
*
fill_this_in
);
int
(
*
discover
)(
THD
*
thd
,
const
char
*
db
,
const
char
*
name
,
const
void
**
frmblob
,
uint
*
frmlen
);
const
void
**
frmblob
,
uint
*
frmlen
);
int
(
*
find_files
)(
THD
*
thd
,
const
char
*
db
,
const
char
*
path
,
const
char
*
wild
,
bool
dir
,
List
<
char
>
*
files
);
int
(
*
table_exists_in_engine
)(
THD
*
thd
,
const
char
*
db
,
const
char
*
name
);
};
...
...
sql/log.cc
View file @
c7baf602
...
...
@@ -4678,6 +4678,8 @@ mysql_declare_plugin(binlog)
binlog_init
,
/* Plugin Init */
NULL
,
/* Plugin Deinit */
0x0100
/* 1.0 */
,
0
NULL
,
/* status variables */
NULL
,
/* system variables */
NULL
/* config options */
}
mysql_declare_plugin_end
;
sql/mysqld.cc
View file @
c7baf602
...
...
@@ -1186,7 +1186,7 @@ void clean_up(bool print_message)
udf_free
();
#endif
}
plugin_
free
();
plugin_
shutdown
();
if
(
tc_log
)
tc_log
->
close
();
xid_cache_free
();
...
...
@@ -2627,7 +2627,7 @@ static int init_common_variables(const char *conf_file_name, int argc,
/*
Add server status variables to the dynamic list of
status variables that is shown by SHOW STATUS.
Later, in plugin_init,
plugin_load,
and mysql_install_plugin
Later, in plugin_init, and mysql_install_plugin
new entries could be added to that list.
*/
if
(
add_status_vars
(
status_vars
))
...
...
@@ -3176,7 +3176,7 @@ server.");
using_update_log
=
1
;
}
if
(
plugin_init
())
if
(
plugin_init
(
0
))
{
sql_print_error
(
"Failed to init plugins."
);
return
1
;
...
...
@@ -3608,7 +3608,6 @@ we force server id to 2, but this MySQL server will not act as a slave.");
if
(
!
opt_noacl
)
{
plugin_load
();
#ifdef HAVE_DLOPEN
udf_init
();
#endif
...
...
sql/sql_plugin.cc
View file @
c7baf602
...
...
@@ -63,6 +63,10 @@ static HASH plugin_hash[MYSQL_MAX_PLUGIN_TYPE_NUM];
static
rw_lock_t
THR_LOCK_plugin
;
static
bool
initialized
=
0
;
/* prototypes */
my_bool
plugin_register_builtin
(
struct
st_mysql_plugin
*
plugin
);
void
plugin_load
(
void
);
static
struct
st_plugin_dl
*
plugin_dl_find
(
const
LEX_STRING
*
dl
)
{
uint
i
;
...
...
@@ -442,15 +446,6 @@ static my_bool plugin_add(const LEX_STRING *name, const LEX_STRING *dl, int repo
tmp
.
name
.
length
=
name_len
;
tmp
.
ref_count
=
0
;
tmp
.
state
=
PLUGIN_IS_UNINITIALIZED
;
if
(
plugin
->
status_vars
)
{
SHOW_VAR
array
[
2
]
=
{
{
plugin
->
name
,
(
char
*
)
plugin
->
status_vars
,
SHOW_ARRAY
},
{
0
,
0
,
SHOW_UNDEF
}
};
if
(
add_status_vars
(
array
))
// add_status_vars makes a copy
goto
err
;
}
if
(
!
(
tmp_plugin_ptr
=
plugin_insert_or_reuse
(
&
tmp
)))
goto
err
;
if
(
my_hash_insert
(
&
plugin_hash
[
plugin
->
type
],
(
byte
*
)
tmp_plugin_ptr
))
...
...
@@ -466,26 +461,13 @@ static my_bool plugin_add(const LEX_STRING *name, const LEX_STRING *dl, int repo
if
(
report
&
REPORT_TO_LOG
)
sql_print_error
(
ER
(
ER_CANT_FIND_DL_ENTRY
),
name
->
str
);
err:
if
(
plugin
->
status_vars
)
{
SHOW_VAR
array
[
2
]
=
{
{
plugin
->
name
,
(
char
*
)
plugin
->
status_vars
,
SHOW_ARRAY
},
{
0
,
0
,
SHOW_UNDEF
}
};
remove_status_vars
(
array
);
}
plugin_dl_del
(
dl
);
DBUG_RETURN
(
TRUE
);
}
static
void
plugin_del
(
const
LEX_STRING
*
name
)
void
plugin_deinitializer
(
struct
st_plugin_int
*
plugin
)
{
uint
i
;
struct
st_plugin_int
*
plugin
;
DBUG_ENTER
(
"plugin_del"
);
if
((
plugin
=
plugin_find_internal
(
name
,
MYSQL_ANY_PLUGIN
)))
{
if
(
plugin
->
plugin
->
status_vars
)
{
SHOW_VAR
array
[
2
]
=
{
...
...
@@ -494,6 +476,31 @@ static void plugin_del(const LEX_STRING *name)
};
remove_status_vars
(
array
);
}
if
(
plugin
->
state
==
PLUGIN_IS_READY
)
{
if
(
plugin
->
plugin
->
deinit
)
{
DBUG_PRINT
(
"info"
,
(
"Deinitializing plugin: '%s'"
,
plugin
->
name
.
str
));
if
(
plugin
->
plugin
->
deinit
())
{
DBUG_PRINT
(
"warning"
,
(
"Plugin '%s' deinit function returned error."
,
plugin
->
name
.
str
));
}
}
plugin
->
state
=
PLUGIN_IS_UNINITIALIZED
;
}
}
static
void
plugin_del
(
const
LEX_STRING
*
name
)
{
uint
i
;
struct
st_plugin_int
*
plugin
;
DBUG_ENTER
(
"plugin_del"
);
if
((
plugin
=
plugin_find_internal
(
name
,
MYSQL_ANY_PLUGIN
)))
{
plugin_deinitializer
(
plugin
);
hash_delete
(
&
plugin_hash
[
plugin
->
plugin
->
type
],
(
byte
*
)
plugin
);
plugin_dl_del
(
&
plugin
->
plugin_dl
->
dl
);
plugin
->
state
=
PLUGIN_IS_FREED
;
...
...
@@ -523,6 +530,26 @@ static int plugin_initialize(struct st_plugin_int *plugin)
{
DBUG_ENTER
(
"plugin_initialize"
);
if
(
plugin
->
plugin
->
status_vars
)
{
#ifdef FIX_LATER
/*
We have a problem right now where we can not prepend without
breaking backwards compatibility. We will fix this shortly so
that engines have "use names" and we wil use those for
CREATE TABLE, and use the plugin name then for adding automatic
variable names.
*/
SHOW_VAR
array
[
2
]
=
{
{
plugin
->
name
,
(
char
*
)
plugin
->
status_vars
,
SHOW_ARRAY
},
{
0
,
0
,
SHOW_UNDEF
}
};
if
(
add_status_vars
(
array
))
// add_status_vars makes a copy
goto
err
;
#else
add_status_vars
(
plugin
->
plugin
->
status_vars
);
// add_status_vars makes a copy
#endif
/* FIX_LATER */
}
if
(
plugin
->
plugin
->
init
)
{
if
(
plugin
->
plugin
->
init
())
...
...
@@ -540,6 +567,8 @@ static int plugin_initialize(struct st_plugin_int *plugin)
goto
err
;
}
plugin
->
state
=
PLUGIN_IS_READY
;
DBUG_RETURN
(
0
);
err:
DBUG_RETURN
(
1
);
...
...
@@ -592,52 +621,6 @@ err:
DBUG_RETURN
(
1
);
}
static
void
plugin_call_initializer
(
void
)
{
uint
i
;
DBUG_ENTER
(
"plugin_call_initializer"
);
for
(
i
=
0
;
i
<
plugin_array
.
elements
;
i
++
)
{
struct
st_plugin_int
*
tmp
=
dynamic_element
(
&
plugin_array
,
i
,
struct
st_plugin_int
*
);
if
(
tmp
->
state
==
PLUGIN_IS_UNINITIALIZED
)
{
if
(
plugin_initialize
(
tmp
))
plugin_del
(
&
tmp
->
name
);
else
tmp
->
state
=
PLUGIN_IS_READY
;
}
}
DBUG_VOID_RETURN
;
}
static
void
plugin_call_deinitializer
(
void
)
{
uint
i
;
DBUG_ENTER
(
"plugin_call_deinitializer"
);
for
(
i
=
0
;
i
<
plugin_array
.
elements
;
i
++
)
{
struct
st_plugin_int
*
tmp
=
dynamic_element
(
&
plugin_array
,
i
,
struct
st_plugin_int
*
);
if
(
tmp
->
state
==
PLUGIN_IS_READY
)
{
if
(
tmp
->
plugin
->
deinit
)
{
DBUG_PRINT
(
"info"
,
(
"Deinitializing plugin: '%s'"
,
tmp
->
name
.
str
));
if
(
tmp
->
plugin
->
deinit
())
{
DBUG_PRINT
(
"warning"
,
(
"Plugin '%s' deinit function returned error."
,
tmp
->
name
.
str
));
}
}
tmp
->
state
=
PLUGIN_IS_UNINITIALIZED
;
}
}
DBUG_VOID_RETURN
;
}
static
byte
*
get_hash_key
(
const
byte
*
buff
,
uint
*
length
,
my_bool
not_used
__attribute__
((
unused
)))
{
...
...
@@ -647,7 +630,14 @@ static byte *get_hash_key(const byte *buff, uint *length,
}
int
plugin_init
(
void
)
/*
The logic is that we first load and initialize all compiled in plugins.
From there we load up the dynamic types (assuming we have not been told to
skip this part).
Finally we inializie everything, aka the dynamic that have yet to initialize.
*/
int
plugin_init
(
int
skip_dynamic_loading
)
{
int
i
;
struct
st_mysql_plugin
**
builtins
;
...
...
@@ -672,24 +662,46 @@ int plugin_init(void)
goto
err
;
}
/* Register all the built-in plugins */
/*
First we register builtin plugins
*/
for
(
builtins
=
mysqld_builtins
;
*
builtins
;
builtins
++
)
{
for
(
plugin
=
*
builtins
;
plugin
->
info
;
plugin
++
)
{
if
(
plugin_register_builtin
(
plugin
))
goto
err
;
struct
st_plugin_int
*
tmp
=
dynamic_element
(
&
plugin_array
,
plugin_array
.
elements
-
1
,
struct
st_plugin_int
*
);
if
(
plugin_initialize
(
tmp
))
goto
err
;
tmp
->
state
=
PLUGIN_IS_READY
;
// if (!(strcmp(plugin->name, "MyISAM")))
{
if
(
plugin_register_builtin
(
plugin
))
goto
err
;
struct
st_plugin_int
*
tmp
=
dynamic_element
(
&
plugin_array
,
plugin_array
.
elements
-
1
,
struct
st_plugin_int
*
);
if
(
plugin_initialize
(
tmp
))
goto
err
;
}
}
}
/* Register all dynamic plugins */
if
(
!
skip_dynamic_loading
)
plugin_load
();
initialized
=
1
;
/*
Now we initialize all remaining plugins
*/
for
(
i
=
0
;
i
<
plugin_array
.
elements
;
i
++
)
{
struct
st_plugin_int
*
tmp
=
dynamic_element
(
&
plugin_array
,
i
,
struct
st_plugin_int
*
);
if
(
tmp
->
state
==
PLUGIN_IS_UNINITIALIZED
)
{
if
(
plugin_initialize
(
tmp
))
plugin_del
(
&
tmp
->
name
);
}
}
DBUG_RETURN
(
0
);
err:
...
...
@@ -734,8 +746,6 @@ void plugin_load(void)
THD
*
new_thd
;
DBUG_ENTER
(
"plugin_load"
);
DBUG_ASSERT
(
initialized
);
if
(
!
(
new_thd
=
new
THD
))
{
sql_print_error
(
"Can't allocate memory for plugin structures"
);
...
...
@@ -772,7 +782,6 @@ void plugin_load(void)
DBUG_PRINT
(
"warning"
,
(
"Couldn't load plugin named '%s' with soname '%s'."
,
name
.
str
,
dl
.
str
));
}
plugin_call_initializer
();
if
(
error
>
0
)
sql_print_error
(
ER
(
ER_GET_ERRNO
),
my_errno
);
end_read_record
(
&
read_record_info
);
...
...
@@ -787,11 +796,22 @@ end:
}
void
plugin_
free
(
void
)
void
plugin_
shutdown
(
void
)
{
uint
i
;
DBUG_ENTER
(
"plugin_free"
);
plugin_call_deinitializer
();
DBUG_ENTER
(
"plugin_shutdown"
);
/*
We loop through all plugins and call deinit() if they have one.
*/
for
(
i
=
0
;
i
<
plugin_array
.
elements
;
i
++
)
{
struct
st_plugin_int
*
tmp
=
dynamic_element
(
&
plugin_array
,
i
,
struct
st_plugin_int
*
);
plugin_deinitializer
(
tmp
);
}
for
(
i
=
0
;
i
<
MYSQL_MAX_PLUGIN_TYPE_NUM
;
i
++
)
hash_free
(
&
plugin_hash
[
i
]);
delete_dynamic
(
&
plugin_array
);
...
...
@@ -841,8 +861,6 @@ my_bool mysql_install_plugin(THD *thd, const LEX_STRING *name, const LEX_STRING
goto
err
;
}
tmp
->
state
=
PLUGIN_IS_READY
;
table
->
use_all_columns
();
restore_record
(
table
,
s
->
default_values
);
table
->
field
[
0
]
->
store
(
name
->
str
,
name
->
length
,
system_charset_info
);
...
...
sql/sql_plugin.h
View file @
c7baf602
...
...
@@ -67,17 +67,14 @@ typedef int (*plugin_type_init)(struct st_plugin_int *);
extern
char
*
opt_plugin_dir_ptr
;
extern
char
opt_plugin_dir
[
FN_REFLEN
];
extern
const
LEX_STRING
plugin_type_names
[];
extern
int
plugin_init
(
void
);
extern
void
plugin_load
(
void
);
extern
void
plugin_free
(
void
);
extern
int
plugin_init
(
int
);
extern
void
plugin_shutdown
(
void
);
extern
my_bool
plugin_is_ready
(
const
LEX_STRING
*
name
,
int
type
);
extern
st_plugin_int
*
plugin_lock
(
const
LEX_STRING
*
name
,
int
type
);
extern
void
plugin_unlock
(
struct
st_plugin_int
*
plugin
);
extern
my_bool
mysql_install_plugin
(
THD
*
thd
,
const
LEX_STRING
*
name
,
const
LEX_STRING
*
dl
);
extern
my_bool
mysql_uninstall_plugin
(
THD
*
thd
,
const
LEX_STRING
*
name
);
extern
my_bool
plugin_register_builtin
(
struct
st_mysql_plugin
*
plugin
);
typedef
my_bool
(
plugin_foreach_func
)(
THD
*
thd
,
st_plugin_int
*
plugin
,
void
*
arg
);
...
...
storage/archive/ha_archive.cc
View file @
c7baf602
...
...
@@ -1583,7 +1583,9 @@ mysql_declare_plugin(archive)
archive_db_init
,
/* Plugin Init */
archive_db_done
,
/* Plugin Deinit */
0x0100
/* 1.0 */
,
0
NULL
,
/* status variables */
NULL
,
/* system variables */
NULL
/* config options */
}
mysql_declare_plugin_end
;
storage/blackhole/ha_blackhole.cc
View file @
c7baf602
...
...
@@ -223,6 +223,8 @@ mysql_declare_plugin(blackhole)
blackhole_init
,
/* Plugin Init */
NULL
,
/* Plugin Deinit */
0x0100
/* 1.0 */
,
0
NULL
,
/* status variables */
NULL
,
/* system variables */
NULL
/* config options */
}
mysql_declare_plugin_end
;
storage/csv/ha_tina.cc
View file @
c7baf602
...
...
@@ -1529,7 +1529,9 @@ mysql_declare_plugin(csv)
tina_init_func
,
/* Plugin Init */
tina_done_func
,
/* Plugin Deinit */
0x0100
/* 1.0 */
,
0
NULL
,
/* status variables */
NULL
,
/* system variables */
NULL
/* config options */
}
mysql_declare_plugin_end
;
storage/example/ha_example.cc
View file @
c7baf602
...
...
@@ -715,7 +715,9 @@ mysql_declare_plugin(example)
example_init_func
,
/* Plugin Init */
example_done_func
,
/* Plugin Deinit */
0x0001
/* 0.1 */
,
0
NULL
,
/* status variables */
NULL
,
/* system variables */
NULL
/* config options */
}
mysql_declare_plugin_end
;
storage/federated/ha_federated.cc
View file @
c7baf602
...
...
@@ -2896,7 +2896,9 @@ mysql_declare_plugin(federated)
federated_db_init
,
/* Plugin Init */
NULL
,
/* Plugin Deinit */
0x0100
/* 1.0 */
,
0
NULL
,
/* status variables */
NULL
,
/* system variables */
NULL
/* config options */
}
mysql_declare_plugin_end
;
storage/heap/ha_heap.cc
View file @
c7baf602
...
...
@@ -708,6 +708,8 @@ mysql_declare_plugin(heap)
heap_init
,
NULL
,
0x0100
,
/* 1.0 */
0
NULL
,
/* status variables */
NULL
,
/* system variables */
NULL
/* config options */
}
mysql_declare_plugin_end
;
storage/myisam/ha_myisam.cc
View file @
c7baf602
...
...
@@ -1800,7 +1800,9 @@ mysql_declare_plugin(myisam)
myisam_init
,
/* Plugin Init */
NULL
,
/* Plugin Deinit */
0x0100
,
/* 1.0 */
0
NULL
,
/* status variables */
NULL
,
/* system variables */
NULL
/* config options */
}
mysql_declare_plugin_end
;
storage/myisammrg/ha_myisammrg.cc
View file @
c7baf602
...
...
@@ -573,6 +573,8 @@ mysql_declare_plugin(myisammrg)
myisammrg_init
,
/* Plugin Init */
NULL
,
/* Plugin Deinit */
0x0100
,
/* 1.0 */
0
NULL
,
/* status variables */
NULL
,
/* system variables */
NULL
/* config options */
}
mysql_declare_plugin_end
;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment