Hello!

I'm the original reporter of "vacuum crash" problem.
Thank you for your quick fix.

Now, I found another problem in nbtsearch.c.
This is my patch for it.
# But, what I want to know is why postgres reaches this FATAL status...

========================================================================
*** nbtsearch.c.orig	Tue Oct 20 16:42:59 1998
--- nbtsearch.c	Tue Oct 20 16:43:15 1998
***************
*** 217,223 ****
  										PageGetItemId(page, P_FIRSTKEY),
  										BTEqualStrategyNumber))
  							elog(FATAL, "btree: BTP_CHAIN flag was expected in %s (access = %s)",
! 								 rel->rd_rel->relname, access ? "bt_write" : "bt_read");
  						if (_bt_skeycmp(rel, keysz, scankey, page,
  										PageGetItemId(page, offmax),
  										BTEqualStrategyNumber))
--- 217,223 ----
  										PageGetItemId(page, P_FIRSTKEY),
  										BTEqualStrategyNumber))
  							elog(FATAL, "btree: BTP_CHAIN flag was expected in %s (access = %s)",
! 								 rel->rd_rel->relname.data, access ? "bt_write" : "bt_read");
  						if (_bt_skeycmp(rel, keysz, scankey, page,
  										PageGetItemId(page, offmax),
  										BTEqualStrategyNumber))
========================================================================

And with the following script, you can find suspicious lines which
have pointer type incompatibility but work *fortunately* on most
systems.

========================================================================
#/bin/sh

find PGSRC -type f -name '*.[ch]' -print |
xargs egrep -e 'rd_rel->relname' /dev/null |
egrep -v 'relname\)?\.data'
========================================================================

Regards

-- 
ASCII CORPORATION
Technical Center
SHIOZAKI Takehiko
<takehi-s@ascii.co.jp>

Thu, 29 Oct 1998 10:48:23 +0900 (JST)
SHIOZAKI Takehiko <takehi-s@ascii.co.jp>
relname.data