aboutsummaryrefslogtreecommitdiff
path: root/src/bin/psql/common.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2017-01-30 16:37:15 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2017-01-30 16:37:26 -0500
commit511ae628f31b4e791cd5c7836e46cb84dcf145fd (patch)
tree22e592d129edd1004003680bec809ab1c5e67428 /src/bin/psql/common.c
parent46aae5949f56580281a0f487c785c745d8856a04 (diff)
downloadpostgresql-511ae628f31b4e791cd5c7836e46cb84dcf145fd.tar.gz
postgresql-511ae628f31b4e791cd5c7836e46cb84dcf145fd.zip
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/common.c')
-rw-r--r--src/bin/psql/common.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/src/bin/psql/common.c b/src/bin/psql/common.c
index e1b04de0132..6e3acdc416e 100644
--- a/src/bin/psql/common.c
+++ b/src/bin/psql/common.c
@@ -841,7 +841,6 @@ StoreQueryTuple(const PGresult *result)
if (!SetVariable(pset.vars, varname, value))
{
- psql_error("could not set variable \"%s\"\n", varname);
free(varname);
success = false;
break;