diff options
author | Tom Lane | 2017-01-30 21:37:15 +0000 |
---|---|---|
committer | Tom Lane | 2017-01-30 21:37:26 +0000 |
commit | 511ae628f31b4e791cd5c7836e46cb84dcf145fd (patch) | |
tree | 22e592d129edd1004003680bec809ab1c5e67428 /src/bin/psql/input.c | |
parent | 46aae5949f56580281a0f487c785c745d8856a04 (diff) |
Make psql reject attempts to set special variables to invalid values.
Previously, if the user set a special variable such as ECHO to an
unrecognized value, psql would bleat but store the new value anyway, and
then fall back to a default setting for the behavior controlled by the
variable. This was agreed to be a not particularly good idea. With
this patch, invalid values result in an error message and no change in
state.
(But this applies only to variables that affect psql's behavior; purely
informational variables such as ENCODING can still be set to random
values.)
To do this, modify the API for psql's assign-hook functions so that they
can return an OK/not OK result, and give them the responsibility for
printing error messages when they reject a value. Adjust the APIs for
ParseVariableBool and ParseVariableNum to support the new behavior
conveniently.
In passing, document the variable VERSION, which had somehow escaped that.
And improve the quite-inadequate commenting in psql/variables.c.
Daniel Vérité, reviewed by Rahila Syed, some further tweaking by me
Discussion: https://postgr.es/m/7356e741-fa59-4146-a8eb-cf95fd6b21fb@mm
Diffstat (limited to 'src/bin/psql/input.c')
-rw-r--r-- | src/bin/psql/input.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/bin/psql/input.c b/src/bin/psql/input.c index 972bea4cbf8..3e3e97ad0d2 100644 --- a/src/bin/psql/input.c +++ b/src/bin/psql/input.c @@ -541,7 +541,7 @@ finishInput(void) { int hist_size; - hist_size = GetVariableNum(pset.vars, "HISTSIZE", 500, -1, true); + hist_size = GetVariableNum(pset.vars, "HISTSIZE", 500, -1); (void) saveHistory(psql_history, hist_size); free(psql_history); psql_history = NULL; |