亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? btr0btr.h

?? 這是linux下運行的mysql軟件包,可用于linux 下安裝 php + mysql + apach 的網絡配置
?? H
字號:
/******************************************************The B-tree(c) 1994-1996 Innobase OyCreated 6/2/1994 Heikki Tuuri*******************************************************/#ifndef btr0btr_h#define btr0btr_h#include "univ.i"#include "dict0dict.h"#include "data0data.h"#include "page0cur.h"#include "rem0rec.h"#include "mtr0mtr.h"#include "btr0types.h"/* Maximum record size which can be stored on a page, without using thespecial big record storage structure */#define	BTR_PAGE_MAX_REC_SIZE	(UNIV_PAGE_SIZE / 2 - 200)/* Latching modes for the search function (in btr0cur.*) */#define BTR_SEARCH_LEAF		RW_S_LATCH#define BTR_MODIFY_LEAF		RW_X_LATCH#define BTR_NO_LATCHES		RW_NO_LATCH#define	BTR_MODIFY_TREE		33#define	BTR_CONT_MODIFY_TREE	34#define	BTR_SEARCH_PREV		35#define	BTR_MODIFY_PREV		36/* If this is ORed to the latch mode, it means that the search tuple will beinserted to the index, at the searched position */#define BTR_INSERT		512/* This flag ORed to latch mode says that we do the search in queryoptimization */#define BTR_ESTIMATE		1024/* This flag ORed to latch mode says that we can ignore possibleUNIQUE definition on secondary indexes when we decide if we can use theinsert buffer to speed up inserts */#define BTR_IGNORE_SEC_UNIQUE	2048	/******************************************************************Gets the root node of a tree and x-latches it. */page_t*btr_root_get(/*=========*/				/* out: root page, x-latched */	dict_tree_t*	tree,	/* in: index tree */	mtr_t*		mtr);	/* in: mtr *//******************************************************************Gets a buffer page and declares its latching order level. */UNIV_INLINEpage_t*btr_page_get(/*=========*/	ulint	space,		/* in: space id */	ulint	page_no,	/* in: page number */	ulint	mode,		/* in: latch mode */	mtr_t*	mtr);		/* in: mtr *//******************************************************************Gets the index id field of a page. */UNIV_INLINEdulintbtr_page_get_index_id(/*==================*/				/* out: index id */	page_t*		page);	/* in: index page *//************************************************************Gets the node level field in an index page. */UNIV_INLINEulintbtr_page_get_level_low(/*===================*/			/* out: level, leaf level == 0 */	page_t*	page);	/* in: index page *//************************************************************Gets the node level field in an index page. */UNIV_INLINEulintbtr_page_get_level(/*===============*/			/* out: level, leaf level == 0 */	page_t*	page,	/* in: index page */	mtr_t*	mtr);	/* in: mini-transaction handle *//************************************************************Gets the next index page number. */UNIV_INLINEulintbtr_page_get_next(/*==============*/			/* out: next page number */	page_t*	page,	/* in: index page */	mtr_t*	mtr);	/* in: mini-transaction handle *//************************************************************Gets the previous index page number. */UNIV_INLINEulintbtr_page_get_prev(/*==============*/			/* out: prev page number */	page_t*	page,	/* in: index page */	mtr_t*	mtr);	/* in: mini-transaction handle *//*****************************************************************Gets pointer to the previous user record in the tree. It is assumedthat the caller has appropriate latches on the page and its neighbor. */rec_t*btr_get_prev_user_rec(/*==================*/			/* out: previous user record, NULL if there is none */	rec_t*	rec,	/* in: record on leaf level */	mtr_t*	mtr);	/* in: mtr holding a latch on the page, and if			needed, also to the previous page *//*****************************************************************Gets pointer to the next user record in the tree. It is assumedthat the caller has appropriate latches on the page and its neighbor. */rec_t*btr_get_next_user_rec(/*==================*/			/* out: next user record, NULL if there is none */	rec_t*	rec,	/* in: record on leaf level */	mtr_t*	mtr);	/* in: mtr holding a latch on the page, and if			needed, also to the next page *//******************************************************************Releases the latch on a leaf page and bufferunfixes it. */UNIV_INLINEvoidbtr_leaf_page_release(/*==================*/	page_t*	page,		/* in: page */	ulint	latch_mode,	/* in: BTR_SEARCH_LEAF or BTR_MODIFY_LEAF */	mtr_t*	mtr);		/* in: mtr *//******************************************************************Gets the child node file address in a node pointer. */UNIV_INLINEulintbtr_node_ptr_get_child_page_no(/*===========================*/			   	/* out: child node address */	rec_t*		rec,	/* in: node pointer record */	const ulint*	offsets);/* in: array returned by rec_get_offsets() *//****************************************************************Creates the root node for a new index tree. */ulintbtr_create(/*=======*/			/* out: page number of the created root, FIL_NULL if			did not succeed */	ulint	type,	/* in: type of the index */	ulint	space,	/* in: space where created */	dulint	index_id,/* in: index id */	ulint	comp,	/* in: nonzero=compact page format */	mtr_t*	mtr);	/* in: mini-transaction handle *//****************************************************************Frees a B-tree except the root page, which MUST be freed after thisby calling btr_free_root. */voidbtr_free_but_not_root(/*==================*/	ulint	space,		/* in: space where created */	ulint	root_page_no);	/* in: root page number *//****************************************************************Frees the B-tree root page. Other tree MUST already have been freed. */voidbtr_free_root(/*==========*/	ulint	space,		/* in: space where created */	ulint	root_page_no,	/* in: root page number */	mtr_t*	mtr);		/* in: a mini-transaction which has already				been started *//*****************************************************************Makes tree one level higher by splitting the root, and insertsthe tuple. It is assumed that mtr contains an x-latch on the tree.NOTE that the operation of this function must always succeed,we cannot reverse it: therefore enough free disk space must beguaranteed to be available before this function is called. */rec_t*btr_root_raise_and_insert(/*======================*/				/* out: inserted record */	btr_cur_t*	cursor,	/* in: cursor at which to insert: must be				on the root page; when the function returns,				the cursor is positioned on the predecessor				of the inserted record */	dtuple_t*	tuple,	/* in: tuple to insert */	mtr_t*		mtr);	/* in: mtr *//*****************************************************************Reorganizes an index page. */voidbtr_page_reorganize(/*================*/	page_t*		page,	/* in: page to be reorganized */	dict_index_t*	index,	/* in: record descriptor */	mtr_t*		mtr);	/* in: mtr *//*****************************************************************Decides if the page should be split at the convergence point ofinserts converging to left. */iboolbtr_page_get_split_rec_to_left(/*===========================*/				/* out: TRUE if split recommended */	btr_cur_t*	cursor,	/* in: cursor at which to insert */	rec_t**		split_rec);/* out: if split recommended,				the first record on upper half page,				or NULL if tuple should be first *//*****************************************************************Decides if the page should be split at the convergence point ofinserts converging to right. */iboolbtr_page_get_split_rec_to_right(/*============================*/				/* out: TRUE if split recommended */	btr_cur_t*	cursor,	/* in: cursor at which to insert */	rec_t**		split_rec);/* out: if split recommended,				the first record on upper half page,				or NULL if tuple should be first *//*****************************************************************Splits an index page to halves and inserts the tuple. It is assumedthat mtr holds an x-latch to the index tree. NOTE: the tree x-latchis released within this function! NOTE that the operation of thisfunction must always succeed, we cannot reverse it: thereforeenough free disk space must be guaranteed to be available beforethis function is called. */rec_t*btr_page_split_and_insert(/*======================*/				/* out: inserted record; NOTE: the tree				x-latch is released! NOTE: 2 free disk				pages must be available! */	btr_cur_t*	cursor,	/* in: cursor at which to insert; when the				function returns, the cursor is positioned				on the predecessor of the inserted record */	dtuple_t*	tuple,	/* in: tuple to insert */	mtr_t*		mtr);	/* in: mtr *//***********************************************************Inserts a data tuple to a tree on a non-leaf level. It is assumedthat mtr holds an x-latch on the tree. */voidbtr_insert_on_non_leaf_level(/*=========================*/	dict_tree_t*	tree,	/* in: tree */	ulint		level,	/* in: level, must be > 0 */	dtuple_t*	tuple,	/* in: the record to be inserted */	mtr_t*		mtr);	/* in: mtr *//********************************************************************Sets a record as the predefined minimum record. */voidbtr_set_min_rec_mark(/*=================*/	rec_t*	rec,	/* in: record */	ulint	comp,	/* in: nonzero=compact page format */	mtr_t*	mtr);	/* in: mtr *//*****************************************************************Deletes on the upper level the node pointer to a page. */voidbtr_node_ptr_delete(/*================*/	dict_tree_t*	tree,	/* in: index tree */	page_t*		page,	/* in: page whose node pointer is deleted */	mtr_t*		mtr);	/* in: mtr *//****************************************************************Checks that the node pointer to a page is appropriate. */iboolbtr_check_node_ptr(/*===============*/				/* out: TRUE */	dict_tree_t*	tree,	/* in: index tree */	page_t*		page,	/* in: index page */	mtr_t*		mtr);	/* in: mtr *//*****************************************************************Tries to merge the page first to the left immediate brother if such abrother exists, and the node pointers to the current page and to thebrother reside on the same page. If the left brother does not satisfy theseconditions, looks at the right brother. If the page is the only one on thatlevel lifts the records of the page to the father page, thus reducing thetree height. It is assumed that mtr holds an x-latch on the tree and on thepage. If cursor is on the leaf level, mtr must also hold x-latches tothe brothers, if they exist. NOTE: it is assumed that the caller has reservedenough free extents so that the compression will always succeed if done! */voidbtr_compress(/*=========*/	btr_cur_t*	cursor,	/* in: cursor on the page to merge or lift;				the page must not be empty: in record delete				use btr_discard_page if the page would become				empty */	mtr_t*		mtr);	/* in: mtr *//*****************************************************************Discards a page from a B-tree. This is used to remove the last record froma B-tree page: the whole page must be removed at the same time. This cannotbe used for the root page, which is allowed to be empty. */voidbtr_discard_page(/*=============*/	btr_cur_t*	cursor,	/* in: cursor on the page to discard: not on				the root page */	mtr_t*		mtr);	/* in: mtr *//********************************************************************Parses the redo log record for setting an index record as the predefinedminimum record. */byte*btr_parse_set_min_rec_mark(/*=======================*/			/* out: end of log record or NULL */	byte*	ptr,	/* in: buffer */	byte*	end_ptr,/* in: buffer end */	ulint	comp,	/* in: nonzero=compact page format */	page_t*	page,	/* in: page or NULL */	mtr_t*	mtr);	/* in: mtr or NULL *//***************************************************************Parses a redo log record of reorganizing a page. */byte*btr_parse_page_reorganize(/*======================*/				/* out: end of log record or NULL */	byte*		ptr,	/* in: buffer */	byte*		end_ptr,/* in: buffer end */	dict_index_t*	index,	/* in: record descriptor */	page_t*		page,	/* in: page or NULL */	mtr_t*		mtr);	/* in: mtr or NULL *//******************************************************************Gets the number of pages in a B-tree. */ulintbtr_get_size(/*=========*/				/* out: number of pages */	dict_index_t*	index,	/* in: index */	ulint		flag);	/* in: BTR_N_LEAF_PAGES or BTR_TOTAL_SIZE *//******************************************************************Allocates a new file page to be used in an index tree. NOTE: we assumethat the caller has made the reservation for free extents! */page_t*btr_page_alloc(/*===========*/					/* out: new allocated page, x-latched;					NULL if out of space */	dict_tree_t*	tree,		/* in: index tree */	ulint		hint_page_no,	/* in: hint of a good page */	byte		file_direction,	/* in: direction where a possible					page split is made */	ulint		level,		/* in: level where the page is placed					in the tree */	mtr_t*		mtr);		/* in: mtr *//******************************************************************Frees a file page used in an index tree. NOTE: cannot free field externalstorage pages because the page must contain info on its level. */voidbtr_page_free(/*==========*/	dict_tree_t*	tree,	/* in: index tree */	page_t*		page,	/* in: page to be freed, x-latched */		mtr_t*		mtr);	/* in: mtr *//******************************************************************Frees a file page used in an index tree. Can be used also to BLOBexternal storage pages, because the page level 0 can be given as anargument. */voidbtr_page_free_low(/*==============*/	dict_tree_t*	tree,	/* in: index tree */	page_t*		page,	/* in: page to be freed, x-latched */		ulint		level,	/* in: page level */	mtr_t*		mtr);	/* in: mtr */#ifdef UNIV_BTR_PRINT/*****************************************************************Prints size info of a B-tree. */voidbtr_print_size(/*===========*/	dict_tree_t*	tree);	/* in: index tree *//******************************************************************Prints directories and other info of all nodes in the tree. */voidbtr_print_tree(/*===========*/	dict_tree_t*	tree,	/* in: tree */	ulint		width);	/* in: print this many entries from start				and end */#endif /* UNIV_BTR_PRINT *//****************************************************************Checks the size and number of fields in a record based on the definition ofthe index. */iboolbtr_index_rec_validate(/*====================*/					/* out: TRUE if ok */	rec_t*		rec,		/* in: index record */	dict_index_t*	index,		/* in: index */	ibool		dump_on_error);	/* in: TRUE if the function					should print hex dump of record					and page on error *//******************************************************************Checks the consistency of an index tree. */iboolbtr_validate_tree(/*==============*/				/* out: TRUE if ok */	dict_tree_t*	tree,	/* in: tree */	trx_t*		trx);	/* in: transaction or NULL */#define BTR_N_LEAF_PAGES 	1#define BTR_TOTAL_SIZE		2#ifndef UNIV_NONINL#include "btr0btr.ic"#endif#endif 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品一卡二卡| 91丝袜呻吟高潮美腿白嫩在线观看| 日韩激情视频网站| 国产成人夜色高潮福利影视| 欧美三电影在线| 国产精品久久久久天堂| 美女精品一区二区| 欧美日韩亚洲综合一区| 中文字幕日韩av资源站| 国产精品自拍av| 8x福利精品第一导航| 亚洲欧美日韩国产手机在线 | 精品人伦一区二区色婷婷| 综合在线观看色| 国产不卡高清在线观看视频| 精品日韩欧美一区二区| 美国欧美日韩国产在线播放| 欧美三级韩国三级日本三斤 | 欧美极品aⅴ影院| 免费在线观看精品| 欧美日韩激情一区二区三区| 亚洲欧洲在线观看av| 国产aⅴ综合色| 2023国产精品| 国内精品伊人久久久久av一坑| 91麻豆精品91久久久久久清纯| 亚洲免费色视频| 色综合一个色综合| 亚洲特级片在线| 91免费观看视频| 中文字幕字幕中文在线中不卡视频| 国产伦理精品不卡| 久久欧美中文字幕| 国产一区二区0| 久久婷婷一区二区三区| 国产成人午夜片在线观看高清观看 | 在线成人小视频| 丝袜国产日韩另类美女| 51精品秘密在线观看| 日韩电影在线观看电影| 91.com视频| 九九**精品视频免费播放| 精品国产一二三| 风间由美一区二区av101| 国产精品免费看片| 日本精品一级二级| 婷婷久久综合九色综合伊人色| 欧美日韩1234| 伦理电影国产精品| 日本一区二区三区高清不卡| 成人精品视频一区二区三区尤物| 中文字幕欧美一区| 欧美乱妇15p| 国产原创一区二区三区| 国产精品国产成人国产三级| 91蝌蚪国产九色| 日产精品久久久久久久性色| 26uuu久久综合| 色网站国产精品| 麻豆精品久久精品色综合| 国产日韩亚洲欧美综合| 在线视频欧美精品| 麻豆成人免费电影| 中文字幕亚洲视频| 91精品国产入口| 粉嫩13p一区二区三区| 亚洲精品高清在线观看| 欧美一区二区黄色| 成人手机电影网| 日韩国产欧美在线播放| 中文字幕乱码日本亚洲一区二区| 欧美怡红院视频| 国内欧美视频一区二区| 亚洲国产乱码最新视频| 久久香蕉国产线看观看99| 91国产丝袜在线播放| 精品中文av资源站在线观看| 国产精品久久久久久久久动漫| 91精品欧美久久久久久动漫| 成人免费视频播放| 美女免费视频一区| 亚欧色一区w666天堂| 国产精品久久久久久久久免费相片| 日韩亚洲欧美综合| 欧美怡红院视频| 一本大道综合伊人精品热热 | 蜜臀av一区二区三区| 中文字幕在线视频一区| 日韩欧美成人激情| 欧美在线观看视频在线| 成人爱爱电影网址| 国内精品国产成人| 青娱乐精品视频| 亚洲午夜久久久久久久久电影院| 国产欧美日韩精品a在线观看| 欧美日韩高清一区二区| 一本一道久久a久久精品| 成人动漫一区二区三区| 国产乱码精品一区二区三区av | 日韩精品三区四区| 亚洲综合色区另类av| 日韩一区在线看| 国产精品久久毛片av大全日韩| 久久综合99re88久久爱| 日韩欧美国产午夜精品| 337p亚洲精品色噜噜| 在线观看成人免费视频| 欧美在线看片a免费观看| 91视频观看视频| 91亚洲精品乱码久久久久久蜜桃 | 中文字幕乱码一区二区免费| 久久久久久久久岛国免费| 精品国精品国产| 精品欧美一区二区久久 | 亚洲一区二区四区蜜桃| 亚洲欧美怡红院| 亚洲免费色视频| 一区二区三区国产豹纹内裤在线 | 中文字幕一区在线观看视频| 国产欧美日韩精品在线| 欧美激情资源网| 中文字幕中文字幕在线一区| 亚洲欧洲日产国码二区| 亚洲欧美日韩系列| 亚洲成人黄色影院| 男人的天堂亚洲一区| 久久国内精品自在自线400部| 极品美女销魂一区二区三区| 国产一区二区三区蝌蚪| 国产高清精品在线| 91在线丨porny丨国产| 欧美亚洲一区二区在线观看| 欧美日韩国产成人在线91| 欧美一级精品在线| 欧美精品一区二区三区四区 | 欧美老肥妇做.爰bbww视频| 91精品国产色综合久久久蜜香臀| 欧美大片在线观看一区二区| 久久精品视频在线看| 亚洲日本电影在线| 天堂一区二区在线免费观看| 精品一区二区影视| fc2成人免费人成在线观看播放| 99re热视频这里只精品 | 色天天综合久久久久综合片| 欧美伊人久久大香线蕉综合69| 欧美一区二区黄| 中文字幕一区二区视频| 亚洲第一主播视频| 国产成人午夜精品影院观看视频| 色婷婷香蕉在线一区二区| 日韩一区二区三区av| 国产精品国产三级国产三级人妇| 男女男精品网站| 成人午夜在线视频| 欧美日韩mp4| 国产精品久久久久影视| 日本中文字幕不卡| 成人av第一页| 欧美岛国在线观看| 亚洲制服丝袜一区| www..com久久爱| 欧美电影免费观看高清完整版在线| 亚洲色图20p| 韩国欧美一区二区| 欧美高清www午色夜在线视频| 亚洲国产精品高清| 免费精品视频最新在线| 色婷婷综合久久久久中文| 久久亚洲精品国产精品紫薇| 日韩精品乱码av一区二区| 波多野结衣91| 久久综合999| 日韩av成人高清| 欧美日韩午夜在线视频| 国产精品久久久久影视| 国产一区二区在线免费观看| 欧美高清视频不卡网| 亚洲黄色免费电影| av亚洲产国偷v产偷v自拍| 久久香蕉国产线看观看99| 免费成人在线观看| 欧美日韩国产电影| 亚洲第一福利一区| 欧美丝袜丝nylons| 亚洲午夜精品一区二区三区他趣| 99riav久久精品riav| 国产精品嫩草影院com| 国产91精品精华液一区二区三区 | 日本丶国产丶欧美色综合| 久久久久久97三级| 国产一区视频在线看| 欧美一二三四区在线| 日韩成人精品在线| 欧美精品高清视频| 日本aⅴ亚洲精品中文乱码| 欧美精品一卡两卡| 日韩国产欧美三级| 日韩手机在线导航| 另类中文字幕网|