Fix bug in GIN WAL redo cleanup function: don't free fake relcache entry
while it's still being used. Backpatch to 8.4, where the fake relcache method was introduced.
This commit is contained in:
parent
09c0747515
commit
79647eed86
|
@ -8,7 +8,7 @@
|
|||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/access/gin/ginxlog.c,v 1.21 2010/01/02 16:57:33 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/access/gin/ginxlog.c,v 1.22 2010/02/09 20:31:24 heikki Exp $
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
@ -777,8 +777,6 @@ ginContinueSplit(ginIncompleteSplit *split)
|
|||
GinPageGetOpaque(page)->maxoff))->key;
|
||||
}
|
||||
|
||||
FreeFakeRelcacheEntry(reln);
|
||||
|
||||
btree.rightblkno = split->rightBlkno;
|
||||
|
||||
stack.blkno = split->leftBlkno;
|
||||
|
@ -789,6 +787,8 @@ ginContinueSplit(ginIncompleteSplit *split)
|
|||
findParents(&btree, &stack, split->rootBlkno);
|
||||
ginInsertValue(&btree, stack.parent);
|
||||
|
||||
FreeFakeRelcacheEntry(reln);
|
||||
|
||||
UnlockReleaseBuffer(buffer);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue