Re: pg_get_functiondef forgets about most GUC_LIST_INPUT GUCs
Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp>
From: Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp>
To: tgl@sss.pgh.pa.us
Cc: michael@paquier.xyz, pavel.stehule@gmail.com, a.zakirov@postgrespro.ru,
michael.paquier@gmail.com, pgsql-hackers@postgresql.org
Date: 2018-03-15T05:03:15Z
Lists: pgsql-hackers
At Thu, 15 Mar 2018 00:33:25 -0400, Tom Lane <tgl@sss.pgh.pa.us> wrote in <22193.1521088405@sss.pgh.pa.us> > Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp> writes: > > Doesn't it make sense if we provide a buildtime-script that > > collects the function names and builds a .h file containing a > > function using the list? > > Surely this is a fundamentally misguided approach. How could it > handle extension GUCs? I understand it is "out of scope" of this thread (for now). The starting issue here is "the static list of list-guc's are stale" so what a static list cannot cope with is still cannot be coped with by this. As the discussion upthread, with the dynamic (or on the fly) approach, pg_dump fails when required extension is not loaded. Especially plpgsql variables are the candidate stopper of ordinary pg_dump operation. We might have to implicitly load the module by any means to make it work. If we treat extensions properly, we must find the extension that have defined a GUC that is about to be exported, then load it. I don't think the automatic stuff is essential but the check_listvars.h is still effective to reduce the effort needed to maintain the multiple lists that should have the same set of names of the list-gucs. Or, we could cope with this issue if the list-ness of used GUCs is stored permanently in somewhere. Maybe pg_proc.proconfigislist or something... regards, -- Kyotaro Horiguchi NTT Open Source Software Center
Commits
-
Prevent extensions from creating custom GUCs that are GUC_LIST_QUOTE.
- 846b5a525746 11.0 landed
-
Fix mishandling of quoted-list GUC values in pg_dump and ruleutils.c.
- be677bb5aa79 9.3.23 landed
- a35d72923165 9.5.13 landed
- 8132f0f3856d 9.6.9 landed
- 742869946f4f 11.0 landed
- 67e02cde7373 9.4.18 landed
- 66e92878aaec 10.4 landed