Use page-level ExtendLock lock instead of table-level -
authorVadim B. Mikheev <vadim4o@yahoo.com>
Sat, 1 May 1999 15:04:46 +0000 (15:04 +0000)
committerVadim B. Mikheev <vadim4o@yahoo.com>
Sat, 1 May 1999 15:04:46 +0000 (15:04 +0000)
should be faster.

src/backend/access/heap/hio.c

index 1a15caeb145e0691ab4f22e3ff42800c380a26d8..fe67c8b014b4216dba89615d8147754d3b04e340 100644 (file)
@@ -110,8 +110,15 @@ RelationPutHeapTupleAtEnd(Relation relation, HeapTuple tuple)
        ItemId          itemId;
        Item            item;
 
+       /*
+        * Actually, we lock _relation_ here, not page, but I believe
+        * that locking page is faster... Obviously, we could get rid
+        * of ExtendLock mode at all and use ExclusiveLock mode on
+        * page 0, as long as we use page-level locking for indices only,
+        * but we are in 6.5-beta currently...  - vadim 05/01/99
+        */
        if (!relation->rd_myxactonly)
-               LockRelation(relation, ExtendLock);
+               LockPage(relation, 0, ExtendLock);
 
        /*
         * XXX This does an lseek - VERY expensive - but at the moment it is
@@ -159,7 +166,7 @@ RelationPutHeapTupleAtEnd(Relation relation, HeapTuple tuple)
        }
 
        if (!relation->rd_myxactonly)
-               UnlockRelation(relation, ExtendLock);
+               UnlockPage(relation, 0, ExtendLock);
 
        offnum = PageAddItem((Page) pageHeader, (Item) tuple->t_data,
                                                 tuple->t_len, InvalidOffsetNumber, LP_USED);