RE: Skipping logical replication transactions on subscriber side
От | houzj.fnst@fujitsu.com |
---|---|
Тема | RE: Skipping logical replication transactions on subscriber side |
Дата | |
Msg-id | OS3PR01MB5718114B83503EDE69D1E80E94FF9@OS3PR01MB5718.jpnprd01.prod.outlook.com обсуждение исходный текст |
Ответ на | Re: Skipping logical replication transactions on subscriber side (Masahiko Sawada <sawada.mshk@gmail.com>) |
Ответы |
Re: Skipping logical replication transactions on subscriber side
|
Список | pgsql-hackers |
On Tues, Aug 17, 2021 1:01 PM Masahiko Sawada <sawada.mshk@gmail.com> wrote: > On Mon, Aug 16, 2021 at 3:59 PM houzj.fnst@fujitsu.com <houzj.fnst@fujitsu.com> wrote: > > 3) > > Do we need to invoke set_apply_error_context_xact() in the function > > apply_handle_stream_prepare() to save the xid and timestamp ? > > Yes. I think that v8-0001 patch already set xid and timestamp just after parsing > stream_prepare message. You meant it's not necessary? Sorry, I thought of something wrong, please ignore the above comment. > > I'll submit the updated patches soon. I was thinking about the place to set the errcallback.callback. apply_dispatch(StringInfo s) { LogicalRepMsgType action = pq_getmsgbyte(s); + ErrorContextCallback errcallback; + bool set_callback = false; + + /* + * Push apply error context callback if not yet. Other fields will be + * filled during applying the change. Since this function can be called + * recursively when applying spooled changes, we set the callback only + * once. + */ + if (apply_error_callback_arg.command == 0) + { + errcallback.callback = apply_error_callback; + errcallback.previous = error_context_stack; + error_context_stack = &errcallback; + set_callback = true; + } ... + /* Pop the error context stack */ + if (set_callback) + error_context_stack = errcallback.previous; It seems we can put the above code in the function LogicalRepApplyLoop() around invoking apply_dispatch(), and in that approach we don't need to worry about the recursively case. What do you think ? Best regards, Hou zj
В списке pgsql-hackers по дате отправления: