Thread: Upgrade path for contrib modules

Upgrade path for contrib modules

From
Greg Stark
Date:
What is the intended upgrade path for databases using contrib modules?

Because I'm trying to test out my database under a CVS compiled postgres and
running into problems. It seems you can't count on a simple pg_dump/pg_restore
working because functions needed for various operators and index access
methods might not be found in the new module.

at least that's what I think is going on when I get messages like this:

pg_restore: [archiver (db)] could not execute query: ERROR:  could not find function "int2key_in" in file
"/usr/local/pgsql/lib/btree_gist.so"
pg_restore: [archiver (db)] could not execute query: ERROR:  function public.int2key_in(cstring) does not exist
pg_restore: [archiver (db)] could not execute query: ERROR:  type int2key does not exist
pg_restore: [archiver (db)] could not execute query: ERROR:  type "int2key" does not exist
pg_restore: [archiver (db)] could not execute query: ERROR:  function int2key_in(cstring) does not exist
pg_restore: [archiver (db)] could not execute query: ERROR:  type "public.int2key" does not exist

I'm hoping letting the pg_restore run to completion and then running the
btree_gist.sql file afterwards will produce a working setup, but I expect I
may be missing some indexes.

Similarly I expect I'll have problems with PL functions or views that use
operators that failed to get reloaded properly.

Am I missing something? Is it really this touchy dealing with external modules
and version skew? It would be nice to get some of the external linking aspects
out of my database so that dumping and loading it worked independently of the
outside world. I'm not sure how to go about doing that though.

-- 
greg



Re: Upgrade path for contrib modules

From
Tom Lane
Date:
Greg Stark <gsstark@mit.edu> writes:
> What is the intended upgrade path for databases using contrib modules?

Normally you just upgrade 'em ...

> pg_restore: [archiver (db)] could not execute query: ERROR:  could not find function "int2key_in" in file
"/usr/local/pgsql/lib/btree_gist.so"

... however, what it looks like here is that the CVS-tip version of
contrib/btree_gist has got a completely different API than 7.4 did.
I suggest you beat up Oleg and Teodor about providing an upgrade path.
This isn't a Postgres bug per se, it's a btree_gist bug.
        regards, tom lane