Re: Exposing PG_VERSION_NUM in pg_config - Mailing list pgsql-hackers

From Michael Paquier
Subject Re: Exposing PG_VERSION_NUM in pg_config
Date
Msg-id CAB7nPqSUHA3=T+iQXV5bH5X5+pqFT_dVKJnoXakD+i7+num8CQ@mail.gmail.com
Whole thread Raw
In response to Re: Exposing PG_VERSION_NUM in pg_config  (Peter Eisentraut <peter_e@gmx.net>)
Responses Re: Exposing PG_VERSION_NUM in pg_config  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: Exposing PG_VERSION_NUM in pg_config  (Peter Eisentraut <peter_e@gmx.net>)
List pgsql-hackers


On Tue, Mar 31, 2015 at 9:40 AM, Peter Eisentraut <peter_e@gmx.net> wrote:
On 3/30/15 6:29 PM, Michael Paquier wrote:
>
>
> On Tue, Mar 31, 2015 at 5:39 AM, Peter Eisentraut <peter_e@gmx.net
> <mailto:peter_e@gmx.net>> wrote:
>
>     On 3/25/15 1:32 AM, Michael Paquier wrote:
>     > Well, I have no other cases than ones of the type mentioned upthread,
>     > and honestly I am fine as long as we do not apply maths to a version
>     > string. So attached is a patch that adds VERSION_NUM in
>     > Makefile.global.
>
>     How would you make use of this in an extension makefile?
>
>
> One use case is regression test list filtering depending on backend version.

I'm interested in the exact syntax you'd use, to compare it to the
currently used techniques.

With the presence of VERSION_NUM directly in pg_config, the following expression:
VERSION_NUM=$(shell $(PG_CONFIG) --version-num)

With its presence in Makefile.global, that's close to what you can do with pg_config.h already:
VERSION_NUM := $(shell cat `$(PG_CONFIG) --libdir`/pgxs/src/Makefile.global \
    | perl -ne 'print $$1 and exit if /VERSION_NUM =\s+(\d+)/')
But that looks a little bit magic..

Another advantage of putting this information in pg_config is for environments that do not have PGXS installed, for example MSVC.
--
Michael

pgsql-hackers by date:

Previous
From: Kyotaro HORIGUCHI
Date:
Subject: GUC context information in the document.
Next
From: Jehan-Guillaume de Rorthais
Date:
Subject: Re: Maximum number of WAL files in the pg_xlog directory