Public Member Functions |
| Query_cache (ulong query_cache_limit=ULONG_MAX, ulong min_allocation_unit=QUERY_CACHE_MIN_ALLOCATION_UNIT, ulong min_result_data_size=QUERY_CACHE_MIN_RESULT_DATA_SIZE, uint def_query_hash_size=QUERY_CACHE_DEF_QUERY_HASH_SIZE, uint def_table_hash_size=QUERY_CACHE_DEF_TABLE_HASH_SIZE) |
bool | is_disabled (void) |
void | init () |
ulong | resize (ulong query_cache_size) |
void | result_size_limit (ulong limit) |
ulong | set_min_res_unit (ulong size) |
void | store_query (THD *thd, TABLE_LIST *used_tables) |
int | send_result_to_client (THD *thd, char *query, uint query_length) |
void | invalidate (THD *thd, TABLE_LIST *tables_used, my_bool using_transactions) |
void | invalidate (CHANGED_TABLE_LIST *tables_used) |
void | invalidate_locked_for_write (TABLE_LIST *tables_used) |
void | invalidate (THD *thd, TABLE *table, my_bool using_transactions) |
void | invalidate (THD *thd, const char *key, uint32 key_length, my_bool using_transactions) |
void | invalidate (char *db) |
void | invalidate_by_MyISAM_filename (const char *filename) |
void | flush () |
void | pack (ulong join_limit=QUERY_CACHE_PACK_LIMIT, uint iteration_limit=QUERY_CACHE_PACK_ITERATION) |
void | destroy () |
void | insert (Query_cache_tls *query_cache_tls, const char *packet, ulong length, unsigned pkt_nr) |
void | end_of_result (THD *thd) |
void | abort (Query_cache_tls *query_cache_tls) |
void | wreck (uint line, const char *message) |
void | bins_dump () |
void | cache_dump () |
void | queries_dump () |
void | tables_dump () |
my_bool | check_integrity (bool not_locked) |
my_bool | in_list (Query_cache_block *root, Query_cache_block *point, const char *name) |
my_bool | in_table_list (Query_cache_block_table *root, Query_cache_block_table *point, const char *name) |
my_bool | in_blocks (Query_cache_block *point) |
bool | try_lock (bool use_timeout=FALSE) |
void | lock (void) |
void | lock_and_suspend (void) |
void | unlock (void) |
Public Attributes |
ulong | query_cache_size |
ulong | query_cache_limit |
ulong | free_memory |
ulong | queries_in_cache |
ulong | hits |
ulong | inserts |
ulong | refused |
ulong | free_memory_blocks |
ulong | total_blocks |
ulong | lowmem_prunes |
Protected Member Functions |
void | flush_cache () |
my_bool | free_old_query () |
void | free_query (Query_cache_block *point) |
my_bool | allocate_data_chain (Query_cache_block **result_block, ulong data_len, Query_cache_block *query_block, my_bool first_block) |
void | invalidate_table (THD *thd, TABLE_LIST *table) |
void | invalidate_table (THD *thd, TABLE *table) |
void | invalidate_table (THD *thd, uchar *key, uint32 key_length) |
void | invalidate_table (THD *thd, Query_cache_block *table_block) |
void | invalidate_query_block_list (THD *thd, Query_cache_block_table *list_root) |
TABLE_COUNTER_TYPE | register_tables_from_list (TABLE_LIST *tables_used, TABLE_COUNTER_TYPE counter, Query_cache_block_table *block_table) |
my_bool | register_all_tables (Query_cache_block *block, TABLE_LIST *tables_used, TABLE_COUNTER_TYPE tables) |
my_bool | insert_table (uint key_len, const char *key, Query_cache_block_table *node, uint32 db_length, uint8 cache_type, qc_engine_callback callback, ulonglong engine_data) |
void | unlink_table (Query_cache_block_table *node) |
Query_cache_block * | get_free_block (ulong len, my_bool not_less, ulong min) |
void | free_memory_block (Query_cache_block *point) |
void | split_block (Query_cache_block *block, ulong len) |
Query_cache_block * | join_free_blocks (Query_cache_block *first_block, Query_cache_block *block_in_list) |
my_bool | append_next_free_block (Query_cache_block *block, ulong add_size) |
void | exclude_from_free_memory_list (Query_cache_block *free_block) |
void | insert_into_free_memory_list (Query_cache_block *new_block) |
my_bool | move_by_type (uchar **border, Query_cache_block **before, ulong *gap, Query_cache_block *i) |
uint | find_bin (ulong size) |
void | move_to_query_list_end (Query_cache_block *block) |
void | insert_into_free_memory_sorted_list (Query_cache_block *new_block, Query_cache_block **list) |
void | pack_cache () |
void | relink (Query_cache_block *oblock, Query_cache_block *nblock, Query_cache_block *next, Query_cache_block *prev, Query_cache_block *pnext, Query_cache_block *pprev) |
my_bool | join_results (ulong join_limit) |
ulong | init_cache () |
void | make_disabled () |
void | free_cache () |
Query_cache_block * | write_block_data (ulong data_len, uchar *data, ulong header_len, Query_cache_block::block_type type, TABLE_COUNTER_TYPE ntab=0) |
my_bool | append_result_data (Query_cache_block **result, ulong data_len, uchar *data, Query_cache_block *parent) |
my_bool | write_result_data (Query_cache_block **result, ulong data_len, uchar *data, Query_cache_block *parent, Query_cache_block::block_type type=Query_cache_block::RESULT) |
ulong | get_min_first_result_data_size () |
ulong | get_min_append_result_data_size () |
Query_cache_block * | allocate_block (ulong len, my_bool not_less, ulong min) |
TABLE_COUNTER_TYPE | is_cacheable (THD *thd, size_t query_len, const char *query, LEX *lex, TABLE_LIST *tables_used, uint8 *tables_type) |
TABLE_COUNTER_TYPE | process_and_count_tables (THD *thd, TABLE_LIST *tables_used, uint8 *tables_type) |
Static Protected Member Functions |
static void | double_linked_list_exclude (Query_cache_block *point, Query_cache_block **list_pointer) |
static void | double_linked_list_simple_include (Query_cache_block *point, Query_cache_block **list_pointer) |
static void | double_linked_list_join (Query_cache_block *head_tail, Query_cache_block *tail_head) |
static uint | filename_2_table_key (char *key, const char *filename, uint32 *db_langth) |
static my_bool | ask_handler_allowance (THD *thd, TABLE_LIST *tables_used) |
Protected Attributes |
mysql_mutex_t | structure_guard_mutex |
uchar * | cache |
Query_cache_block * | first_block |
Query_cache_block * | queries_blocks |
Query_cache_block * | tables_blocks |
Query_cache_memory_bin * | bins |
Query_cache_memory_bin_step * | steps |
HASH | queries |
HASH | tables |
ulong | min_allocation_unit |
ulong | min_result_data_size |
uint | def_query_hash_size |
uint | def_table_hash_size |
uint | mem_bin_num |
uint | mem_bin_steps |
my_bool | initialized |