Commit e4fddfd4 authored by Peter Eisentraut's avatar Peter Eisentraut

psql: Support identity columns in sequence display

Where the footer for an owned serial sequence would say "Owned by", put
something analogous for a sequence belonging to an identity column.
Reported-by: default avatarVitaly Burovoy <vitaly.burovoy@gmail.com>
parent 5e1ccd48
...@@ -2006,7 +2006,8 @@ describeOneTableDetails(const char *schemaname, ...@@ -2006,7 +2006,8 @@ describeOneTableDetails(const char *schemaname,
/* Get the column that owns this sequence */ /* Get the column that owns this sequence */
printfPQExpBuffer(&buf, "SELECT pg_catalog.quote_ident(nspname) || '.' ||" printfPQExpBuffer(&buf, "SELECT pg_catalog.quote_ident(nspname) || '.' ||"
"\n pg_catalog.quote_ident(relname) || '.' ||" "\n pg_catalog.quote_ident(relname) || '.' ||"
"\n pg_catalog.quote_ident(attname)" "\n pg_catalog.quote_ident(attname),"
"\n d.deptype"
"\nFROM pg_catalog.pg_class c" "\nFROM pg_catalog.pg_class c"
"\nINNER JOIN pg_catalog.pg_depend d ON c.oid=d.refobjid" "\nINNER JOIN pg_catalog.pg_depend d ON c.oid=d.refobjid"
"\nINNER JOIN pg_catalog.pg_namespace n ON n.oid=c.relnamespace" "\nINNER JOIN pg_catalog.pg_namespace n ON n.oid=c.relnamespace"
...@@ -2016,7 +2017,7 @@ describeOneTableDetails(const char *schemaname, ...@@ -2016,7 +2017,7 @@ describeOneTableDetails(const char *schemaname,
"\nWHERE d.classid='pg_catalog.pg_class'::pg_catalog.regclass" "\nWHERE d.classid='pg_catalog.pg_class'::pg_catalog.regclass"
"\n AND d.refclassid='pg_catalog.pg_class'::pg_catalog.regclass" "\n AND d.refclassid='pg_catalog.pg_class'::pg_catalog.regclass"
"\n AND d.objid=%s" "\n AND d.objid=%s"
"\n AND d.deptype='a'", "\n AND d.deptype IN ('a', 'i')",
oid); oid);
result = PSQLexec(buf.data); result = PSQLexec(buf.data);
...@@ -2024,9 +2025,19 @@ describeOneTableDetails(const char *schemaname, ...@@ -2024,9 +2025,19 @@ describeOneTableDetails(const char *schemaname,
goto error_return; goto error_return;
else if (PQntuples(result) == 1) else if (PQntuples(result) == 1)
{ {
printfPQExpBuffer(&buf, _("Owned by: %s"), switch (PQgetvalue(result, 0, 1)[0])
PQgetvalue(result, 0, 0)); {
printTableAddFooter(&cont, buf.data); case 'a':
printfPQExpBuffer(&buf, _("Owned by: %s"),
PQgetvalue(result, 0, 0));
printTableAddFooter(&cont, buf.data);
break;
case 'i':
printfPQExpBuffer(&buf, _("Sequence for identity column: %s"),
PQgetvalue(result, 0, 0));
printTableAddFooter(&cont, buf.data);
break;
}
} }
/* /*
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment