My Project
Public Member Functions | Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes
Query_cache Class Reference

List of all members.

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_blockget_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_blockjoin_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_blockwrite_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_blockallocate_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
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

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines