Hi, On Fri, Jan 09, 2026 at 08:56:00AM +0800, Chao Li wrote: > > > > On Jan 9, 2026, at 08:32, Fujii Masao <[email protected]> wrote: > > > > On Fri, Jan 9, 2026 at 2:11 AM Heikki Linnakangas <[email protected]> wrote: > >> > >> On 08/01/2026 15:10, Kirill Reshke wrote: > >>> On Thu, 8 Jan 2026 at 17:31, Shinya Kato <[email protected]> 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
