Re: Improvements in psql hooks for variables
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: "Daniel Verite" <daniel@manitou-mail.org>
Cc: "Rahila Syed" <rahilasyed90@gmail.com>,
"Stephen Frost" <sfrost@snowman.net>,
"Ashutosh Bapat" <ashutosh.bapat@enterprisedb.com>,
"pgsql-hackers" <pgsql-hackers@postgresql.org>,
"Andrew Dunstan" <andrew@dunslane.net>
Date: 2017-01-31T16:52:13Z
Lists: pgsql-hackers
Attachments
- improve-psql-bool-var-behavior-1.patch (text/x-diff) patch
- (unnamed) (text/plain)
"Daniel Verite" <daniel@manitou-mail.org> writes: > Tom Lane wrote: >> One possible compromise that would address your concern about display >> is to modify the hook API some more so that variable hooks could actually >> substitute new values. Then for example the bool-variable hooks could >> effectively replace "\set AUTOCOMMIT" by "\set AUTOCOMMIT on" and >> "\unset AUTOCOMMIT" by "\set AUTOCOMMIT off", ensuring that interrogation >> of their values always produces sane results. > Agreed, that looks like a good compromise. Attached is a draft patch for that. I chose to make a second hook rather than complicate the assign hook API, mainly because it allows more code sharing --- all the bool vars can share the same substitute hook, and so can the three-way vars as long as "on" and "off" are the appropriate substitutes. I only touched the behavior for bool vars here, but if people like this solution it could be fleshed out to apply to all the built-in variables. Maybe we should merge SetVariableSubstituteHook and SetVariableAssignHook into one function? regards, tom lane
Commits
-
Clean up psql's behavior for a few more control variables.
- fd6cd698031d 10.0 landed
-
Make psql's \set display variables in alphabetical order.
- c3e3844a92fe 10.0 landed
-
Improve psql's behavior for \set and \unset of its control variables.
- 86322dc7e013 10.0 landed
-
Make psql reject attempts to set special variables to invalid values.
- 511ae628f31b 10.0 landed