ALTER SYSTEM and ParseConfigFile()

From: Stephen Frost <sfrost(at)snowman(dot)net>
To: Tatsuo Ishii <ishii(at)postgresql(dot)org>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: ALTER SYSTEM and ParseConfigFile()
Date: 2015-05-08 17:56:27
Message-ID: 20150508175627.GX30322@tamriel.snowman.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Greetings,

While working through the pg_file_settings patch, I came across this
comment above ParseConfigFp() (which is called by ParseConfigFile()):

src/backend/utils/misc/guc-file.l:603
------------------------------------------------------
* Output parameters:
* head_p, tail_p: head and tail of linked list of name/value pairs
*
* *head_p and *tail_p must be initialized to NULL before calling the outer
* recursion level. On exit, they contain a list of name-value pairs read
* from the input file(s).
------------------------------------------------------

However, in 65d6e4c, ProcessConfigFile(), which isn't part of the
recursion, was updated with a second call to ParseConfigFile (for the
PG_AUTOCONF_FILENAME file), passing in the head and tail values which
had been set by the first call.

I'm a bit nervous that there might be an issue here due to how flex
errors are handled and the recursion, though it might also be fine
(but then why comment about it?).

In any case, either the comment needs to be changed, or we should be
passing clean NULL variables to ParseConfigFile and then combining the
results in ProcessConfigFile().

This is pretty orthogonal to the changes for pg_file_settings, so I'm
going to continue working through that and hopefully get it wrapped up
soon.

Thanks!

Stephen

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2015-05-08 18:02:13 Re: ALTER SYSTEM and ParseConfigFile()
Previous Message Tom Lane 2015-05-08 17:46:26 Re: Custom/Foreign-Join-APIs (Re: [v9.5] Custom Plan API)