On Sun, Apr 9, 2017 at 4:22 AM, Michael Banck <michael.ba...@credativ.de> wrote:
> Hi, > > Am Freitag, den 24.03.2017, 19:32 +0100 schrieb Michael Banck: > > On Thu, Mar 23, 2017 at 12:41:54PM +0100, Magnus Hagander wrote: > > > On Tue, Mar 21, 2017 at 8:34 PM, Robert Haas <robertmh...@gmail.com> > wrote: > > > > So I tend to think that there should always be some explicit user > > > > action to cause the creation of a slot, like --create-slot-if-needed > > > > or --create-slot=name. That still won't prevent careless use of that > > > > option but it's less dangerous than assuming that a user who refers > to > > > > a nonexistent slot intended to create it when, perhaps, they just > > > > typo'd it. > > > > > > Well, the explicit user action would be "--slot". But sure, I can > > > definitely live with a --create-if-not-exists. > > > > Can we just make that option create slot and don't worry if one exists > > already? CreateReplicationSlot() can be told to not mind about already > > existing slots, and I don't see a huge point in erroring out if the slot > > exists already, unless somebody can show that this leads to data loss > > somehow. > > > > > The important thing, to me, is that you can run it as a single > > > command, which makes it a lot easier to work with. (And not like we > > > currently have for pg_receivewal which requires a separate command to > > > create the slot) > > > > Oh, that is how it works with pg_receivewal, I have to admit I've never > > used it so was a bit confused about this when I read its code. > > > > So in that case I think we don't necessarily need to have the same user > > interface at all. I first thought about just adding "-C, --create" (as > > in "--create --slot=foo"), but this on second thought this looked a bit > > shortsighted - who knows what flashy thing pg_basebackup might create in > > 5 years... So I settled on --create-slot, which is only slightly more to > > type (albeit repetive, "--create-slot --slot=foo"), but adding a short > > option "-C" would be fine I thinkg "-C -S foo". > > > > So attached is a patch with adds that option. If people really think it > > should be --create-slot-if-not-exists instead I can update the patch, of > > course. > > > > I again added a second patch with some further refactoring which makes > > it print a message on temporary slot creation in verbose mode. > > Rebased, squashed and slighly edited version attached. I've added this > to the 2017-07 commitfest now as well: > > https://commitfest.postgresql.org/14/1112/ Can you rebase this past some conflicting changes? Thanks, Jeff