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
2e16f1ec
Commit
2e16f1ec
authored
May 31, 2006
by
serg@sergbook.mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
after review fixes
parent
4accfd29
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
58 additions
and
59 deletions
+58
-59
mysql-test/t/disabled.def
mysql-test/t/disabled.def
+0
-1
sql/handler.cc
sql/handler.cc
+38
-39
sql/handler.h
sql/handler.h
+2
-2
sql/set_var.cc
sql/set_var.cc
+1
-1
sql/sql_partition.cc
sql/sql_partition.cc
+5
-5
sql/sql_plugin.h
sql/sql_plugin.h
+2
-1
sql/sql_show.cc
sql/sql_show.cc
+7
-7
sql/sql_table.cc
sql/sql_table.cc
+1
-1
sql/sql_tablespace.cc
sql/sql_tablespace.cc
+2
-2
No files found.
mysql-test/t/disabled.def
View file @
2e16f1ec
...
@@ -38,4 +38,3 @@ rpl_sp : BUG#16456 2006-02-16 jmiller
...
@@ -38,4 +38,3 @@ rpl_sp : BUG#16456 2006-02-16 jmiller
# the below testcase have been reworked to avoid the bug, test contains comment, keep bug open
# the below testcase have been reworked to avoid the bug, test contains comment, keep bug open
#ndb_binlog_ddl_multi : BUG#18976 2006-04-10 kent CRBR: multiple binlog, second binlog may miss schema log events
#ndb_binlog_ddl_multi : BUG#18976 2006-04-10 kent CRBR: multiple binlog, second binlog may miss schema log events
ndb_dd_backuprestore : Nikolay: removed partitions from the test. Review pending.
sql/handler.cc
View file @
2e16f1ec
...
@@ -48,7 +48,7 @@
...
@@ -48,7 +48,7 @@
check for dups and to find handlerton from legacy_db_type.
check for dups and to find handlerton from legacy_db_type.
Remove when legacy_db_type is finally gone */
Remove when legacy_db_type is finally gone */
static
handlerton
*
installed_htons
[
128
];
static
handlerton
*
installed_htons
[
128
];
st_
mysql_plugin
*
hton2plugin
[
MAX_HA
];
st_
plugin_int
*
hton2plugin
[
MAX_HA
];
#define BITMAP_STACKBUF_SIZE (128/8)
#define BITMAP_STACKBUF_SIZE (128/8)
...
@@ -102,7 +102,7 @@ handlerton *ha_resolve_by_name(THD *thd, LEX_STRING *name)
...
@@ -102,7 +102,7 @@ handlerton *ha_resolve_by_name(THD *thd, LEX_STRING *name)
if
((
plugin
=
plugin_lock
(
name
,
MYSQL_STORAGE_ENGINE_PLUGIN
)))
if
((
plugin
=
plugin_lock
(
name
,
MYSQL_STORAGE_ENGINE_PLUGIN
)))
{
{
handlerton
*
hton
=
(
(
st_mysql_storage_engine
*
)
plugin
->
plugin
->
info
)
->
handlerton
;
handlerton
*
hton
=
(
handlerton
*
)
plugin
->
data
;
if
(
!
(
hton
->
flags
&
HTON_NOT_USER_SELECTABLE
))
if
(
!
(
hton
->
flags
&
HTON_NOT_USER_SELECTABLE
))
return
hton
;
return
hton
;
plugin_unlock
(
plugin
);
plugin_unlock
(
plugin
);
...
@@ -135,7 +135,7 @@ const char *ha_get_storage_engine(enum legacy_db_type db_type)
...
@@ -135,7 +135,7 @@ const char *ha_get_storage_engine(enum legacy_db_type db_type)
default:
default:
if
(
db_type
>
DB_TYPE_UNKNOWN
&&
db_type
<
DB_TYPE_DEFAULT
&&
if
(
db_type
>
DB_TYPE_UNKNOWN
&&
db_type
<
DB_TYPE_DEFAULT
&&
installed_htons
[
db_type
])
installed_htons
[
db_type
])
return
hton2plugin
[
installed_htons
[
db_type
]
->
slot
]
->
name
;
return
hton2plugin
[
installed_htons
[
db_type
]
->
slot
]
->
name
.
str
;
return
"*NONE*"
;
return
"*NONE*"
;
}
}
}
}
...
@@ -351,22 +351,19 @@ static int ha_finish_errors(void)
...
@@ -351,22 +351,19 @@ static int ha_finish_errors(void)
int
ha_finalize_handlerton
(
st_plugin_int
*
plugin
)
int
ha_finalize_handlerton
(
st_plugin_int
*
plugin
)
{
{
handlerton
*
hton
;
handlerton
*
hton
=
(
handlerton
*
)
plugin
->
data
;
DBUG_ENTER
(
"ha_finalize_handlerton"
);
DBUG_ENTER
(
"ha_finalize_handlerton"
);
if
(
!
(
hton
=
((
st_mysql_storage_engine
*
)
plugin
->
plugin
->
info
)
->
handlerton
))
DBUG_RETURN
(
1
);
switch
(
hton
->
state
)
switch
(
hton
->
state
)
{
{
case
SHOW_OPTION_NO
:
case
SHOW_OPTION_NO
:
case
SHOW_OPTION_DISABLED
:
case
SHOW_OPTION_DISABLED
:
break
;
break
;
case
SHOW_OPTION_YES
:
case
SHOW_OPTION_YES
:
if
(
hton
->
panic
&&
hton
->
panic
(
HA_PANIC_CLOSE
))
DBUG_RETURN
(
1
);
if
(
installed_htons
[
hton
->
db_type
]
==
hton
)
if
(
installed_htons
[
hton
->
db_type
]
==
hton
)
installed_htons
[
hton
->
db_type
]
=
NULL
;
installed_htons
[
hton
->
db_type
]
=
NULL
;
if
(
hton
->
panic
&&
hton
->
panic
(
HA_PANIC_CLOSE
))
DBUG_RETURN
(
1
);
break
;
break
;
};
};
DBUG_RETURN
(
0
);
DBUG_RETURN
(
0
);
...
@@ -376,9 +373,10 @@ int ha_finalize_handlerton(st_plugin_int *plugin)
...
@@ -376,9 +373,10 @@ int ha_finalize_handlerton(st_plugin_int *plugin)
int
ha_initialize_handlerton
(
st_plugin_int
*
plugin
)
int
ha_initialize_handlerton
(
st_plugin_int
*
plugin
)
{
{
handlerton
*
hton
=
((
st_mysql_storage_engine
*
)
plugin
->
plugin
->
info
)
->
handlerton
;
handlerton
*
hton
=
((
st_mysql_storage_engine
*
)
plugin
->
plugin
->
info
)
->
handlerton
;
DBUG_ENTER
(
"ha_initialize_handlerton"
);
DBUG_ENTER
(
"ha_initialize_handlerton"
);
plugin
->
data
=
hton
;
// shortcut for the future
/*
/*
the switch below and hton->state should be removed when
the switch below and hton->state should be removed when
command-line options for plugins will be implemented
command-line options for plugins will be implemented
...
@@ -388,6 +386,7 @@ int ha_initialize_handlerton(st_plugin_int *plugin)
...
@@ -388,6 +386,7 @@ int ha_initialize_handlerton(st_plugin_int *plugin)
break
;
break
;
case
SHOW_OPTION_YES
:
case
SHOW_OPTION_YES
:
{
{
uint
tmp
;
/* now check the db_type for conflict */
/* now check the db_type for conflict */
if
(
hton
->
db_type
<=
DB_TYPE_UNKNOWN
||
if
(
hton
->
db_type
<=
DB_TYPE_UNKNOWN
||
hton
->
db_type
>=
DB_TYPE_DEFAULT
||
hton
->
db_type
>=
DB_TYPE_DEFAULT
||
...
@@ -409,11 +408,11 @@ int ha_initialize_handlerton(st_plugin_int *plugin)
...
@@ -409,11 +408,11 @@ int ha_initialize_handlerton(st_plugin_int *plugin)
hton
->
db_type
=
(
enum
legacy_db_type
)
idx
;
hton
->
db_type
=
(
enum
legacy_db_type
)
idx
;
}
}
installed_htons
[
hton
->
db_type
]
=
hton
;
installed_htons
[
hton
->
db_type
]
=
hton
;
uint
tmp
=
hton
->
savepoint_offset
;
tmp
=
hton
->
savepoint_offset
;
hton
->
savepoint_offset
=
savepoint_alloc_size
;
hton
->
savepoint_offset
=
savepoint_alloc_size
;
savepoint_alloc_size
+=
tmp
;
savepoint_alloc_size
+=
tmp
;
hton
->
slot
=
total_ha
++
;
hton
->
slot
=
total_ha
++
;
hton2plugin
[
hton
->
slot
]
=
plugin
->
plugin
;
hton2plugin
[
hton
->
slot
]
=
plugin
;
if
(
hton
->
prepare
)
if
(
hton
->
prepare
)
total_ha_2pc
++
;
total_ha_2pc
++
;
break
;
break
;
...
@@ -445,16 +444,14 @@ int ha_init()
...
@@ -445,16 +444,14 @@ int ha_init()
DBUG_RETURN
(
error
);
DBUG_RETURN
(
error
);
}
}
/*
close, flush or restart databases
Ignore this for other databases than ours
*/
static
my_bool
panic_handlerton
(
THD
*
unused1
,
st_plugin_int
*
plugin
,
void
*
arg
)
/* close, flush or restart databases */
/* Ignore this for other databases than ours */
static
my_bool
panic_handlerton
(
THD
*
unused1
,
st_plugin_int
*
plugin
,
void
*
arg
)
{
{
handlerton
*
hton
=
(
(
st_mysql_storage_engine
*
)
plugin
->
plugin
->
info
)
->
handlerton
;
handlerton
*
hton
=
(
handlerton
*
)
plugin
->
data
;
if
(
hton
->
state
==
SHOW_OPTION_YES
&&
hton
->
panic
)
if
(
hton
->
state
==
SHOW_OPTION_YES
&&
hton
->
panic
)
((
int
*
)
arg
)[
0
]
|=
hton
->
panic
((
enum
ha_panic_function
)((
int
*
)
arg
)[
1
]);
((
int
*
)
arg
)[
0
]
|=
hton
->
panic
((
enum
ha_panic_function
)((
int
*
)
arg
)[
1
]);
return
FALSE
;
return
FALSE
;
...
@@ -476,7 +473,7 @@ int ha_panic(enum ha_panic_function flag)
...
@@ -476,7 +473,7 @@ int ha_panic(enum ha_panic_function flag)
static
my_bool
dropdb_handlerton
(
THD
*
unused1
,
st_plugin_int
*
plugin
,
static
my_bool
dropdb_handlerton
(
THD
*
unused1
,
st_plugin_int
*
plugin
,
void
*
path
)
void
*
path
)
{
{
handlerton
*
hton
=
(
(
st_mysql_storage_engine
*
)
plugin
->
plugin
->
info
)
->
handlerton
;
handlerton
*
hton
=
(
handlerton
*
)
plugin
->
data
;
if
(
hton
->
state
==
SHOW_OPTION_YES
&&
hton
->
drop_database
)
if
(
hton
->
state
==
SHOW_OPTION_YES
&&
hton
->
drop_database
)
hton
->
drop_database
((
char
*
)
path
);
hton
->
drop_database
((
char
*
)
path
);
return
FALSE
;
return
FALSE
;
...
@@ -492,9 +489,11 @@ void ha_drop_database(char* path)
...
@@ -492,9 +489,11 @@ void ha_drop_database(char* path)
static
my_bool
closecon_handlerton
(
THD
*
thd
,
st_plugin_int
*
plugin
,
static
my_bool
closecon_handlerton
(
THD
*
thd
,
st_plugin_int
*
plugin
,
void
*
unused
)
void
*
unused
)
{
{
handlerton
*
hton
=
((
st_mysql_storage_engine
*
)
plugin
->
plugin
->
info
)
->
handlerton
;
handlerton
*
hton
=
(
handlerton
*
)
plugin
->
data
;
/* there's no need to rollback here as all transactions must
/*
be rolled back already */
there's no need to rollback here as all transactions must
be rolled back already
*/
if
(
hton
->
state
==
SHOW_OPTION_YES
&&
hton
->
close_connection
&&
if
(
hton
->
state
==
SHOW_OPTION_YES
&&
hton
->
close_connection
&&
thd
->
ha_data
[
hton
->
slot
])
thd
->
ha_data
[
hton
->
slot
])
hton
->
close_connection
(
thd
);
hton
->
close_connection
(
thd
);
...
@@ -585,7 +584,7 @@ int ha_prepare(THD *thd)
...
@@ -585,7 +584,7 @@ int ha_prepare(THD *thd)
{
{
push_warning_printf
(
thd
,
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
push_warning_printf
(
thd
,
MYSQL_ERROR
::
WARN_LEVEL_WARN
,
ER_ILLEGAL_HA
,
ER
(
ER_ILLEGAL_HA
),
ER_ILLEGAL_HA
,
ER
(
ER_ILLEGAL_HA
),
hton2plugin
[(
*
ht
)
->
slot
]
->
name
);
hton2plugin
[(
*
ht
)
->
slot
]
->
name
.
str
);
}
}
}
}
}
}
...
@@ -824,7 +823,7 @@ struct xahton_st {
...
@@ -824,7 +823,7 @@ struct xahton_st {
static
my_bool
xacommit_handlerton
(
THD
*
unused1
,
st_plugin_int
*
plugin
,
static
my_bool
xacommit_handlerton
(
THD
*
unused1
,
st_plugin_int
*
plugin
,
void
*
arg
)
void
*
arg
)
{
{
handlerton
*
hton
=
(
(
st_mysql_storage_engine
*
)
plugin
->
plugin
->
info
)
->
handlerton
;
handlerton
*
hton
=
(
handlerton
*
)
plugin
->
data
;
if
(
hton
->
state
==
SHOW_OPTION_YES
&&
hton
->
recover
)
if
(
hton
->
state
==
SHOW_OPTION_YES
&&
hton
->
recover
)
{
{
hton
->
commit_by_xid
(((
struct
xahton_st
*
)
arg
)
->
xid
);
hton
->
commit_by_xid
(((
struct
xahton_st
*
)
arg
)
->
xid
);
...
@@ -836,7 +835,7 @@ static my_bool xacommit_handlerton(THD *unused1, st_plugin_int *plugin,
...
@@ -836,7 +835,7 @@ static my_bool xacommit_handlerton(THD *unused1, st_plugin_int *plugin,
static
my_bool
xarollback_handlerton
(
THD
*
unused1
,
st_plugin_int
*
plugin
,
static
my_bool
xarollback_handlerton
(
THD
*
unused1
,
st_plugin_int
*
plugin
,
void
*
arg
)
void
*
arg
)
{
{
handlerton
*
hton
=
(
(
st_mysql_storage_engine
*
)
plugin
->
plugin
->
info
)
->
handlerton
;
handlerton
*
hton
=
(
handlerton
*
)
plugin
->
data
;
if
(
hton
->
state
==
SHOW_OPTION_YES
&&
hton
->
recover
)
if
(
hton
->
state
==
SHOW_OPTION_YES
&&
hton
->
recover
)
{
{
hton
->
rollback_by_xid
(((
struct
xahton_st
*
)
arg
)
->
xid
);
hton
->
rollback_by_xid
(((
struct
xahton_st
*
)
arg
)
->
xid
);
...
@@ -851,7 +850,7 @@ int ha_commit_or_rollback_by_xid(XID *xid, bool commit)
...
@@ -851,7 +850,7 @@ int ha_commit_or_rollback_by_xid(XID *xid, bool commit)
struct
xahton_st
xaop
;
struct
xahton_st
xaop
;
xaop
.
xid
=
xid
;
xaop
.
xid
=
xid
;
xaop
.
result
=
1
;
xaop
.
result
=
1
;
plugin_foreach
(
NULL
,
commit
?
xacommit_handlerton
:
xarollback_handlerton
,
plugin_foreach
(
NULL
,
commit
?
xacommit_handlerton
:
xarollback_handlerton
,
MYSQL_STORAGE_ENGINE_PLUGIN
,
&
xaop
);
MYSQL_STORAGE_ENGINE_PLUGIN
,
&
xaop
);
...
@@ -943,7 +942,7 @@ struct xarecover_st
...
@@ -943,7 +942,7 @@ struct xarecover_st
static
my_bool
xarecover_handlerton
(
THD
*
unused
,
st_plugin_int
*
plugin
,
static
my_bool
xarecover_handlerton
(
THD
*
unused
,
st_plugin_int
*
plugin
,
void
*
arg
)
void
*
arg
)
{
{
handlerton
*
hton
=
(
(
st_mysql_storage_engine
*
)
plugin
->
plugin
->
info
)
->
handlerton
;
handlerton
*
hton
=
(
handlerton
*
)
plugin
->
data
;
struct
xarecover_st
*
info
=
(
struct
xarecover_st
*
)
arg
;
struct
xarecover_st
*
info
=
(
struct
xarecover_st
*
)
arg
;
int
got
;
int
got
;
...
@@ -952,7 +951,7 @@ static my_bool xarecover_handlerton(THD *unused, st_plugin_int *plugin,
...
@@ -952,7 +951,7 @@ static my_bool xarecover_handlerton(THD *unused, st_plugin_int *plugin,
while
((
got
=
hton
->
recover
(
info
->
list
,
info
->
len
))
>
0
)
while
((
got
=
hton
->
recover
(
info
->
list
,
info
->
len
))
>
0
)
{
{
sql_print_information
(
"Found %d prepared transaction(s) in %s"
,
sql_print_information
(
"Found %d prepared transaction(s) in %s"
,
got
,
hton2plugin
[
hton
->
slot
]
->
name
);
got
,
hton2plugin
[
hton
->
slot
]
->
name
.
str
);
for
(
int
i
=
0
;
i
<
got
;
i
++
)
for
(
int
i
=
0
;
i
<
got
;
i
++
)
{
{
my_xid
x
=
info
->
list
[
i
].
get_my_xid
();
my_xid
x
=
info
->
list
[
i
].
get_my_xid
();
...
@@ -1132,7 +1131,7 @@ bool mysql_xa_recover(THD *thd)
...
@@ -1132,7 +1131,7 @@ bool mysql_xa_recover(THD *thd)
static
my_bool
release_temporary_latches
(
THD
*
thd
,
st_plugin_int
*
plugin
,
static
my_bool
release_temporary_latches
(
THD
*
thd
,
st_plugin_int
*
plugin
,
void
*
unused
)
void
*
unused
)
{
{
handlerton
*
hton
=
(
(
st_mysql_storage_engine
*
)
plugin
->
plugin
->
info
)
->
handlerton
;
handlerton
*
hton
=
(
handlerton
*
)
plugin
->
data
;
if
(
hton
->
state
==
SHOW_OPTION_YES
&&
hton
->
release_temporary_latches
)
if
(
hton
->
state
==
SHOW_OPTION_YES
&&
hton
->
release_temporary_latches
)
hton
->
release_temporary_latches
(
thd
);
hton
->
release_temporary_latches
(
thd
);
...
@@ -1257,7 +1256,7 @@ int ha_release_savepoint(THD *thd, SAVEPOINT *sv)
...
@@ -1257,7 +1256,7 @@ int ha_release_savepoint(THD *thd, SAVEPOINT *sv)
static
my_bool
snapshot_handlerton
(
THD
*
thd
,
st_plugin_int
*
plugin
,
static
my_bool
snapshot_handlerton
(
THD
*
thd
,
st_plugin_int
*
plugin
,
void
*
arg
)
void
*
arg
)
{
{
handlerton
*
hton
=
(
(
st_mysql_storage_engine
*
)
plugin
->
plugin
->
info
)
->
handlerton
;
handlerton
*
hton
=
(
handlerton
*
)
plugin
->
data
;
if
(
hton
->
state
==
SHOW_OPTION_YES
&&
if
(
hton
->
state
==
SHOW_OPTION_YES
&&
hton
->
start_consistent_snapshot
)
hton
->
start_consistent_snapshot
)
{
{
...
@@ -1288,7 +1287,7 @@ int ha_start_consistent_snapshot(THD *thd)
...
@@ -1288,7 +1287,7 @@ int ha_start_consistent_snapshot(THD *thd)
static
my_bool
flush_handlerton
(
THD
*
thd
,
st_plugin_int
*
plugin
,
static
my_bool
flush_handlerton
(
THD
*
thd
,
st_plugin_int
*
plugin
,
void
*
arg
)
void
*
arg
)
{
{
handlerton
*
hton
=
(
(
st_mysql_storage_engine
*
)
plugin
->
plugin
->
info
)
->
handlerton
;
handlerton
*
hton
=
(
handlerton
*
)
plugin
->
data
;
if
(
hton
->
state
==
SHOW_OPTION_YES
&&
hton
->
flush_logs
&&
hton
->
flush_logs
())
if
(
hton
->
state
==
SHOW_OPTION_YES
&&
hton
->
flush_logs
&&
hton
->
flush_logs
())
return
TRUE
;
return
TRUE
;
return
FALSE
;
return
FALSE
;
...
@@ -2599,7 +2598,7 @@ struct binlog_func_st
...
@@ -2599,7 +2598,7 @@ struct binlog_func_st
static
my_bool
binlog_func_list
(
THD
*
thd
,
st_plugin_int
*
plugin
,
void
*
arg
)
static
my_bool
binlog_func_list
(
THD
*
thd
,
st_plugin_int
*
plugin
,
void
*
arg
)
{
{
hton_list_st
*
hton_list
=
(
hton_list_st
*
)
arg
;
hton_list_st
*
hton_list
=
(
hton_list_st
*
)
arg
;
handlerton
*
hton
=
(
(
st_mysql_storage_engine
*
)
plugin
->
plugin
->
info
)
->
handlerton
;
handlerton
*
hton
=
(
handlerton
*
)
plugin
->
data
;
if
(
hton
->
state
==
SHOW_OPTION_YES
&&
hton
->
binlog_func
)
if
(
hton
->
state
==
SHOW_OPTION_YES
&&
hton
->
binlog_func
)
{
{
uint
sz
=
hton_list
->
sz
;
uint
sz
=
hton_list
->
sz
;
...
@@ -2689,7 +2688,7 @@ static my_bool binlog_log_query_handlerton(THD *thd,
...
@@ -2689,7 +2688,7 @@ static my_bool binlog_log_query_handlerton(THD *thd,
st_plugin_int
*
plugin
,
st_plugin_int
*
plugin
,
void
*
args
)
void
*
args
)
{
{
return
binlog_log_query_handlerton2
(
thd
,
(
const
handlerton
*
)
plugin
->
plugin
->
info
,
args
);
return
binlog_log_query_handlerton2
(
thd
,
(
const
handlerton
*
)
plugin
->
data
,
args
);
}
}
void
ha_binlog_log_query
(
THD
*
thd
,
const
handlerton
*
hton
,
void
ha_binlog_log_query
(
THD
*
thd
,
const
handlerton
*
hton
,
...
@@ -2984,7 +2983,7 @@ static my_bool exts_handlerton(THD *unused, st_plugin_int *plugin,
...
@@ -2984,7 +2983,7 @@ static my_bool exts_handlerton(THD *unused, st_plugin_int *plugin,
void
*
arg
)
void
*
arg
)
{
{
List
<
char
>
*
found_exts
=
(
List
<
char
>
*
)
arg
;
List
<
char
>
*
found_exts
=
(
List
<
char
>
*
)
arg
;
handlerton
*
hton
=
(
(
st_mysql_storage_engine
*
)
plugin
->
plugin
->
info
)
->
handlerton
;
handlerton
*
hton
=
(
handlerton
*
)
plugin
->
data
;
handler
*
file
;
handler
*
file
;
if
(
hton
->
state
==
SHOW_OPTION_YES
&&
hton
->
create
&&
if
(
hton
->
state
==
SHOW_OPTION_YES
&&
hton
->
create
&&
(
file
=
hton
->
create
((
TABLE_SHARE
*
)
0
)))
(
file
=
hton
->
create
((
TABLE_SHARE
*
)
0
)))
...
@@ -3060,7 +3059,7 @@ static my_bool showstat_handlerton(THD *thd, st_plugin_int *plugin,
...
@@ -3060,7 +3059,7 @@ static my_bool showstat_handlerton(THD *thd, st_plugin_int *plugin,
void
*
arg
)
void
*
arg
)
{
{
enum
ha_stat_type
stat
=
*
(
enum
ha_stat_type
*
)
arg
;
enum
ha_stat_type
stat
=
*
(
enum
ha_stat_type
*
)
arg
;
handlerton
*
hton
=
(
(
st_mysql_storage_engine
*
)
plugin
->
plugin
->
info
)
->
handlerton
;
handlerton
*
hton
=
(
handlerton
*
)
plugin
->
data
;
if
(
hton
->
state
==
SHOW_OPTION_YES
&&
hton
->
show_status
&&
if
(
hton
->
state
==
SHOW_OPTION_YES
&&
hton
->
show_status
&&
hton
->
show_status
(
thd
,
stat_print
,
stat
))
hton
->
show_status
(
thd
,
stat_print
,
stat
))
return
TRUE
;
return
TRUE
;
...
@@ -3090,8 +3089,8 @@ bool ha_show_status(THD *thd, handlerton *db_type, enum ha_stat_type stat)
...
@@ -3090,8 +3089,8 @@ bool ha_show_status(THD *thd, handlerton *db_type, enum ha_stat_type stat)
{
{
if
(
db_type
->
state
!=
SHOW_OPTION_YES
)
if
(
db_type
->
state
!=
SHOW_OPTION_YES
)
{
{
const
char
*
name
=
hton2plugin
[
db_type
->
slot
]
->
name
;
const
LEX_STRING
*
name
=&
hton2plugin
[
db_type
->
slot
]
->
name
;
result
=
stat_print
(
thd
,
name
,
strlen
(
name
)
,
result
=
stat_print
(
thd
,
name
->
str
,
name
->
length
,
""
,
0
,
"DISABLED"
,
8
)
?
1
:
0
;
""
,
0
,
"DISABLED"
,
8
)
?
1
:
0
;
}
}
else
else
...
...
sql/handler.h
View file @
2e16f1ec
...
@@ -461,7 +461,7 @@ typedef bool (stat_print_fn)(THD *thd, const char *type, uint type_len,
...
@@ -461,7 +461,7 @@ typedef bool (stat_print_fn)(THD *thd, const char *type, uint type_len,
const
char
*
file
,
uint
file_len
,
const
char
*
file
,
uint
file_len
,
const
char
*
status
,
uint
status_len
);
const
char
*
status
,
uint
status_len
);
enum
ha_stat_type
{
HA_ENGINE_STATUS
,
HA_ENGINE_LOGS
,
HA_ENGINE_MUTEX
};
enum
ha_stat_type
{
HA_ENGINE_STATUS
,
HA_ENGINE_LOGS
,
HA_ENGINE_MUTEX
};
extern
st_
mysql_plugin
*
hton2plugin
[
MAX_HA
];
extern
st_
plugin_int
*
hton2plugin
[
MAX_HA
];
/*
/*
handlerton is a singleton structure - one instance per storage engine -
handlerton is a singleton structure - one instance per storage engine -
...
@@ -1530,7 +1530,7 @@ static inline enum legacy_db_type ha_legacy_type(const handlerton *db_type)
...
@@ -1530,7 +1530,7 @@ static inline enum legacy_db_type ha_legacy_type(const handlerton *db_type)
static
inline
const
char
*
ha_resolve_storage_engine_name
(
const
handlerton
*
db_type
)
static
inline
const
char
*
ha_resolve_storage_engine_name
(
const
handlerton
*
db_type
)
{
{
return
db_type
==
NULL
?
"UNKNOWN"
:
hton2plugin
[
db_type
->
slot
]
->
name
;
return
db_type
==
NULL
?
"UNKNOWN"
:
hton2plugin
[
db_type
->
slot
]
->
name
.
str
;
}
}
static
inline
bool
ha_check_storage_engine_flag
(
const
handlerton
*
db_type
,
uint32
flag
)
static
inline
bool
ha_check_storage_engine_flag
(
const
handlerton
*
db_type
,
uint32
flag
)
...
...
sql/set_var.cc
View file @
2e16f1ec
...
@@ -3307,7 +3307,7 @@ byte *sys_var_thd_storage_engine::value_ptr(THD *thd, enum_var_type type,
...
@@ -3307,7 +3307,7 @@ byte *sys_var_thd_storage_engine::value_ptr(THD *thd, enum_var_type type,
handlerton
*
val
;
handlerton
*
val
;
val
=
(
type
==
OPT_GLOBAL
)
?
global_system_variables
.
*
offset
:
val
=
(
type
==
OPT_GLOBAL
)
?
global_system_variables
.
*
offset
:
thd
->
variables
.
*
offset
;
thd
->
variables
.
*
offset
;
return
(
byte
*
)
hton2plugin
[
val
->
slot
]
->
name
;
return
(
byte
*
)
hton2plugin
[
val
->
slot
]
->
name
.
str
;
}
}
...
...
sql/sql_partition.cc
View file @
2e16f1ec
...
@@ -1665,8 +1665,8 @@ static int add_keyword_int(File fptr, const char *keyword, longlong num)
...
@@ -1665,8 +1665,8 @@ static int add_keyword_int(File fptr, const char *keyword, longlong num)
static
int
add_engine
(
File
fptr
,
handlerton
*
engine_type
)
static
int
add_engine
(
File
fptr
,
handlerton
*
engine_type
)
{
{
const
char
*
engine_str
=
hton2plugin
[
engine_type
->
slot
]
->
name
;
const
char
*
engine_str
=
hton2plugin
[
engine_type
->
slot
]
->
name
.
str
;
DBUG_PRINT
(
"info"
,
(
"ENGINE
=
%s"
,
engine_str
));
DBUG_PRINT
(
"info"
,
(
"ENGINE
:
%s"
,
engine_str
));
int
err
=
add_string
(
fptr
,
"ENGINE = "
);
int
err
=
add_string
(
fptr
,
"ENGINE = "
);
return
err
+
add_string
(
fptr
,
engine_str
);
return
err
+
add_string
(
fptr
,
engine_str
);
}
}
...
@@ -1676,7 +1676,7 @@ static int add_partition_options(File fptr, partition_element *p_elem)
...
@@ -1676,7 +1676,7 @@ static int add_partition_options(File fptr, partition_element *p_elem)
int
err
=
0
;
int
err
=
0
;
if
(
p_elem
->
tablespace_name
)
if
(
p_elem
->
tablespace_name
)
err
+=
add_keyword_string
(
fptr
,
"TABLESPACE"
,
FALSE
,
err
+=
add_keyword_string
(
fptr
,
"TABLESPACE"
,
FALSE
,
p_elem
->
tablespace_name
);
p_elem
->
tablespace_name
);
if
(
p_elem
->
nodegroup_id
!=
UNDEF_NODEGROUP
)
if
(
p_elem
->
nodegroup_id
!=
UNDEF_NODEGROUP
)
err
+=
add_keyword_int
(
fptr
,
"NODEGROUP"
,(
longlong
)
p_elem
->
nodegroup_id
);
err
+=
add_keyword_int
(
fptr
,
"NODEGROUP"
,(
longlong
)
p_elem
->
nodegroup_id
);
...
@@ -4515,8 +4515,8 @@ the generated partition syntax in a correct manner.
...
@@ -4515,8 +4515,8 @@ the generated partition syntax in a correct manner.
DBUG_PRINT
(
"info"
,
(
"No explicit engine used"
));
DBUG_PRINT
(
"info"
,
(
"No explicit engine used"
));
create_info
->
db_type
=
table
->
part_info
->
default_engine_type
;
create_info
->
db_type
=
table
->
part_info
->
default_engine_type
;
}
}
DBUG_PRINT
(
"info"
,
(
"New engine type
=
%s"
,
DBUG_PRINT
(
"info"
,
(
"New engine type
:
%s"
,
hton2plugin
[
create_info
->
db_type
->
slot
]
->
name
));
hton2plugin
[
create_info
->
db_type
->
slot
]
->
name
.
str
));
thd
->
work_part_info
=
NULL
;
thd
->
work_part_info
=
NULL
;
*
partition_changed
=
TRUE
;
*
partition_changed
=
TRUE
;
}
}
...
...
sql/sql_plugin.h
View file @
2e16f1ec
...
@@ -58,7 +58,8 @@ struct st_plugin_int
...
@@ -58,7 +58,8 @@ struct st_plugin_int
struct
st_mysql_plugin
*
plugin
;
struct
st_mysql_plugin
*
plugin
;
struct
st_plugin_dl
*
plugin_dl
;
struct
st_plugin_dl
*
plugin_dl
;
enum
enum_plugin_state
state
;
enum
enum_plugin_state
state
;
uint
ref_count
;
/* number of threads using the plugin */
uint
ref_count
;
/* number of threads using the plugin */
void
*
data
;
/* plugin type specific, e.g. handlerton */
};
};
typedef
int
(
*
plugin_type_init
)(
struct
st_plugin_int
*
);
typedef
int
(
*
plugin_type_init
)(
struct
st_plugin_int
*
);
...
...
sql/sql_show.cc
View file @
2e16f1ec
...
@@ -55,12 +55,13 @@ static my_bool show_handlerton(THD *thd, st_plugin_int *plugin,
...
@@ -55,12 +55,13 @@ static my_bool show_handlerton(THD *thd, st_plugin_int *plugin,
{
{
handlerton
*
default_type
=
(
handlerton
*
)
arg
;
handlerton
*
default_type
=
(
handlerton
*
)
arg
;
Protocol
*
protocol
=
thd
->
protocol
;
Protocol
*
protocol
=
thd
->
protocol
;
handlerton
*
hton
=
(
(
st_mysql_storage_engine
*
)
plugin
->
plugin
->
info
)
->
handlerton
;
handlerton
*
hton
=
(
handlerton
*
)
plugin
->
data
;
if
(
!
(
hton
->
flags
&
HTON_HIDDEN
))
if
(
!
(
hton
->
flags
&
HTON_HIDDEN
))
{
{
protocol
->
prepare_for_resend
();
protocol
->
prepare_for_resend
();
protocol
->
store
(
plugin
->
plugin
->
name
,
system_charset_info
);
protocol
->
store
(
plugin
->
name
.
str
,
plugin
->
name
.
length
,
system_charset_info
);
const
char
*
option_name
=
show_comp_option_name
[(
int
)
hton
->
state
];
const
char
*
option_name
=
show_comp_option_name
[(
int
)
hton
->
state
];
if
(
hton
->
state
==
SHOW_OPTION_YES
&&
default_type
==
hton
)
if
(
hton
->
state
==
SHOW_OPTION_YES
&&
default_type
==
hton
)
...
@@ -3091,7 +3092,7 @@ static my_bool iter_schema_engines(THD *thd, st_plugin_int *plugin,
...
@@ -3091,7 +3092,7 @@ static my_bool iter_schema_engines(THD *thd, st_plugin_int *plugin,
void
*
ptable
)
void
*
ptable
)
{
{
TABLE
*
table
=
(
TABLE
*
)
ptable
;
TABLE
*
table
=
(
TABLE
*
)
ptable
;
handlerton
*
hton
=
(
(
st_mysql_storage_engine
*
)
plugin
->
plugin
->
info
)
->
handlerton
;
handlerton
*
hton
=
(
handlerton
*
)
plugin
->
data
;
const
char
*
wild
=
thd
->
lex
->
wild
?
thd
->
lex
->
wild
->
ptr
()
:
NullS
;
const
char
*
wild
=
thd
->
lex
->
wild
?
thd
->
lex
->
wild
->
ptr
()
:
NullS
;
CHARSET_INFO
*
scs
=
system_charset_info
;
CHARSET_INFO
*
scs
=
system_charset_info
;
DBUG_ENTER
(
"iter_schema_engines"
);
DBUG_ENTER
(
"iter_schema_engines"
);
...
@@ -3099,7 +3100,7 @@ static my_bool iter_schema_engines(THD *thd, st_plugin_int *plugin,
...
@@ -3099,7 +3100,7 @@ static my_bool iter_schema_engines(THD *thd, st_plugin_int *plugin,
if
(
!
(
hton
->
flags
&
HTON_HIDDEN
))
if
(
!
(
hton
->
flags
&
HTON_HIDDEN
))
{
{
if
(
!
(
wild
&&
wild
[
0
]
&&
if
(
!
(
wild
&&
wild
[
0
]
&&
wild_case_compare
(
scs
,
plugin
->
plugin
->
name
,
wild
)))
wild_case_compare
(
scs
,
plugin
->
name
.
str
,
wild
)))
{
{
LEX_STRING
state
[
2
]
=
{{
STRING_WITH_LEN
(
"ENABLED"
)},
LEX_STRING
state
[
2
]
=
{{
STRING_WITH_LEN
(
"ENABLED"
)},
{
STRING_WITH_LEN
(
"DISABLED"
)}};
{
STRING_WITH_LEN
(
"DISABLED"
)}};
...
@@ -3107,8 +3108,7 @@ static my_bool iter_schema_engines(THD *thd, st_plugin_int *plugin,
...
@@ -3107,8 +3108,7 @@ static my_bool iter_schema_engines(THD *thd, st_plugin_int *plugin,
LEX_STRING
*
tmp
;
LEX_STRING
*
tmp
;
restore_record
(
table
,
s
->
default_values
);
restore_record
(
table
,
s
->
default_values
);
table
->
field
[
0
]
->
store
(
plugin
->
plugin
->
name
,
table
->
field
[
0
]
->
store
(
plugin
->
name
.
str
,
plugin
->
name
.
length
,
scs
);
strlen
(
plugin
->
plugin
->
name
),
scs
);
tmp
=
&
state
[
test
(
hton
->
state
)];
tmp
=
&
state
[
test
(
hton
->
state
)];
table
->
field
[
1
]
->
store
(
tmp
->
str
,
tmp
->
length
,
scs
);
table
->
field
[
1
]
->
store
(
tmp
->
str
,
tmp
->
length
,
scs
);
table
->
field
[
2
]
->
store
(
plugin
->
plugin
->
descr
,
table
->
field
[
2
]
->
store
(
plugin
->
plugin
->
descr
,
...
@@ -5008,7 +5008,7 @@ static my_bool run_hton_fill_schema_files(THD *thd, st_plugin_int *plugin,
...
@@ -5008,7 +5008,7 @@ static my_bool run_hton_fill_schema_files(THD *thd, st_plugin_int *plugin,
{
{
struct
run_hton_fill_schema_files_args
*
args
=
struct
run_hton_fill_schema_files_args
*
args
=
(
run_hton_fill_schema_files_args
*
)
arg
;
(
run_hton_fill_schema_files_args
*
)
arg
;
handlerton
*
hton
=
(
(
st_mysql_storage_engine
*
)
plugin
->
plugin
->
info
)
->
handlerton
;
handlerton
*
hton
=
(
handlerton
*
)
plugin
->
data
;
if
(
hton
->
fill_files_table
)
if
(
hton
->
fill_files_table
)
hton
->
fill_files_table
(
thd
,
args
->
tables
,
args
->
cond
);
hton
->
fill_files_table
(
thd
,
args
->
tables
,
args
->
cond
);
return
false
;
return
false
;
...
...
sql/sql_table.cc
View file @
2e16f1ec
...
@@ -6465,7 +6465,7 @@ static bool check_engine(THD *thd, const char *table_name,
...
@@ -6465,7 +6465,7 @@ static bool check_engine(THD *thd, const char *table_name,
if
(
create_info
->
used_fields
&
HA_CREATE_USED_ENGINE
)
if
(
create_info
->
used_fields
&
HA_CREATE_USED_ENGINE
)
{
{
my_error
(
ER_ILLEGAL_HA_CREATE_OPTION
,
MYF
(
0
),
my_error
(
ER_ILLEGAL_HA_CREATE_OPTION
,
MYF
(
0
),
hton2plugin
[(
*
new_engine
)
->
slot
]
->
name
,
"TEMPORARY"
);
hton2plugin
[(
*
new_engine
)
->
slot
]
->
name
.
str
,
"TEMPORARY"
);
*
new_engine
=
0
;
*
new_engine
=
0
;
return
TRUE
;
return
TRUE
;
}
}
...
...
sql/sql_tablespace.cc
View file @
2e16f1ec
...
@@ -35,7 +35,7 @@ int mysql_alter_tablespace(THD *thd, st_alter_tablespace *ts_info)
...
@@ -35,7 +35,7 @@ int mysql_alter_tablespace(THD *thd, st_alter_tablespace *ts_info)
push_warning_printf
(
thd
,
MYSQL_ERROR
::
WARN_LEVEL_ERROR
,
push_warning_printf
(
thd
,
MYSQL_ERROR
::
WARN_LEVEL_ERROR
,
ER_WARN_USING_OTHER_HANDLER
,
ER_WARN_USING_OTHER_HANDLER
,
ER
(
ER_WARN_USING_OTHER_HANDLER
),
ER
(
ER_WARN_USING_OTHER_HANDLER
),
hton2plugin
[
hton
->
slot
]
->
name
,
hton2plugin
[
hton
->
slot
]
->
name
.
str
,
ts_info
->
tablespace_name
?
ts_info
->
tablespace_name
ts_info
->
tablespace_name
?
ts_info
->
tablespace_name
:
ts_info
->
logfile_group_name
);
:
ts_info
->
logfile_group_name
);
}
}
...
@@ -64,7 +64,7 @@ int mysql_alter_tablespace(THD *thd, st_alter_tablespace *ts_info)
...
@@ -64,7 +64,7 @@ int mysql_alter_tablespace(THD *thd, st_alter_tablespace *ts_info)
push_warning_printf
(
thd
,
MYSQL_ERROR
::
WARN_LEVEL_ERROR
,
push_warning_printf
(
thd
,
MYSQL_ERROR
::
WARN_LEVEL_ERROR
,
ER_ILLEGAL_HA_CREATE_OPTION
,
ER_ILLEGAL_HA_CREATE_OPTION
,
ER
(
ER_ILLEGAL_HA_CREATE_OPTION
),
ER
(
ER_ILLEGAL_HA_CREATE_OPTION
),
hton2plugin
[
hton
->
slot
]
->
name
,
hton2plugin
[
hton
->
slot
]
->
name
.
str
,
"TABLESPACE or LOGFILE GROUP"
);
"TABLESPACE or LOGFILE GROUP"
);
}
}
if
(
mysql_bin_log
.
is_open
())
if
(
mysql_bin_log
.
is_open
())
...
...
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