Bug #529: UPDATE fails after an index is changed
Paul Smith (paul@cnt.org) reports a bug with a severity of 2
The lower the number the more severe it is.
Short Description
UPDATE fails after an index is changed
Long Description
I had to drop and re-create an index on a table for a large insert. Then I needed to run an UPDATE on a different table that gets its values from the first table. UPDATE fails with this error message:
'ERROR: Index 6708054 does not exist'.
Sample Code
update users set office_id = offices.office_id where users.infobase_branchid = offices.infobase_branchid and users.infobase_perid >= 18140;
No file was uploaded with this report
pgsql-bugs@postgresql.org writes:
I had to drop and re-create an index on a table for a large insert. Then I needed to run an UPDATE on a different table that gets its values from the first table. UPDATE fails with this error message:
'ERROR: Index 6708054 does not exist'.
What do you mean by "gets its values"? Is there a referential integrity
check between the two tables, or perhaps a trigger that examines the
other table?
If it's a trigger, the problem is probably due to plpgsql caching query
plans. This is a known problem that will be fixed someday (it's not
that easy to fix without giving up a lot of performance). In the
meantime, just starting a fresh backend session should make the problem
go away.
regards, tom lane