diff options
| author | Vadim B. Mikheev <vadim4o@yahoo.com> | 1997-04-16 01:21:59 +0000 |
|---|---|---|
| committer | Vadim B. Mikheev <vadim4o@yahoo.com> | 1997-04-16 01:21:59 +0000 |
| commit | afd92957868ad2438910ad2db7f7719b46a2c2b9 (patch) | |
| tree | 511ca21e2b0ef0b45bc59659a2e67e59c4cc99fc /src | |
| parent | cacaaed62b56aadfd3b1536c2b910d6ba5897928 (diff) | |
| download | postgresql-afd92957868ad2438910ad2db7f7719b46a2c2b9.tar.gz | |
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.
Diffstat (limited to 'src')
| -rw-r--r-- | src/include/access/nbtree.h | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/include/access/nbtree.h b/src/include/access/nbtree.h index 4abd8ec05d..24b7f8cca9 100644 --- a/src/include/access/nbtree.h +++ b/src/include/access/nbtree.h @@ -6,7 +6,7 @@ * * 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 * key; the OID only serves as a unique identifier for a given index * 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 { +#ifndef BTREE_VERSION_1 Oid bti_oid; int32 bti_dummy; /* padding to make bti_itup * align at 8-byte boundary */ +#endif IndexTupleData bti_itup; } BTItemData; 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) * 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_wrtnorelbuf(Relation rel, Buffer buf); 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 void _bt_setpagelock(Relation rel, BlockNumber blkno, int access); extern void _bt_unsetpagelock(Relation rel, BlockNumber blkno, int access); |
