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 1sg69g-00FJHa-NQ for pgsql-bugs@arkaria.postgresql.org; Mon, 19 Aug 2024 17:26:56 +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 1sg69e-000rbJ-I8 for pgsql-bugs@arkaria.postgresql.org; Mon, 19 Aug 2024 17:26:55 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sg69e-000rbA-9x for pgsql-bugs@lists.postgresql.org; Mon, 19 Aug 2024 17:26:54 +0000 Received: from sss.pgh.pa.us ([68.162.161.243]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sg69b-000Tsr-8d for pgsql-bugs@lists.postgresql.org; Mon, 19 Aug 2024 17:26:54 +0000 Received: from sss1.sss.pgh.pa.us (localhost [127.0.0.1]) by sss.pgh.pa.us (8.15.2/8.15.2) with ESMTP id 47JHQohd1390981; Mon, 19 Aug 2024 13:26:50 -0400 From: Tom Lane To: Andrei Lepikhov cc: Richard Guo , pgsql-bugs@lists.postgresql.org Subject: Re: BUG #18576: Using EXPLAIN (VERBOSE) in information_schema.element_types returns ERROR: failed to find plan for In-reply-to: <5e129a8e-5b8d-4a61-9776-59be99a2c14f@gmail.com> References: <18576-9feac34e132fea9e@postgresql.org> <2336091.1723137115@sss.pgh.pa.us> <2493069.1723149304@sss.pgh.pa.us> <2548861.1723174234@sss.pgh.pa.us> <2799439.1723217127@sss.pgh.pa.us> <332f0e30-f90a-4e47-b668-b53f649c244f@gmail.com> <1385302.1724085401@sss.pgh.pa.us> <5e129a8e-5b8d-4a61-9776-59be99a2c14f@gmail.com> Comments: In-reply-to Andrei Lepikhov message dated "Mon, 19 Aug 2024 19:11:00 +0200" MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <1390979.1724088410.1@sss.pgh.pa.us> Date: Mon, 19 Aug 2024 13:26:50 -0400 Message-ID: <1390980.1724088410@sss.pgh.pa.us> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Andrei Lepikhov writes: > On 19/8/2024 18:36, Tom Lane wrote: >> This seems like it's making assumptions it shouldn't about what >> CustomScan does. If there's an argument for doing this, it should >> be added to the adjacent comments. > Hm, I got into this problem many times using CustomScan node. Do you > have some objections to not allow CustomScan node have a RECORD Var in > the target list? In the case of a childless Result, we can suppose that the reason why we're here is that a provably-empty subquery got optimized away. If the Var were actually evaluated at runtime, it would fail, so that had better be the case. (I thought about extending these new Asserts to check that the Result has a constant-false resconstantqual, but decided that was overkill.) It's not clear to me what the equivalent argument is for allowing CustomScan. I don't say that there isn't one. I do say that a patch like this should make that argument, in the same comment block that explains why we're doing this for Result. The main reason I'm being sticky about this is that if we need to allow CustomScan, then it seems likely that we also need to allow ForeignScan, and maybe some other things, and then I start to wonder if we should have any assertion at all about the child plan type. So I want to actually understand what is the scenario in which this will happen. regards, tom lane