Commit 46b8a07d authored by kostja@bodhi.(none)'s avatar kostja@bodhi.(none)

Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime

into  bodhi.(none):/opt/local/work/mysql-5.1-runtime
parents 2989cbe0 91fe15bb
No related merge requests found
...@@ -1308,8 +1308,8 @@ static char *cover_definer_clause_in_trigger(const char *trigger_def_str, ...@@ -1308,8 +1308,8 @@ static char *cover_definer_clause_in_trigger(const char *trigger_def_str,
@note This function will go away when WL#3995 is implemented. @note This function will go away when WL#3995 is implemented.
@param[in] def_str CREATE FUNCTION|PROCEDURE statement string. @param[in] def_str CREATE FUNCTION|PROCEDURE statement string.
@param[in] def_length length of the def_str. @param[in] def_str_length length of the def_str.
@return pointer to the new allocated query string. @return pointer to the new allocated query string.
*/ */
......
...@@ -77,7 +77,7 @@ int main(int argc, char **argv) { ...@@ -77,7 +77,7 @@ int main(int argc, char **argv) {
_print_csinfo(cs); _print_csinfo(cs);
fflush(stdout); fflush(stdout);
#define NOT_USED_ANYMORE #ifdef NOT_USED_ANYMORE
cs_list = list_charsets(MYF(MY_CS_COMPILED | MY_CS_CONFIG)); cs_list = list_charsets(MYF(MY_CS_COMPILED | MY_CS_CONFIG));
printf("LIST OF CHARSETS (compiled + *.conf):\n%s\n", cs_list); printf("LIST OF CHARSETS (compiled + *.conf):\n%s\n", cs_list);
my_free(cs_list,MYF(0)); my_free(cs_list,MYF(0));
......
...@@ -556,7 +556,7 @@ Event_db_repository::open_event_table(THD *thd, enum thr_lock_type lock_type, ...@@ -556,7 +556,7 @@ Event_db_repository::open_event_table(THD *thd, enum thr_lock_type lock_type,
only creates a record on disk. only creates a record on disk.
@pre The thread handle has no open tables. @pre The thread handle has no open tables.
@param[in,out] THD @param[in,out] thd THD
@param[in] parse_data Parsed event definition @param[in] parse_data Parsed event definition
@param[in] create_if_not TRUE if IF NOT EXISTS clause was provided @param[in] create_if_not TRUE if IF NOT EXISTS clause was provided
to CREATE EVENT statement to CREATE EVENT statement
...@@ -657,7 +657,7 @@ end: ...@@ -657,7 +657,7 @@ end:
@param[in,out] thd thread handle @param[in,out] thd thread handle
@param[in] parse_data parsed event definition @param[in] parse_data parsed event definition
@paran[in[ new_dbname not NULL if ALTER EVENT RENAME @param[in] new_dbname not NULL if ALTER EVENT RENAME
points at a new database name points at a new database name
@param[in] new_name not NULL if ALTER EVENT RENAME @param[in] new_name not NULL if ALTER EVENT RENAME
points at a new event name points at a new event name
...@@ -812,7 +812,7 @@ end: ...@@ -812,7 +812,7 @@ end:
@retval FALSE an event with such db/name key exists @retval FALSE an event with such db/name key exists
@reval TRUE no record found or an error occured. @retval TRUE no record found or an error occured.
*/ */
bool bool
......
...@@ -790,8 +790,7 @@ Events::show_create_event(THD *thd, LEX_STRING dbname, LEX_STRING name) ...@@ -790,8 +790,7 @@ Events::show_create_event(THD *thd, LEX_STRING dbname, LEX_STRING name)
Check access rights and fill INFORMATION_SCHEMA.events table. Check access rights and fill INFORMATION_SCHEMA.events table.
@param[in,out] thd Thread context @param[in,out] thd Thread context
@param[in] table The temporary table to fill. @param[in] tables The temporary table to fill.
cond Unused
In MySQL INFORMATION_SCHEMA tables are temporary tables that are In MySQL INFORMATION_SCHEMA tables are temporary tables that are
created and filled on demand. In this function, we fill created and filled on demand. In this function, we fill
......
...@@ -15,9 +15,11 @@ ...@@ -15,9 +15,11 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
/* /**
@file @file
A public interface of Events Scheduler module. A public interface of Events Scheduler module.
@defgroup Event Scheduler
@{
*/ */
class Event_parse_data; class Event_parse_data;
...@@ -42,7 +44,7 @@ int ...@@ -42,7 +44,7 @@ int
sortcmp_lex_string(LEX_STRING s, LEX_STRING t, CHARSET_INFO *cs); sortcmp_lex_string(LEX_STRING s, LEX_STRING t, CHARSET_INFO *cs);
/** /**
@class Events -- a facade to the functionality of the Event Scheduler. @brief A facade to the functionality of the Event Scheduler.
Every public operation against the scheduler has to be executed via the Every public operation against the scheduler has to be executed via the
interface provided by a static method of this class. No instance of this interface provided by a static method of this class. No instance of this
...@@ -152,5 +154,8 @@ private: ...@@ -152,5 +154,8 @@ private:
void operator=(Events &); void operator=(Events &);
}; };
/**
@} (end of group Event Scheduler)
*/
#endif /* _EVENT_H_ */ #endif /* _EVENT_H_ */
This diff is collapsed.
...@@ -53,7 +53,7 @@ public: ...@@ -53,7 +53,7 @@ public:
@param item_list The list of arguments to the function, can be NULL @param item_list The list of arguments to the function, can be NULL
@return An item representing the parsed function call, or NULL @return An item representing the parsed function call, or NULL
*/ */
virtual Item* create(THD *thd, LEX_STRING name, List<Item> *item_list) = 0; virtual Item *create(THD *thd, LEX_STRING name, List<Item> *item_list) = 0;
protected: protected:
/** Constructor */ /** Constructor */
...@@ -80,7 +80,7 @@ public: ...@@ -80,7 +80,7 @@ public:
@param item_list The list of arguments to the function, can be NULL @param item_list The list of arguments to the function, can be NULL
@return An item representing the parsed function call @return An item representing the parsed function call
*/ */
virtual Item* create(THD *thd, LEX_STRING name, List<Item> *item_list); virtual Item *create(THD *thd, LEX_STRING name, List<Item> *item_list);
/** /**
The builder create method, for qualified functions. The builder create method, for qualified functions.
...@@ -127,7 +127,7 @@ extern Create_qfunc * find_qualified_function_builder(THD *thd); ...@@ -127,7 +127,7 @@ extern Create_qfunc * find_qualified_function_builder(THD *thd);
class Create_udf_func : public Create_func class Create_udf_func : public Create_func
{ {
public: public:
virtual Item* create(THD *thd, LEX_STRING name, List<Item> *item_list); virtual Item *create(THD *thd, LEX_STRING name, List<Item> *item_list);
/** /**
The builder create method, for User Defined Functions. The builder create method, for User Defined Functions.
...@@ -136,7 +136,7 @@ public: ...@@ -136,7 +136,7 @@ public:
@param item_list The list of arguments to the function, can be NULL @param item_list The list of arguments to the function, can be NULL
@return An item representing the parsed function call @return An item representing the parsed function call
*/ */
Item* create(THD *thd, udf_func *fct, List<Item> *item_list); Item *create(THD *thd, udf_func *fct, List<Item> *item_list);
/** Singleton. */ /** Singleton. */
static Create_udf_func s_singleton; static Create_udf_func s_singleton;
......
...@@ -624,7 +624,7 @@ void Item_exists_subselect::print(String *str) ...@@ -624,7 +624,7 @@ void Item_exists_subselect::print(String *str)
} }
bool Item_in_subselect::test_limit(SELECT_LEX_UNIT *unit_arg) bool Item_in_subselect::test_limit(st_select_lex_unit *unit_arg)
{ {
if (unit_arg->fake_select_lex && if (unit_arg->fake_select_lex &&
unit_arg->fake_select_lex->test_limit()) unit_arg->fake_select_lex->test_limit())
......
...@@ -472,6 +472,9 @@ void mysql_unlock_read_tables(THD *thd, MYSQL_LOCK *sql_lock) ...@@ -472,6 +472,9 @@ void mysql_unlock_read_tables(THD *thd, MYSQL_LOCK *sql_lock)
unlock_external() we call handler::external_lock(F_UNLCK) only unlock_external() we call handler::external_lock(F_UNLCK) only
if table->current_lock is not F_UNLCK. if table->current_lock is not F_UNLCK.
@param thd thread context
@param locked list of locked tables
@param table the table to unlock
@param always_unlock specify explicitly if the legacy side @param always_unlock specify explicitly if the legacy side
effect is desired. effect is desired.
*/ */
...@@ -1174,8 +1177,9 @@ bool lock_table_names_exclusively(THD *thd, TABLE_LIST *table_list) ...@@ -1174,8 +1177,9 @@ bool lock_table_names_exclusively(THD *thd, TABLE_LIST *table_list)
/** /**
@brief Test is 'table' is protected by an exclusive name lock. @brief Test is 'table' is protected by an exclusive name lock.
@param[in] thd The current thread handler @param[in] thd The current thread handler
@param[in] table Table container containing the single table to be tested @param[in] table_list Table container containing the single table to be
tested
@note Needs to be protected by LOCK_open mutex. @note Needs to be protected by LOCK_open mutex.
...@@ -1201,8 +1205,9 @@ is_table_name_exclusively_locked_by_this_thread(THD *thd, ...@@ -1201,8 +1205,9 @@ is_table_name_exclusively_locked_by_this_thread(THD *thd,
/** /**
@brief Test is 'table key' is protected by an exclusive name lock. @brief Test is 'table key' is protected by an exclusive name lock.
@param[in] thd The current thread handler. @param[in] thd The current thread handler.
@param[in] table Table container containing the single table to be tested. @param[in] key
@param[in] key_length
@note Needs to be protected by LOCK_open mutex @note Needs to be protected by LOCK_open mutex
......
...@@ -84,7 +84,7 @@ class Stored_routine_creation_ctx : public Stored_program_creation_ctx, ...@@ -84,7 +84,7 @@ class Stored_routine_creation_ctx : public Stored_program_creation_ctx,
{ {
public: public:
static Stored_routine_creation_ctx * static Stored_routine_creation_ctx *
load_from_db(THD *thd, const class sp_name *name, TABLE *proc_tbl); load_from_db(THD *thd, const sp_name *name, TABLE *proc_tbl);
public: public:
virtual Stored_program_creation_ctx *clone(MEM_ROOT *mem_root) virtual Stored_program_creation_ctx *clone(MEM_ROOT *mem_root)
......
...@@ -186,7 +186,7 @@ public: ...@@ -186,7 +186,7 @@ public:
LEX_STRING m_qname; // db.name LEX_STRING m_qname; // db.name
/** /**
Key representing routine in the set of stored routines used by statement. Key representing routine in the set of stored routines used by statement.
[routine_type]db.name\0 [routine_type]db.name
@sa sp_name::m_sroutines_key @sa sp_name::m_sroutines_key
*/ */
LEX_STRING m_sroutines_key; LEX_STRING m_sroutines_key;
......
...@@ -668,7 +668,7 @@ void field_ulonglong::add() ...@@ -668,7 +668,7 @@ void field_ulonglong::add()
} // field_ulonglong::add } // field_ulonglong::add
int analyse::send_row(List<Item> &field_list __attribute__((unused))) int analyse::send_row(List<Item> & /* field_list */)
{ {
field_info **f = f_info; field_info **f = f_info;
......
...@@ -348,7 +348,7 @@ public: ...@@ -348,7 +348,7 @@ public:
} }
virtual void add() {} virtual void add() {}
virtual bool change_columns(List<Item> &fields); virtual bool change_columns(List<Item> &fields);
virtual int send_row(List<Item> &fields); virtual int send_row(List<Item> &field_list);
virtual void end_group(void) {} virtual void end_group(void) {}
virtual bool end_of_records(void); virtual bool end_of_records(void);
friend Procedure *proc_analyse_init(THD *thd, ORDER *param, friend Procedure *proc_analyse_init(THD *thd, ORDER *param,
......
...@@ -2148,9 +2148,9 @@ bool lock_table_name_if_not_cached(THD *thd, const char *db, ...@@ -2148,9 +2148,9 @@ bool lock_table_name_if_not_cached(THD *thd, const char *db,
@brief Check that table exists in table definition cache, on disk @brief Check that table exists in table definition cache, on disk
or in some storage engine. or in some storage engine.
@param thd Thread context @param thd Thread context
@param table Table list element @param table Table list element
@param exists[out] Out parameter which is set to TRUE if table @param[out] exists Out parameter which is set to TRUE if table
exists and to FALSE otherwise. exists and to FALSE otherwise.
@note This function assumes that caller owns LOCK_open mutex. @note This function assumes that caller owns LOCK_open mutex.
......
...@@ -1350,7 +1350,7 @@ static void mysql_change_db_impl(THD *thd, ...@@ -1350,7 +1350,7 @@ static void mysql_change_db_impl(THD *thd,
@brief Change the current database. @brief Change the current database.
@param thd thread handle @param thd thread handle
@param name database name @param new_db_name database name
@param force_switch if this flag is set (TRUE), mysql_change_db() will @param force_switch if this flag is set (TRUE), mysql_change_db() will
switch to NULL db if the specified database is not switch to NULL db if the specified database is not
available anymore. Corresponding warning will be available anymore. Corresponding warning will be
......
...@@ -173,7 +173,7 @@ void Lex_input_stream::body_utf8_start(THD *thd, const char *begin_ptr) ...@@ -173,7 +173,7 @@ void Lex_input_stream::body_utf8_start(THD *thd, const char *begin_ptr)
} }
/** /**
The operation appends unprocessed part of pre-processed buffer till @brief The operation appends unprocessed part of pre-processed buffer till
the given pointer (ptr) and sets m_cpp_utf8_processed_ptr to end_ptr. the given pointer (ptr) and sets m_cpp_utf8_processed_ptr to end_ptr.
The idea is that some tokens in the pre-processed buffer (like character The idea is that some tokens in the pre-processed buffer (like character
...@@ -1400,6 +1400,19 @@ int MYSQLlex(void *arg, void *yythd) ...@@ -1400,6 +1400,19 @@ int MYSQLlex(void *arg, void *yythd)
} }
/**
Construct a copy of this object to be used for mysql_alter_table
and mysql_create_table.
Historically, these two functions modify their Alter_info
arguments. This behaviour breaks re-execution of prepared
statements and stored procedures and is compensated by always
supplying a copy of Alter_info to these functions.
@return You need to use check the error in THD for out
of memory condition after calling this function.
*/
Alter_info::Alter_info(const Alter_info &rhs, MEM_ROOT *mem_root) Alter_info::Alter_info(const Alter_info &rhs, MEM_ROOT *mem_root)
:drop_list(rhs.drop_list, mem_root), :drop_list(rhs.drop_list, mem_root),
alter_list(rhs.alter_list, mem_root), alter_list(rhs.alter_list, mem_root),
......
...@@ -859,8 +859,8 @@ public: ...@@ -859,8 +859,8 @@ public:
uint no_parts; uint no_parts;
enum_alter_table_change_level change_level; enum_alter_table_change_level change_level;
Create_field *datetime_field; Create_field *datetime_field;
bool error_if_not_empty; bool error_if_not_empty;
Alter_info() : Alter_info() :
flags(0), flags(0),
...@@ -887,16 +887,6 @@ public: ...@@ -887,16 +887,6 @@ public:
datetime_field= 0; datetime_field= 0;
error_if_not_empty= FALSE; error_if_not_empty= FALSE;
} }
/**
Construct a copy of this object to be used for mysql_alter_table
and mysql_create_table. Historically, these two functions modify
their Alter_info arguments. This behaviour breaks re-execution of
prepared statements and stored procedures and is compensated by
always supplying a copy of Alter_info to these functions.
@return You need to use check the error in THD for out
of memory condition after calling this function.
*/
Alter_info(const Alter_info &rhs, MEM_ROOT *mem_root); Alter_info(const Alter_info &rhs, MEM_ROOT *mem_root);
private: private:
Alter_info &operator=(const Alter_info &rhs); // not implemented Alter_info &operator=(const Alter_info &rhs); // not implemented
...@@ -1102,8 +1092,9 @@ enum enum_comment_state ...@@ -1102,8 +1092,9 @@ enum enum_comment_state
/** /**
This class represents the character input stream consumed during @brief This class represents the character input stream consumed during
lexical analysis. lexical analysis.
In addition to consuming the input stream, this class performs some In addition to consuming the input stream, this class performs some
comment pre processing, by filtering out out of bound special text comment pre processing, by filtering out out of bound special text
from the query input stream. from the query input stream.
...@@ -1113,6 +1104,7 @@ enum enum_comment_state ...@@ -1113,6 +1104,7 @@ enum enum_comment_state
is the pre-processed buffer that contains only the query text that is the pre-processed buffer that contains only the query text that
should be seen once out-of-bound data is removed. should be seen once out-of-bound data is removed.
*/ */
class Lex_input_stream class Lex_input_stream
{ {
public: public:
...@@ -1121,6 +1113,7 @@ public: ...@@ -1121,6 +1113,7 @@ public:
/** /**
Set the echo mode. Set the echo mode.
When echo is true, characters parsed from the raw input stream are When echo is true, characters parsed from the raw input stream are
preserved. When false, characters parsed are silently ignored. preserved. When false, characters parsed are silently ignored.
@param echo the echo mode. @param echo the echo mode.
......
...@@ -5370,11 +5370,12 @@ void mysql_init_multi_delete(LEX *lex) ...@@ -5370,11 +5370,12 @@ void mysql_init_multi_delete(LEX *lex)
/** /**
Parse a query. Parse a query.
@param thd Current thread
@param inBuf Begining of the query text @param thd Current thread
@param length Length of the query text @param inBuf Begining of the query text
@param [out] semicolon For multi queries, position of the character of @param length Length of the query text
the next query in the query text. @param[out] found_semicolon For multi queries, position of the character of
the next query in the query text.
*/ */
void mysql_parse(THD *thd, const char *inBuf, uint length, void mysql_parse(THD *thd, const char *inBuf, uint length,
......
...@@ -2444,7 +2444,7 @@ void plugin_thdvar_cleanup(THD *thd) ...@@ -2444,7 +2444,7 @@ void plugin_thdvar_cleanup(THD *thd)
/** /**
@brief Free values of thread variables of a plugin. @brief Free values of thread variables of a plugin.
@detail This must be called before a plugin is deleted. Otherwise its This must be called before a plugin is deleted. Otherwise its
variables are no longer accessible and the value space is lost. Note variables are no longer accessible and the value space is lost. Note
that only string values with PLUGIN_VAR_MEMALLOC are allocated and that only string values with PLUGIN_VAR_MEMALLOC are allocated and
must be freed. must be freed.
......
...@@ -112,7 +112,6 @@ public: ...@@ -112,7 +112,6 @@ public:
/****************************************************************************/ /****************************************************************************/
/** /**
@class Prepared_statement
@brief Prepared_statement: a statement that can contain placeholders @brief Prepared_statement: a statement that can contain placeholders
*/ */
......
...@@ -2459,8 +2459,8 @@ static COND * make_cond_for_info_schema(COND *cond, TABLE_LIST *table) ...@@ -2459,8 +2459,8 @@ static COND * make_cond_for_info_schema(COND *cond, TABLE_LIST *table)
@param[in] thd thread handler @param[in] thd thread handler
@param[in] cond WHERE condition @param[in] cond WHERE condition
@param[in] table I_S table @param[in] tables I_S table
@param[in, out] lookup_field_vals Struct which holds lookup values @param[in, out] lookup_field_values Struct which holds lookup values
@return void @return void
*/ */
......
...@@ -1882,7 +1882,7 @@ end: ...@@ -1882,7 +1882,7 @@ end:
@param thd @param thd
@param event @param event
@param time_type, @param time_type
@param old_row_is_record1 @param old_row_is_record1
@return Error status. @return Error status.
...@@ -2074,9 +2074,9 @@ process_unknown_string(char *&unknown_key, uchar* base, MEM_ROOT *mem_root, ...@@ -2074,9 +2074,9 @@ process_unknown_string(char *&unknown_key, uchar* base, MEM_ROOT *mem_root,
/** /**
Contruct path to TRN-file. Contruct path to TRN-file.
@param thd[in] Thread context. @param[in] thd Thread context.
@param trg_name[in] Trigger name. @param[in] trg_name Trigger name.
@param trn_path[out] Variable to store constructed path @param[out] trn_path Variable to store constructed path
*/ */
void build_trn_path(THD *thd, const sp_name *trg_name, LEX_STRING *trn_path) void build_trn_path(THD *thd, const sp_name *trg_name, LEX_STRING *trn_path)
...@@ -2109,10 +2109,10 @@ bool check_trn_exists(const LEX_STRING *trn_path) ...@@ -2109,10 +2109,10 @@ bool check_trn_exists(const LEX_STRING *trn_path)
/** /**
Retrieve table name for given trigger. Retrieve table name for given trigger.
@param thd[in] Thread context. @param[in] thd Thread context.
@param trg_name[in] Trigger name. @param[in] trg_name Trigger name.
@param trn_path[in] Path to the corresponding TRN-file. @param[in] trn_path Path to the corresponding TRN-file.
@param tbl_name[out] Variable to store retrieved table name. @param[out] tbl_name Variable to store retrieved table name.
@return Error status. @return Error status.
@retval FALSE on success. @retval FALSE on success.
......
...@@ -86,10 +86,10 @@ static bool check_fields(THD *thd, List<Item> &items) ...@@ -86,10 +86,10 @@ static bool check_fields(THD *thd, List<Item> &items)
/** /**
@brief Re-read record if more columns are needed for error message. @brief Re-read record if more columns are needed for error message.
@detail If we got a duplicate key error, we want to write an error If we got a duplicate key error, we want to write an error
message containing the value of the duplicate key. If we do not have message containing the value of the duplicate key. If we do not have
all fields of the key value in record[0], we need to re-read the all fields of the key value in record[0], we need to re-read the
record with a proper read_set. record with a proper read_set.
@param[in] error error number @param[in] error error number
@param[in] table table @param[in] table table
......
...@@ -157,7 +157,7 @@ enum enum_table_category ...@@ -157,7 +157,7 @@ enum enum_table_category
- FLUSH TABLES WITH READ LOCK - FLUSH TABLES WITH READ LOCK
- SET GLOBAL READ_ONLY = ON - SET GLOBAL READ_ONLY = ON
do not apply to this table. do not apply to this table.
Note that LOCK TABLE <t> FOR READ/WRITE Note that LOCK TABLE t FOR READ/WRITE
can be used on temporary tables. can be used on temporary tables.
Temporary tables are not part of the table cache. Temporary tables are not part of the table cache.
*/ */
...@@ -166,7 +166,7 @@ enum enum_table_category ...@@ -166,7 +166,7 @@ enum enum_table_category
/** /**
User table. User table.
These tables do honor: These tables do honor:
- LOCK TABLE <t> FOR READ/WRITE - LOCK TABLE t FOR READ/WRITE
- FLUSH TABLES WITH READ LOCK - FLUSH TABLES WITH READ LOCK
- SET GLOBAL READ_ONLY = ON - SET GLOBAL READ_ONLY = ON
User tables are cached in the table cache. User tables are cached in the table cache.
...@@ -176,7 +176,7 @@ enum enum_table_category ...@@ -176,7 +176,7 @@ enum enum_table_category
/** /**
System table, maintained by the server. System table, maintained by the server.
These tables do honor: These tables do honor:
- LOCK TABLE <t> FOR READ/WRITE - LOCK TABLE t FOR READ/WRITE
- FLUSH TABLES WITH READ LOCK - FLUSH TABLES WITH READ LOCK
- SET GLOBAL READ_ONLY = ON - SET GLOBAL READ_ONLY = ON
Typically, writes to system tables are performed by Typically, writes to system tables are performed by
...@@ -190,7 +190,7 @@ enum enum_table_category ...@@ -190,7 +190,7 @@ enum enum_table_category
These tables are an interface provided by the system These tables are an interface provided by the system
to inspect the system metadata. to inspect the system metadata.
These tables do *not* honor: These tables do *not* honor:
- LOCK TABLE <t> FOR READ/WRITE - LOCK TABLE t FOR READ/WRITE
- FLUSH TABLES WITH READ LOCK - FLUSH TABLES WITH READ LOCK
- SET GLOBAL READ_ONLY = ON - SET GLOBAL READ_ONLY = ON
as there is no point in locking explicitely as there is no point in locking explicitely
...@@ -212,7 +212,7 @@ enum enum_table_category ...@@ -212,7 +212,7 @@ enum enum_table_category
These tables are an interface provided by the system These tables are an interface provided by the system
to inspect the system performance data. to inspect the system performance data.
These tables do *not* honor: These tables do *not* honor:
- LOCK TABLE <t> FOR READ/WRITE - LOCK TABLE t FOR READ/WRITE
- FLUSH TABLES WITH READ LOCK - FLUSH TABLES WITH READ LOCK
- SET GLOBAL READ_ONLY = ON - SET GLOBAL READ_ONLY = ON
as there is no point in locking explicitely as there is no point in locking explicitely
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment