mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
5.5 merge
This commit is contained in:
@ -60,7 +60,8 @@ enum find_item_error_report_type {REPORT_ALL_ERRORS, REPORT_EXCEPT_NOT_FOUND,
|
||||
IGNORE_EXCEPT_NON_UNIQUE};
|
||||
|
||||
enum enum_tdc_remove_table_type {TDC_RT_REMOVE_ALL, TDC_RT_REMOVE_NOT_OWN,
|
||||
TDC_RT_REMOVE_UNUSED};
|
||||
TDC_RT_REMOVE_UNUSED,
|
||||
TDC_RT_REMOVE_NOT_OWN_AND_MARK_NOT_USABLE};
|
||||
|
||||
/* bits for last argument to remove_table_from_cache() */
|
||||
#define RTFC_NO_FLAG 0x0000
|
||||
@ -81,6 +82,31 @@ uint cached_table_definitions(void);
|
||||
uint create_table_def_key(THD *thd, char *key,
|
||||
const TABLE_LIST *table_list,
|
||||
bool tmp_table);
|
||||
|
||||
/**
|
||||
Create a table cache key for non-temporary table.
|
||||
|
||||
@param key Buffer for key (must be at least NAME_LEN*2+2 bytes).
|
||||
@param db Database name.
|
||||
@param table_name Table name.
|
||||
|
||||
@return Length of key.
|
||||
|
||||
@sa create_table_def_key(thd, char *, table_list, bool)
|
||||
*/
|
||||
|
||||
inline uint
|
||||
create_table_def_key(char *key, const char *db, const char *table_name)
|
||||
{
|
||||
/*
|
||||
In theory caller should ensure that both db and table_name are
|
||||
not longer than NAME_LEN bytes. In practice we play safe to avoid
|
||||
buffer overruns.
|
||||
*/
|
||||
return (uint)(strmake(strmake(key, db, NAME_LEN) + 1, table_name,
|
||||
NAME_LEN) - key + 1);
|
||||
}
|
||||
|
||||
TABLE_SHARE *get_table_share(THD *thd, TABLE_LIST *table_list, char *key,
|
||||
uint key_length, uint db_flags, int *error,
|
||||
my_hash_value_type hash_value);
|
||||
@ -128,6 +154,7 @@ TABLE *open_ltable(THD *thd, TABLE_LIST *table_list, thr_lock_type update,
|
||||
*/
|
||||
#define MYSQL_OPEN_SKIP_SCOPED_MDL_LOCK 0x1000
|
||||
#define MYSQL_LOCK_NOT_TEMPORARY 0x2000
|
||||
#define MYSQL_OPEN_FOR_REPAIR 0x4000
|
||||
|
||||
/** Please refer to the internals manual. */
|
||||
#define MYSQL_OPEN_REOPEN (MYSQL_OPEN_IGNORE_FLUSH |\
|
||||
@ -158,7 +185,7 @@ thr_lock_type read_lock_type_for_table(THD *thd,
|
||||
TABLE_LIST *table_list);
|
||||
|
||||
my_bool mysql_rm_tmp_tables(void);
|
||||
bool rm_temporary_table(handlerton *base, char *path);
|
||||
bool rm_temporary_table(handlerton *base, const char *path);
|
||||
void close_tables_for_reopen(THD *thd, TABLE_LIST **tables,
|
||||
const MDL_savepoint &start_of_statement_svp);
|
||||
TABLE_LIST *find_table_in_list(TABLE_LIST *table,
|
||||
@ -229,7 +256,9 @@ bool setup_tables_and_check_access(THD *thd,
|
||||
ulong want_access,
|
||||
bool full_table_list);
|
||||
bool wait_while_table_is_used(THD *thd, TABLE *table,
|
||||
enum ha_extra_function function);
|
||||
enum ha_extra_function function,
|
||||
enum_tdc_remove_table_type remove_type=
|
||||
TDC_RT_REMOVE_NOT_OWN);
|
||||
|
||||
void drop_open_table(THD *thd, TABLE *table, const char *db_name,
|
||||
const char *table_name);
|
||||
|
Reference in New Issue
Block a user