summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>2008-06-11 08:40:32 +0000
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>2008-06-11 08:40:32 +0000
commitb9d591d6b9d95d9b6448e860c6c178f1674e6de2 (patch)
tree2d68ee3e6ba0c332241b51d4f7104db39fe1b4fe /src
parentf35ed4041034985ae96a30e14e6eeaa7f5a52bce (diff)
Fix bug in the WAL recovery code to finish an incomplete split.
CacheInvalidateRelcache() crashes if called in WAL recovery, because the invalidation infrastructure hasn't been initialized yet. Back-patch to 8.2, where the bug was introduced.
Diffstat (limited to 'src')
-rw-r--r--src/backend/access/nbtree/nbtinsert.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index 937bb72aa87..d6cd0cb7acd 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/nbtree/nbtinsert.c,v 1.164 2008/01/01 19:45:46 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/access/nbtree/nbtinsert.c,v 1.164.2.1 2008/06/11 08:40:32 heikki Exp $
*
*-------------------------------------------------------------------------
*/
@@ -744,7 +744,8 @@ _bt_insertonpg(Relation rel,
/* release buffers; send out relcache inval if metapage changed */
if (BufferIsValid(metabuf))
{
- CacheInvalidateRelcache(rel);
+ if (!InRecovery)
+ CacheInvalidateRelcache(rel);
_bt_relbuf(rel, metabuf);
}
@@ -1789,7 +1790,8 @@ _bt_newroot(Relation rel, Buffer lbuf, Buffer rbuf)
END_CRIT_SECTION();
/* send out relcache inval for metapage change */
- CacheInvalidateRelcache(rel);
+ if (!InRecovery)
+ CacheInvalidateRelcache(rel);
/* done with metapage */
_bt_relbuf(rel, metabuf);