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

📄 rec_hash

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻
字号:
#include "db_config.h"#ifndef NO_SYSTEM_INCLUDES#include <sys/types.h>#include <string.h>#endif#include "db_int.h"#include "dbinc/db_page.h"#include "dbinc/__ham.h"#include "dbinc/log.h"/* * __ham_insdel_recover -- *	Recovery function for insdel. * * PUBLIC: int __ham_insdel_recover * PUBLIC:   __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); */int__ham_insdel_recover(dbenv, dbtp, lsnp, op, info)	DB_ENV *dbenv;	DBT *dbtp;	DB_LSN *lsnp;	db_recops op;	void *info;{	__ham_insdel_args *argp;	DB *file_dbp;	DBC *dbc;	DB_MPOOLFILE *mpf;	PAGE *pagep;	int cmp_n, cmp_p, modified, ret;	REC_PRINT(__ham_insdel_print);	REC_INTRO(__ham_insdel_read, 1);	if ((ret = mpf->get(mpf, &argp->pgno, 0, &pagep)) != 0)		if (DB_REDO(op)) {			if ((ret = mpf->get(mpf,			    &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0)				goto out;		} else {			*lsnp = argp->prev_lsn;			ret = 0;			goto out;		}	modified = 0;	cmp_n = log_compare(lsnp, &LSN(pagep));	/*	 * Use this when there is something like "pagelsn" in the argp	 * structure.  Sometimes, you might need to compare meta-data	 * lsn's instead.	 *	 * cmp_p = log_compare(&LSN(pagep), argp->pagelsn);	 */	if (cmp_p == 0 && DB_REDO(op)) {		/* Need to redo update described. */		modified = 1;	} else if (cmp_n == 0 && !DB_REDO(op)) {		/* Need to undo update described. */		modified = 1;	}	if (ret = mpf->put(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0))		goto out;	*lsnp = argp->prev_lsn;	ret = 0;out:	REC_CLOSE;}/* * __ham_newpage_recover -- *	Recovery function for newpage. * * PUBLIC: int __ham_newpage_recover * PUBLIC:   __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); */int__ham_newpage_recover(dbenv, dbtp, lsnp, op, info)	DB_ENV *dbenv;	DBT *dbtp;	DB_LSN *lsnp;	db_recops op;	void *info;{	__ham_newpage_args *argp;	DB *file_dbp;	DBC *dbc;	DB_MPOOLFILE *mpf;	PAGE *pagep;	int cmp_n, cmp_p, modified, ret;	REC_PRINT(__ham_newpage_print);	REC_INTRO(__ham_newpage_read, 1);	if ((ret = mpf->get(mpf, &argp->pgno, 0, &pagep)) != 0)		if (DB_REDO(op)) {			if ((ret = mpf->get(mpf,			    &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0)				goto out;		} else {			*lsnp = argp->prev_lsn;			ret = 0;			goto out;		}	modified = 0;	cmp_n = log_compare(lsnp, &LSN(pagep));	/*	 * Use this when there is something like "pagelsn" in the argp	 * structure.  Sometimes, you might need to compare meta-data	 * lsn's instead.	 *	 * cmp_p = log_compare(&LSN(pagep), argp->pagelsn);	 */	if (cmp_p == 0 && DB_REDO(op)) {		/* Need to redo update described. */		modified = 1;	} else if (cmp_n == 0 && !DB_REDO(op)) {		/* Need to undo update described. */		modified = 1;	}	if (ret = mpf->put(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0))		goto out;	*lsnp = argp->prev_lsn;	ret = 0;out:	REC_CLOSE;}/* * __ham_splitdata_recover -- *	Recovery function for splitdata. * * PUBLIC: int __ham_splitdata_recover * PUBLIC:   __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); */int__ham_splitdata_recover(dbenv, dbtp, lsnp, op, info)	DB_ENV *dbenv;	DBT *dbtp;	DB_LSN *lsnp;	db_recops op;	void *info;{	__ham_splitdata_args *argp;	DB *file_dbp;	DBC *dbc;	DB_MPOOLFILE *mpf;	PAGE *pagep;	int cmp_n, cmp_p, modified, ret;	REC_PRINT(__ham_splitdata_print);	REC_INTRO(__ham_splitdata_read, 1);	if ((ret = mpf->get(mpf, &argp->pgno, 0, &pagep)) != 0)		if (DB_REDO(op)) {			if ((ret = mpf->get(mpf,			    &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0)				goto out;		} else {			*lsnp = argp->prev_lsn;			ret = 0;			goto out;		}	modified = 0;	cmp_n = log_compare(lsnp, &LSN(pagep));	/*	 * Use this when there is something like "pagelsn" in the argp	 * structure.  Sometimes, you might need to compare meta-data	 * lsn's instead.	 *	 * cmp_p = log_compare(&LSN(pagep), argp->pagelsn);	 */	if (cmp_p == 0 && DB_REDO(op)) {		/* Need to redo update described. */		modified = 1;	} else if (cmp_n == 0 && !DB_REDO(op)) {		/* Need to undo update described. */		modified = 1;	}	if (ret = mpf->put(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0))		goto out;	*lsnp = argp->prev_lsn;	ret = 0;out:	REC_CLOSE;}/* * __ham_replace_recover -- *	Recovery function for replace. * * PUBLIC: int __ham_replace_recover * PUBLIC:   __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); */int__ham_replace_recover(dbenv, dbtp, lsnp, op, info)	DB_ENV *dbenv;	DBT *dbtp;	DB_LSN *lsnp;	db_recops op;	void *info;{	__ham_replace_args *argp;	DB *file_dbp;	DBC *dbc;	DB_MPOOLFILE *mpf;	PAGE *pagep;	int cmp_n, cmp_p, modified, ret;	REC_PRINT(__ham_replace_print);	REC_INTRO(__ham_replace_read, 1);	if ((ret = mpf->get(mpf, &argp->pgno, 0, &pagep)) != 0)		if (DB_REDO(op)) {			if ((ret = mpf->get(mpf,			    &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0)				goto out;		} else {			*lsnp = argp->prev_lsn;			ret = 0;			goto out;		}	modified = 0;	cmp_n = log_compare(lsnp, &LSN(pagep));	/*	 * Use this when there is something like "pagelsn" in the argp	 * structure.  Sometimes, you might need to compare meta-data	 * lsn's instead.	 *	 * cmp_p = log_compare(&LSN(pagep), argp->pagelsn);	 */	if (cmp_p == 0 && DB_REDO(op)) {		/* Need to redo update described. */		modified = 1;	} else if (cmp_n == 0 && !DB_REDO(op)) {		/* Need to undo update described. */		modified = 1;	}	if (ret = mpf->put(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0))		goto out;	*lsnp = argp->prev_lsn;	ret = 0;out:	REC_CLOSE;}/* * __ham_copypage_recover -- *	Recovery function for copypage. * * PUBLIC: int __ham_copypage_recover * PUBLIC:   __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); */int__ham_copypage_recover(dbenv, dbtp, lsnp, op, info)	DB_ENV *dbenv;	DBT *dbtp;	DB_LSN *lsnp;	db_recops op;	void *info;{	__ham_copypage_args *argp;	DB *file_dbp;	DBC *dbc;	DB_MPOOLFILE *mpf;	PAGE *pagep;	int cmp_n, cmp_p, modified, ret;	REC_PRINT(__ham_copypage_print);	REC_INTRO(__ham_copypage_read, 1);	if ((ret = mpf->get(mpf, &argp->pgno, 0, &pagep)) != 0)		if (DB_REDO(op)) {			if ((ret = mpf->get(mpf,			    &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0)				goto out;		} else {			*lsnp = argp->prev_lsn;			ret = 0;			goto out;		}	modified = 0;	cmp_n = log_compare(lsnp, &LSN(pagep));	/*	 * Use this when there is something like "pagelsn" in the argp	 * structure.  Sometimes, you might need to compare meta-data	 * lsn's instead.	 *	 * cmp_p = log_compare(&LSN(pagep), argp->pagelsn);	 */	if (cmp_p == 0 && DB_REDO(op)) {		/* Need to redo update described. */		modified = 1;	} else if (cmp_n == 0 && !DB_REDO(op)) {		/* Need to undo update described. */		modified = 1;	}	if (ret = mpf->put(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0))		goto out;	*lsnp = argp->prev_lsn;	ret = 0;out:	REC_CLOSE;}/* * __ham_metagroup_recover -- *	Recovery function for metagroup. * * PUBLIC: int __ham_metagroup_recover * PUBLIC:   __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); */int__ham_metagroup_recover(dbenv, dbtp, lsnp, op, info)	DB_ENV *dbenv;	DBT *dbtp;	DB_LSN *lsnp;	db_recops op;	void *info;{	__ham_metagroup_args *argp;	DB *file_dbp;	DBC *dbc;	DB_MPOOLFILE *mpf;	PAGE *pagep;	int cmp_n, cmp_p, modified, ret;	REC_PRINT(__ham_metagroup_print);	REC_INTRO(__ham_metagroup_read, 1);	if ((ret = mpf->get(mpf, &argp->pgno, 0, &pagep)) != 0)		if (DB_REDO(op)) {			if ((ret = mpf->get(mpf,			    &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0)				goto out;		} else {			*lsnp = argp->prev_lsn;			ret = 0;			goto out;		}	modified = 0;	cmp_n = log_compare(lsnp, &LSN(pagep));	/*	 * Use this when there is something like "pagelsn" in the argp	 * structure.  Sometimes, you might need to compare meta-data	 * lsn's instead.	 *	 * cmp_p = log_compare(&LSN(pagep), argp->pagelsn);	 */	if (cmp_p == 0 && DB_REDO(op)) {		/* Need to redo update described. */		modified = 1;	} else if (cmp_n == 0 && !DB_REDO(op)) {		/* Need to undo update described. */		modified = 1;	}	if (ret = mpf->put(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0))		goto out;	*lsnp = argp->prev_lsn;	ret = 0;out:	REC_CLOSE;}/* * __ham_groupalloc_recover -- *	Recovery function for groupalloc. * * PUBLIC: int __ham_groupalloc_recover * PUBLIC:   __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); */int__ham_groupalloc_recover(dbenv, dbtp, lsnp, op, info)	DB_ENV *dbenv;	DBT *dbtp;	DB_LSN *lsnp;	db_recops op;	void *info;{	__ham_groupalloc_args *argp;	DB *file_dbp;	DBC *dbc;	DB_MPOOLFILE *mpf;	PAGE *pagep;	int cmp_n, cmp_p, modified, ret;	REC_PRINT(__ham_groupalloc_print);	REC_INTRO(__ham_groupalloc_read, 1);	if ((ret = mpf->get(mpf, &argp->pgno, 0, &pagep)) != 0)		if (DB_REDO(op)) {			if ((ret = mpf->get(mpf,			    &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0)				goto out;		} else {			*lsnp = argp->prev_lsn;			ret = 0;			goto out;		}	modified = 0;	cmp_n = log_compare(lsnp, &LSN(pagep));	/*	 * Use this when there is something like "pagelsn" in the argp	 * structure.  Sometimes, you might need to compare meta-data	 * lsn's instead.	 *	 * cmp_p = log_compare(&LSN(pagep), argp->pagelsn);	 */	if (cmp_p == 0 && DB_REDO(op)) {		/* Need to redo update described. */		modified = 1;	} else if (cmp_n == 0 && !DB_REDO(op)) {		/* Need to undo update described. */		modified = 1;	}	if (ret = mpf->put(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0))		goto out;	*lsnp = argp->prev_lsn;	ret = 0;out:	REC_CLOSE;}/* * __ham_curadj_recover -- *	Recovery function for curadj. * * PUBLIC: int __ham_curadj_recover * PUBLIC:   __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); */int__ham_curadj_recover(dbenv, dbtp, lsnp, op, info)	DB_ENV *dbenv;	DBT *dbtp;	DB_LSN *lsnp;	db_recops op;	void *info;{	__ham_curadj_args *argp;	DB *file_dbp;	DBC *dbc;	DB_MPOOLFILE *mpf;	PAGE *pagep;	int cmp_n, cmp_p, modified, ret;	REC_PRINT(__ham_curadj_print);	REC_INTRO(__ham_curadj_read, 1);	if ((ret = mpf->get(mpf, &argp->pgno, 0, &pagep)) != 0)		if (DB_REDO(op)) {			if ((ret = mpf->get(mpf,			    &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0)				goto out;		} else {			*lsnp = argp->prev_lsn;			ret = 0;			goto out;		}	modified = 0;	cmp_n = log_compare(lsnp, &LSN(pagep));	/*	 * Use this when there is something like "pagelsn" in the argp	 * structure.  Sometimes, you might need to compare meta-data	 * lsn's instead.	 *	 * cmp_p = log_compare(&LSN(pagep), argp->pagelsn);	 */	if (cmp_p == 0 && DB_REDO(op)) {		/* Need to redo update described. */		modified = 1;	} else if (cmp_n == 0 && !DB_REDO(op)) {		/* Need to undo update described. */		modified = 1;	}	if (ret = mpf->put(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0))		goto out;	*lsnp = argp->prev_lsn;	ret = 0;out:	REC_CLOSE;}/* * __ham_chgpg_recover -- *	Recovery function for chgpg. * * PUBLIC: int __ham_chgpg_recover * PUBLIC:   __P((DB_ENV *, DBT *, DB_LSN *, db_recops, void *)); */int__ham_chgpg_recover(dbenv, dbtp, lsnp, op, info)	DB_ENV *dbenv;	DBT *dbtp;	DB_LSN *lsnp;	db_recops op;	void *info;{	__ham_chgpg_args *argp;	DB *file_dbp;	DBC *dbc;	DB_MPOOLFILE *mpf;	PAGE *pagep;	int cmp_n, cmp_p, modified, ret;	REC_PRINT(__ham_chgpg_print);	REC_INTRO(__ham_chgpg_read, 1);	if ((ret = mpf->get(mpf, &argp->pgno, 0, &pagep)) != 0)		if (DB_REDO(op)) {			if ((ret = mpf->get(mpf,			    &argp->pgno, DB_MPOOL_CREATE, &pagep)) != 0)				goto out;		} else {			*lsnp = argp->prev_lsn;			ret = 0;			goto out;		}	modified = 0;	cmp_n = log_compare(lsnp, &LSN(pagep));	/*	 * Use this when there is something like "pagelsn" in the argp	 * structure.  Sometimes, you might need to compare meta-data	 * lsn's instead.	 *	 * cmp_p = log_compare(&LSN(pagep), argp->pagelsn);	 */	if (cmp_p == 0 && DB_REDO(op)) {		/* Need to redo update described. */		modified = 1;	} else if (cmp_n == 0 && !DB_REDO(op)) {		/* Need to undo update described. */		modified = 1;	}	if (ret = mpf->put(mpf, pagep, modified ? DB_MPOOL_DIRTY : 0))		goto out;	*lsnp = argp->prev_lsn;	ret = 0;out:	REC_CLOSE;}

⌨️ 快捷键说明

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