PG_MODULE_MAGIC checks and pg_migrator - Mailing list pgsql-hackers

From Bruce Momjian
Subject PG_MODULE_MAGIC checks and pg_migrator
Date
Msg-id 201001150222.o0F2MZS23616@momjian.us
Whole thread Raw
Responses Re: PG_MODULE_MAGIC checks and pg_migrator  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: PG_MODULE_MAGIC checks and pg_migrator  (Dimitri Fontaine <dfontaine@hi-media.com>)
List pgsql-hackers
Technically pg_migrator does not need the PG_MODULE_MAGIC version checks
because it doesn't do any data manipulation and it already checks the
new server version to determine if the function calls will resolve. 
However, we currently require PG_MODULE_MAGIC for all loaded libraries,
and this adds additional compile requirements on pg_migrator.

For example, right now pg_migrator can migrate to 8.4 and 8.5, but there
is no way to distribute a binary that will migrate to both because you
need different shared libraries with different PG_MODULE_MAGIC values.

One possible solution would be to distribute an 8.4-compiled
pg_migrator, and an 8.5-compiled pg_migrator.  That would work, except
once pg_migrator reaches an 8.5 version, things become very confusing
because you will potentially have pg_migrator 8.5 compiled for 8.4 and
8.5, and pg_migrator 8.4 compiled for 8.4 and 8.5.

One solution would be to drop migration support to 8.4 in pg_migrator
8.5, but that still leaves us with problems when we want to distribute a
pg_migrator 8.4 that can migrate to 8.5 alpha, e.g. on Windows.

Another option would be to distribute both 8.4 and 8.5 shared objects,
but that would require access to two source trees to perform the
compile, which seems very error-prone.

I am not sure what to suggest except perhaps that there be some way to
link in a shared object without the magic block checks.

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 + If your life is a hard drive, Christ can be your backup. +


pgsql-hackers by date:

Previous
From: Greg Smith
Date:
Subject: Re: plpython3
Next
From: Fujii Masao
Date:
Subject: Re: Streaming replication, retrying from archive