Обсуждение: select version() with internal number version?

Поиск
Список
Период
Сортировка

select version() with internal number version?

От
Luca Ferrari
Дата:
HI all,
I see a lot of external tools that do a 'SELECT version()' and then
parse the output to get the version number (e.g., 10.4).
My opinion is that this is not a good approach, since the output of
version includes a lot of information and can mismatch a poorly
written regular expression. It would be better to use pg_config
--version, byt again there is the needing for mangling the data.
Is there any way to get directly the PostgreSQL version number?

Thanks,
Luca


Re: select version() with internal number version?

От
Wèi Cōngruì
Дата:
SHOW server_version;
SHOW server_version_num;

I can fetch the version by these two statement.

On Thu, Aug 9, 2018 at 3:01 PM Luca Ferrari <fluca1978@gmail.com> wrote:
HI all,
I see a lot of external tools that do a 'SELECT version()' and then
parse the output to get the version number (e.g., 10.4).
My opinion is that this is not a good approach, since the output of
version includes a lot of information and can mismatch a poorly
written regular expression. It would be better to use pg_config
--version, byt again there is the needing for mangling the data.
Is there any way to get directly the PostgreSQL version number?

Thanks,
Luca

Re: select version() with internal number version?

От
Tom Lane
Дата:
=?UTF-8?B?V8OoaSBDxY1uZ3J1w6w=?= <crvv.mail@gmail.com> writes:
> On Thu, Aug 9, 2018 at 3:01 PM Luca Ferrari <fluca1978@gmail.com> wrote:
>> Is there any way to get directly the PostgreSQL version number?

> SHOW server_version;
> SHOW server_version_num;

Also, if you're using libpq, see PQserverVersion() which
(a) avoids a round trip to the server, and (b) works further back
than server_version_num, though that issue is probably academic
to most folk at this point (server_version_num appeared in 8.2).

            regards, tom lane


Re: select version() with internal number version?

От
Luca Ferrari
Дата:
On Thu, Aug 9, 2018 at 3:51 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Also, if you're using libpq, see PQserverVersion() which
> (a) avoids a round trip to the server, and (b) works further back
> than server_version_num, though that issue is probably academic
> to most folk at this point (server_version_num appeared in 8.2).

Thanks but server_version_num is what I was looking for, since I need
to get the version number from outside PostgreSQL in foreign languages
(python, perl, etc).
I don't believe going back than 8.2 is a metter in this case, since
this is for supporting tools that should not...ehm...support any more
EOL versions.

Luca