| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | Robert Haas <robertmhaas(at)gmail(dot)com> |
| Cc: | Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org |
| Subject: | Re: Set arbitrary GUC options during initdb |
| Date: | 2023-01-27 15:53:42 |
| Message-ID: | 3332912.1674834822@sss.pgh.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Robert Haas <robertmhaas(at)gmail(dot)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.
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Robert Haas | 2023-01-27 15:53:54 | Re: improving user.c error messages |
| Previous Message | Nathan Bossart | 2023-01-27 15:52:36 | Re: improving user.c error messages |