Re: how solve diff of API counstruct_md_array between - Mailing list pgsql-hackers

From Martijn van Oosterhout
Subject Re: how solve diff of API counstruct_md_array between
Date
Msg-id 20060224201407.GD9390@svana.org
Whole thread Raw
In response to Re: how solve diff of API counstruct_md_array between  (Bruce Momjian <pgman@candle.pha.pa.us>)
List pgsql-hackers
On Fri, Feb 24, 2006 at 02:57:19PM -0500, Bruce Momjian wrote:
> 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.

We don't need a function to do it, because none of that can be used by
a compiler. If a structure gains or loses a member, the only way you
can do it portibly is if the compiler can determine which version to
use. The only thing the preprocessor can use is:

- Is a (preprocessor) symbol defined
- Is it numerically greater equal or less than another number

So the only solution would be something like:

#define POSTGRESQL_MAJOR 8
#define POSTGRESQL_MINOR 1
#define POSTGRESQL_RELEASE 1

Or

#define POSTGRESQL_VERSION 80101

Maybe something to indicate beta or CVS. Anything else is not likely to
be an improvement on what we have now. Besides, adding stuff now is not
terribly useful since people want to support back to 7.3/7.4 and until
a new scheme is old enough that 8.2 is ancient (first release it could
possibly appear in) it won't get a lot of usage.

Have a nice day,
--
Martijn van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
> Patent. n. Genius is 5% inspiration and 95% perspiration. A patent is a
> tool for doing 5% of the work and then sitting around waiting for someone
> else to do the other 95% so you can sue them.

pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: how solve diff of API counstruct_md_array between
Next
From: Josh Berkus
Date:
Subject: Re: Blog post on EnterpriseDB...maybe off topic