Re: Extension Templates S03E11 - Mailing list pgsql-hackers
From | Robert Haas |
---|---|
Subject | Re: Extension Templates S03E11 |
Date | |
Msg-id | CA+Tgmobjae-p38pr3w4ZFcO6WGex=UgbYcAo8QuefmqtDFeG_g@mail.gmail.com Whole thread Raw |
In response to | Re: Extension Templates S03E11 (Dimitri Fontaine <dimitri@2ndQuadrant.fr>) |
List | pgsql-hackers |
On Wed, Dec 11, 2013 at 2:49 PM, Dimitri Fontaine <dimitri@2ndquadrant.fr> wrote: > Robert Haas <robertmhaas@gmail.com> writes: >>> You've got that backwards. We do have the luxury of rejecting new >>> features until people are generally satisfied that the basic design is >>> right. There's no overlord decreeing that this must be in 9.4. >> >> I strongly agree. PostgreSQL has succeeded because we try not to do >> things at all until we're sure we know how to do them right. > > I still agree to the principle, or I wouldn't even try. Not in details, > because the current design passed all the usual criteria a year ago. > > http://www.postgresql.org/message-id/6466.1354817682@sss.pgh.pa.us > >> I can certainly understand Dimitri's frustration, in that he's written >> several versions of this patch and none have been accepted. But what > > The design was accepted, last year. It took a year to review it, which > is fair enough, only to find new problems again. Circles at their best. > You just said on another thread that perfect is the enemy of good. What > about applying the same line of thoughts to this patch? Sure. For every patch that gets submitted, we have to decide whether it represents an improvement over where we are today, or not. For the record: 1. The patch you're talking about is 2 or 3 orders of magnitude less complicated than this one, and it is pretty easy to see that it will not paint us into a corner. It also happens to fix what I've long considered a deficiency in PostgreSQL. I think it is legitimate for me to have more confidence in that patch than this one. 2. I explicitly did not review this patch for the precise reason that I thought it needed a fresh pair of eyes. You and I have not always seen eye to eye on this and other extension-related patches, and I don't really want to be the guy who shoots down your patches every year. I was prepared to sit still for this if Stephen felt it was OK.But after both Stephen and Heikki expressed concernsabout the approach, I decided to say that I found those concerns valid also. I happen to think that Stephen did a very good job of explaining why blobs in the catalog could be a very bad plan. Specifically, I believe he mentioned that it creates a dump/restore hazard. If a new keyword gets added in a new server version, a logical dump of the extension made by a new pg_dump against the old server version will restore properly on the new version. Dumping and restoring the blobs and re-execute on the new version may fail. I had not thought of this issue when this was last discussed, or at least I don't remember having thought of it, and based on Tom's having endorsed the previous design, I'm guessing he didn't think of it at the time, either. I think that Stephen's other points about duplicating data, etc. are somewhat valid as well, but I am particularly sensitive about dump and restore hazards. I don't think you will find any time in the history of this project when I endorsed any change that would create more of them or declined to endorse fixing them, and if you do it was probably in my first year of involvement when I did not understand so well as I do now how much pain such problems create. Users are remarkably skilled at finding these bugs; it's been less then two weeks since we fixed the most recent one; and they cause a lot of pan. The only saving grace is that, up until now, we've pretty much always been able to patch them by changing pg_dump(all). The problems that this patch would create can't be fixed that way, though: you'd have to manually hack up the blobs stored in the catalog, or manually edit the dumpfile. That's not good. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
pgsql-hackers by date: