aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2006-01-06 00:15:50 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2006-01-06 00:15:50 +0000
commit2d0475e4803ec61bf79e73ef0b4e5753b83f0218 (patch)
treee3f4bbb6b6a846aa85f7c1a2e635b80c47286666
parent304160c3e270e6db75e109c149799d09b6f1461b (diff)
downloadpostgresql-2d0475e4803ec61bf79e73ef0b4e5753b83f0218.tar.gz
postgresql-2d0475e4803ec61bf79e73ef0b4e5753b83f0218.zip
Convert Assert checking for empty page into a regular test and elog.
The consequences of overwriting a non-empty page are bad enough that we should not omit this test in production builds.
-rw-r--r--src/backend/access/heap/hio.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/backend/access/heap/hio.c b/src/backend/access/heap/hio.c
index d66c43c3021..c2a9b34336e 100644
--- a/src/backend/access/heap/hio.c
+++ b/src/backend/access/heap/hio.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/heap/hio.c,v 1.59 2005/11/22 18:17:06 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/access/heap/hio.c,v 1.60 2006/01/06 00:15:50 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -281,10 +281,17 @@ RelationGetBufferForTuple(Relation relation, Size len,
UnlockRelationForExtension(relation, ExclusiveLock);
/*
- * We need to initialize the empty new page.
+ * We need to initialize the empty new page. Double-check that it really
+ * is empty (this should never happen, but if it does we don't want to
+ * risk wiping out valid data).
*/
pageHeader = (Page) BufferGetPage(buffer);
- Assert(PageIsNew((PageHeader) pageHeader));
+
+ if (!PageIsNew((PageHeader) pageHeader))
+ elog(ERROR, "page %u of relation \"%s\" should be empty but is not",
+ BufferGetBlockNumber(buffer),
+ RelationGetRelationName(relation));
+
PageInit(pageHeader, BufferGetPageSize(buffer), 0);
if (len > PageGetFreeSpace(pageHeader))