On Mon, Apr 11, 2011 at 03:19:23PM -0700, Joel Stevenson wrote:
> I'm trying to do some comparisons between the EXTERNAL and the EXTENDED
> storage methods on a bytea column and from the outside the setting doesn't
> appear to affect the value stored on initial insert, but perhaps I'm looking
> at the wrong numbers. If I create two new tables with a single bytea column
> and set one of them to external storage, then insert an existing bytea value
> from another table into each one, they appear to be of exactly the same size.
> This is using PG 9.0.3 on Debian Lenny, using the backports-sloppy deb
> package of PG 9.
>
> (I've verified that the first table has "extended" storage via pg_attribute
> and that the second table has external.)
>
> create table obj1 ( object bytea );
> create table obj2 ( object bytea );
> alter table obj2 alter column object set storage external;
> insert into obj1 ( object ) select object from serialized_content where id =
> 12345;
> insert into obj2 ( object ) select object from obj1;
If the value that shows up for insertion is already compressed, EXTERNAL storage
will not decompress it. Change this line to
insert into obj2 ( object ) select object || '' from obj1;
to observe the effect you seek.
Given the purpose of EXTERNAL storage, this might qualify as a bug.
> select pg_total_relation_size('obj1') as o1, pg_total_relation_size( (select
> reltoastrelid from pg_class where relname = 'obj1' ) ) as otoast1,
> pg_total_relation_size('obj2') as o2, pg_total_relation_size( (select
> reltoastrelid from pg_class where relname = 'obj2' ) ) as otoast2;
> o1 | otoast1 | o2 | otoast2
> -------+---------+-------+---------
> 65536 | 57344 | 65536 | 57344
> Can I use the relation size like this to determine whether or not compression
> is happening for these toast columns? If not, is there a way that I can
> confirm that it is or isn't active? The results appear to be similar for
> text columns.
Yes; the sizes you're seeing through that method should be accurate.
nm
--
Sent via pgsql-general mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general