Re: Stopping logical replication protocol
От | Andres Freund |
---|---|
Тема | Re: Stopping logical replication protocol |
Дата | |
Msg-id | 20161004211453.GA1511@awork2 обсуждение исходный текст |
Ответ на | Re: Stopping logical replication protocol (Craig Ringer <craig@2ndquadrant.com>) |
Ответы |
Re: Stopping logical replication protocol
|
Список | pgsql-hackers |
Hi, On 2016-09-23 13:01:27 +0800, Craig Ringer wrote: > From f98f2388c57d938ebbe07ccd2dbe02138312858f Mon Sep 17 00:00:00 2001 > From: Vladimir Gordiychuk <folyga@gmail.com> > Date: Wed, 7 Sep 2016 00:39:18 +0300 > Subject: [PATCH 2/4] Client-initiated CopyDone during transaction decoding in > walsender > > The prior patch caused the walsender to react to a client-initiated > CopyDone while it's in the WalSndLoop. That's not enough to let clients > end logical decoding mid-transaction because we loop in ReorderBufferCommit > during decoding of a transaction without ever returning to WalSndLoop. > > Allow breaking out of ReorderBufferCommit by detecting that client > input has requested an end to COPY BOTH mode, so clients can abort > decoding mid-transaction. Hm, I'm *VERY* doubtful about doing this via yet another callback. Why don't we just error out in the prepare write callback? I don't think it's a good idea to return a non-error state if a command is interrupted in the middle. We might already have sent a partial transaction or such. Also compare this to interrupting a query - we don't just returning rows, we error out. Andres
В списке pgsql-hackers по дате отправления: