BTREE_VERSION_1: using bti_itup->t_tid as unique identifier for a given
index tuple (logical position within A LEVEL). bti_oid & bti_dummy taken off from BTItemData.
This commit is contained in:
parent
cacaaed62b
commit
afd9295786
@ -6,7 +6,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 1994, Regents of the University of California
|
* Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $Id: nbtree.h,v 1.11 1997/03/24 08:04:51 vadim Exp $
|
* $Id: nbtree.h,v 1.12 1997/04/16 01:21:59 vadim Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -84,18 +84,37 @@ typedef BTScanOpaqueData *BTScanOpaque;
|
|||||||
* tuples. Note that we do not use the OID as part of a composite
|
* tuples. Note that we do not use the OID as part of a composite
|
||||||
* key; the OID only serves as a unique identifier for a given index
|
* key; the OID only serves as a unique identifier for a given index
|
||||||
* tuple (logical position within a page).
|
* tuple (logical position within a page).
|
||||||
|
*
|
||||||
|
* New comments:
|
||||||
|
* actually, we must guarantee that all tuples in A LEVEL
|
||||||
|
* are unique, not in ALL INDEX. So, we can use bti_itup->t_tid
|
||||||
|
* as unique identifier for a given index tuple (logical position
|
||||||
|
* within a level). - vadim 04/09/97
|
||||||
*/
|
*/
|
||||||
|
|
||||||
typedef struct BTItemData {
|
typedef struct BTItemData {
|
||||||
|
#ifndef BTREE_VERSION_1
|
||||||
Oid bti_oid;
|
Oid bti_oid;
|
||||||
int32 bti_dummy; /* padding to make bti_itup
|
int32 bti_dummy; /* padding to make bti_itup
|
||||||
* align at 8-byte boundary
|
* align at 8-byte boundary
|
||||||
*/
|
*/
|
||||||
|
#endif
|
||||||
IndexTupleData bti_itup;
|
IndexTupleData bti_itup;
|
||||||
} BTItemData;
|
} BTItemData;
|
||||||
|
|
||||||
typedef BTItemData *BTItem;
|
typedef BTItemData *BTItem;
|
||||||
|
|
||||||
|
#ifdef BTREE_VERSION_1
|
||||||
|
#define BTItemSame(i1, i2) ( i1->bti_itup.t_tid.ip_blkid.bi_hi == \
|
||||||
|
i2->bti_itup.t_tid.ip_blkid.bi_hi && \
|
||||||
|
i1->bti_itup.t_tid.ip_blkid.bi_lo == \
|
||||||
|
i2->bti_itup.t_tid.ip_blkid.bi_lo && \
|
||||||
|
i1->bti_itup.t_tid.ip_posid == \
|
||||||
|
i2->bti_itup.t_tid.ip_posid )
|
||||||
|
#else
|
||||||
|
#define BTItemSame(i1, i2) ( i1->bti_oid == i2->bti_oid )
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* BTStackData -- As we descend a tree, we push the (key, pointer)
|
* BTStackData -- As we descend a tree, we push the (key, pointer)
|
||||||
* pairs from internal nodes onto a private stack. If we split a
|
* pairs from internal nodes onto a private stack. If we split a
|
||||||
@ -206,7 +225,7 @@ extern void _bt_relbuf(Relation rel, Buffer buf, int access);
|
|||||||
extern void _bt_wrtbuf(Relation rel, Buffer buf);
|
extern void _bt_wrtbuf(Relation rel, Buffer buf);
|
||||||
extern void _bt_wrtnorelbuf(Relation rel, Buffer buf);
|
extern void _bt_wrtnorelbuf(Relation rel, Buffer buf);
|
||||||
extern void _bt_pageinit(Page page, Size size);
|
extern void _bt_pageinit(Page page, Size size);
|
||||||
extern void _bt_metaproot(Relation rel, BlockNumber rootbknum);
|
extern void _bt_metaproot(Relation rel, BlockNumber rootbknum, int level);
|
||||||
extern Buffer _bt_getstackbuf(Relation rel, BTStack stack, int access);
|
extern Buffer _bt_getstackbuf(Relation rel, BTStack stack, int access);
|
||||||
extern void _bt_setpagelock(Relation rel, BlockNumber blkno, int access);
|
extern void _bt_setpagelock(Relation rel, BlockNumber blkno, int access);
|
||||||
extern void _bt_unsetpagelock(Relation rel, BlockNumber blkno, int access);
|
extern void _bt_unsetpagelock(Relation rel, BlockNumber blkno, int access);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user