On Mon, 16 Mar 2026 at 08:50, Chao Li <[email protected]> wrote: >> On Mar 14, 2026, at 11:07, Japin Li <[email protected]> wrote: >> >> >> Hi, Chao >> >> On Fri, 13 Mar 2026 at 15:29, Chao Li <[email protected]> wrote: >>>> On Mar 13, 2026, at 15:05, Japin Li <[email protected]> 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 type to "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 the data 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.
>From 1a0226d18e6fa273210bc75defa13b76566527e3 Mon Sep 17 00:00:00 2001 From: Japin Li <[email protected]> Date: Fri, 13 Mar 2026 14:55:21 +0800 Subject: [PATCH v3] Add the const qualifier to the SMgrRelationData parameter This commit adds the const qualifier to the SMgrRelation since the function only reads the relation and never modifies it, marking the parameter as const is more accurate and improves code clarity and safety. --- src/backend/storage/smgr/smgr.c | 2 +- src/include/storage/smgr.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend/storage/smgr/smgr.c b/src/backend/storage/smgr/smgr.c index 5391640d861..a1fe42381f6 100644 --- a/src/backend/storage/smgr/smgr.c +++ b/src/backend/storage/smgr/smgr.c @@ -1036,7 +1036,7 @@ ProcessBarrierSmgrRelease(void) */ void pgaio_io_set_target_smgr(PgAioHandle *ioh, - SMgrRelationData *smgr, + const SMgrRelationData *smgr, ForkNumber forknum, BlockNumber blocknum, int nblocks, diff --git a/src/include/storage/smgr.h b/src/include/storage/smgr.h index 09bd42fcf4b..4e071bf0d73 100644 --- a/src/include/storage/smgr.h +++ b/src/include/storage/smgr.h @@ -135,7 +135,7 @@ smgrwrite(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, } extern void pgaio_io_set_target_smgr(PgAioHandle *ioh, - SMgrRelationData *smgr, + const SMgrRelationData *smgr, ForkNumber forknum, BlockNumber blocknum, int nblocks, -- 2.43.0
