I volunteer

Lamar Owen lowen at pari.edu
Sat Sep 27 12:28:38 UTC 2003


On Saturday 27 September 2003 04:44 am, Chuck Wolber wrote:
> > I as PostgreSQL RPM maintainer for the PostgreSQL Global Development
> > Group do something similar to this using a loose group of volunteers.

> <TROLL>
> Ahhh, so you're the one. Perhaps you could write a postgreSQL RPM with
> upgrade functionality that actually works?
> </TROLL>

<TROLL feed=1, mode-nice>
Visit www.postgresql.org, find the e-mail archives for pgsql-hackers, and 
search on the string 'Upgrading rant'.

It is not possible to upgrade PostgreSQL major versions within the RPM 
framework in a robust manner (or at least I've not yet found a way).  It is 
an upstream, and not a packaging, issue.  If you have ideas to the contrary, 
subscribe to pgsql-hackers at postgresql.org and contribute your brilliance. ;-)
</TROLL>

I've been fighting that battle for over four years now, since I started 
maintaining the set in 1999 (PostgreSQL 6.5).  At first, I thought I (with 
the help of Jeff Johnson, Cristian Gafton, and the excellent beta team at 
beta.redhat.com) had the problem mostly licked.  But then the upstream 
package broke the pseudo upgrades.  Trond Eivind Glomsrød worked on it, and 
he and I finally gave up trying to do it the way we were doing it after the 
upstream broke it again.  It is a problem that really shouldn't be fixed in 
packaging, IMHO, since it isn't a problem just for RPM upgrades.

Just last week the item 
        * Allow major upgrades without dump/reload, perhaps using
          pg_upgrade
was added to TODO.  It has been a long ride getting just that much out.  Also 
search on the threads 'State of beta 2', 'need for inplace upgrading', and 
combine the terms RPM and upgrade in a search.

The short of it: PostgreSQL stores a vast amount of system configuration data 
in the system catalogs in the 'template1' database.  Stuff like functions to 
use for input and output conversions are inside the system catalogs, 
coexisting in the same database as pointers to the user's data, the user's 
functions, the user's custom types, operators, and the like.  These catalogs 
change every major release.  OID's for the functions, for types, for 
operators, etc. all change.  And then sometimes the actual page format for 
the data itself is changed -- the most recent time was between 7.2.x and 
7.3.x, but it has happened a handful of times before that.  It is a hard 
problem that people who are far smarter than I have been stumped over, or 
just not motivated to fix it.

But I'm open to ideas as to how to make it less painful.
-- 
Lamar Owen
Director of Information Technology
Pisgah Astronomical Research Institute
1 PARI Drive
Rosman, NC  28772
(828)862-5554
www.pari.edu





More information about the fedora-devel-list mailing list