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.96) (envelope-from ) id 1vk6OM-009hW3-1K for pgsql-hackers@arkaria.postgresql.org; Sun, 25 Jan 2026 20:07:27 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vk6NK-005Qz7-2y for pgsql-hackers@arkaria.postgresql.org; Sun, 25 Jan 2026 20:06:23 +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.96) (envelope-from ) id 1vk6NJ-005Qyz-36 for pgsql-hackers@lists.postgresql.org; Sun, 25 Jan 2026 20:06:22 +0000 Received: from fout-a8-smtp.messagingengine.com ([103.168.172.151]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1vk6NG-00000000QqO-1Iq3 for pgsql-hackers@lists.postgresql.org; Sun, 25 Jan 2026 20:06:21 +0000 Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46]) by mailfout.phl.internal (Postfix) with ESMTP id 35EABEC0089; Sun, 25 Jan 2026 15:06:14 -0500 (EST) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-06.internal (MEProxy); Sun, 25 Jan 2026 15:06:14 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=anarazel.de; h= cc:cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm2; t=1769371574; x=1769457974; bh=MOrrXW3mYt K2ywW3cWmJe7mUf38bWxmW7A9u0CXURbo=; b=LFRL1oKAblCZCUItru9y277hyz 0SW2tNQ9iTrYGehdNzqwSTNaCFZ+o1dmQ22qIO72f3znrgK09TsH2DzzG8k/YWKr 7bViQWXF1TYHAO13Aeu03d9u6F9QxeJOs7XaE+FCsTsXQFbBWVVBOcgDdziC1VIj eYO5Rq0r2Vc9SJfKl/XbM7HG0fJG+1IVfogSHJgdoDEv3MNwq2SwRFfygRrxqB44 nBd5l7sjdBzasr6HoA5SOo+ltfM3WpDR5WDsK4Og3r8RB9zCEErmVpXG/gfVIW1U azh48rLwfS3iSN7yovqX68ipNWhD0Z8ikPcKXWmQ1S8RSrsZY6S7BgyjpHQA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t= 1769371574; x=1769457974; bh=MOrrXW3mYtK2ywW3cWmJe7mUf38bWxmW7A9 u0CXURbo=; b=Dzkn2wcnfFJC+Y9y8yUIhrKwsRwCKXRAG7v1+rHJtXczYXVCD78 xfH2vLnchWkAwsrysUnf3UJswjNSzNRQ/fItplo3JCBuND+Gzvuk7WfwoQHT7b82 04qG9iSSzpQip3Nt325N1ghxhmvKpm7ICDs6suSG8bbvabADIXowB3zP840T9GgB FEkps0WYG2ISJDfnwmzj4lLj2OXONtHf2+u6IBpKeWGXDOjhQKPDC1W7quP0Xs4o zP+lxSPOE997Xg1/yVHF3c3cvwlotdd5LJyTQrcgBNgKW8IBlNyUtGl8QCrPq2bZ oO05o1M69oXMemDkSOGMjeSGzbXFS633CKw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdduheehjedtucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhepfffhvfevuffkfhggtggujgesthdtsfdttddtvdenucfhrhhomheptehnughrvghs ucfhrhgvuhhnugcuoegrnhgurhgvshesrghnrghrrgiivghlrdguvgeqnecuggftrfgrth htvghrnhepfeffgfelvdffgedtveelgfdtgefghfdvkefggeetieevjeekteduleevjefh ueegnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomheprg hnughrvghssegrnhgrrhgriigvlhdruggvpdhnsggprhgtphhtthhopeegpdhmohguvgep shhmthhpohhuthdprhgtphhtthhopehpvghtvghrsegvihhsvghnthhrrghuthdrohhrgh dprhgtphhtthhopehthhhomhgrshdrmhhunhhrohesghhmrghilhdrtghomhdprhgtphht thhopehpohhsthhgrhgvshesjhgvlhhtvghfrdhnlhdprhgtphhtthhopehpghhsqhhlqd hhrggtkhgvrhhssehlihhsthhsrdhpohhsthhgrhgvshhqlhdrohhrgh X-ME-Proxy: Feedback-ID: id4a34324:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 25 Jan 2026 15:06:13 -0500 (EST) Date: Sun, 25 Jan 2026 15:06:12 -0500 From: Andres Freund To: Jelte Fennema-Nio Cc: Peter Eisentraut , PostgreSQL Hackers , Thomas Munro Subject: Re: Make copyObject work in C++ Message-ID: <2h2n2gyw2f4ucicbl3drtdkjt2wzf6b2r4wqm7xwks6vpx5j7n@imymv4hkz5jz> References: <4d8b9e53-3f37-43f0-a4aa-5bda9c7961b3@eisentraut.org> <4e82f77b-acad-4356-94f6-8255135fb36b@eisentraut.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hi, On 2026-01-25 18:52:37 +0100, Jelte Fennema-Nio wrote: > On Sun Jan 25, 2026 at 5:50 PM CET, Andres Freund wrote: > > We were going for designated > > initializers for a reason, namely that we expect more arguments to be added > > over time and perhaps eventually also to remove some. And this will just lead > > to that being harder because we have to worry about C++ extensions. > > Adding new arguments (aka fields) should cause no problems. Assuming > we'd add them at the end of the Pg_magic_struct definition. Removing > ones seems like even for C you'd need different PG_MODULE_MAGIC_EXT > invocations depending on PG_VERSION_NUM. I don't see how using > positional args would make that harder. Named args make that easier in two ways: First, only extensions using the to-be-removed option will fail. Second, removal of options reliably generates errors, rather than bogusly use one field for another, just because the types are compatible. Greetings, Andres Freund