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

📄 trx0rseg.ic

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 IC
字号:
/******************************************************Rollback segment(c) 1996 Innobase OyCreated 3/26/1996 Heikki Tuuri*******************************************************/#include "srv0srv.h"/**********************************************************************Gets a rollback segment header. */UNIV_INLINEtrx_rsegf_t*trx_rsegf_get(/*==========*/				/* out: rollback segment header, page				x-latched */	ulint	space,		/* in: space where placed */	ulint	page_no,	/* in: page number of the header */	mtr_t*	mtr)		/* in: mtr */{	trx_rsegf_t*	header;	header = TRX_RSEG + buf_page_get(space, page_no, RW_X_LATCH, mtr);#ifdef UNIV_SYNC_DEBUG	buf_page_dbg_add_level(header, SYNC_RSEG_HEADER);#endif /* UNIV_SYNC_DEBUG */	return(header);}/**********************************************************************Gets a newly created rollback segment header. */UNIV_INLINEtrx_rsegf_t*trx_rsegf_get_new(/*==============*/				/* out: rollback segment header, page				x-latched */	ulint	space,		/* in: space where placed */	ulint	page_no,	/* in: page number of the header */	mtr_t*	mtr)		/* in: mtr */{	trx_rsegf_t*	header;	header = TRX_RSEG + buf_page_get(space, page_no, RW_X_LATCH, mtr);#ifdef UNIV_SYNC_DEBUG	buf_page_dbg_add_level(header, SYNC_RSEG_HEADER_NEW);#endif /* UNIV_SYNC_DEBUG */	return(header);}/*******************************************************************Gets the file page number of the nth undo log slot. */UNIV_INLINEulinttrx_rsegf_get_nth_undo(/*===================*/				/* out: page number of the undo log segment */	trx_rsegf_t*	rsegf,	/* in: rollback segment header */	ulint		n,	/* in: index of slot */	mtr_t*		mtr)	/* in: mtr */{	if (UNIV_UNLIKELY(n >= TRX_RSEG_N_SLOTS)) {		fprintf(stderr,		"InnoDB: Error: trying to get slot %lu of rseg\n", (unsigned long) n);		ut_error;	}	return(mtr_read_ulint(rsegf + TRX_RSEG_UNDO_SLOTS +				n * TRX_RSEG_SLOT_SIZE, MLOG_4BYTES, mtr));}/*******************************************************************Sets the file page number of the nth undo log slot. */UNIV_INLINEvoidtrx_rsegf_set_nth_undo(/*===================*/	trx_rsegf_t*	rsegf,	/* in: rollback segment header */	ulint		n,	/* in: index of slot */	ulint		page_no,/* in: page number of the undo log segment */	mtr_t*		mtr)	/* in: mtr */{	if (UNIV_UNLIKELY(n >= TRX_RSEG_N_SLOTS)) {		fprintf(stderr,		"InnoDB: Error: trying to set slot %lu of rseg\n", (unsigned long) n);		ut_error;	}	mlog_write_ulint(rsegf + TRX_RSEG_UNDO_SLOTS + n * TRX_RSEG_SLOT_SIZE,						page_no, MLOG_4BYTES, mtr);}/********************************************************************Looks for a free slot for an undo log segment. */UNIV_INLINEulinttrx_rsegf_undo_find_free(/*=====================*/				/* out: slot index or ULINT_UNDEFINED if not				found */	trx_rsegf_t*	rsegf,	/* in: rollback segment header */	mtr_t*		mtr)	/* in: mtr */{	ulint		i;	ulint		page_no;		for (i = 0; i < TRX_RSEG_N_SLOTS; i++) {		page_no = trx_rsegf_get_nth_undo(rsegf, i, mtr);		if (page_no == FIL_NULL) {			return(i);		}	}	return(ULINT_UNDEFINED);}

⌨️ 快捷键说明

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