On Mon, Jan 28, 2013 at 8:44 PM, Andres Freund <and...@anarazel.de> wrote:
> > Another argument that would be enough for a rejection of this patch by a > > committer is the problem of invalid toast indexes that cannot be removed > up > > cleanly by an operator. As long as there is not a clean solution for > > that... > > I think that part is relatively easy to fix, I wouldn't worry too > much. > The more complex part is how to get tuptoaster.c to update the > concurrently created index. That's what I worry about. Its not going > through the normal executor paths but manually updates the toast > index - which means it won't update the indisready && !indisvalid > index... > I included in the patch some stuff to update the reltoastidxid of the parent relation of the toast index. Have a look at index.c:index_concurrent_swap. The particular case I had in mind was if there is a failure of the server during the concurrent reindex of a toast index. When server restarts, the toast relation will have an invalid index and this cannot be dropped by an operator via SQL. -- Michael Paquier http://michael.otacoo.com