diff options
| author | Tom Lane | 2001-05-10 20:38:49 +0000 |
|---|---|---|
| committer | Tom Lane | 2001-05-10 20:38:49 +0000 |
| commit | 642107d5baa06c21bc9d9a937e4710008e4826a9 (patch) | |
| tree | 2d4cef5702ca144fb89c0e131b3fcbb598a9f3dc /src/include | |
| parent | a26ad8a643d4ae44be16a773e19f7ae32df048ac (diff) | |
Avoid unnecessary lseek() calls by cleanups in md.c. mdfd_lstbcnt was
not being consulted anywhere, so remove it and remove the _mdnblocks()
calls that were used to set it. Change smgrextend interface to pass in
the target block number (ie, current file length) --- the caller always
knows this already, having already done smgrnblocks(), so it's silly to
do it over again inside mdextend. Net result: extension of a file now
takes one lseek(SEEK_END) and a write(), not three lseeks and a write.
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/storage/smgr.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/include/storage/smgr.h b/src/include/storage/smgr.h index 34892040cc5..b6c5af72dec 100644 --- a/src/include/storage/smgr.h +++ b/src/include/storage/smgr.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: smgr.h,v 1.28 2001/03/22 04:01:09 momjian Exp $ + * $Id: smgr.h,v 1.29 2001/05/10 20:38:49 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -28,7 +28,8 @@ extern int smgrinit(void); extern int smgrcreate(int16 which, Relation reln); extern int smgrunlink(int16 which, Relation reln); -extern int smgrextend(int16 which, Relation reln, char *buffer); +extern int smgrextend(int16 which, Relation reln, BlockNumber blocknum, + char *buffer); extern int smgropen(int16 which, Relation reln, bool failOK); extern int smgrclose(int16 which, Relation reln); extern int smgrread(int16 which, Relation reln, BlockNumber blocknum, @@ -60,7 +61,7 @@ extern void smgr_desc(char *buf, uint8 xl_info, char *rec); extern int mdinit(void); extern int mdcreate(Relation reln); extern int mdunlink(RelFileNode rnode); -extern int mdextend(Relation reln, char *buffer); +extern int mdextend(Relation reln, BlockNumber blocknum, char *buffer); extern int mdopen(Relation reln); extern int mdclose(Relation reln); extern int mdread(Relation reln, BlockNumber blocknum, char *buffer); @@ -82,7 +83,7 @@ extern SPINLOCK MMCacheLock; extern int mminit(void); extern int mmcreate(Relation reln); extern int mmunlink(RelFileNode rnode); -extern int mmextend(Relation reln, char *buffer); +extern int mmextend(Relation reln, BlockNumber blocknum, char *buffer); extern int mmopen(Relation reln); extern int mmclose(Relation reln); extern int mmread(Relation reln, BlockNumber blocknum, char *buffer); |
