The argument of SetBufferCommitInfoNeedsSave at _bt_check_unique
might be not correct. When the next page is checked, I think that
the argument is not buf but nbuf.

regards,

--- Atsushi Ogawa
*** ./src/backend/access/nbtree/nbtinsert.c.orig	2005-10-13 00:59:55.599839064 +0900
--- ./src/backend/access/nbtree/nbtinsert.c	2005-10-13 01:02:43.335339392 +0900
***************
*** 261,267 ****
  												 hbuffer) == HEAPTUPLE_DEAD)
  					{
  						curitemid->lp_flags |= LP_DELETE;
! 						SetBufferCommitInfoNeedsSave(buf);
  					}
  					LockBuffer(hbuffer, BUFFER_LOCK_UNLOCK);
  				}
--- 261,272 ----
  												 hbuffer) == HEAPTUPLE_DEAD)
  					{
  						curitemid->lp_flags |= LP_DELETE;
! 
! 						/* Make a buffer of curitemid dirty. */ 
! 						if (nbuf == InvalidBuffer)
! 							SetBufferCommitInfoNeedsSave(buf);
! 						else
! 							SetBufferCommitInfoNeedsSave(nbuf);
  					}
  					LockBuffer(hbuffer, BUFFER_LOCK_UNLOCK);
  				}
---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
       subscribe-nomail command to [EMAIL PROTECTED] so that your
       message can get through to the mailing list cleanly

Reply via email to