diff options
| author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2008-08-11 11:05:11 +0000 |
|---|---|---|
| committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2008-08-11 11:05:11 +0000 |
| commit | 3f0e808c4a487b1c12546acd80e6140d5093227b (patch) | |
| tree | 2ebd25f364f751d6591ae27f18588041dec4d978 /src/include/access/heapam.h | |
| parent | eca1388629facd9e65d2c7ce405e079ba2bc60c4 (diff) | |
| download | postgresql-3f0e808c4a487b1c12546acd80e6140d5093227b.tar.gz | |
Introduce the concept of relation forks. An smgr relation can now consist
of multiple forks, and each fork can be created and grown separately.
The bulk of this patch is about changing the smgr API to include an extra
ForkNumber argument in every smgr function. Also, smgrscheduleunlink and
smgrdounlink no longer implicitly call smgrclose, because other forks might
still exist after unlinking one. The callers of those functions have been
modified to call smgrclose instead.
This patch in itself doesn't have any user-visible effect, but provides the
infrastructure needed for upcoming patches. The additional forks envisioned
are a rewritten FSM implementation that doesn't rely on a fixed-size shared
memory block, and a visibility map to allow skipping portions of a table in
VACUUM that have no dead tuples.
Diffstat (limited to 'src/include/access/heapam.h')
| -rw-r--r-- | src/include/access/heapam.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/include/access/heapam.h b/src/include/access/heapam.h index c6b7d5dc11..d6f9473c5e 100644 --- a/src/include/access/heapam.h +++ b/src/include/access/heapam.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/access/heapam.h,v 1.137 2008/06/19 00:46:06 alvherre Exp $ + * $PostgreSQL: pgsql/src/include/access/heapam.h,v 1.138 2008/08/11 11:05:11 heikki Exp $ * *------------------------------------------------------------------------- */ @@ -127,7 +127,8 @@ extern XLogRecPtr log_heap_clean(Relation reln, Buffer buffer, extern XLogRecPtr log_heap_freeze(Relation reln, Buffer buffer, TransactionId cutoff_xid, OffsetNumber *offsets, int offcnt); -extern XLogRecPtr log_newpage(RelFileNode *rnode, BlockNumber blk, Page page); +extern XLogRecPtr log_newpage(RelFileNode *rnode, ForkNumber forkNum, + BlockNumber blk, Page page); /* in heap/pruneheap.c */ extern void heap_page_prune_opt(Relation relation, Buffer buffer, |
