Re: includedir_internal headers are not self-contained

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Heikki Linnakangas <hlinnakangas(at)vmware(dot)com>, Christoph Berg <cb(at)df7cb(dot)de>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: includedir_internal headers are not self-contained
Date: 2014-04-28 15:48:40
Message-ID: 20140428154840.GJ25695@eldon.alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Tom Lane wrote:
> Heikki Linnakangas <hlinnakangas(at)vmware(dot)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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Simon Riggs 2014-04-28 15:52:01 Re: Implied BETWEEN from join quals
Previous Message Robert Haas 2014-04-28 15:44:45 Re: So why is EXPLAIN printing only *plan* time?