Re: Support for REINDEX CONCURRENTLY

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Michael Paquier <michael.paquier@gmail.com>
Cc: Fujii Masao <masao.fujii@gmail.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>, Peter Eisentraut <peter_e@gmx.net>, Tom Lane <tgl@sss.pgh.pa.us>, Simon Riggs <simon@2ndquadrant.com>
Date: 2013-03-28T01:35:40Z
Lists: pgsql-hackers
On 2013-03-19 08:57:31 +0900, Michael Paquier wrote:
> On Tue, Mar 19, 2013 at 3:24 AM, Fujii Masao <masao.fujii@gmail.com> wrote:
> 
> > On Wed, Mar 13, 2013 at 9:04 PM, Michael Paquier
> > <michael.paquier@gmail.com> wrote:
> > > I have been working on improving the code of the 2 patches:
> > > 1) reltoastidxid removal:
> > <snip>
> > > - Fix a bug with pg_dump and binary upgrade. One valid index is necessary
> > > for a given toast relation.
> >
> > Is this bugfix related to the following?
> >
> >         appendPQExpBuffer(upgrade_query,
> > -                                         "SELECT c.reltoastrelid,
> > t.reltoastidxid "
> > +                                         "SELECT c.reltoastrelid,
> > t.indexrelid "
> >                                           "FROM pg_catalog.pg_class c LEFT
> > JOIN "
> > -                                         "pg_catalog.pg_class t ON
> > (c.reltoastrelid = t.oid) "
> > -                                         "WHERE c.oid =
> > '%u'::pg_catalog.oid;",
> > +                                         "pg_catalog.pg_index t ON
> > (c.reltoastrelid = t.indrelid) "
> > +                                         "WHERE c.oid =
> > '%u'::pg_catalog.oid AND t.indisvalid "
> > +                                         "LIMIT 1",
> >
> Yes.
> 
> 
> > Don't indisready and indislive need to be checked?
> >
> An index is valid if it is already ready and line. We could add such check
> for safely but I don't think it is necessary.

Note that thats not true for 9.2. live && !ready represents isdead there, since
the need for that was only recognized after the release.

Greetings,

Andres Freund


Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Background worker processes

  2. Fix assorted bugs in CREATE/DROP INDEX CONCURRENTLY.

  3. Work around unportable behavior of malloc(0) and realloc(NULL, 0).

  4. Properly set relpersistence for fake relcache entries.