Martijn van Oosterhout wrote:
On Tue, Jul 03, 2007 at 07:13:29PM +0200, Zdenek Kotala wrote:
pg_migrator is separate tool which requires old postgres version and I
would like to have solution in postgres binary without old version
presence. Very often new postgres version is store in same location
(e.g. /usr/bin) and normal users could have a problem.
Possibly. But you have to demonstrate it actually works and it's best
to do that with a seperate process. Or fix pg_migrator to not require
the old version, either way will do.
Pg_migrator use pg_dump for dump catalog and main concept is based on
presence of old postgres version. I think Fix it means rewrite it.
How I mentioned before. This is nice to have requirement. I would like
to have in the mind and when it starts complexity explosion we can
remove it from the requirement list.
I think insisting on a downgrade option is an absolutely certain way
of guaranteeing that the project will fail.
It seems to me that if every step of the process is WAL logged, then
downgrading is simply a matter of restoring and using PITR. Downgrades
are hard work, primarily because in the long run it's going to be
totally untested code because hardly anyone is going to need it.
It is not downgrade. It is about keep old structure until user says
convert to the new data structure.
Yes, there is way to keep old and new implementation of index and each
will have different oid. Primary key for pg_am table will be
name+pg_version - It is similar to UDT solution. CREATE INDEX as a
REINDEX will use actual implementation.
Bad idea. Indexes are already complicated peices of code, there's no
guarentee the old code will even work with the new version. Seems like
too much work considering REINDEX will simply fix the problem outright.
I do not expect that old code will work with new index structure. I want
to keep both implementation and old index will be processed by old code
and new one will be processed by new implementation. Each will have
different OID and pg_class.relam will point to correct implementation.
These obsolete index method could be located in separate compat lib.
---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster