I have a comment about reloptions of autovacuum parameters:
I'd like to have an easier way to extract individual parameters.
Alvaro Herrera <alvherre@commandprompt.com> wrote:
> Euler Taveira de Oliveira wrote:
> > What did I already do? I refactored reloptions.c to support multiple
> > options. I tried to follow up the same way GUC do (of course, it is much
> > simpler). I'm thinking about removing (replacing?) StdRdOptions 'cause
> > we need a different struct to store reloptions. Suggestions?
> Interesting.
We store reloptions as an array of 'key=value' text, but there is
no official way to read each parameter. I always create an user
defined function to extract fillfactors, but it would be better
if we have a standard method to do that.
---- [brute force way]
CREATE FUNCTION pg_fillfactor(reloptions text[], relam OID)
RETURNS integer AS
$$
SELECT (regexp_matches(array_to_string($1, '/'), 'fillfactor=([0-9]+)'))[1]::integer AS fillfactor
UNION ALL
SELECT CASE $2 WHEN 0 THEN 100 -- heap WHEN 403 THEN 90 -- btree WHEN 405 THEN 70 -- hash
WHEN 783 THEN 90 -- gist WHEN 2742 THEN 100 -- gin END
LIMIT 1;
$$
LANGUAGE sql STABLE;
----
Regards,
---
ITAGAKI Takahiro
NTT Open Source Software Center