1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-17 06:41:09 +03:00

Back-patch fix for 'btree: failed to add item to the page in _bt_sort (2)'

failure during index creation.  This problem should be gone in current
sources, but I just thought I'd commit the 7.0.* patch in case anyone
else needs it.
This commit is contained in:
Tom Lane
2001-01-04 21:51:49 +00:00
parent a860a403a9
commit de9b43f3f5

View File

@ -28,7 +28,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtsort.c,v 1.52 2000/04/12 17:14:49 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtsort.c,v 1.52.2.1 2001/01/04 21:51:49 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@ -321,7 +321,7 @@ _bt_buildadd(Relation index, Size keysz, ScanKey scankey,
btisz,
(PageGetPageSize(npage) - sizeof(PageHeaderData) - MAXALIGN(sizeof(BTPageOpaqueData))) /3 - sizeof(ItemIdData));
if (pgspc < btisz)
while (pgspc < btisz)
{
Buffer obuf = nbuf;
Page opage = npage;
@ -436,6 +436,13 @@ _bt_buildadd(Relation index, Size keysz, ScanKey scankey,
* we aren't locking).
*/
_bt_wrtbuf(index, obuf);
/*
* Recompute pgspc and loop back to check free space again. If
* we were forced to split at a bad split point, we might need
* to split again.
*/
pgspc = PageGetFreeSpace(npage);
}
/*