Alvaro Herrera <alvherre@commandprompt.com> writes:
> No, actually it's correct. The point of that comment is that if the
> source database is frozen, then all XIDs appearing inside both databases
> (source and newly created) are frozen. So it's possible that the row in
> pg_database is frozen as well. But because we are creating a new row in
> pg_database, it's not really frozen any longer; so we change the
> pg_database fields in the new row to match.
No, this only says that pg_database has to be unfrozen. If the source
DB is frozen then the clone is frozen too.
>> The changes in vacuum.c are far too extensive to review meaningfully.
>> What did you do, and did it really need to touch so much code?
> Yeah, they are extensive. ...
> Maybe I should take a stab at making incremental patches instead of
> doing everything in one patch. This way it would be easier to review
> for correctness (and I'd be more confident that it is actually correct
> as well).
Please. I've got no confidence that I see what's going on there.
regards, tom lane