Re: Variable substitution in psql backtick expansion
Fabien COELHO <coelho@cri.ensmp.fr>
From: Fabien COELHO <coelho@cri.ensmp.fr>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Robert Haas <robertmhaas@gmail.com>,
Pavel Stehule <pavel.stehule@gmail.com>,
Corey Huinker <corey.huinker@gmail.com>,
Daniel Verite <daniel@manitou-mail.org>,
PostgreSQL Developers <pgsql-hackers@postgresql.org>
Date: 2017-08-26T18:39:36Z
Lists: pgsql-hackers
Attachments
- psql-version-num-6.patch (text/x-diff) patch
Hello Tom,
> I think you are taking unreasonable shortcuts here:
>
> + SetVariable(pset.vars, "SERVER_VERSION_NAME", PQparameterStatus(pset.db, "server_version"));
>
> The existing code in connection_warnings() does this:
>
> const char *server_version;
>
> /* Try to get full text form, might include "devel" etc */
> server_version = PQparameterStatus(pset.db, "server_version");
> /* Otherwise fall back on pset.sversion */
> if (!server_version)
> {
> formatPGVersionNumber(pset.sversion, true,
> sverbuf, sizeof(sverbuf));
> server_version = sverbuf;
> }
>
> and I think you should duplicate that logic verbatim. Now admittedly,
> server_version has been available for a long time, so that this might
> never matter in practice. But we shouldn't be doing this one way
> in one place and differently somewhere else.
Hmmm. I think this code may have been justified around version 6/7. This
code could probably be removed: according to the online documentation,
"server_version" seems supported at least back to 7.4. Greping old sources
suggest that it is not implemented in 7.3, though.
Spending developer time to write code for the hypothetical someone running
a psql version 11 linked to a libpq < 7.4, if it can even link, does not
look like a very good investment... Anyway, here is required the update.
--
Fabien.
Commits
-
Add psql variables showing server version and psql version.
- a6c678f018d3 10.0 landed
- 9ae9d8c1549c 11.0 landed
-
Reformat psql's --help=variables output.
- 3955c8c4eda2 11.0 landed
-
Remove reinvention of stringify macro.
- cd6baed78150 10.0 landed
-
Allow psql variable substitution to occur in backtick command strings.
- f833c847b8fa 10.0 landed