00001 /*------------------------------------------------------------------------- 00002 * 00003 * rewriteheap.h 00004 * Declarations for heap rewrite support functions 00005 * 00006 * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group 00007 * Portions Copyright (c) 1994-5, Regents of the University of California 00008 * 00009 * src/include/access/rewriteheap.h 00010 * 00011 *------------------------------------------------------------------------- 00012 */ 00013 #ifndef REWRITE_HEAP_H 00014 #define REWRITE_HEAP_H 00015 00016 #include "access/htup.h" 00017 #include "utils/relcache.h" 00018 00019 /* struct definition is private to rewriteheap.c */ 00020 typedef struct RewriteStateData *RewriteState; 00021 00022 extern RewriteState begin_heap_rewrite(Relation NewHeap, 00023 TransactionId OldestXmin, TransactionId FreezeXid, 00024 MultiXactId MultiXactFrzLimit, bool use_wal); 00025 extern void end_heap_rewrite(RewriteState state); 00026 extern void rewrite_heap_tuple(RewriteState state, HeapTuple oldTuple, 00027 HeapTuple newTuple); 00028 extern bool rewrite_heap_dead_tuple(RewriteState state, HeapTuple oldTuple); 00029 00030 #endif /* REWRITE_HEAP_H */