⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ha0ha.h

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 H
字号:
/******************************************************The hash table with external chains(c) 1994-1997 Innobase OyCreated 8/18/1994 Heikki Tuuri*******************************************************/#ifndef ha0ha_h#define ha0ha_h#include "univ.i"#include "hash0hash.h"#include "page0types.h"/*****************************************************************Looks for an element in a hash table. */UNIV_INLINEvoid*ha_search_and_get_data(/*===================*/				/* out: pointer to the data of the first hash				table node in chain having the fold number,				NULL if not found */	hash_table_t*	table,	/* in: hash table */	ulint		fold);	/* in: folded value of the searched data *//*************************************************************Looks for an element when we know the pointer to the data and updatesthe pointer to data if found. */voidha_search_and_update_if_found(/*==========================*/	hash_table_t*	table,	/* in: hash table */	ulint		fold,	/* in: folded value of the searched data */	void*		data,	/* in: pointer to the data */	void*		new_data);/* in: new pointer to the data *//*****************************************************************Creates a hash table with >= n array cells. The actual number of cells ischosen to be a prime number slightly bigger than n. */hash_table_t*ha_create(/*======*/				/* out, own: created table */	ibool	in_btr_search,	/* in: TRUE if the hash table is used in				the btr_search module */	ulint	n,		/* in: number of array cells */	ulint	n_mutexes,	/* in: number of mutexes to protect the				hash table: must be a power of 2 */	ulint	mutex_level);	/* in: level of the mutexes in the latching				order: this is used in the debug version *//*****************************************************************Inserts an entry into a hash table. If an entry with the same fold numberis found, its node is updated to point to the new data, and no new nodeis inserted. */iboolha_insert_for_fold(/*===============*/				/* out: TRUE if succeed, FALSE if no more				memory could be allocated */	hash_table_t*	table,	/* in: hash table */	ulint		fold,	/* in: 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! */	void*		data);	/* in: data, must not be NULL *//*****************************************************************Reserves the necessary hash table mutex and inserts an entry into the hashtable. */UNIV_INLINEiboolha_insert_for_fold_mutex(/*=====================*/				/* out: TRUE if succeed, FALSE if no more				memory could be allocated */	hash_table_t*	table,	/* in: hash table */	ulint		fold,	/* in: 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! */	void*		data);	/* in: data, must not be NULL *//*****************************************************************Deletes an entry from a hash table. */voidha_delete(/*======*/	hash_table_t*	table,	/* in: hash table */	ulint		fold,	/* in: folded value of data */	void*		data);	/* in: data, must not be NULL and must exist				in the hash table *//*************************************************************Looks for an element when we know the pointer to the data and deletesit from the hash table if found. */UNIV_INLINEiboolha_search_and_delete_if_found(/*==========================*/				/* out: TRUE if found */	hash_table_t*	table,	/* in: hash table */	ulint		fold,	/* in: folded value of the searched data */	void*		data);	/* in: pointer to the data *//*********************************************************************Removes from the chain determined by fold all nodes whose data pointerpoints to the page given. */voidha_remove_all_nodes_to_page(/*========================*/	hash_table_t*	table,	/* in: hash table */	ulint		fold,	/* in: fold value */	page_t*		page);	/* in: buffer page *//*****************************************************************Validates a given range of the cells in hash table. */iboolha_validate(/*========*/					/* out: TRUE if ok */	hash_table_t*	table,		/* in: hash table */	ulint		start_index,	/* in: start index */	ulint		end_index);	/* in: end index *//*****************************************************************Prints info of a hash table. */voidha_print_info(/*==========*/	FILE*		file,	/* in: file where to print */	hash_table_t*	table);	/* in: hash table *//* The hash table external chain node */typedef struct ha_node_struct ha_node_t;struct ha_node_struct {	ha_node_t* next; /* next chain node or NULL if none */	void*	data;	/* pointer to the data */	ulint	fold;	/* fold value for the data */};#ifndef UNIV_NONINL#include "ha0ha.ic"#endif#endif 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -