git.postgresql.org Git - postgresql.git/commitdiff

git projects / postgresql.git / commitdiff
? search:
summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: d365ce1)
Have the rewriteheap code freeze old tuples. This is safe because it is only
2007年5月16日 16:36:56 +0000 (16:36 +0000)
2007年5月16日 16:36:56 +0000 (16:36 +0000)
applied to live tuples older than a recent Xmin, not to tuples that may be part
of an update chain. Those still keep their original markings.

This patch makes it possible for CLUSTER to advance relfrozenxid, thus avoiding
the need of vacuuming the table for Xid wraparound purposes. That will be
patched separately.

Patch from Heikki Linnakangas.


diff --git a/src/backend/access/heap/rewriteheap.c b/src/backend/access/heap/rewriteheap.c
index 96d6d6f2c02d011303d7340a3bf36955c3d49013..be389c647aa8460dc165e13efbef1ec39d55221a 100644 (file)
--- a/src/backend/access/heap/rewriteheap.c
+++ b/src/backend/access/heap/rewriteheap.c
@@ -96,7 +96,7 @@
* Portions Copyright (c) 1994-5, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/heap/rewriteheap.c,v 1.3 2007年04月17日 21:29:31 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/heap/rewriteheap.c,v 1.4 2007年05月16日 16:36:56 alvherre Exp $
*
*-------------------------------------------------------------------------
*/
@@ -538,6 +538,8 @@ raw_heap_insert(RewriteState state, HeapTuple tup)
OffsetNumber newoff;
HeapTuple heaptup;
+ heap_freeze_tuple(tup->t_data, state->rs_oldest_xmin, InvalidBuffer);
+
/*
* If the new tuple is too big for storage or contains already toasted
* out-of-line attributes from some other relation, invoke the toaster.
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /