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 1u4UEC-002isy-R0 for pgsql-hackers@arkaria.postgresql.org; Tue, 15 Apr 2025 00:32:41 +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 1u4UEA-005L1P-Dm for pgsql-hackers@arkaria.postgresql.org; Tue, 15 Apr 2025 00:32:39 +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 1u4UEA-005L1E-3o for pgsql-hackers@lists.postgresql.org; Tue, 15 Apr 2025 00:32:38 +0000 Received: from 003.mia.mailroute.net ([199.89.3.6]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1u4UE8-0006ay-0L for pgsql-hackers@postgresql.org; Tue, 15 Apr 2025 00:32:37 +0000 Received: from localhost (localhost [127.0.0.1]) by 003.mia.mailroute.net (Postfix) with ESMTP id 4Zc4ql4JH0zlw3fY; Tue, 15 Apr 2025 00:32:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=acm.org; h= content-transfer-encoding:content-type:content-type:in-reply-to :mime-version:user-agent:date:date:message-id:from:from :references:subject:subject:received:received; s=mr01; t= 1744677154; x=1747269155; bh=0VdMXAXWJr1w53o6o6VCO2NduD8s5LjDY36 8W5tUuvI=; b=qh5STz3vpafw4YJS35ODF0e78z4/6wnSQ1ijlrbrNJgZto7GJ3V oM/VApkUVpCtGvlxe0DsRbh8z3PMkRawO7RvbMhN2++xoeIrAurZFylifZQtz4qU ome0tRgG3sA1a5h8ccTLlJOBiJuTGHonmtrkbbwaHxe48MjvzZ2uLVJ5iTsSkLSh G+pjCH2M0xSah3WhhbdwIW02TLXZtWxzoDCMrOkWVI7+Qnwuea8nIITCzcA3Fy3N TUsn/rwHG6mJeCKMG7IUWw4iPvCiHboAqD8qok99VJ2H6B045OMr9opwST+XKDhk KrPVviQaj5zuIR72byGRyRsXaV/nnCDFqzw== X-Virus-Scanned: by MailRoute Received: from 003.mia.mailroute.net ([127.0.0.1]) by localhost (003.mia [127.0.0.1]) (mroute_mailscanner, port 10029) with LMTP id ofZrZk4Hv8Lf; Tue, 15 Apr 2025 00:32:34 +0000 (UTC) Received: from [73.103.120.3] (c-73-103-120-3.hsd1.in.comcast.net [73.103.120.3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: jcflack@acm.org) by 003.mia.mailroute.net (Postfix) with ESMTPSA id 4Zc4qh2Q6Czlw3fS; Tue, 15 Apr 2025 00:32:30 +0000 (UTC) Subject: Re: FmgrInfo allocation patterns (and PL handling as staged programming) To: Tom Lane References: <67F2B767.9040507@acm.org> <2965818.1743960827@sss.pgh.pa.us> <67F2D87F.1000709@acm.org> <2978258.1743968866@sss.pgh.pa.us> <67F30DDA.4000509@acm.org> <3112950.1743984111@sss.pgh.pa.us> <67F31F20.6090706@acm.org> <3291225.1743993461@sss.pgh.pa.us> Cc: PostgreSQL Hackers , Peter Eisentraut From: Chapman Flack X-Enigmail-Draft-Status: N1110 Message-ID: <67FDA91C.1060909@acm.org> Date: Mon, 14 Apr 2025 20:32:28 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.0 MIME-Version: 1.0 In-Reply-To: <3291225.1743993461@sss.pgh.pa.us> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On 04/06/25 22:37, Tom Lane wrote: > Here's a draft patch to fix the bogus dependencies. As given this'd > only be okay for HEAD, since I doubt we can get away with changing > ProcedureCreate()'s signature in stable branches ... In the back branches > we could make ProcedureCreate() deconstruct the OID array it's given and > then repeat the transform lookups, but ugh. ... > > BTW, I feel a little uncomfortable with the idea that we're adding > dependencies on objects that are explicitly mentioned nowhere in the > pg_proc entry. Pursuing that idea a bit further, was there a compelling original reason the column in pg_proc had to be protrftypes and not just protransforms? The transforms have been looked up at ProcedureCreate time. Any PL that supports transforms has to repeat the transform lookups if there are protrftypes present. Any PL that doesn't support transforms needs only to check for presence and say "sorry, I don't support those", which it could do just as easily with a list of transforms as with a list of types. Regards, -Chap