From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | pgsql-committers(at)postgresql(dot)org |
Subject: | pgsql: Make psql reject attempts to set special variables to invalid va |
Date: | 2017-01-30 21:37:36 |
Message-ID: | E1cYJdo-0003nW-QY@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
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
Branch
------
master
Details
-------
http://git.postgresql.org/pg/commitdiff/511ae628f31b4e791cd5c7836e46cb84dcf145fd
Modified Files
--------------
doc/src/sgml/ref/psql-ref.sgml | 33 ++++--
src/bin/psql/command.c | 82 +++++++------
src/bin/psql/common.c | 1 -
src/bin/psql/input.c | 2 +-
src/bin/psql/mainloop.c | 2 +-
src/bin/psql/startup.c | 121 ++++++++++++--------
src/bin/psql/variables.c | 228 ++++++++++++++++++++++++++-----------
src/bin/psql/variables.h | 50 +++++---
src/test/regress/expected/psql.out | 11 +-
src/test/regress/sql/psql.sql | 8 ++
10 files changed, 356 insertions(+), 182 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2017-01-30 22:15:52 | pgsql: Add a regression test script dedicated to exercising system view |
Previous Message | Alvaro Herrera | 2017-01-30 20:20:07 | Re: [COMMITTERS] pgsql: test_pg_dump TAP test whitespace cleanup |