On Sun, 2008-10-12 at 14:39 -0700, David E. Wheeler wrote: > On Oct 12, 2008, at 14:11, Tom Lane wrote: > > > You'd have to parse the result of version(). > > As I figured. This is what I'm trying:
if performance is not critical, then you could use this: hannu=# create or replace function pg_version_num() returns int language SQL as $$ select 10000 * cast(substring(version() from '^PostgreSQL +([0-9]+)[.][0-9]+[.][0-9]+ +') as int) + 100 * cast(substring(version() from '^PostgreSQL +[0-9]+[.]([0-9]+)[.][0-9]+ +') as int) + cast(substring(version() from '^PostgreSQL +[0-9]+[.][0-9]+[.]([0-9]+) +') as int); $$; CREATE FUNCTION hannu=# select pg_version_num(); pg_version_num ---------------- 80303 (1 row) > pg_version_num(PG_FUNCTION_ARGS) > { > #ifdef PG_VERSION_NUM > PG_RETURN_INT32(PG_VERSION_NUM); > #else > /* Code borrowed from dumputils.c. */ > int cnt; > int vmaj, > vmin, > vrev; > > cnt = sscanf(PG_VERSION, "%d.%d.%d", &vmaj, &vmin, &vrev); > > if (cnt < 2) > return -1; > > if (cnt == 2) > vrev = 0; > > PG_RETURN_INT32( (100 * vmaj + vmin) * 100 + vrev ); > #endif > > Best, > > David > > -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers