Re: Use SMgrRelation instead of SMgrRelationData * in pgaio_io_set_target_smgr() - Mailing list pgsql-hackers

From Chao Li
Subject Re: Use SMgrRelation instead of SMgrRelationData * in pgaio_io_set_target_smgr()
Date
Msg-id FC4A7F4C-D12C-4A0B-9218-0523DCFEE8C9@gmail.com
Whole thread Raw
In response to Re: Use SMgrRelation instead of SMgrRelationData * in pgaio_io_set_target_smgr()  (Japin Li <japinli@hotmail.com>)
List pgsql-hackers

> On Mar 16, 2026, at 10:31, Japin Li <japinli@hotmail.com> wrote:
>
> On Mon, 16 Mar 2026 at 08:50, Chao Li <li.evan.chao@gmail.com> wrote:
>>> On Mar 14, 2026, at 11:07, Japin Li <japinli@hotmail.com> wrote:
>>>
>>>
>>> Hi, Chao
>>>
>>> On Fri, 13 Mar 2026 at 15:29, Chao Li <li.evan.chao@gmail.com> wrote:
>>>>> On Mar 13, 2026, at 15:05, Japin Li <japinli@hotmail.com> wrote:
>>>>>
>>>>>
>>>>> Hi, hackers
>>>>>
>>>>> While reading smgr.h, I noticed an inconsistent type usage in
>>>>> pgaio_io_set_target_smgr(). Currently the function is declared as:
>>>>>
>>>>>  extern void pgaio_io_set_target_smgr(PgAioHandle *ioh,
>>>>>                                       SMgrRelationData *smgr,
>>>>>                                       ForkNumber forknum,
>>>>>                                       BlockNumber blocknum,
>>>>>                                       int nblocks,
>>>>>
>>>>> However, SMgrRelation is defined as "typedef SMgrRelationData * SMgrRelation;",
>>>>> and all other functions in the smgr subsystem use SMgrRelation as the parameter
>>>>> type.
>>>>>
>>>>> To keep the code consistent with the rest of the smgr API, this patch changes
>>>>> the parameter from SMgrRelationData * to SMgrRelation in both the definition
>>>>> and declaration.
>>>>>
>>>>> This is purely a style/consistency cleanup with no functional change.
>>>>>
>>>>> Thoughts? Is this change acceptable?
>>>>>
>>>>> --
>>>>> Regards,
>>>>> Japin Li
>>>>> ChengDu WenWu Information Technology Co., Ltd.
>>>>>
>>>>> <v1-0001-Use-SMgrRelation-instead-of-SMgrRelationData-in-p.patch>
>>>>
>>>> pgaio_io_set_target_smgr doesn’t update smgr, so, instead of “SMgrRelation”,  I think it’s better to change the
typeto "const SMgrRelationData *”. 
>>>
>>> Thanks for the review! Makes sense — I've updated the patch to v2.
>>>
>>> --
>>> Regards,
>>> Japin Li
>>> ChengDu WenWu Information Technology Co., Ltd.
>>>
>>> <v2-0001-Use-SMgrRelation-instead-of-SMgrRelationData-in-p.patch>
>>
>> “const SMgrRelation *” will not work as you expected, you have to do “const SMgrRelationData *”. We want to protect
thedata the pointer pointing to from changing but the pointer itself. 
>
> Thanks for pointing that out!  I hadn't noticed the difference before.
> Updated as you suggested.
>
>>
>> Best regards,
>> --
>> Chao Li (Evan)
>> HighGo Software Co., Ltd.
>> https://www.highgo.com/
>
> --
> Regards,
> Japin Li
> ChengDu WenWu Information Technology Co., Ltd.
>
> <v3-0001-Add-the-const-qualifier-to-the-SMgrRelationData-p.patch>

V3 LGTM.

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







pgsql-hackers by date:

Previous
From: Chao Li
Date:
Subject: Re: gen_guc_tables improvements
Next
From: Fujii Masao
Date:
Subject: Re: Re: Re: Change COPY ... ON_ERROR ignore to ON_ERROR ignore_row