Re: Why don't we have a small reserved OID range for patch revisions? - Mailing list pgsql-hackers
From | Robert Haas |
---|---|
Subject | Re: Why don't we have a small reserved OID range for patch revisions? |
Date | |
Msg-id | CA+TgmoaHDrM+GQd5MYhCVHkiPcjUA9cZEsip0bf-4k1mR+LPDA@mail.gmail.com Whole thread Raw |
In response to | Re: Why don't we have a small reserved OID range for patch revisions? (Peter Geoghegan <pg@bowt.ie>) |
Responses |
Re: Why don't we have a small reserved OID range for patch revisions?
|
List | pgsql-hackers |
On Thu, Feb 28, 2019 at 5:36 PM Peter Geoghegan <pg@bowt.ie> wrote: > I have attempted to institute some general guidelines for what the > thicket of rules are by creating the "committing checklist" page. This > is necessarily imperfect, because the rules are in many cases open to > interpretation, often for good practical reasons. I don't have any > sympathy for committers that find it hard to remember to do a > catversion bump with any kind of regularity. That complexity seems > inherent, not incidental, since it's often convenient to ignore > catalog incompatibilities during development. Bumping catversion is something of a special case, because one does it so often that one gets used to remembering it. The rules are usually not too hard to remember, although they are trickier when you don't directly change anything in src/include/catalog but just change the definition of some node that may be serialized in a catalog someplace. It would be neat if there were a tool you could run to somehow tell you whether catversion needs to be changed for a given patch. But you know there are a log of other version numbers floating around, like XLOG_PAGE_MAGIC or the pg_dump archive version, and it is not really that easy to know -- as a new contributor or sometimes even as an experienced one -- whether your work requires any changes to that stuff, or even that that stuff *exists*. Indeed, XLOG_PAGE_MAGIC is a particularly annoying case, both because the constant name doesn't contain VERSION and because the comment just says /* can be used as WAL version indicator */ which does not exactly make it clear that if you fail to bump it when you touch the WAL format you will Make People Unhappy. Indeed, Simon got complaints a number of years ago (2010, it looks like) when he had the temerity to change the magic number to some other unrelated value instead of just incrementing it by one. Although I think that the criticism was to a certain extent well-founded -- why deviate from previous practice? -- there is at the same time something a little crazy about somebody getting excited about the particular value that has been chosen for a number that is described in the very name of the constant as a MAGIC number. And especially because there is absolutely zip in the way of code comments or a README that explain to you how to do it "right." > > So, I suspect that for every > > unit of work it saves somebody, it's probably going to generate about > > one unit of extra work for somebody else. > > Maybe so. I think that you're jumping to conclusions, though. I did say "I suspect..." which was intended as a concession that I don't know for sure. > But you seem to want to make the mechanism itself even more > complicated, not less complicated (based on your remarks about making > OID assignment happen during the build). In order to make the use of > the mechanism easier. That seems worth considering, but ISTM that this > is talking at cross purposes. There are far simpler ways of making it > unlikely that a committer is going to miss this step. There is also a > simple way of noticing that they do quickly (e.g. a simple buildfarm > test). Well, perhaps I'm proposing some additional code, but I don't think of that as making the mechanism more complicated. I want to make it simpler for patch submitters and reviewers and committers to not make mistakes that they have to run around and fix. If there are fewer kinds of things that qualify as mistakes, as in Tom's latest proposal, then we are moving in the right direction IMO regardless of anything else. > > OK. Well, I think that doing nothing is superior to this proposal, > > for reasons similar to what Peter Eisentraut has already articulated. > > And I think rather than blasting forward with your own preferred > > alternative in the face of disagreement, you should be willing to > > discuss other possible options. But if you're not willing to do that, > > I can't make you. > > Peter seemed to not want to do this on the grounds that it isn't > necessary at all, whereas you think that it doesn't go far enough. If > there is a consensus against what Tom has said, it's a cacophonous one > that cannot really be said to be in favor of anything. I think Peter and I are more agreeing than we are at the opposite ends of a spectrum, but more importantly, I think it is worth having a discussion first about what people like and dislike, and what goals they have, and then only if necessary, counting the votes afterwards. I don't like having the feeling that because I have a different view of something and want to write an email about that, I am somehow an impediment to progress. I think if we reduce discussions to you're-for-it-or-your-against-it, that's not that helpful. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
pgsql-hackers by date: