Re: v12 and pg_restore -f- - Mailing list pgsql-hackers
From | Stephen Frost |
---|---|
Subject | Re: v12 and pg_restore -f- |
Date | |
Msg-id | 20191016172148.GH6962@tamriel.snowman.net Whole thread Raw |
In response to | RE: v12 and pg_restore -f- ("imai.yoshikazu@fujitsu.com" <imai.yoshikazu@fujitsu.com>) |
Responses |
Re: v12 and pg_restore -f-
Re: v12 and pg_restore -f- |
List | pgsql-hackers |
Greetings, * imai.yoshikazu@fujitsu.com (imai.yoshikazu@fujitsu.com) wrote: > On Sun, Oct 6, 2019 at 7:09 PM, Justin Pryzby wrote: > > I saw this and updated our scripts with pg_restore -f- > > https://www.postgresql.org/docs/12/release-12.html > > |In pg_restore, require specification of -f - to send the dump contents to standard output (Euler Taveira) > > |Previously, this happened by default if no destination was specified, but that was deemed to be unfriendly. > > > > What I didn't realize at first is that -f- has no special meaning in v11 - it > > just writes a file called ./- And it's considered untennable to change > > behavior of v11. > > Ahh... I totally missed thinking about the behavior of "-f -" in v11 when I reviewed this patch. Clearly you weren't the only one. > On Wed, Oct 9, 2019 at 0:45 PM, Stephen Frost wrote: > > * Euler Taveira (euler@timbira.com.br) wrote: > > > Em ter, 8 de out de 2019 às 15:08, Stephen Frost <sfrost@snowman.net> escreveu: > > > > * Tom Lane (tgl@sss.pgh.pa.us) wrote: > > > > > Andrew Gierth <andrew@tao11.riddles.org.uk> writes: > > > > > > "Tom" == Tom Lane <tgl@sss.pgh.pa.us> writes: > > > > > > Tom> Perhaps we could change the back branches so that they > > > > > > interpret Tom> "-f -" as "write to stdout", but without > > > > > > enforcing that you use Tom> that syntax. > > > > > > > > > > > We should definitely do that. > > > > > > > > I agree that this would be a reasonable course of action. Really, > > > > it should have always meant that... > > > > > > > Indeed, it was a broken behavior and the idea was to fix it. However, > > > changing pg_restore in back-branches is worse than do nothing because > > > it could break existent scripts. > > > > I can certainly respect that argument, in general, but in this specific case, I've got a really hard time believeing > > that people wrote scripts which use '-f -' with the expectation that a './-' file was to be created. > > +1. > > If we only think of the problem that we can't use "-f -" with the meaning "dump to the stdout" in v11 and before ones,it seems a bug and we should fix it. > Of course, if we fix it, some people would go into the trouble, but such people are who wrote scripts which use '-f -'with the expectation that a './-' file. > I don't think there are such people a lot. This topic, unfortunately, seems a bit stuck right now. Maybe there's a way we can pry it loose and get to a resolution. On the one hand, we have Yoshikazu Imai, Andrew, and I pushing to change back-branches, Eurler argueing that we shouldn't do anything, and Tom argueing to make all versions accept '-f -'. First, I'd like to clarify what I believe Tom's suggestion is, and then talk through that, as his vote sways this topic pretty heavily. Tom, I take it your suggestion is to have '-f -' be accepted to mean 'goes to stdout' in all branches? That goes against the argument that we don't want to break existing scripts, as it's possible that there are existing scripts that depend on '-f -' actually going to a './-' file. Is your argument here that, with the above, existing scripts could be updated to use '-f -' explicitly and work with multiple versions, and that scripts which aren't changed would work as-is? If so, then I don't agree with it- if we really don't want to break existing scripts when moving from pre-v12 to v12, then this patch never should have been accepted at all as that's the only way to avoid breaking anything, but then, we shouldn't be making a lot of other changes between major versions either because there's often a good chance that we'll break things. Instead, the patch was accepted, as a good and forward-moving change, with the understanding that it would require some users to update their scripts when they move to v12, so, for my part at least, that question was answered when we committed the change and released with it. Now, if we wish to adjust back-branches to make it easier for users to have scripts that work with both versions, that seems like a worthwhile change and is very unlikely to to cause breakage- and it's certainly more likely to have users actually change their scripts to use '-f -' explicitly when they start working with v12, instead of depending on stdout being the default, which is ultimately the goal and why the change was made in the first place. If the concern is that we can expect folks to install v12 and then refuse or be unable to upgrade back-branches, then I just don't have any sympathy for that either- minor updates are extremely important, and new major versions are certainly no cake walk to get installed, so that argument just doesn't hold water with me- if they can upgrade to v12, then they can update to the latest minor versions, if they actually need to work with both concurrently (which strikes me as already at least relatively uncommon...). If you meant for all branches to accept '-f -' and have it go to a './-' file then that's just a revert of this entire change, which I can't agree with either- really, folks who are depending on that are depending on buggy behavior in the first place. Thanks, Stephen
Attachment
pgsql-hackers by date: