Re: pg_decode_message vs skip_empty_xacts and xact_wrote_changes
От | Amit Kapila |
---|---|
Тема | Re: pg_decode_message vs skip_empty_xacts and xact_wrote_changes |
Дата | |
Msg-id | CAA4eK1JLRiW_Mkps+oGu_a1DZHJqhoXV9Ru33B4hV5UYUtLPJg@mail.gmail.com обсуждение исходный текст |
Ответ на | pg_decode_message vs skip_empty_xacts and xact_wrote_changes (Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>) |
Ответы |
Re: pg_decode_message vs skip_empty_xacts and xact_wrote_changes
|
Список | pgsql-hackers |
On Mon, Jun 26, 2023 at 3:07 PM Ashutosh Bapat <ashutosh.bapat.oss@gmail.com> wrote: > > Hi All, > Every pg_decode routine except pg_decode_message that decodes a > transactional change, has following block > /* output BEGIN if we haven't yet */ > if (data->skip_empty_xacts && !txndata->xact_wrote_changes) > { > pg_output_begin(ctx, data, txn, false); > } > txndata->xact_wrote_changes = true; > > But pg_decode_message() doesn't call pg_output_begin(). If a WAL > message is the first change in the transaction, it won't have a BEGIN > before it. That looks like a bug. Why is pg_decode_message() > exception? > I can't see a reason why we shouldn't have a similar check for transactional messages. So, agreed this is a bug. -- With Regards, Amit Kapila.
В списке pgsql-hackers по дате отправления: