• Tom Lane's avatar
    In psql's \d commands, don't truncate attribute default values. · 314fb9ba
    Tom Lane authored
    Historically, psql has truncated the text of a column's default
    expression at 128 characters.  This is unlike any other behavior
    in describe.c, and it's become particularly confusing now that
    the limit is only applied to the expression proper and not to
    the "generated always as (...) stored" text that may get wrapped
    around it.
    
    Excavation in our git history suggests that the original motivation
    for this limit was not really to limit the display width (as I'd long
    supposed), but to make it safe to use a fixed-width output buffer to
    store the result.  That implementation restriction is long gone of
    course, but the limit remained.  Let's just get rid of it.
    
    While here, rearrange the logic about when to free the output string
    so that it's not so dependent on unstated assumptions about the
    possible values of attidentity and attgenerated.
    
    Per bug #16743 from David Turon.  Back-patch to v12 where GENERATED
    came in.  (Arguably we could take it back further, but I'm hesitant
    to change the behavior of long-stable branches for this.)
    
    Discussion: https://postgr.es/m/16743-7b1bacc4af76e7ad@postgresql.org
    314fb9ba
describe.c 187 KB