Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1o92J7-0002Kf-Sw for pgsql-hackers@arkaria.postgresql.org; Wed, 06 Jul 2022 10:30:57 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1o92J6-0005j8-LL for pgsql-hackers@arkaria.postgresql.org; Wed, 06 Jul 2022 10:30:56 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1o92J6-0005iz-C3 for pgsql-hackers@lists.postgresql.org; Wed, 06 Jul 2022 10:30:56 +0000 Received: from out5-smtp.messagingengine.com ([66.111.4.29]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1o92J4-0005tz-28 for pgsql-hackers@postgresql.org; Wed, 06 Jul 2022 10:30:55 +0000 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id BB97C5C004D; Wed, 6 Jul 2022 06:30:50 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Wed, 06 Jul 2022 06:30:50 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1657103450; x= 1657189850; bh=9CZAZ661ln/gX8ar5mD3ovs0P/gPhzoA9RXs6YdFMq4=; b=k 2NRx17VDpClvTanyrBtVy23dkGXC79Dc6SkQ0Hb998ptLUYFE1dcLHzNNTcFALOD DTC/pAask6QscFYmgbsf3svipwcYlnqsYrXuA/1iR9ZZRjGLZlpcW3lWUn+qURtg 7Ntd+VfiGLcNXV2F+2hV/4Ne++ujoY3G1tVWSzV3SsDBMhiZOpk+1pfrvInPJBc3 VDLjtNkXcieJS/Sm4bO3BnhlYRpk1Ec3h/UP6xC1UaWcCALZzQRVFmvaz5gcbZ7h GtqSA+y1ZJSVPXU2NFuq5wDwtIOg4a0U2apdT51AcMsxRxjyavBvJyft/uHnBW/q mX0d16o/mpQO+AUb0WCpg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrudeifedgvdekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefkffggfgfuvfevfhfhjggtgfesth ejredttdefjeenucfhrhhomheprfgvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgv rhdrvghishgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomheqnecuggftrf grthhtvghrnhepheelffeggedujeetiefhleetuddvieffhfffvdejvdffgeejkeduledu heduieefnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomh epphgvthgvrhdrvghishgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomh X-ME-Proxy: Feedback-ID: i131946ab:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 6 Jul 2022 06:30:49 -0400 (EDT) Message-ID: Date: Wed, 6 Jul 2022 12:30:49 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: automatically generating node support functions Content-Language: en-US To: Tom Lane Cc: David Rowley , pgsql-hackers References: <2f876203-7142-fa71-6d22-6ce00eb26869@enterprisedb.com> <50fedc80-4104-bdc8-d777-04f030fc550f@dunslane.net> <7848b872-7a10-67b2-b55f-7c9c475ae863@enterprisedb.com> <40a2e977-98ba-0c01-af6c-9dfb39e864ba@enterprisedb.com> <812ea8eb-6827-ba32-6ec0-6714f7ffa5dd@enterprisedb.com> <2905876.1644858587@sss.pgh.pa.us> <968928d9-a526-a1b5-dc36-0355632a843e@enterprisedb.com> <1294462.1656875649@sss.pgh.pa.us> <57df9f30-d2cf-9126-28d4-ae40a2e733a9@enterprisedb.com> <1593978.1656953960@sss.pgh.pa.us> <2052982.1657068886@sss.pgh.pa.us> From: Peter Eisentraut In-Reply-To: <2052982.1657068886@sss.pgh.pa.us> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On 06.07.22 02:54, Tom Lane wrote: > It might be enough to invent a struct-level attribute allowing > manual assignment of node tags, ie > > typedef struct MyNewNode pg_node_attr(nodetag=466) > > where it'd be the programmer's responsibility to pick a nonconflicting > tag number. We'd only ever use that in ABI-frozen branches, so > manual assignment of the tag value should be workable. Yes, I'm aware of this issue, and that was also more or less my idea. (Well, before the introduction of per-struct attributes, I was thinking about parsing nodes.h to see if the tag is listed explicitly. But this is probably better.)