On Fri, Aug 22, 2014 at 5:23 PM, Alvaro Herrera <alvherre@2ndquadrant.com> wrote: > > Fabrízio de Royes Mello wrote: > > On Fri, Aug 22, 2014 at 4:45 PM, Alvaro Herrera <alvherre@2ndquadrant.com> > > wrote: > > > > I pointed out, in the email just before pushing the patch, that perhaps > > > we should pass down the new relpersistence flag into finish_heap_swap, > > > and from there we could pass it down to reindex_index() which is where > > > it would be needed. I'm not sure it's worth the trouble, but I think we > > > can still ask Fabrizio to rework that part. > > > I can rework this part if it's a real concern. > > I guess we can make a better assessment by seeing what it would take. > I'm afraid it will turn out to be really ugly. > > Now, there's some desire to have unlogged indexes on logged tables; I > guess if we have that, then eventually there will also be a desire to > swap individual indexes from logged to unlogged. Perhaps whatever fix > we come up with here would pave the road for that future feature. >
Álvaro,
I did a refactoring to pass down the relpersistence to "finish_heap_swap" and then change the catalog inside the "reindex_index" instead of in the rewrite table phase.
That way we can get rid the function ATChangeIndexesPersistence in the src/backend/commands/tablecmds.c.