|
8 | 8 | *
|
9 | 9 | * Copyright (c) 2000-2010, PostgreSQL Global Development Group
|
10 | 10 | *
|
11 |
| - * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.239 2010/03/01 20:55:45 heikki Exp $ |
| 11 | + * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.240 2010/03/11 04:36:43 tgl Exp $ |
12 | 12 | */
|
13 | 13 | #include "postgres_fe.h"
|
14 | 14 |
|
@@ -1417,21 +1417,17 @@ describeOneTableDetails(const char *schemaname,
|
1417 | 1417 | if (pset.sversion >= 90000)
|
1418 | 1418 | appendPQExpBuffer(&buf,
|
1419 | 1419 | " (NOT i.indimmediate) AND "
|
1420 |
| - "EXISTS (SELECT 1 FROM pg_catalog.pg_depend d, " |
1421 |
| - "pg_catalog.pg_constraint con WHERE " |
1422 |
| - "d.classid = 'pg_catalog.pg_class'::pg_catalog.regclass AND " |
1423 |
| - "d.objid = i.indexrelid AND " |
1424 |
| - "d.refclassid = 'pg_catalog.pg_constraint'::pg_catalog.regclass AND " |
1425 |
| - "d.refobjid = con.oid AND d.deptype = 'i' AND " |
1426 |
| - "con.condeferrable) AS condeferrable,\n" |
| 1420 | + "EXISTS (SELECT 1 FROM pg_catalog.pg_constraint " |
| 1421 | + "WHERE conrelid = i.indrelid AND " |
| 1422 | + "conindid = i.indexrelid AND " |
| 1423 | + "contype IN ('p','u','x') AND " |
| 1424 | + "condeferrable) AS condeferrable,\n" |
1427 | 1425 | " (NOT i.indimmediate) AND "
|
1428 |
| - "EXISTS (SELECT 1 FROM pg_catalog.pg_depend d, " |
1429 |
| - "pg_catalog.pg_constraint con WHERE " |
1430 |
| - "d.classid = 'pg_catalog.pg_class'::pg_catalog.regclass AND " |
1431 |
| - "d.objid = i.indexrelid AND " |
1432 |
| - "d.refclassid = 'pg_catalog.pg_constraint'::pg_catalog.regclass AND " |
1433 |
| - "d.refobjid = con.oid AND d.deptype = 'i' AND " |
1434 |
| - "con.condeferred) AS condeferred,\n"); |
| 1426 | + "EXISTS (SELECT 1 FROM pg_catalog.pg_constraint " |
| 1427 | + "WHERE conrelid = i.indrelid AND " |
| 1428 | + "conindid = i.indexrelid AND " |
| 1429 | + "contype IN ('p','u','x') AND " |
| 1430 | + "condeferred) AS condeferred,\n"); |
1435 | 1431 | else
|
1436 | 1432 | appendPQExpBuffer(&buf,
|
1437 | 1433 | " false AS condeferrable, false AS condeferred,\n");
|
@@ -1553,21 +1549,17 @@ describeOneTableDetails(const char *schemaname,
|
1553 | 1549 | if (pset.sversion >= 90000)
|
1554 | 1550 | appendPQExpBuffer(&buf,
|
1555 | 1551 | ",\n (NOT i.indimmediate) AND "
|
1556 |
| - "EXISTS (SELECT 1 FROM pg_catalog.pg_depend d, " |
1557 |
| - "pg_catalog.pg_constraint con WHERE " |
1558 |
| - "d.classid = 'pg_catalog.pg_class'::pg_catalog.regclass AND " |
1559 |
| - "d.objid = i.indexrelid AND " |
1560 |
| - "d.refclassid = 'pg_catalog.pg_constraint'::pg_catalog.regclass AND " |
1561 |
| - "d.refobjid = con.oid AND d.deptype = 'i' AND " |
1562 |
| - "con.condeferrable) AS condeferrable" |
| 1552 | + "EXISTS (SELECT 1 FROM pg_catalog.pg_constraint " |
| 1553 | + "WHERE conrelid = i.indrelid AND " |
| 1554 | + "conindid = i.indexrelid AND " |
| 1555 | + "contype IN ('p','u','x') AND " |
| 1556 | + "condeferrable) AS condeferrable" |
1563 | 1557 | ",\n (NOT i.indimmediate) AND "
|
1564 |
| - "EXISTS (SELECT 1 FROM pg_catalog.pg_depend d, " |
1565 |
| - "pg_catalog.pg_constraint con WHERE " |
1566 |
| - "d.classid = 'pg_catalog.pg_class'::pg_catalog.regclass AND " |
1567 |
| - "d.objid = i.indexrelid AND " |
1568 |
| - "d.refclassid = 'pg_catalog.pg_constraint'::pg_catalog.regclass AND " |
1569 |
| - "d.refobjid = con.oid AND d.deptype = 'i' AND " |
1570 |
| - "con.condeferred) AS condeferred"); |
| 1558 | + "EXISTS (SELECT 1 FROM pg_catalog.pg_constraint " |
| 1559 | + "WHERE conrelid = i.indrelid AND " |
| 1560 | + "conindid = i.indexrelid AND " |
| 1561 | + "contype IN ('p','u','x') AND " |
| 1562 | + "condeferred) AS condeferred"); |
1571 | 1563 | else
|
1572 | 1564 | appendPQExpBuffer(&buf, ", false AS condeferrable, false AS condeferred");
|
1573 | 1565 | if (pset.sversion >= 80000)
|
|
0 commit comments