mirror of
https://github.com/postgres/postgres.git
synced 2025-06-16 06:01:02 +03:00
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.
35 lines
1.0 KiB
C
35 lines
1.0 KiB
C
/*
|
|
* xlogutils.h
|
|
*
|
|
* PostgreSQL transaction log manager utility routines
|
|
*
|
|
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
* $PostgreSQL: pgsql/src/include/access/xlogutils.h,v 1.26 2008/08/11 11:05:11 heikki Exp $
|
|
*/
|
|
#ifndef XLOG_UTILS_H
|
|
#define XLOG_UTILS_H
|
|
|
|
#include "storage/buf.h"
|
|
#include "storage/relfilenode.h"
|
|
#include "storage/block.h"
|
|
#include "utils/relcache.h"
|
|
|
|
|
|
extern void XLogCheckInvalidPages(void);
|
|
|
|
extern void XLogDropRelation(RelFileNode rnode, ForkNumber forknum);
|
|
extern void XLogDropDatabase(Oid dbid);
|
|
extern void XLogTruncateRelation(RelFileNode rnode, ForkNumber forkNum,
|
|
BlockNumber nblocks);
|
|
|
|
extern Buffer XLogReadBuffer(RelFileNode rnode, BlockNumber blkno, bool init);
|
|
extern Buffer XLogReadBufferWithFork(RelFileNode rnode, ForkNumber forknum,
|
|
BlockNumber blkno, bool init);
|
|
|
|
extern Relation CreateFakeRelcacheEntry(RelFileNode rnode);
|
|
extern void FreeFakeRelcacheEntry(Relation fakerel);
|
|
|
|
#endif
|