Обсуждение: Use allocation macros in the logical replication code

Поиск
Список
Период
Сортировка

Use allocation macros in the logical replication code

От
Peter Smith
Дата:
Hi,

Here is a patch that modifies some allocation code to make use of the
appropriate macros.

Scope: src/backend/replication/logical/*

PSA v1

======
Kind Regards,
Peter Smith.
Fujitsu Australia

Вложения

Re: Use allocation macros in the logical replication code

От
Chao Li
Дата:

> On Feb 4, 2026, at 08:14, Peter Smith <smithpb2250@gmail.com> wrote:
>
> Hi,
>
> Here is a patch that modifies some allocation code to make use of the
> appropriate macros.
>
> Scope: src/backend/replication/logical/*
>
> PSA v1
>
> ======
> Kind Regards,
> Peter Smith.
> Fujitsu Australia
> <v1-0001-use-alloc-macros-in-logical-replication-code.patch>

LGTM.

BTW, I have a similar patch [1] there more than a month.

[1] https://www.postgresql.org/message-id/CAEoWx2m1Vo97Jg9%3DK7JAZ0xdkg5D%3DGkgOxZR1%3DEW7mUfy008fw%40mail.gmail.com

Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/







RE: Use allocation macros in the logical replication code

От
"Hayato Kuroda (Fujitsu)"
Дата:
Dear Peter,

Thanks for the patch. I have one comment for the patch:
```
@@ -836,8 +836,9 @@ SnapBuildAddCommittedTxn(SnapBuild *builder, TransactionId xid)
         elog(DEBUG1, "increasing space for committed transactions to %u",
              (uint32) builder->committed.xcnt_space);
 
-        builder->committed.xip = repalloc(builder->committed.xip,
-                                          builder->committed.xcnt_space * sizeof(TransactionId));
+        builder->committed.xip = repalloc_array(builder->committed.xip,
+                            TransactionId,
+                            builder->committed.xcnt_space);
```

Number of tabs seems not to enough here. Other than that LGTM.

Best regards,
Hayato Kuroda
FUJITSU LIMITED


Re: Use allocation macros in the logical replication code

От
Peter Smith
Дата:
On Wed, Feb 4, 2026 at 1:47 PM Hayato Kuroda (Fujitsu)
<kuroda.hayato@fujitsu.com> wrote:
>
> Dear Peter,
>
> Thanks for the patch. I have one comment for the patch:
> ```
> @@ -836,8 +836,9 @@ SnapBuildAddCommittedTxn(SnapBuild *builder, TransactionId xid)
>                 elog(DEBUG1, "increasing space for committed transactions to %u",
>                          (uint32) builder->committed.xcnt_space);
>
> -               builder->committed.xip = repalloc(builder->committed.xip,
> -                                                                                 builder->committed.xcnt_space *
sizeof(TransactionId));
> +               builder->committed.xip = repalloc_array(builder->committed.xip,
> +                                                       TransactionId,
> +                                                       builder->committed.xcnt_space);
> ```
>
> Number of tabs seems not to enough here. Other than that LGTM.
>

Thanks for the feedback. Now I have run pg_indent on all the patched files.

PSA v2

======
Kind Regards,
Peter Smith.
Fujitsu Australia

Вложения

Re: Use allocation macros in the logical replication code

От
Masahiko Sawada
Дата:
On Tue, Feb 3, 2026 at 9:40 PM Peter Smith <smithpb2250@gmail.com> wrote:
>
> On Wed, Feb 4, 2026 at 1:47 PM Hayato Kuroda (Fujitsu)
> <kuroda.hayato@fujitsu.com> wrote:
> >
> > Dear Peter,
> >
> > Thanks for the patch. I have one comment for the patch:
> > ```
> > @@ -836,8 +836,9 @@ SnapBuildAddCommittedTxn(SnapBuild *builder, TransactionId xid)
> >                 elog(DEBUG1, "increasing space for committed transactions to %u",
> >                          (uint32) builder->committed.xcnt_space);
> >
> > -               builder->committed.xip = repalloc(builder->committed.xip,
> > -                                                                                 builder->committed.xcnt_space *
sizeof(TransactionId));
> > +               builder->committed.xip = repalloc_array(builder->committed.xip,
> > +                                                       TransactionId,
> > +                                                       builder->committed.xcnt_space);
> > ```
> >
> > Number of tabs seems not to enough here. Other than that LGTM.
> >
>
> Thanks for the feedback. Now I have run pg_indent on all the patched files.
>
> PSA v2

Thank you for the patch!

The patch looks good to me. I'll push it, barring objections.

Regards,

--
Masahiko Sawada
Amazon Web Services: https://aws.amazon.com



Re: Use allocation macros in the logical replication code

От
Chao Li
Дата:

> On Mar 4, 2026, at 04:52, Masahiko Sawada <sawada.mshk@gmail.com> wrote:
>
> On Tue, Feb 3, 2026 at 9:40 PM Peter Smith <smithpb2250@gmail.com> wrote:
>>
>> On Wed, Feb 4, 2026 at 1:47 PM Hayato Kuroda (Fujitsu)
>> <kuroda.hayato@fujitsu.com> wrote:
>>>
>>> Dear Peter,
>>>
>>> Thanks for the patch. I have one comment for the patch:
>>> ```
>>> @@ -836,8 +836,9 @@ SnapBuildAddCommittedTxn(SnapBuild *builder, TransactionId xid)
>>>                elog(DEBUG1, "increasing space for committed transactions to %u",
>>>                         (uint32) builder->committed.xcnt_space);
>>>
>>> -               builder->committed.xip = repalloc(builder->committed.xip,
>>> -                                                                                 builder->committed.xcnt_space *
sizeof(TransactionId));
>>> +               builder->committed.xip = repalloc_array(builder->committed.xip,
>>> +                                                       TransactionId,
>>> +                                                       builder->committed.xcnt_space);
>>> ```
>>>
>>> Number of tabs seems not to enough here. Other than that LGTM.
>>>
>>
>> Thanks for the feedback. Now I have run pg_indent on all the patched files.
>>
>> PSA v2
>
> Thank you for the patch!
>
> The patch looks good to me. I'll push it, barring objections.
>

Hi Masahiko-san, no objection at all. When you have a chance, could you also take a look at [1]? It is a similar patch
thatfixes an incorrect usage of palloc_object() by switching it to palloc_array(), and also replaces a few repalloc()
callswith repalloc_array(). 

[1] https://postgr.es/m/CAEoWx2m1Vo97Jg9=K7JAZ0xdkg5D=GkgOxZR1=EW7mUfy008fw@mail.gmail.com

Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/







Re: Use allocation macros in the logical replication code

От
Peter Smith
Дата:
Thanks for pushing!

I have marked the corresponding CF entry as "Committed".

======
Kind Regards,
Peter Smith.
Fujitsu Australia.



Re: Use allocation macros in the logical replication code

От
Masahiko Sawada
Дата:
On Sun, Mar 8, 2026 at 10:23 PM Peter Smith <smithpb2250@gmail.com> wrote:
>
> Thanks for pushing!
>
> I have marked the corresponding CF entry as "Committed".

I noticed I forgot to mention the patch has been pushed.

Thanks for the report and the patch!

Regards,

--
Masahiko Sawada
Amazon Web Services: https://aws.amazon.com