Recreating indices safely - Mailing list pgsql-general

From Denis Perchine
Subject Recreating indices safely
Date
Msg-id 200109181659.f8IGx4t29321@gw.ac-sw.com
Whole thread Raw
Responses Re: Recreating indices safely
List pgsql-general
Hello,

I have quite strange problem with 7.1.3.
The problem is that when I try to recreate indices in working system
(it is needed as updates are quite intensive, and you need to make indices
smaller) I realise that some queries using these indices are failed.

They are failed with error something like can not find relation <oid>.
This is understandable. Query was prepared, all oids was fixed, and between
query prepare, and execution I drop the index (I create a new one, and drop an old
one afterwards). As far as I can understand drop index should obtain exclusive lock
on table it is created on. Is it correct? The only explanation I can find is that this lock
is not obtained.

Any suggestions/comments/ideas?

BTW, using begin; lock table; create index;drop index;commit; is not working, as
create index can not detect that table is already locked by current transaction, and tries to lock it again...
This is also bug IMHO.

--
Sincerely Yours,
Denis Perchine

----------------------------------
E-Mail: dyp@perchine.com
HomePage: http://www.perchine.com/dyp/
FidoNet: 2:5000/120.5
----------------------------------


pgsql-general by date:

Previous
From: rdear
Date:
Subject: PLPGSQL regexe
Next
From: Cosmos Tong
Date:
Subject: Error in compiling PHP with PostgreSQL support