Hello, First sorry for my english. Today we store our byteas in tables. We are moving these files to storages. During the process we set the bytea column to null and execute vacum full (in the table itself and in the table pg_catalog.pg_largeobject).
pg_largeobject has nothing to do with data stored in bytea columns.
In some tables we continue with pg_total_relation_size> 24GB (practically the initial size). Data in the toast table. If I run a new vacuum full on the main table, the space is freed.
Data can only be freed once every snapshot that could possibly be interested in it has closed.
So if you have any long-running statements, or long-open transactions with isolation level above read-committed, it would inhibit the removal of the data by vacuum full (or any other level of vacuum)