I was doing some testing with tsearch2 on my dev box and I've run
across this problem.
I created the tsvector and added the trigger and then i was updating
the entire table to populate the ixdfti field. When i was done, I
was unable to vacuum the table, I get this error. Any ideas an
what's going on? I've shutdown the database and made a tar of it
incase there is additional info you need.
basement_dev=# update developer_name set developer_id = developer_id;
UPDATE 262083
basement_dev=# VACUUM FULL developer_name;
ERROR: failed to re-find parent key in
"developer_name_developer_name" for deletion target page 163
basement_dev=# \d developer_name;
Table
"public.developer_name"
Column | Type
| Modifiers
-------------------+------------------------
+-----------------------------------------------------------------------
-----
developer_name_id | integer | not null default nextval
('developer_name_developer_name_id_seq'::regclass)
developer_id | integer | not null
developer_name | character varying(255) | not null
idxfti | tsvector |
t | text |
idxfti2 | tsvector |
Indexes:
"developer_name_pkey" PRIMARY KEY, btree (developer_name_id)
"developer_name_developer_id" btree (developer_id)
"developer_name_developer_name" btree (developer_name)
Triggers:
tsvectorupdate BEFORE INSERT OR UPDATE ON developer_name FOR
EACH ROW EXECUTE PROCEDURE tsearch2('idxfti', 'developer_name')
basement_dev=# select version();
version
------------------------------------------------------------------------
----------------------------------------------------------------
PostgreSQL 8.2.4 on i386-apple-darwin8.9.1, compiled by GCC i686-
apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5341)
(1 row)