@@ -6508,6 +6508,50 @@ getIndexes(Archive *fout, TableInfo tblinfo[], int numTables)
6508
6508
}
6509
6509
appendPQExpBufferChar(tbloids, '}');
6510
6510
6511
+ resetPQExpBuffer(query);
6512
+
6513
+ appendPQExpBuffer(query,
6514
+ "SELECT t.tableoid, t.oid, i.indrelid, "
6515
+ "t.relname AS indexname, "
6516
+ "pg_catalog.pg_get_indexdef(i.indexrelid) AS indexdef, "
6517
+ "i.indkey, i.indisclustered, "
6518
+ "c.contype, c.conname, "
6519
+ "c.condeferrable, c.condeferred, "
6520
+ "c.tableoid AS contableoid, "
6521
+ "c.oid AS conoid, "
6522
+ "pg_catalog.pg_get_constraintdef(c.oid, false) AS condef, "
6523
+ "(SELECT spcname FROM pg_catalog.pg_tablespace s WHERE s.oid = t.reltablespace) AS tablespace, "
6524
+ "t.reloptions AS indreloptions, ");
6525
+
6526
+
6527
+ if (fout->remoteVersion >= 90400)
6528
+ appendPQExpBuffer(query,
6529
+ "i.indisreplident, ");
6530
+ else
6531
+ appendPQExpBuffer(query,
6532
+ "false AS indisreplident, ");
6533
+
6534
+ if (fout->remoteVersion >= 110000)
6535
+ appendPQExpBuffer(query,
6536
+ "inh.inhparent AS parentidx, "
6537
+ "i.indnkeyatts AS indnkeyatts, "
6538
+ "i.indnatts AS indnatts, "
6539
+ "(SELECT pg_catalog.array_agg(attnum ORDER BY attnum) "
6540
+ " FROM pg_catalog.pg_attribute "
6541
+ " WHERE attrelid = i.indexrelid AND "
6542
+ " attstattarget >= 0) AS indstatcols, "
6543
+ "(SELECT pg_catalog.array_agg(attstattarget ORDER BY attnum) "
6544
+ " FROM pg_catalog.pg_attribute "
6545
+ " WHERE attrelid = i.indexrelid AND "
6546
+ " attstattarget >= 0) AS indstatvals ");
6547
+ else
6548
+ appendPQExpBuffer(query,
6549
+ "0 AS parentidx, "
6550
+ "i.indnatts AS indnkeyatts, "
6551
+ "i.indnatts AS indnatts, "
6552
+ "'' AS indstatcols, "
6553
+ "'' AS indstatvals ");
6554
+
6511
6555
/*
6512
6556
* The point of the messy-looking outer join is to find a constraint that
6513
6557
* is related by an internal dependency link to the index. If we find one,
@@ -6520,29 +6564,6 @@ getIndexes(Archive *fout, TableInfo tblinfo[], int numTables)
6520
6564
if (fout->remoteVersion >= 110000)
6521
6565
{
6522
6566
appendPQExpBuffer(query,
6523
- "SELECT t.tableoid, t.oid, i.indrelid, "
6524
- "t.relname AS indexname, "
6525
- "inh.inhparent AS parentidx, "
6526
- "pg_catalog.pg_get_indexdef(i.indexrelid) AS indexdef, "
6527
- "i.indnkeyatts AS indnkeyatts, "
6528
- "i.indnatts AS indnatts, "
6529
- "i.indkey, i.indisclustered, "
6530
- "i.indisreplident, "
6531
- "c.contype, c.conname, "
6532
- "c.condeferrable, c.condeferred, "
6533
- "c.tableoid AS contableoid, "
6534
- "c.oid AS conoid, "
6535
- "pg_catalog.pg_get_constraintdef(c.oid, false) AS condef, "
6536
- "(SELECT spcname FROM pg_catalog.pg_tablespace s WHERE s.oid = t.reltablespace) AS tablespace, "
6537
- "t.reloptions AS indreloptions, "
6538
- "(SELECT pg_catalog.array_agg(attnum ORDER BY attnum) "
6539
- " FROM pg_catalog.pg_attribute "
6540
- " WHERE attrelid = i.indexrelid AND "
6541
- " attstattarget >= 0) AS indstatcols,"
6542
- "(SELECT pg_catalog.array_agg(attstattarget ORDER BY attnum) "
6543
- " FROM pg_catalog.pg_attribute "
6544
- " WHERE attrelid = i.indexrelid AND "
6545
- " attstattarget >= 0) AS indstatvals "
6546
6567
"FROM unnest('%s'::pg_catalog.oid[]) AS src(tbloid)\n"
6547
6568
"JOIN pg_catalog.pg_index i ON (src.tbloid = i.indrelid) "
6548
6569
"JOIN pg_catalog.pg_class t ON (t.oid = i.indexrelid) "
@@ -6558,65 +6579,13 @@ getIndexes(Archive *fout, TableInfo tblinfo[], int numTables)
6558
6579
"ORDER BY i.indrelid, indexname",
6559
6580
tbloids->data);
6560
6581
}
6561
- else if (fout->remoteVersion >= 90400)
6562
- {
6563
- /*
6564
- * the test on indisready is necessary in 9.2, and harmless in
6565
- * earlier/later versions
6566
- */
6567
- appendPQExpBuffer(query,
6568
- "SELECT t.tableoid, t.oid, i.indrelid, "
6569
- "t.relname AS indexname, "
6570
- "0 AS parentidx, "
6571
- "pg_catalog.pg_get_indexdef(i.indexrelid) AS indexdef, "
6572
- "i.indnatts AS indnkeyatts, "
6573
- "i.indnatts AS indnatts, "
6574
- "i.indkey, i.indisclustered, "
6575
- "i.indisreplident, "
6576
- "c.contype, c.conname, "
6577
- "c.condeferrable, c.condeferred, "
6578
- "c.tableoid AS contableoid, "
6579
- "c.oid AS conoid, "
6580
- "pg_catalog.pg_get_constraintdef(c.oid, false) AS condef, "
6581
- "(SELECT spcname FROM pg_catalog.pg_tablespace s WHERE s.oid = t.reltablespace) AS tablespace, "
6582
- "t.reloptions AS indreloptions, "
6583
- "'' AS indstatcols, "
6584
- "'' AS indstatvals "
6585
- "FROM unnest('%s'::pg_catalog.oid[]) AS src(tbloid)\n"
6586
- "JOIN pg_catalog.pg_index i ON (src.tbloid = i.indrelid) "
6587
- "JOIN pg_catalog.pg_class t ON (t.oid = i.indexrelid) "
6588
- "LEFT JOIN pg_catalog.pg_constraint c "
6589
- "ON (i.indrelid = c.conrelid AND "
6590
- "i.indexrelid = c.conindid AND "
6591
- "c.contype IN ('p','u','x')) "
6592
- "WHERE i.indisvalid AND i.indisready "
6593
- "ORDER BY i.indrelid, indexname",
6594
- tbloids->data);
6595
- }
6596
6582
else
6597
6583
{
6598
6584
/*
6599
6585
* the test on indisready is necessary in 9.2, and harmless in
6600
6586
* earlier/later versions
6601
6587
*/
6602
6588
appendPQExpBuffer(query,
6603
- "SELECT t.tableoid, t.oid, i.indrelid, "
6604
- "t.relname AS indexname, "
6605
- "0 AS parentidx, "
6606
- "pg_catalog.pg_get_indexdef(i.indexrelid) AS indexdef, "
6607
- "i.indnatts AS indnkeyatts, "
6608
- "i.indnatts AS indnatts, "
6609
- "i.indkey, i.indisclustered, "
6610
- "false AS indisreplident, "
6611
- "c.contype, c.conname, "
6612
- "c.condeferrable, c.condeferred, "
6613
- "c.tableoid AS contableoid, "
6614
- "c.oid AS conoid, "
6615
- "pg_catalog.pg_get_constraintdef(c.oid, false) AS condef, "
6616
- "(SELECT spcname FROM pg_catalog.pg_tablespace s WHERE s.oid = t.reltablespace) AS tablespace, "
6617
- "t.reloptions AS indreloptions, "
6618
- "'' AS indstatcols, "
6619
- "'' AS indstatvals "
6620
6589
"FROM unnest('%s'::pg_catalog.oid[]) AS src(tbloid)\n"
6621
6590
"JOIN pg_catalog.pg_index i ON (src.tbloid = i.indrelid) "
6622
6591
"JOIN pg_catalog.pg_class t ON (t.oid = i.indexrelid) "
0 commit comments