Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ubEJR-00FKSx-1x for pgsql-hackers@arkaria.postgresql.org; Mon, 14 Jul 2025 08:13:25 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1ubEJP-004mCV-3P for pgsql-hackers@arkaria.postgresql.org; Mon, 14 Jul 2025 08:13:23 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ubEJO-004mCN-QG for pgsql-hackers@lists.postgresql.org; Mon, 14 Jul 2025 08:13:23 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by makus.postgresql.org with smtp (Exim 4.96) (envelope-from ) id 1ubEJM-007CZO-1c for pgsql-hackers@lists.postgresql.org; Mon, 14 Jul 2025 08:13:22 +0000 Received: from oss.nttdata.com (localhost [127.0.0.1]) by oss.nttdata.com (Postfix) with ESMTPA id E6D7761C12; Mon, 14 Jul 2025 17:13:15 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at oss.nttdata.com MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Mon, 14 Jul 2025 17:13:15 +0900 From: Masahiro Ikeda To: Fujii Masao Cc: Fujii Masao , Dilip Kumar , Richard Guo , PostgreSQL Hackers Subject: Re: Assertion failure in smgr.c when using pg_prewarm with partitioned tables In-Reply-To: <1a3170ba-a2d2-4519-be04-6b620f698be3@oss.nttdata.com> References: <1cf7a731-024b-4421-8f09-b67b5c25df93@email.android.com> <591e4384-87c1-46b6-a4f2-144738f24956@oss.nttdata.com> <23d5aea0-be92-4837-a5ee-1bdf0ebc49c5@oss.nttdata.com> <548d2eb7ae9d1ff4c8cc7e4e3251b8d3@oss.nttdata.com> <1a3170ba-a2d2-4519-be04-6b620f698be3@oss.nttdata.com> User-Agent: Roundcube Webmail/1.4.11 Message-ID: X-Sender: ikedamsh@oss.nttdata.com List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On 2025-07-04 20:32, Fujii Masao wrote: > On 2025/06/02 16:32, Masahiro Ikeda wrote: >> OK, I think v5-0002 should be back-patched, since using incorrect >> error codes is essentially a bug. > > Thanks for updating the patches! > > While reviewing the code: > > amtup = SearchSysCache1(AMOID, > ObjectIdGetDatum(am_id)); > amtuprel = SearchSysCache1(AMOID, > ObjectIdGetDatum(rel->rd_rel->relam)); > ereport(ERROR, > - > (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), > + (errcode(ERRCODE_WRONG_OBJECT_TYPE), > errmsg("expected \"%s\" index as > targets for verification", NameStr(((Form_pg_am) > GETSTRUCT(amtup))->amname)), > errdetail("Relation \"%s\" is a %s > index.", > > RelationGetRelationName(rel), NameStr(((Form_pg_am) > GETSTRUCT(amtuprel))->amname)))); > > I initially thought switching to ERRCODE_WRONG_OBJECT_TYPE made sense, > but after checking similar cases, I'm reconsidering. For instance, > pgstat_relation() in pgstattuple.c uses ERRCODE_FEATURE_NOT_SUPPORTED > when the access method is unexpected. That suggests using > FEATURE_NOT_SUPPORTED here may not be incorrect. OK, that seems reasonable to me. > if (!rel->rd_index->indisvalid) > ereport(ERROR, > - > (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), > + > (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), > errmsg("cannot check index \"%s\"", > > RelationGetRelationName(rel)), > errdetail("Index is not valid."))); > > Other parts of the codebase (including pgstattuple) use > ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE when rejecting invalid index. > So, changing to this error code still seems reasonable and more > consistent overall. > > Given that, I'd like to merge just this error code change from > the 0002 patch into 0003, and apply the combined patch to > the master branch only. Although I briefly considered backpatching > the change of error code, it could be seen as a behavioral change, > and the existing error code doesn't cause any real problem in older > branches. So it's probably better to leave it as-is there. > > The updated patch is attached. It also changes index_checkable() > from extern to static, since it's only used within verify_common.c. > > Thoughts? Thanks for updating the patch. I agree with your idea. BTW, is "witha" a typo in the commit message? Aside from that, I have no additional comments on your patch. Regards, -- Masahiro Ikeda NTT DATA Japan Corporation