On Fri, Jan 27, 2023 at 8:53 AM Tom Lane <t...@sss.pgh.pa.us> wrote: > Robert Haas <robertmh...@gmail.com> writes: > > The idea is that instead of: > > > replace_token(conflines, "#max_connections = 100", repltok); > > > You'd write something like: > > > replace_guc_value(conflines, "max_connections", repltok); > > > Which would look for a line matching /^#max_connections\s+=\s/, and > > then identify everything following that point up to the first #. It > > would replace all that stuff with repltok, but if the replacement is > > shorter than the original, it would pad with spaces to get back to the > > original length. And otherwise it would add a single space, so that if > > you set a super long GUC value there's still at least one space > > between the end of the value and the comment that follows. > > Well, yeah, I was trying to avoid writing that ;-). There's even > one more wrinkle: we might already have removed the initial '#', > if one does say "-c max_connections=N", because this logic won't > know whether the -c switch matches one of initdb's predetermined > substitutions. > > > There might be some quoting-related problems with this idea, not sure. > > '#' in a value might confuse it, but we could probably take the last '#' > not the first. > > Anyway, it seems like I gotta work harder. I'll produce a > new patch. > > How about just adding a "section" to the end of the file as needed:
# AdHoc Settings Specified During InitDB max_connections=75 ... David J.