From 04912899e792094ed00766b99b6c604cadf9edf7 Mon Sep 17 00:00:00 2001 From: Bruce Momjian <bruce@momjian.us> Date: Sat, 2 Sep 2006 13:12:50 +0000 Subject: [PATCH] Add new variable "server_version_num", which is almost the same as "server_version" but uses the handy PG_VERSION_NUM which allows apps to do things like if ($version >= 80200) without having to parse apart the value of server_version themselves. Greg Sabino Mullane greg@turnstep.com --- doc/src/sgml/config.sgml | 15 ++++++++++++++- src/backend/utils/misc/check_guc | 6 +++--- src/backend/utils/misc/guc.c | 14 +++++++++++++- 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index db78a51e6b0..4db9831a687 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -1,4 +1,4 @@ -<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.78 2006/08/29 11:37:47 petere Exp $ --> +<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.79 2006/09/02 13:12:50 momjian Exp $ --> <chapter Id="runtime-config"> <title>Server Configuration</title> @@ -4226,6 +4226,19 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir' </listitem> </varlistentry> + <varlistentry id="guc-server-version-num" xreflabel="server_version_num"> + <term><varname>server_version_num</varname> (<type>integer</type>)</term> + <indexterm> + <primary><varname>server_version_num</> configuration parameter</primary> + </indexterm> + <listitem> + <para> + Reports the version number of the server as an integer. It is determined + by the value of <literal>PG_VERSION_NUM</> when building the server. + </para> + </listitem> + </varlistentry> + </variablelist> </sect1> diff --git a/src/backend/utils/misc/check_guc b/src/backend/utils/misc/check_guc index 3332e636427..df597b4879a 100755 --- a/src/backend/utils/misc/check_guc +++ b/src/backend/utils/misc/check_guc @@ -18,9 +18,9 @@ ## can be ignored INTENTIONALLY_NOT_INCLUDED="autocommit debug_deadlocks exit_on_error \ is_superuser lc_collate lc_ctype lc_messages lc_monetary lc_numeric lc_time \ -pre_auth_delay role seed server_encoding server_version session_authorization \ -trace_lock_oidmin trace_lock_table trace_locks trace_lwlocks trace_notify \ -trace_userlocks transaction_isolation transaction_read_only \ +pre_auth_delay role seed server_encoding server_version server_version_int \ +session_authorization trace_lock_oidmin trace_lock_table trace_locks trace_lwlocks \ +trace_notify trace_userlocks transaction_isolation transaction_read_only \ zero_damaged_pages" ### What options are listed in postgresql.conf.sample, but don't appear diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 56a4324d574..debf499b4ef 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -10,7 +10,7 @@ * Written by Peter Eisentraut <peter_e@gmx.net>. * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.346 2006/08/31 15:10:51 petere Exp $ + * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.347 2006/09/02 13:12:50 momjian Exp $ * *-------------------------------------------------------------------- */ @@ -220,6 +220,7 @@ static char *locale_ctype; static char *regex_flavor_string; static char *server_encoding_string; static char *server_version_string; +static int server_version_num; static char *timezone_string; static char *timezone_abbreviations_string; static char *XactIsoLevel_string; @@ -1627,6 +1628,17 @@ static struct config_int ConfigureNamesInt[] = DEFAULT_EFFECTIVE_CACHE_SIZE, 1, INT_MAX, NULL, NULL }, + { + /* Can't be set in postgresql.conf */ + {"server_version_num", PGC_INTERNAL, PRESET_OPTIONS, + gettext_noop("Shows the server version as an integer."), + NULL, + GUC_REPORT | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE + }, + &server_version_num, + PG_VERSION_NUM, PG_VERSION_NUM, PG_VERSION_NUM, NULL, NULL + }, + /* End-of-list marker */ { {NULL, 0, 0, NULL, NULL}, NULL, 0, 0, 0, NULL, NULL -- GitLab