Re: Support for REINDEX CONCURRENTLY - Mailing list pgsql-hackers

From Michael Paquier
Subject Re: Support for REINDEX CONCURRENTLY
Date
Msg-id CAB7nPqShhesQVFaQd17zmxKag2fw7VMOkkt1g0J-yi9-tLYMGw@mail.gmail.com
Whole thread Raw
In response to Re: Support for REINDEX CONCURRENTLY  (Andres Freund <andres@2ndquadrant.com>)
Responses Re: Support for REINDEX CONCURRENTLY  (Michael Paquier <michael.paquier@gmail.com>)
List pgsql-hackers
On Fri, Jun 28, 2013 at 4:52 PM, Andres Freund <andres@2ndquadrant.com> wrote:
> On 2013-06-28 16:30:16 +0900, Michael Paquier wrote:
>> > When I ran VACUUM FULL, I got the following error.
>> >
>> > ERROR:  attempt to apply a mapping to unmapped relation 16404
>> > STATEMENT:  vacuum full;
>> This can be reproduced when doing a vacuum full on pg_proc,
>> pg_shdescription or pg_db_role_setting for example, or relations that
>> have no relfilenode (mapped catalogs), and a toast relation. I still
>> have no idea what is happening here but I am looking at it. As this
>> patch removes reltoastidxid, could that removal have effect on the
>> relation mapping of mapped catalogs? Does someone have an idea?
>
> I'd guess you broke "swap_toast_by_content" case in cluster.c? We cannot
> change the oid of a mapped relation (including indexes) since pg_class
> in other databases wouldn't get the news.
Yeah, I thought that something was broken in swap_relation_files, but
after comparing the code path taken by my code and master, and the
different function calls I can't find any difference. I'm assuming
that there is something wrong in tuptoaster.c in the fact of opening
toast index relations in order to get the Oids to be swapped... But so
far nothing I am just not sure...
--
Michael



pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: Support for REINDEX CONCURRENTLY
Next
From: Maciej Gajewski
Date:
Subject: Re: Review: query result history in psql