Re: TRUNCATE memory leak with temporary tables? - Mailing list pgsql-general

From Tom Lane
Subject Re: TRUNCATE memory leak with temporary tables?
Date
Msg-id 1976587.1622208133@sss.pgh.pa.us
Whole thread Raw
In response to Re: TRUNCATE memory leak with temporary tables?  (Vijaykumar Jain <vijaykumarjain.github@gmail.com>)
Responses Re: TRUNCATE memory leak with temporary tables?
Re: TRUNCATE memory leak with temporary tables?
List pgsql-general
Vijaykumar Jain <vijaykumarjain.github@gmail.com> writes:
> I too see growth when text type is used, but not when int or even fixed
> size char(10) is used.
> ...
> but then i still do not understand how a col type *text* which is dynamic
> results in mem growth (coz there are no rows inserted, i understand for
> long strings db does work to compress, move them to toast tables etc) but
> these are empty rows.

The text column would cause the table to have an associated toast table [1],
which in turn would have an index.  Both of those would be reallocated as
new files on-disk during TRUNCATE, just like the table proper.

A plausible theory here is that TRUNCATE leaks some storage associated
with an index's relcache entry, but not any for a plain table.

            regards, tom lane

[1] https://www.postgresql.org/docs/current/storage-toast.html



pgsql-general by date:

Previous
From: Alban Hertroys
Date:
Subject: WARNING: oldest xmin is far in the past
Next
From: Vijaykumar Jain
Date:
Subject: Re: TRUNCATE memory leak with temporary tables?