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

📄 row0row.ic

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 IC
字号:
/******************************************************General row routines(c) 1996 Innobase OyCreated 4/20/1996 Heikki Tuuri*******************************************************/#include "dict0dict.h"#include "rem0rec.h"#include "trx0undo.h"/*************************************************************************Reads the trx id or roll ptr field from a clustered index record: this functionis slower than the specialized inline functions. */dulintrow_get_rec_sys_field(/*==================*/				/* out: value of the field */	ulint		type,	/* in: DATA_TRX_ID or DATA_ROLL_PTR */	rec_t*		rec,	/* in: record */	dict_index_t*	index,	/* in: clustered index */	const ulint*	offsets);/* in: rec_get_offsets(rec, index) *//*************************************************************************Sets the trx id or roll ptr field in a clustered index record: this functionis slower than the specialized inline functions. */voidrow_set_rec_sys_field(/*==================*/				/* out: value of the field */	ulint		type,	/* in: DATA_TRX_ID or DATA_ROLL_PTR */	rec_t*		rec,	/* in: record */	dict_index_t*	index,	/* in: clustered index */	const ulint*	offsets,/* in: rec_get_offsets(rec, index) */	dulint		val);	/* in: value to set *//*************************************************************************Reads the trx id field from a clustered index record. */UNIV_INLINEdulintrow_get_rec_trx_id(/*===============*/				/* out: value of the field */	rec_t*		rec,	/* in: record */	dict_index_t*	index,	/* in: clustered index */	const ulint*	offsets)/* in: rec_get_offsets(rec, index) */{	ulint	offset;	ut_ad(index->type & DICT_CLUSTERED);	ut_ad(rec_offs_validate(rec, index, offsets));	offset = index->trx_id_offset;		if (offset) {		return(trx_read_trx_id(rec + offset));	} else {		return(row_get_rec_sys_field(DATA_TRX_ID,				rec, index, offsets));	}}/*************************************************************************Reads the roll pointer field from a clustered index record. */UNIV_INLINEdulintrow_get_rec_roll_ptr(/*=================*/				/* out: value of the field */	rec_t*		rec,	/* in: record */	dict_index_t*	index,	/* in: clustered index */	const ulint*	offsets)/* in: rec_get_offsets(rec, index) */{	ulint	offset;	ut_ad(index->type & DICT_CLUSTERED);	ut_ad(rec_offs_validate(rec, index, offsets));	offset = index->trx_id_offset;		if (offset) {		return(trx_read_roll_ptr(rec + offset + DATA_TRX_ID_LEN));	} else {		return(row_get_rec_sys_field(DATA_ROLL_PTR,				rec, index, offsets));	}}/*************************************************************************Writes the trx id field to a clustered index record. */UNIV_INLINEvoidrow_set_rec_trx_id(/*===============*/	rec_t*		rec,	/* in: record */	dict_index_t*	index,	/* in: clustered index */	const ulint*	offsets,/* in: rec_get_offsets(rec, index) */	dulint		trx_id)	/* in: value of the field */{	ulint	offset;	ut_ad(index->type & DICT_CLUSTERED);	ut_ad(rec_offs_validate(rec, index, offsets));	offset = index->trx_id_offset;		if (offset) {		trx_write_trx_id(rec + offset, trx_id);	} else {		row_set_rec_sys_field(DATA_TRX_ID,				rec, index, offsets, trx_id);	}}/*************************************************************************Sets the roll pointer field in a clustered index record. */UNIV_INLINEvoidrow_set_rec_roll_ptr(/*=================*/	rec_t*		rec,	/* in: record */	dict_index_t*	index,	/* in: clustered index */	const ulint*	offsets,/* in: rec_get_offsets(rec, index) */	dulint		roll_ptr)/* in: value of the field */{	ulint	offset;	ut_ad(index->type & DICT_CLUSTERED);	ut_ad(rec_offs_validate(rec, index, offsets));	offset = index->trx_id_offset;		if (offset) {		trx_write_roll_ptr(rec + offset + DATA_TRX_ID_LEN, roll_ptr);	} else {	 	row_set_rec_sys_field(DATA_ROLL_PTR,				rec, index, offsets, roll_ptr);	}}/***********************************************************************Builds from a secondary index record a row reference with which we cansearch the clustered index record. */UNIV_INLINEvoidrow_build_row_ref_fast(/*===================*/	dtuple_t*	ref,	/* in: typed data tuple where the				reference is built */	const ulint*	map,	/* in: array of field numbers in rec				telling how ref should be built from				the fields of rec */	rec_t*		rec,	/* in: record in the index; must be				preserved while ref is used, as we do				not copy field values to heap */	const ulint*	offsets)/* in: array returned by rec_get_offsets() */{	dfield_t*	dfield;	byte*		field;	ulint		len;	ulint		ref_len;	ulint		field_no;	ulint		i;		ut_ad(rec_offs_validate(rec, NULL, offsets));	ref_len = dtuple_get_n_fields(ref);		for (i = 0; i < ref_len; i++) {		dfield = dtuple_get_nth_field(ref, i);		field_no = *(map + i);		if (field_no != ULINT_UNDEFINED) {			field = rec_get_nth_field(rec, offsets,						field_no, &len);			dfield_set_data(dfield, field, len);		}	}}

⌨️ 快捷键说明

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