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

📄 bt_upgrade.c

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 C
字号:
/*- * See the file LICENSE for redistribution information. * * Copyright (c) 1996-2002 *	Sleepycat Software.  All rights reserved. */#include "db_config.h"#ifndef lintstatic const char revid[] = "$Id: bt_upgrade.c,v 11.25 2002/08/06 06:11:13 bostic Exp $";#endif /* not lint */#ifndef NO_SYSTEM_INCLUDES#include <sys/types.h>#include <limits.h>#include <string.h>#endif#include "db_int.h"#include "dbinc/db_page.h"#include "dbinc/db_am.h"#include "dbinc/db_upgrade.h"/* * __bam_30_btreemeta -- *	Upgrade the metadata pages from version 6 to version 7. * * PUBLIC: int __bam_30_btreemeta __P((DB *, char *, u_int8_t *)); */int__bam_30_btreemeta(dbp, real_name, buf)	DB *dbp;	char *real_name;	u_int8_t *buf;{	BTMETA30 *newmeta;	BTMETA2X *oldmeta;	DB_ENV *dbenv;	int ret;	dbenv = dbp->dbenv;	newmeta = (BTMETA30 *)buf;	oldmeta = (BTMETA2X *)buf;	/*	 * Move things from the end up, so we do not overwrite things.	 * We are going to create a new uid, so we can move the stuff	 * at the end of the structure first, overwriting the uid.	 */	newmeta->re_pad = oldmeta->re_pad;	newmeta->re_len = oldmeta->re_len;	newmeta->minkey = oldmeta->minkey;	newmeta->maxkey = oldmeta->maxkey;	newmeta->dbmeta.free = oldmeta->free;	newmeta->dbmeta.flags = oldmeta->flags;	newmeta->dbmeta.type  = P_BTREEMETA;	newmeta->dbmeta.version = 7;	/* Replace the unique ID. */	if ((ret = __os_fileid(dbenv, real_name, 1, buf + 36)) != 0)		return (ret);	newmeta->root = 1;	return (0);}/* * __bam_31_btreemeta -- *	Upgrade the database from version 7 to version 8. * * PUBLIC: int __bam_31_btreemeta * PUBLIC:      __P((DB *, char *, u_int32_t, DB_FH *, PAGE *, int *)); */int__bam_31_btreemeta(dbp, real_name, flags, fhp, h, dirtyp)	DB *dbp;	char *real_name;	u_int32_t flags;	DB_FH *fhp;	PAGE *h;	int *dirtyp;{	BTMETA31 *newmeta;	BTMETA30 *oldmeta;	COMPQUIET(dbp, NULL);	COMPQUIET(real_name, NULL);	COMPQUIET(fhp, NULL);	newmeta = (BTMETA31 *)h;	oldmeta = (BTMETA30 *)h;	/*	 * Copy the effected fields down the page.	 * The fields may overlap each other so we	 * start at the bottom and use memmove.	 */	newmeta->root = oldmeta->root;	newmeta->re_pad = oldmeta->re_pad;	newmeta->re_len = oldmeta->re_len;	newmeta->minkey = oldmeta->minkey;	newmeta->maxkey = oldmeta->maxkey;	memmove(newmeta->dbmeta.uid,	    oldmeta->dbmeta.uid, sizeof(oldmeta->dbmeta.uid));	newmeta->dbmeta.flags = oldmeta->dbmeta.flags;	newmeta->dbmeta.record_count = 0;	newmeta->dbmeta.key_count = 0;	ZERO_LSN(newmeta->dbmeta.unused3);	/* Set the version number. */	newmeta->dbmeta.version = 8;	/* Upgrade the flags. */	if (LF_ISSET(DB_DUPSORT))		F_SET(&newmeta->dbmeta, BTM_DUPSORT);	*dirtyp = 1;	return (0);}/* * __bam_31_lbtree -- *	Upgrade the database btree leaf pages. * * PUBLIC: int __bam_31_lbtree * PUBLIC:      __P((DB *, char *, u_int32_t, DB_FH *, PAGE *, int *)); */int__bam_31_lbtree(dbp, real_name, flags, fhp, h, dirtyp)	DB *dbp;	char *real_name;	u_int32_t flags;	DB_FH *fhp;	PAGE *h;	int *dirtyp;{	BKEYDATA *bk;	db_pgno_t pgno;	db_indx_t indx;	int ret;	ret = 0;	for (indx = O_INDX; indx < NUM_ENT(h); indx += P_INDX) {		bk = GET_BKEYDATA(dbp, h, indx);		if (B_TYPE(bk->type) == B_DUPLICATE) {			pgno = GET_BOVERFLOW(dbp, h, indx)->pgno;			if ((ret = __db_31_offdup(dbp, real_name, fhp,			    LF_ISSET(DB_DUPSORT) ? 1 : 0, &pgno)) != 0)				break;			if (pgno != GET_BOVERFLOW(dbp, h, indx)->pgno) {				*dirtyp = 1;				GET_BOVERFLOW(dbp, h, indx)->pgno = pgno;			}		}	}	return (ret);}

⌨️ 快捷键说明

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