diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2006-11-01 19:50:08 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2006-11-01 19:50:08 +0000 |
commit | b4f5429fa84d08a6466f49b15d2586df9f183eb5 (patch) | |
tree | 44827c665fbe6c69694531de2dcfeb76470f3a45 /src/backend/access/nbtree/nbtinsert.c | |
parent | 3aba3aa5b442213c2ab6fef079c9ce9356a96f91 (diff) | |
download | postgresql-b4f5429fa84d08a6466f49b15d2586df9f183eb5.tar.gz postgresql-b4f5429fa84d08a6466f49b15d2586df9f183eb5.zip |
Fix "failed to re-find parent key" btree VACUUM failure by tweaking
_bt_pagedel to recover from the failure: just search the whole parent level
if searching to the right fails. This does nothing for the underlying problem
that index keys became out-of-order in the grandparent level. However, we
believe that there is no other consequence worse than slightly inefficient
searching, so this narrow patch seems like the safest solution for the back
branches.
Diffstat (limited to 'src/backend/access/nbtree/nbtinsert.c')
-rw-r--r-- | src/backend/access/nbtree/nbtinsert.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index 1c5060c0cd3..fcdb7045dcf 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.119.4.1 2005/10/12 17:18:15 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/access/nbtree/nbtinsert.c,v 1.119.4.2 2006/11/01 19:50:08 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1243,8 +1243,8 @@ _bt_insert_parent(Relation rel, /* Check for error only after writing children */ if (pbuf == InvalidBuffer) - elog(ERROR, "failed to re-find parent key in \"%s\"", - RelationGetRelationName(rel)); + elog(ERROR, "failed to re-find parent key in \"%s\" for split pages %u/%u", + RelationGetRelationName(rel), bknum, rbknum); /* Recursively update the parent */ newres = _bt_insertonpg(rel, pbuf, stack->bts_parent, |