OSDN Git Service

Get rid of page-level locking in btree-s.
authorVadim B. Mikheev <vadim4o@yahoo.com>
Tue, 25 May 1999 18:31:28 +0000 (18:31 +0000)
committerVadim B. Mikheev <vadim4o@yahoo.com>
Tue, 25 May 1999 18:31:28 +0000 (18:31 +0000)
BT_READ/BT_WRITE are BUFFER_LOCK_SHARE/BUFFER_LOCK_EXCLUSIVE now.
Also get rid of #define BT_VERSION_1 - we use version 1 as default
for near two years now.

src/include/access/nbtree.h
src/include/config.h.in

index a25e0c2..80a3150 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: nbtree.h,v 1.25 1999/05/25 16:13:32 momjian Exp $
+ * $Id: nbtree.h,v 1.26 1999/05/25 18:31:28 vadim Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -19,7 +19,7 @@
 #include <storage/page.h>
 #include <access/funcindex.h>
 #include <access/itup.h>
-#include <storage/buf.h>
+#include <storage/bufmgr.h>    /* don't remove, required by BT_READ/BT_WRITE */
 #include <storage/itemptr.h>
 
 /*
@@ -107,26 +107,17 @@ typedef BTScanOpaqueData *BTScanOpaque;
 
 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)
@@ -165,8 +156,8 @@ typedef struct BTPageState
  *     requests for pages, in order to do locking correctly.
  */
 
-#define BT_READ                        0
-#define BT_WRITE               1
+#define BT_READ                        BUFFER_LOCK_SHARE
+#define BT_WRITE               BUFFER_LOCK_EXCLUSIVE
 
 /*
  *     Similarly, the difference between insertion and non-insertion binary
index ab45bd8..f90501e 100644 (file)
@@ -506,15 +506,6 @@ extern void srandom(unsigned int seed);
  */
 #define FASTBUILD /* access/nbtree/nbtsort.c */
 
-/* 
- * BTREE_VERSION_1: 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) and take off bti_oid & bti_dummy (8 bytes total)
- * from btree items.
- */
-#define BTREE_VERSION_1
-
 /*
  * TBL_FREE_CMD_MEMORY: free memory allocated for an user query inside
  * transaction block after this query is done.