itemptr.c

来自「postgresql8.3.4源码,开源数据库」· C语言 代码 · 共 66 行

C
66
字号
/*------------------------------------------------------------------------- * * itemptr.c *	  POSTGRES disk item pointer code. * * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * * IDENTIFICATION *	  $PostgreSQL: pgsql/src/backend/storage/page/itemptr.c,v 1.21 2008/01/01 19:45:52 momjian Exp $ * *------------------------------------------------------------------------- */#include "postgres.h"#include "storage/itemptr.h"/* * ItemPointerEquals *	Returns true if both item pointers point to the same item, *	 otherwise returns false. * * Note: *	Asserts that the disk item pointers are both valid! */boolItemPointerEquals(ItemPointer pointer1, ItemPointer pointer2){	if (ItemPointerGetBlockNumber(pointer1) ==		ItemPointerGetBlockNumber(pointer2) &&		ItemPointerGetOffsetNumber(pointer1) ==		ItemPointerGetOffsetNumber(pointer2))		return true;	else		return false;}/* * ItemPointerCompare *		Generic btree-style comparison for item pointers. */int32ItemPointerCompare(ItemPointer arg1, ItemPointer arg2){	/*	 * Don't use ItemPointerGetBlockNumber or ItemPointerGetOffsetNumber here,	 * because they assert ip_posid != 0 which might not be true for a	 * user-supplied TID.	 */	BlockNumber b1 = BlockIdGetBlockNumber(&(arg1->ip_blkid));	BlockNumber b2 = BlockIdGetBlockNumber(&(arg2->ip_blkid));	if (b1 < b2)		return -1;	else if (b1 > b2)		return 1;	else if (arg1->ip_posid < arg2->ip_posid)		return -1;	else if (arg1->ip_posid > arg2->ip_posid)		return 1;	else		return 0;}

⌨️ 快捷键说明

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