MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ha0ha.cc File Reference
#include "ha0ha.h"
#include "btr0sea.h"
#include "page0page.h"
Include dependency graph for ha0ha.cc:

Go to the source code of this file.

Functions

UNIV_INTERN hash_table_tha_create_func (ulint n, ulint n_sync_obj, ulint type)
UNIV_INTERN void ha_clear (hash_table_t *table)
UNIV_INTERN ibool ha_insert_for_fold_func (hash_table_t *table, ulint fold, const rec_t *data)
UNIV_INTERN void ha_delete_hash_node (hash_table_t *table, ha_node_t *del_node)
UNIV_INTERN ibool ha_search_and_update_if_found_func (hash_table_t *table, ulint fold, const rec_t *data, const rec_t *new_data)
UNIV_INTERN void ha_remove_all_nodes_to_page (hash_table_t *table, ulint fold, const page_t *page)
UNIV_INTERN void ha_print_info (FILE *file, hash_table_t *table)

Detailed Description

The hash table with external chains

Created 8/22/1994 Heikki Tuuri

Definition in file ha0ha.cc.

Function Documentation

UNIV_INTERN void ha_clear ( hash_table_t table)

Empties a hash table and frees the memory heaps.

Parameters
tablein, own: hash table

Definition at line 105 of file ha0ha.cc.

Here is the call graph for this function:

UNIV_INTERN hash_table_t* ha_create_func ( ulint  n,
ulint  n_sync_obj,
ulint  type 
)

Creates a hash table with at least n array cells. The actual number of cells is chosen to be a prime number slightly bigger than n.

Returns
own: created table
Parameters
nin: number of array cells
n_sync_objin: number of mutexes or rw_locks to protect the hash table: must be a power of 2, or 0
typein: type of datastructure for which the memory heap is going to be used e.g.: MEM_HEAP_FOR_BTR_SEARCH or MEM_HEAP_FOR_PAGE_HASH

Definition at line 44 of file ha0ha.cc.

Here is the call graph for this function:

UNIV_INTERN void ha_delete_hash_node ( hash_table_t table,
ha_node_t del_node 
)

Deletes a hash node.

Parameters
tablein: hash table
del_nodein: node to be deleted

Definition at line 269 of file ha0ha.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

UNIV_INTERN ibool ha_insert_for_fold_func ( hash_table_t table,
ulint  fold,
const rec_t *  data 
)

Inserts an entry into a hash table. If an entry with the same fold number is found, its node is updated to point to the new data, and no new node is inserted. If btr_search_enabled is set to FALSE, we will only allow updating existing nodes, but no new node is allowed to be added.

Returns
TRUE if succeed, FALSE if no more memory could be allocated
Parameters
tablein: hash table
foldin: folded value of data; if a node with the same fold value already exists, it is updated to point to the same data, and no new node is created!
datain: data, must not be NULL

Definition at line 166 of file ha0ha.cc.

Here is the call graph for this function:

UNIV_INTERN void ha_print_info ( FILE *  file,
hash_table_t table 
)

Prints info of a hash table.

Parameters
filein: file where to print
tablein: hash table

Definition at line 444 of file ha0ha.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

UNIV_INTERN void ha_remove_all_nodes_to_page ( hash_table_t table,
ulint  fold,
const page_t page 
)

Removes from the chain determined by fold all nodes whose data pointer points to the page given.

Parameters
tablein: hash table
foldin: fold value
pagein: buffer page

Definition at line 348 of file ha0ha.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

UNIV_INTERN ibool ha_search_and_update_if_found_func ( hash_table_t table,
ulint  fold,
const rec_t *  data,
const rec_t *  new_data 
)

Looks for an element when we know the pointer to the data, and updates the pointer to data, if found.

Returns
TRUE if found
Parameters
tablein/out: hash table
foldin: folded value of the searched data
datain: pointer to the data
new_datain: new pointer to the data

Definition at line 297 of file ha0ha.cc.

Here is the call graph for this function: