On Fri, Jan 9, 2026 at 2:47 PM Bertrand Drouvot <[email protected]> wrote: > > 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.
Pushed. Thanks! > 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 Interesting! Regards, -- Fujii Masao
