Index: src/bin/psql/describe.c =================================================================== RCS file: /cvsroot/pgsql-server/src/bin/psql/describe.c,v retrieving revision 1.95 diff -c -c -r1.95 describe.c *** src/bin/psql/describe.c 22 Mar 2004 03:38:24 -0000 1.95 --- src/bin/psql/describe.c 31 Mar 2004 04:31:36 -0000 *************** *** 831,837 **** PGresult *result; printfPQExpBuffer(&buf, ! "SELECT i.indisunique, i.indisprimary, a.amname, c2.relname,\n" " pg_catalog.pg_get_expr(i.indpred, i.indrelid, true)\n" "FROM pg_catalog.pg_index i, pg_catalog.pg_class c, pg_catalog.pg_class c2, pg_catalog.pg_am a\n" "WHERE i.indexrelid = c.oid AND c.oid = '%s' AND c.relam = a.oid\n" --- 831,837 ---- PGresult *result; printfPQExpBuffer(&buf, ! "SELECT i.indisunique, i.indisprimary, i.indisclustered, a.amname, c2.relname,\n" " pg_catalog.pg_get_expr(i.indpred, i.indrelid, true)\n" "FROM pg_catalog.pg_index i, pg_catalog.pg_class c, pg_catalog.pg_class c2, pg_catalog.pg_am a\n" "WHERE i.indexrelid = c.oid AND c.oid = '%s' AND c.relam = a.oid\n" *************** *** 850,858 **** { char *indisunique = PQgetvalue(result, 0, 0); char *indisprimary = PQgetvalue(result, 0, 1); ! char *indamname = PQgetvalue(result, 0, 2); ! char *indtable = PQgetvalue(result, 0, 3); ! char *indpred = PQgetvalue(result, 0, 4); if (strcmp(indisprimary, "t") == 0) printfPQExpBuffer(&tmpbuf, _("PRIMARY KEY, ")); --- 850,859 ---- { char *indisunique = PQgetvalue(result, 0, 0); char *indisprimary = PQgetvalue(result, 0, 1); ! char *indisclustered = PQgetvalue(result, 0, 2); ! char *indamname = PQgetvalue(result, 0, 3); ! char *indtable = PQgetvalue(result, 0, 4); ! char *indpred = PQgetvalue(result, 0, 5); if (strcmp(indisprimary, "t") == 0) printfPQExpBuffer(&tmpbuf, _("PRIMARY KEY, ")); *************** *** 869,874 **** --- 870,878 ---- if (strlen(indpred)) appendPQExpBuffer(&tmpbuf, _(", predicate (%s)"), indpred); + if (strcmp(indisclustered, "t") == 0) + appendPQExpBuffer(&tmpbuf, _(", CLUSTER")); + footers = pg_malloc_zero(2 * sizeof(*footers)); footers[0] = pg_strdup(tmpbuf.data); footers[1] = NULL; *************** *** 948,954 **** if (tableinfo.hasindex) { printfPQExpBuffer(&buf, ! "SELECT c2.relname, i.indisprimary, i.indisunique, " "pg_catalog.pg_get_indexdef(i.indexrelid, 0, true)\n" "FROM pg_catalog.pg_class c, pg_catalog.pg_class c2, pg_catalog.pg_index i\n" "WHERE c.oid = '%s' AND c.oid = i.indrelid AND i.indexrelid = c2.oid\n" --- 952,958 ---- if (tableinfo.hasindex) { printfPQExpBuffer(&buf, ! "SELECT c2.relname, i.indisprimary, i.indisunique, i.indisclustered, " "pg_catalog.pg_get_indexdef(i.indexrelid, 0, true)\n" "FROM pg_catalog.pg_class c, pg_catalog.pg_class c2, pg_catalog.pg_index i\n" "WHERE c.oid = '%s' AND c.oid = i.indrelid AND i.indexrelid = c2.oid\n" *************** *** 1080,1093 **** (strcmp(PQgetvalue(result1, i, 2), "t") == 0 ? _(" UNIQUE,") : "")); - /* Everything after "USING" is echoed verbatim */ ! indexdef = PQgetvalue(result1, i, 3); usingpos = strstr(indexdef, " USING "); if (usingpos) indexdef = usingpos + 7; appendPQExpBuffer(&buf, " %s", indexdef); footers[count_footers++] = pg_strdup(buf.data); } --- 1084,1099 ---- (strcmp(PQgetvalue(result1, i, 2), "t") == 0 ? _(" UNIQUE,") : "")); /* Everything after "USING" is echoed verbatim */ ! indexdef = PQgetvalue(result1, i, 4); usingpos = strstr(indexdef, " USING "); if (usingpos) indexdef = usingpos + 7; appendPQExpBuffer(&buf, " %s", indexdef); + + if (strcmp(PQgetvalue(result1, i, 3), "t") == 0) + appendPQExpBuffer(&buf, _(" CLUSTER")); footers[count_footers++] = pg_strdup(buf.data); }