Re: Version Number Function? - Mailing list pgsql-hackers

From David E. Wheeler
Subject Re: Version Number Function?
Date
Msg-id B2B21B77-B95C-44D4-A5FB-55B8F3EA67EF@kineticode.com
Whole thread Raw
In response to Re: Version Number Function?  (Hannu Krosing <hannu@2ndQuadrant.com>)
Responses Re: Version Number Function?
Re: Version Number Function?
List pgsql-hackers
Well, the C version I borrowed from dumpitils seems to work great. Any  
reason I shouldn't stay with that?

Best,

David

Sent from my iPhone

On Oct 14, 2008, at 7:44, Hannu Krosing <hannu@2ndQuadrant.com> wrote:

> 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
>>
>>
>


pgsql-hackers by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: autovacuum and reloptions
Next
From: Peter Eisentraut
Date:
Subject: Re: patch: Allow the UUID type to accept non-standard formats