Re: fillfactor gets set to zero for toast tables

Alvaro Herrera <alvherre@commandprompt.com>

From: Alvaro Herrera <alvherre@commandprompt.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2010-05-18T20:44:20Z
Lists: pgsql-hackers

Attachments

Excerpts from Tom Lane's message of vie may 14 15:03:57 -0400 2010:

> Maybe a better solution is to have some kind of notion of a default-only
> entry, which is sufficient to insert the default into the struct but
> isn't accepted as a user-settable item.

This patch (for 8.4, but applies fuzzily to 9.0) implements this idea.
Note that there's no explicit check that every heap option has a
corresponding toast option; that's left to the developer's judgement to
add.  I added the new member to relopt_gen struct so that existing
entries did not require changes in initializers.

(I'll leave the error as ERRCODE_CANT_CHANGE_RUNTIME_PARAM unless
someone thinks ERRCODE_INVALID_PARAMETER_VALUE is better)

I checked and this is the only heap setting that did not have a toast
setting.

I'll leave this open to comments for a bit more time than usual, to give
room for pgcon beers and such ...
--