One thing is little confusing, if large objects don't belong to a table, then how does restriction of 8GB table size for TAR format is applicable if BLOB data is involved.
Is it (Regular Table Data size) + (BLOB data held by OID stored in the table) ?
If just OID of a large object is copied to a different table say 'Table2'. Then for 'Table2' as well should I calculate the total size as (Regular Table Data size) + (BLOB data held by OID stored in the table) ?
There's good chance your issue os with the pg_largeobjects table rather than your user table.
girish R G peetle wrote: > PostgreSQL system function, pg_total_relation_size() doesn't include BLOB data size that is associated > with the table. > > TAR dump restore fails if the BLOB data size associated with a table is more than 8GB. (Which is > limitation of TAR format). > > I know we can switch to compressed dump format. But wanted to know if there a way to know true size of > a table.
Not easily, because technically, large objects don't belong to a table.
You'd have to write your own that scans the table and adds the size of all referenced large objects. It can probably be done in one SELECT using lo_lseek.