diff options
| author | Vadim B. Mikheev <vadim4o@yahoo.com> | 1998-07-30 05:05:05 +0000 |
|---|---|---|
| committer | Vadim B. Mikheev <vadim4o@yahoo.com> | 1998-07-30 05:05:05 +0000 |
| commit | f73fc6eb2908104e4ca0a28106806364cc085c98 (patch) | |
| tree | e9bb90edc2302c1cf6780ac91fc57f5cb9107dee /src/include/access/nbtree.h | |
| parent | 957ff1a0b5ed8db496b7c5e7e8a71a27576d15ac (diff) | |
| download | postgresql-f73fc6eb2908104e4ca0a28106806364cc085c98.tar.gz | |
Fix scan adjustment.
Diffstat (limited to 'src/include/access/nbtree.h')
| -rw-r--r-- | src/include/access/nbtree.h | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/src/include/access/nbtree.h b/src/include/access/nbtree.h index c701200556..5e3d03af3b 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.20 1998/02/26 04:40:22 momjian Exp $ + * $Id: nbtree.h,v 1.21 1998/07/30 05:05:05 vadim Exp $ * *------------------------------------------------------------------------- */ @@ -62,18 +62,26 @@ typedef BTPageOpaqueData *BTPageOpaque; * semop() calls, which are expensive. * * And it's used to remember actual scankey info (we need in it - * if some scankeys evaled at runtime. + * if some scankeys evaled at runtime). + * + * curHeapIptr & mrkHeapIptr are heap iptr-s from current/marked + * index tuples: we don't adjust scans on insertions (and, if LLL + * is ON, don't hold locks on index pages between passes) - we + * use these pointers to restore index scan positions... + * - vadim 07/29/98 */ typedef struct BTScanOpaqueData { - Buffer btso_curbuf; - Buffer btso_mrkbuf; - uint16 qual_ok; /* 0 for quals like key == 1 && key > 2 */ - uint16 numberOfKeys; /* number of keys */ - uint16 numberOfFirstKeys; /* number of keys for 1st - * attribute */ - ScanKey keyData; /* key descriptor */ + Buffer btso_curbuf; + Buffer btso_mrkbuf; + ItemPointerData curHeapIptr; + ItemPointerData mrkHeapIptr; + uint16 qual_ok; /* 0 for quals like key == 1 && key > 2 */ + uint16 numberOfKeys; /* number of keys */ + uint16 numberOfFirstKeys; /* number of keys for 1st + * attribute */ + ScanKey keyData; /* key descriptor */ } BTScanOpaqueData; typedef BTScanOpaqueData *BTScanOpaque; |
