aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bin/psql/describe.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c
index d22e4d66c74..4bdf6ce965e 100644
--- a/src/bin/psql/describe.c
+++ b/src/bin/psql/describe.c
@@ -1838,7 +1838,7 @@ describeOneTableDetails(const char *schemaname,
{
/* use "pretty" mode for expression to avoid excessive parentheses */
appendPQExpBufferStr(&buf,
- ",\n (SELECT substring(pg_catalog.pg_get_expr(d.adbin, d.adrelid, true) for 128)"
+ ",\n (SELECT pg_catalog.pg_get_expr(d.adbin, d.adrelid, true)"
"\n FROM pg_catalog.pg_attrdef d"
"\n WHERE d.adrelid = a.attrelid AND d.adnum = a.attnum AND a.atthasdef)"
",\n a.attnotnull");
@@ -2041,7 +2041,8 @@ describeOneTableDetails(const char *schemaname,
{
char *identity;
char *generated;
- char *default_str = "";
+ char *default_str;
+ bool mustfree = false;
printTableAddCell(&cont, PQgetvalue(res, i, attcoll_col), false, false);
@@ -2057,12 +2058,15 @@ describeOneTableDetails(const char *schemaname,
else if (identity[0] == ATTRIBUTE_IDENTITY_BY_DEFAULT)
default_str = "generated by default as identity";
else if (generated[0] == ATTRIBUTE_GENERATED_STORED)
- default_str = psprintf("generated always as (%s) stored", PQgetvalue(res, i, attrdef_col));
+ {
+ default_str = psprintf("generated always as (%s) stored",
+ PQgetvalue(res, i, attrdef_col));
+ mustfree = true;
+ }
else
- /* (note: above we cut off the 'default' string at 128) */
default_str = PQgetvalue(res, i, attrdef_col);
- printTableAddCell(&cont, default_str, false, generated[0] ? true : false);
+ printTableAddCell(&cont, default_str, false, mustfree);
}
/* Info for index columns */