Tom Lane <tgl@sss.pgh.pa.us> wrote:
> "Kevin Grittner" <Kevin.Grittner@wicourts.gov> writes:
>> So what *is* the difference between EXTENDED and MAIN?
>
> EXTENDED columns get pushed out first. So if you have some EXTENDED
> columns and some MAIN columns, it'll give preference to keeping the
> MAIN columns in-line. In the OP's case there's only one wide column
> so this is of no help.
Got it. The documentation seems less than clear on this. Perhaps the
description of MAIN on this page:
http://www.postgresql.org/docs/8.3/interactive/storage-toast.html
should be changed. How does this sound?:
MAIN allows compression but discourages out-of-line storage.
(Out-of-line storage will be performed only if the row is still too
big after compression and out-of-line storage of EXTENDED and EXTERNAL
columns.)
If there is consensus, I'll put that into patch form.
It seems to me that MAIN might be a more useful option if it was more
aggressive about avoiding out-of-line storage; perhaps only if the row
doesn't fit by itself on a single page? Does anyone else think so?
-Kevin