--- describe_74.c Fri Jun 27 10:04:30 2003 +++ describe_74_inherits.c Fri Jun 27 10:14:35 2003 @@ -928,12 +928,14 @@ *result2 = NULL, *result3 = NULL, *result4 = NULL, - *result5 = NULL; + *result5 = NULL, + *result6 = NULL; int check_count = 0, index_count = 0, foreignkey_count = 0, rule_count = 0, - trigger_count = 0; + trigger_count = 0, + inherits_count = 0; int count_footers = 0; /* count indexes */ @@ -1019,7 +1021,16 @@ foreignkey_count = PQntuples(result5); } - footers = xmalloczero((index_count + check_count + rule_count + trigger_count + foreignkey_count + 6) + /* count inherited tables */ + printfPQExpBuffer(&buf, "SELECT c.relname FROM pg_catalog.pg_class c, pg_catalog.pg_inherits i WHERE c.oid=i.inhparent AND i.inhrelid = '%s' ORDER BY inhseqno ASC", oid); + + result6 = PSQLexec(buf.data, false); + if (!result6) + goto error_return; + else + inherits_count = PQntuples(result6); + + footers = xmalloczero((index_count + check_count + rule_count + trigger_count + foreignkey_count + inherits_count + 6) * sizeof(*footers)); /* print indexes */ @@ -1135,6 +1146,21 @@ } } + /* print inherits */ + for (i = 0; i < inherits_count; i++) + { + char *s = _("Inherits"); + + if (i == 0) + printfPQExpBuffer(&buf, "%s: %s", s, PQgetvalue(result6, i, 0)); + else + printfPQExpBuffer(&buf, "%*s %s", (int) strlen(s), "", PQgetvalue(result6, i, 0)); + if (i < inherits_count - 1) + appendPQExpBuffer(&buf, ","); + + footers[count_footers++] = xstrdup(buf.data); + } + /* end of list marker */ footers[count_footers] = NULL; @@ -1143,6 +1169,7 @@ PQclear(result3); PQclear(result4); PQclear(result5); + PQclear(result6); } printTable(title.data, headers,