Re: cvs head initdb hangs on unixware

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: ohp@pyrenet.fr
Cc: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>, Zdenek Kotala <Zdenek.Kotala@Sun.COM>, pgsql-hackers list <pgsql-hackers@postgresql.org>
Date: 2008-12-09T14:23:06Z
Lists: pgsql-hackers
ohp@pyrenet.fr writes:
> Guess what! with the fprintf .. descending node... in place, everything 
> goes well. The optimizer definitly does something weird along the 
> definition/assignement of leftok/rightok..

Hmm, so the problem is in that second loop.  The trick is to pick some
reasonably non-ugly code change that makes the problem go away.

The first thing I'd try is to get rid of the overly cute optimization

	int rightnodeno = leftnodeno + 1;

and make it just read

	int rightnodeno = rightchild(nodeno);

If that doesn't work, we might try refactoring the code enough to get
rid of the goto, but that looks a little bit tedious.

			regards, tom lane