Alvaro Herrera <[email protected]> writes:
> Excerpts from Jim Nasby's message of mié feb 01 20:47:05 -0300 2012:
>> I'm not certain this in what Pavel is referring to, but I have often wished
>> that I could pass something like an array into a function and have the
>> function tell me exactly how much space that would require on-disk. It's
>> pretty easy to figure that out for things like varchar and numeric, but
>> doing so for arrays or composite types requires pretty detailed knowledge of
>> PG internals.
> I think you can just use pg_column_size on a composite datum (such as a
> ROW() construct) and it will give you the right number.
If it's a freshly-computed value, pg_column_size will give you the size
of the "raw" datum. The actual size on disk might be less due to
compression, but I don't think we give you any way to find that out
short of actually storing it in a table. Note that the rangetype
internal functions Pavel suggests we should expose won't give you the
latter either.
regards, tom lane
--
Sent via pgsql-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers