Tom Lane wrote: > Heikki Linnakangas <hlinnakan...@vmware.com> writes: > > On 04/28/2014 04:51 PM, Tom Lane wrote: > >> I'm not even worried about which headers this program uses. What I'm > >> worried about is that you've got CATALOG_VERSION_NO compiled into a > >> non-server executable. Is that really such a great idea? Wouldn't it be > >> better if pg_rewind did not depend on that? (Perhaps it should get the > >> database's catalog version out of the pg_control file, for example.) > > > Sure, that would be better. Although I don't have much hope to make it > > completely version-independent. At the moment, pg_rewind explicitly > > reads the control file (yeah, it knows about that too), and checks that > > the catalog version matches what pg_rewind was compiled with. > > ... which might or might not be the same one that libpgcommon was compiled > with, no? I don't think you're really protecting yourself against version > skew that way.
The CATALOG_VERSION dependency in that code is a mistake which I didn't notice back then. I can't put too much thought into this issue at this time, but printing fork numbers rather than names seems pretty user-unfriendly to me. Rather than a revert of the whole patch I would hope for some different solution, if possible, though I can't offer anything right now. I don't think it's very likely that we would renumber forks; so the only possible problem would be that pg_rewind is linked with an older libpgcommon than the server which doesn't know some newer fork name/number and fails to produce a correct result. But ISTM we can rightly consider that as pilot error, right? -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers