mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Backport of:
------------------------------------------------------------ revno: 2630.4.39 committer: Dmitry Lenev <dlenev@mysql.com> branch nick: mysql-6.0-3726-w2 timestamp: Thu 2008-06-26 13:08:27 +0400 message: Fix warnings about passing pointer to not fully-initialized THD object to constructor of base Open_tables_state classe, which appeared on Windows and were introduced by one of the patches implementing WL#3726 "DDL locking for all metadata objects". sql/sql_class.cc: Moved code preparing Open_tables_state instance for operations which open/lock/close tables from class constructor to init_open_tables_state() method. This allows us to move such initialization of base Open_table_state instance in THD class constructor from base classes initialization section to constructor's body and thus to get rid of warnings about about passing pointer to not fully-initialized THD object to base class constructor. sql/sql_class.h: Moved code preparing Open_tables_state instance for operations which open/lock/close tables from class constructor to init_open_tables_state() method. This allows us to move such initialization of base Open_table_state instance in THD class constructor from base classes initialization section to constructor's body and thus to get rid of warnings about about passing pointer to not fully-initialized THD object to base class constructor.
This commit is contained in:
@ -202,12 +202,6 @@ bool foreign_key_prefix(Key *a, Key *b)
|
|||||||
** Thread specific functions
|
** Thread specific functions
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
Open_tables_state::Open_tables_state(THD *thd, ulong version_arg)
|
|
||||||
:version(version_arg), state_flags(0U)
|
|
||||||
{
|
|
||||||
reset_open_tables_state(thd);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
The following functions form part of the C plugin API
|
The following functions form part of the C plugin API
|
||||||
*/
|
*/
|
||||||
@ -440,7 +434,7 @@ bool Drop_table_error_handler::handle_condition(THD *thd,
|
|||||||
THD::THD()
|
THD::THD()
|
||||||
:Statement(&main_lex, &main_mem_root, CONVENTIONAL_EXECUTION,
|
:Statement(&main_lex, &main_mem_root, CONVENTIONAL_EXECUTION,
|
||||||
/* statement id */ 0),
|
/* statement id */ 0),
|
||||||
Open_tables_state(this, refresh_version), rli_fake(0),
|
rli_fake(0),
|
||||||
lock_id(&main_lock_id),
|
lock_id(&main_lock_id),
|
||||||
user_time(0), in_sub_stmt(0),
|
user_time(0), in_sub_stmt(0),
|
||||||
sql_log_bin_toplevel(false),
|
sql_log_bin_toplevel(false),
|
||||||
@ -542,6 +536,9 @@ THD::THD()
|
|||||||
command=COM_CONNECT;
|
command=COM_CONNECT;
|
||||||
*scramble= '\0';
|
*scramble= '\0';
|
||||||
|
|
||||||
|
/* Call to init() below requires fully initialized Open_tables_state. */
|
||||||
|
init_open_tables_state(this, refresh_version);
|
||||||
|
|
||||||
init();
|
init();
|
||||||
#if defined(ENABLED_PROFILING)
|
#if defined(ENABLED_PROFILING)
|
||||||
profiling.set_thd(this);
|
profiling.set_thd(this);
|
||||||
|
@ -984,13 +984,22 @@ public:
|
|||||||
MDL_CONTEXT mdl_context;
|
MDL_CONTEXT mdl_context;
|
||||||
MDL_CONTEXT handler_mdl_context;
|
MDL_CONTEXT handler_mdl_context;
|
||||||
|
|
||||||
/*
|
/**
|
||||||
This constructor serves for creation of Open_tables_state instances
|
This constructor initializes Open_tables_state instance which can only
|
||||||
which are used as backup storage.
|
be used as backup storage. To prepare Open_tables_state instance for
|
||||||
|
operations which open/lock/close tables (e.g. open_table()) one has to
|
||||||
|
call init_open_tables_state().
|
||||||
*/
|
*/
|
||||||
Open_tables_state() : state_flags(0U) { }
|
Open_tables_state() : state_flags(0U) { }
|
||||||
|
|
||||||
Open_tables_state(THD *thd, ulong version_arg);
|
/**
|
||||||
|
Prepare Open_tables_state instance for operations dealing with tables.
|
||||||
|
*/
|
||||||
|
void init_open_tables_state(THD *thd, ulong version_arg)
|
||||||
|
{
|
||||||
|
reset_open_tables_state(thd);
|
||||||
|
version= version_arg;
|
||||||
|
}
|
||||||
|
|
||||||
void set_open_tables_state(Open_tables_state *state)
|
void set_open_tables_state(Open_tables_state *state)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user