[PATCH] Remove redundant Assert() calls in report_namespace_conflict()

Started by zengman3 months ago5 messageshackers
Jump to latest
#1zengman
zengman@halodbtech.com

Hi all,

I noticed that report_namespace_conflict() has Assert(OidIsValid(nspOid)) at the function entry, and the same assertion is repeated in each switch case. These duplicate assertions are redundant since the check at the top already covers all cases.
Attached patch removes the 6 redundant assertions to make the code a bit cleaner.

```
static void
report_namespace_conflict(Oid classId, const char *name, Oid nspOid)
{
char *msgfmt;

Assert(OidIsValid(nspOid));

switch (classId)
{
case ConversionRelationId:
Assert(OidIsValid(nspOid));
msgfmt = gettext_noop("conversion \"%s\" already exists in schema \"%s\"");
break;
case StatisticExtRelationId:
Assert(OidIsValid(nspOid));
msgfmt = gettext_noop("statistics object \"%s\" already exists in schema \"%s\"");
break;
case TSParserRelationId:
Assert(OidIsValid(nspOid));
msgfmt = gettext_noop("text search parser \"%s\" already exists in schema \"%s\"");
break;
case TSDictionaryRelationId:
Assert(OidIsValid(nspOid));
msgfmt = gettext_noop("text search dictionary \"%s\" already exists in schema \"%s\"");
break;
case TSTemplateRelationId:
Assert(OidIsValid(nspOid));
msgfmt = gettext_noop("text search template \"%s\" already exists in schema \"%s\"");
break;
case TSConfigRelationId:
Assert(OidIsValid(nspOid));
msgfmt = gettext_noop("text search configuration \"%s\" already exists in schema \"%s\"");
break;
default:
elog(ERROR, "unsupported object class: %u", classId);
break;
}

ereport(ERROR,
(errcode(ERRCODE_DUPLICATE_OBJECT),
errmsg(msgfmt, name, get_namespace_name(nspOid))));
}
```

--
Regards,
Man Zeng
www.openhalo.org

Attachments:

0001-Remove-unnecessary-Oid-validity-assertions-in-report.patchapplication/octet-stream; charset=ISO-8859-1; name=0001-Remove-unnecessary-Oid-validity-assertions-in-report.patchDownload+0-7
#2Kirill Reshke
reshkekirill@gmail.com
In reply to: zengman (#1)
Re: [PATCH] Remove redundant Assert() calls in report_namespace_conflict()

On Fri, 16 Jan 2026, 19:25 zengman, <zengman@halodbtech.com> wrote:

Hi all,

I noticed that report_namespace_conflict() has Assert(OidIsValid(nspOid))
at the function entry, and the same assertion is repeated in each switch
case. These duplicate assertions are redundant since the check at the top
already covers all cases.
Attached patch removes the 6 redundant assertions to make the code a bit
cleaner.

```
static void
report_namespace_conflict(Oid classId, const char *name, Oid nspOid)
{
char *msgfmt;

Assert(OidIsValid(nspOid));

switch (classId)
{
case ConversionRelationId:
Assert(OidIsValid(nspOid));
msgfmt = gettext_noop("conversion \"%s\" already exists in schema
\"%s\"");
break;
case StatisticExtRelationId:
Assert(OidIsValid(nspOid));
msgfmt = gettext_noop("statistics object \"%s\" already exists in
schema \"%s\"");
break;
case TSParserRelationId:
Assert(OidIsValid(nspOid));
msgfmt = gettext_noop("text search parser \"%s\" already exists in
schema \"%s\"");
break;
case TSDictionaryRelationId:
Assert(OidIsValid(nspOid));
msgfmt = gettext_noop("text search dictionary \"%s\" already exists
in schema \"%s\"");
break;
case TSTemplateRelationId:
Assert(OidIsValid(nspOid));
msgfmt = gettext_noop("text search template \"%s\" already exists in
schema \"%s\"");
break;
case TSConfigRelationId:
Assert(OidIsValid(nspOid));
msgfmt = gettext_noop("text search configuration \"%s\" already
exists in schema \"%s\"");
break;
default:
elog(ERROR, "unsupported object class: %u", classId);
break;
}

ereport(ERROR,
(errcode(ERRCODE_DUPLICATE_OBJECT),
errmsg(msgfmt, name, get_namespace_name(nspOid))));
}
```

--
Regards,
Man Zeng
www.openhalo.org

Hi!

Yes, this patch looks valid

#3Michael Paquier
michael@paquier.xyz
In reply to: Kirill Reshke (#2)
Re: [PATCH] Remove redundant Assert() calls in report_namespace_conflict()

On Sat, Jan 17, 2026 at 02:57:00AM +0500, Kirill Reshke wrote:

Yes, this patch looks valid

It looks to me just a copy-pasto when this code has been written.
Let's clean up that.
--
Michael

#4zengman
zengman@halodbtech.com
In reply to: Michael Paquier (#3)
Re: [PATCH] Remove redundant Assert() calls in report_namespace_conflict()

Hi,

Yes, this patch looks valid

It looks to me just a copy-pasto when this code has been written.
Let's clean up that.

Thanks for your comment. I thought so too.

--
Regards,
Man Zeng
www.openhalo.org

#5Michael Paquier
michael@paquier.xyz
In reply to: zengman (#4)
Re: [PATCH] Remove redundant Assert() calls in report_namespace_conflict()

On Sat, Jan 17, 2026 at 12:51:17PM +0800, zengman wrote:

Thanks for your comment. I thought so too.

Applied as 2a6ce34b55e1.
--
Michael