]> granicus.if.org Git - postgresql/commitdiff
Must check indisready not just indisvalid when dumping from 9.2 server.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 29 Mar 2013 02:09:20 +0000 (22:09 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 29 Mar 2013 02:09:20 +0000 (22:09 -0400)
9.2 uses a kluge representation of "indislive"; we have to account for
that when examining pg_index.  Simplest solution is to check indisready
for 9.0 and 9.1 as well; that's harmless though unnecessary, so it's
not worth making a version distinction for.

Fixes oversight in commit 683abc73dff549e94555d4020dae8d02f32ed78b,
as noted by Andres Freund.

src/bin/pg_dump/pg_dump.c

index 183408d1bc6d027d05ba58bc10299d7c467ee942..f6ad798f58983d6e49c7a043bc089b50554bca20 100644 (file)
@@ -4520,6 +4520,10 @@ getIndexes(Archive *fout, TableInfo tblinfo[], int numTables)
                resetPQExpBuffer(query);
                if (fout->remoteVersion >= 90000)
                {
+                       /*
+                        * the test on indisready is necessary in 9.2, and harmless in
+                        * earlier/later versions
+                        */
                        appendPQExpBuffer(query,
                                                          "SELECT t.tableoid, t.oid, "
                                                          "t.relname AS indexname, "
@@ -4540,7 +4544,7 @@ getIndexes(Archive *fout, TableInfo tblinfo[], int numTables)
                                                          "i.indexrelid = c.conindid AND "
                                                          "c.contype IN ('p','u','x')) "
                                                          "WHERE i.indrelid = '%u'::pg_catalog.oid "
-                                                         "AND i.indisvalid "
+                                                         "AND i.indisvalid AND i.indisready "
                                                          "ORDER BY indexname",
                                                          tbinfo->dobj.catId.oid);
                }