Re:Re: BUG #18486: Is there something wrong with the calculation in ReorderBufferChangeSize()?
От | Michael |
---|---|
Тема | Re:Re: BUG #18486: Is there something wrong with the calculation in ReorderBufferChangeSize()? |
Дата | |
Msg-id | 7eb97a5b.a6b4.18fed031b9c.Coremail.xu.xw2008@163.com обсуждение исходный текст |
Ответ на | Re: BUG #18486: Is there something wrong with the calculation in ReorderBufferChangeSize()? (Amit Kapila <amit.kapila16@gmail.com>) |
Ответы |
Re: Re: BUG #18486: Is there something wrong with the calculation in ReorderBufferChangeSize()?
|
Список | pgsql-bugs |
At 2024-06-04 13:28:52, "Amit Kapila" <amit.kapila16@gmail.com> wrote:
>On Thu, May 30, 2024 at 2:30 AM PG Bug reporting form ><noreply@postgresql.org> wrote: >> >> The following bug has been logged on the website: >> >> Bug reference: 18486 >> Logged by: Xingwang Xu >> Email address: xu.xw2008@163.com >> PostgreSQL version: 17beta1 >> Operating system: CentOS7.9 >> Description: >> >> In the code related to logical replication, there is a function >> ReorderBufferChangeSize(), which is used to calculate the size of a change >> in memory. >> >> When looking at the ReorderBufferChangeSize() function, I saw the following >> code: >> >> case REORDER_BUFFER_CHANGE_MESSAGE: >> { >> Size prefix_size = strlen(change->data.msg.prefix) + 1; >> >> sz += prefix_size + change->data.msg.message_size + >> sizeof(Size) + sizeof(Size); >> >> break; >> } >> >> When calculating the change size of the message type, there are two >> “sizeof(Size)” in the code. It is not clear why these two “sizeof(Size)” are >> added and whether these two “sizeof(Size)” are redundant. >> > >These two sizeof(Size) are added as while serializing or restoring >message change, we explicitly serialize/restore the size of the prefix >and the actual message. See >ReorderBufferSerializeChange()/ReorderBufferRestoreChange(). >Thanks for your reply.
I see in the code that the function ReorderBufferChangeSize() is used to calculate the space in memory, while ReorderBufferSerializeChange()/ReorderBufferRestoreChange() calculates the space on disk.
Am I right in understanding this?
With Regards, Xingwang Xu
В списке pgsql-bugs по дате отправления: