Re: Use IsA() macro instead of nodeTag comparison
| От | Bertrand Drouvot |
|---|---|
| Тема | Re: Use IsA() macro instead of nodeTag comparison |
| Дата | |
| Msg-id | aWCWdY5hhTP4voAg@ip-10-97-1-34.eu-west-3.compute.internal обсуждение исходный текст |
| Ответ на | Re: Use IsA() macro instead of nodeTag comparison (Chao Li <li.evan.chao@gmail.com>) |
| Ответы |
Re: Use IsA() macro instead of nodeTag comparison
|
| Список | pgsql-hackers |
Hi,
On Fri, Jan 09, 2026 at 08:56:00AM +0800, Chao Li wrote:
>
>
> > On Jan 9, 2026, at 08:32, Fujii Masao <masao.fujii@gmail.com> wrote:
> >
> > On Fri, Jan 9, 2026 at 2:11 AM Heikki Linnakangas <hlinnaka@iki.fi> wrote:
> >>
> >> On 08/01/2026 15:10, Kirill Reshke wrote:
> >>> On Thu, 8 Jan 2026 at 17:31, Shinya Kato <shinya11.kato@gmail.com> wrote:
> >>>> In copy.c, nodeTag was being compared directly, so I replaced it with
> >>>> the IsA() predicate macro for consistency.
> >>>
> >>> Oops. Looks like oversight in 6c8f670. This is indeed case where we
> >>> should use IsA()
> >>>
> >>>> I verified that there are no other direct comparisons left by running
> >>>> the following command:
> >>>> $ git grep "nodeTag(.*) =="
> >>>
> >>> Yep, look like this is the only case in copy.c
> >
> > I found a similar issue in define.c. Should we fix it there as well?
> >
> > diff --git a/src/backend/commands/define.c b/src/backend/commands/define.c
> > index 63601a2c0b4..8313431397f 100644
> > --- a/src/backend/commands/define.c
> > +++ b/src/backend/commands/define.c
> > @@ -349,7 +349,7 @@ defGetStringList(DefElem *def)
> > (errcode(ERRCODE_SYNTAX_ERROR),
> > errmsg("%s requires a parameter",
> > def->defname)));
> > - if (nodeTag(def->arg) != T_List)
> > + if (!IsA(def->arg, List))
> > elog(ERROR, "unrecognized node type: %d", (int)
> > nodeTag(def->arg));
> >
> > foreach(cell, (List *) def->arg)
> >
> > Regards,
> >
> > --
> > Fujii Masao
>
> Yep, I did a search with `nodeTag\(.*\)\s+(?:!=|==).*`, and this is the only finding.
Yeah, I was going to submit the exact same patch detected with the help of
[1]. That's the only remaining case.
[1]: https://github.com/bdrouvot/coccinelle_on_pg/blob/main/misc/nodetag.cocci
Regards,
--
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com
В списке pgsql-hackers по дате отправления: