Re: Create replication slot in pg_basebackup if requestedand not yet present
От | Michael Banck |
---|---|
Тема | Re: Create replication slot in pg_basebackup if requestedand not yet present |
Дата | |
Msg-id | 20170324183224.GD17115@nighthawk.caipicrew.dd-dns.de обсуждение исходный текст |
Ответ на | Re: [HACKERS] Create replication slot in pg_basebackup if requestedand not yet present (Magnus Hagander <magnus@hagander.net>) |
Список | pgsql-hackers |
Hi, On Thu, Mar 23, 2017 at 12:41:54PM +0100, Magnus Hagander wrote: > On Tue, Mar 21, 2017 at 8:34 PM, Robert Haas <robertmhaas@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. Michael -- Michael Banck Projektleiter / Senior Berater Tel.: +49 2166 9901-171 Fax: +49 2166 9901-100 Email: michael.banck@credativ.de credativ GmbH, HRB Mönchengladbach 12080 USt-ID-Nummer: DE204566209 Trompeterallee 108, 41189 Mönchengladbach Geschäftsführung: Dr. Michael Meskes, Jörg Folz, Sascha Heuer
В списке pgsql-hackers по дате отправления: