Vijaykumar Jain <vijaykumarjain.github@xxxxxxxxx> 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