Re: how solve diff of API counstruct_md_array between

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: how solve diff of API counstruct_md_array between
Дата
Msg-id 200602241957.k1OJvJj06015@candle.pha.pa.us
обсуждение исходный текст
Ответ на Re: how solve diff of API counstruct_md_array between  (Joe Conway <mail@joeconway.com>)
Ответы Re: how solve diff of API counstruct_md_array between  (Martijn van Oosterhout <kleptog@svana.org>)
Список pgsql-hackers
Joe Conway wrote:
> Martijn van Oosterhout wrote:
> > On Thu, Feb 16, 2006 at 08:36:34PM +0100, Pavel Stehule wrote:
> >>I use counstruct_md_array function in my Orafunc module. CVS version has 
> >>diff def now. I am findig way for simple solution of maintaince source code 
> >>for both version. I have PG_VERSION variable, but it's unusable. Is there 
> >>way for contrib's autors differentiate PostgreSQL versions? I don't want to 
> >>have two versions of source code.
> > 
> > For my stuff I've generally use CATALOG_VERSION_NO. It's not very easy,
> > but by looking through CVS you can find when the function was created
> > and in your code use:
> > 
> > #ifdef CATALOG_VERSION_NO > yyyymmddN
> > /* New stuff */
> > #else
> > /* Old stuff */
> > #endif
> 
> I do pretty much the same thing in PL/R. The good news is that 
> CATALOG_VERSION_NO doesn't change for each major release once it is 
> released. The following hasn't been updated since the 8.1 release, but 
> you could use it as a starting point:
> 
> #if (CATALOG_VERSION_NO <= 200211021)
> #define PG_VERSION_73_COMPAT
> #elif (CATALOG_VERSION_NO <= 200310211)
> #define PG_VERSION_74_COMPAT
> #elif (CATALOG_VERSION_NO <= 200411041)
> #define PG_VERSION_80_COMPAT
> #else
> #define PG_VERSION_81_COMPAT
> #endif

Yea, that is probably the best you can do currently, but it is pretty
ugly.  We have PQserverVersion() in libpq for use by clients, which
does:
           conn->sversion = (100 * vmaj + vmin) * 100 + vrev;

Perhaps we should have a function in the server that has this. 
PG_VERSION isn't easy to use because it is a string, and changes during
minor versions.

initdb.c uses get_short_version() to trims PG_VERSION to the major part.

--  Bruce Momjian   http://candle.pha.pa.us SRA OSS, Inc.   http://www.sraoss.com
 + If your life is a hard drive, Christ can be your backup. +


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Hannu Krosing
Дата:
Сообщение: Re: fsutil ideas
Следующее
От: Martijn van Oosterhout
Дата:
Сообщение: Re: how solve diff of API counstruct_md_array between