Support "options" in ignore_startup_parameters again - #908
Conversation
By supporting parsing the `options` startup parameter, we accidentally stopped supporting using it in `ignore_startup_parameters`. Users have put `options` in `ignore_startup_parameters` and so upgrading to 1.20.0 might break their existing connection strings, if the actual options that are contained in the `options` startup parameter are unsupported. This changes the parsing of `options` to allow any unsupported parameter if `options` itself is in `ignore_startup_parameters`. NOTE: There's other failure paths in the `options` startup parameter parsing that could still trigger now even though `options` is in `ignore_startup_parameters`: - too long parameter - non `-c` parameter - options would have been unparsable by PostgreSQL too But honestly those seem unlikely enough that I think it's better to error for them than to ignore those errors. Fixes pgbouncer#907
|
Changes look good in restoring the compatibility with previous versions. As a separate note, ignore_startup_parameters If you need to specify multiple values, use a comma-separated list (e.g. options,extra_float_digits) |
|
@JelteF The patch looks good to me. However, I have 2 suggestions:
|
|
Added the docs. Merging this now. |
|
Hi, i trying to get pgbouncer work with some software that send following And nothing set in ignore_startup_parameters=options,client_encoding,standard_conforming_strings will get around it. Looking at code you try to find first -c option=value and then look if options is set in ignore_startup_parameters |

By supporting parsing the
optionsstartup parameter, we accidentallystopped supporting using it in
ignore_startup_parameters.Users have put
optionsinignore_startup_parametersand so upgradingto 1.20.0 might break their existing connection strings, if the actual
options that are contained in the
optionsstartup parameter areunsupported.
This changes the parsing of
optionsto allow any unsupported parameterif
optionsitself is inignore_startup_parameters.NOTE: There's other failure paths in the
optionsstartup parameterparsing that could still trigger now even though
optionsis inignore_startup_parameters:-cparameterBut honestly those seem unlikely enough that I think it's better to
error for them than to ignore those errors.
Fixes #907