From 04912899e792094ed00766b99b6c604cadf9edf7 Mon Sep 17 00:00:00 2001 From: Bruce Momjian 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 db78a51e6b..4db9831a68 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -1,4 +1,4 @@ - + Server Configuration @@ -4226,6 +4226,19 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir' + + server_version_num (integer) + + server_version_num configuration parameter + + + + Reports the version number of the server as an integer. It is determined + by the value of PG_VERSION_NUM when building the server. + + + + diff --git a/src/backend/utils/misc/check_guc b/src/backend/utils/misc/check_guc index 3332e63642..df597b4879 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 56a4324d57..debf499b4e 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -10,7 +10,7 @@ * Written by Peter Eisentraut . * * 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