Tom,
I've done more tests. After re-creating a table with just one field
(char(8000)), I inserted 26 records. Look at this:
teste=# select relname, oid, relpages, reltuples from pg_class where oid >=
169982690;
relname | oid | relpages | reltuples
--------------------------+-----------+----------+-----------
pg_toast_169982690_index | 169982694 | 1 | 0
pg_toast_169982690 | 169982692 | 0 | 0
ix | 169982695 | 2 | 26
t | 169982690 | 1 | 26
(4 rows)
Every insert was like this:
insert into t values (repeat('a',8000));
Obviously, there must be some kind of compression (the toast table is empty!).
The main question is:
Is there any way of knowing exactly WHEN there will be a new page allocation?
Is it configurable? How could I inspect compression stuff?
VACUUM FULL VERBOSE did not make any difference.
And, finally, what does it mean: "contrib/pgstattuple/ " (from your last answer)
Best regards,
Eduardo Morelli