Re: Variable substitution in psql backtick expansion
От | Corey Huinker |
---|---|
Тема | Re: Variable substitution in psql backtick expansion |
Дата | |
Msg-id | CADkLM=dzsbgJdP7KAJnbihxU1XFnWZgit9ye5cWnvkjZXyPbGw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Variable substitution in psql backtick expansion (Pavel Stehule <pavel.stehule@gmail.com>) |
Ответы |
Re: Variable substitution in psql backtick expansion
|
Список | pgsql-hackers |
On Sun, Apr 2, 2017 at 11:16 AM, Pavel Stehule <pavel.stehule@gmail.com> wrote:
2017-04-02 13:13 GMT+02:00 Fabien COELHO <coelho@cri.ensmp.fr>:
Hello Pavel,\echo :VERSION
PostgreSQL 10devel on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu
5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609, 64-bit
Probably some :VERSION_NUM would make some sense. See attached PoC patch.
Would it make sense?
Maybe better name for you CLIENT_VERSION_NUM
If it was starting from nothing I would tend to agree with you, but there is already an existing :VERSION variable, so it seemed logical to keep on and create variants with the same prefix.you have true - so VERSION_NUM should be client side versionCan be SERVER_VERSION_NUM taken from connection info?
Probably it could. It seems a little less straightforward than defining a client-side string at compile time. The information is displayed when the connection is established, so the information is there somewhere.It is not too harddiff --git a/src/bin/psql/command.c b/src/bin/psql/command.cindex 94a3cfce90..d1ae81646f 100644--- a/src/bin/psql/command.c+++ b/src/bin/psql/command.c@@ -3320,16 +3320,21 @@ checkWin32Codepage(void)voidSyncVariables(void){+ char buffer[100];+/* get stuff from connection */pset.encoding = PQclientEncoding(pset.db);pset.popt.topt.encoding = pset.encoding;pset.sversion = PQserverVersion(pset.db);+ snprintf(buffer, 100, "%d", pset.sversion);+SetVariable(pset.vars, "DBNAME", PQdb(pset.db));SetVariable(pset.vars, "USER", PQuser(pset.db));SetVariable(pset.vars, "HOST", PQhost(pset.db));SetVariable(pset.vars, "PORT", PQport(pset.db));SetVariable(pset.vars, "ENCODING", pg_encoding_to_char(pset.encoding)); + SetVariable(pset.vars, "SVERSION_NUM", buffer);/* send stuff to it, too */PQsetErrorVerbosity(pset.db, pset.verbosity);RegardsPavel
psql (10devel, server 9.6.2)
--
Fabien.
I'm anxious to help with these patches, but they seem a bit of a moving target. Happy to jump in and review as soon as we've settled on what should be done.
В списке pgsql-hackers по дате отправления: