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