BUG #6629: Creating a gist index fails with "too many LWLocks taken" - Mailing list pgsql-bugs

From tom@tomforb.es
Subject BUG #6629: Creating a gist index fails with "too many LWLocks taken"
Date
Msg-id E1SQkyu-0004nP-IW@wrigleys.postgresql.org
Whole thread Raw
Responses Re: BUG #6629: Creating a gist index fails with "too many LWLocks taken"  (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>)
List pgsql-bugs
The following bug has been logged on the website:

Bug reference:      6629
Logged by:          Tom Forbes
Email address:      tom@tomforb.es
PostgreSQL version: 9.1.3
Operating system:   Windows 7 64bit
Description:=20=20=20=20=20=20=20=20

On a test database with 10,000 rows, each containing a array of 50 unique
random integers from 0 to 1000 creating a gist index on the column with
gist__int_ops as an option fails with the following error:
"too many LWLocks taken".

My application is not leaking locks: running this through pgadmin results in
the same error. Creating the index without gist__int_ops or with
gist__intbig_ops succeeds however. Creating the index on the same number of
rows with only 25 elements succeeds.

The documentation (http://www.postgresql.org/docs/9.1/static/intarray.html)
states that using gist__intbig_ops is "more suitable for indexing large
numbers of distinct array values" not that gist__int_ops cannot handle large
numbers of distinct values.

I have extracted out some code from the project I was working on that
reproduces the problem on my machine. You can find it here:
http://nopaste.snit.ch/138083

pgsql-bugs by date:

Previous
From: picard_alfa_uno@hotmail.com
Date:
Subject: BUG #6630: Error Inicialising database cluster
Next
From: ignas@pow.lt
Date:
Subject: BUG #6632: "before delete" triggers that delete rows from the same table can invalidate constraints