On Wed, Nov 25, 2020 at 11:15:39AM -0500, Tom Lane wrote:
> I wrote:
> > Peter Eisentraut <peter.eisentraut@enterprisedb.com> writes:
> >> I think we should get rid of the truncating. Otherwise, there is no way
> >> to actually get the full information, is there? (Other than pg_dump or
> >> manual catalog queries.)
>
> > That'd be okay with me. It's always seemed a little odd that we do that
> > for attrdefs but not anything else.
>
> Here's a proposed patch for that.
>
> After looking a bit closer, I saw that the memory leak I was worried
> about before is not real, because the code passes mustfree = true to
> printTableAddCell. However, I still don't like it one bit, because you
> need some undocumented and fragile assumptions about the relationship
> between attidentity and attgenerated to conclude that we won't instead
> have a false free() attempt on something that mustn't be free'd. So I
> think we should adjust the code to track mustfree explicitly, as done
> below.
>
> Should we back-patch this? I think that the truncation behavior became
> significantly more of a problem with the addition of the GENERATED
> feature; before that it was clearer what was going on. So I'm mildly
> inclined to back-patch to v12 where that came in.
Works for me.
--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EnterpriseDB https://enterprisedb.com
The usefulness of a cup is in its emptiness, Bruce Lee