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 1w7UXg-005N4B-1y for pgsql-hackers@arkaria.postgresql.org; Tue, 31 Mar 2026 08:33:44 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w7UXf-008omG-07 for pgsql-hackers@arkaria.postgresql.org; Tue, 31 Mar 2026 08:33:43 +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.96) (envelope-from ) id 1w7UXe-008om6-21 for pgsql-hackers@lists.postgresql.org; Tue, 31 Mar 2026 08:33:43 +0000 Received: from fout-b1-smtp.messagingengine.com ([202.12.124.144]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1w7UXc-00000001wH5-31OJ for pgsql-hackers@lists.postgresql.org; Tue, 31 Mar 2026 08:33:42 +0000 Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43]) by mailfout.stl.internal (Postfix) with ESMTP id 1A5571D002BA; Tue, 31 Mar 2026 04:33:39 -0400 (EDT) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-03.internal (MEProxy); Tue, 31 Mar 2026 04:33:39 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eisentraut.org; 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=fm1; t=1774946018; x= 1775032418; bh=t5SDUxoXqMRWqShCuotJTO94ZiPyQPNSlfmOSpnWZMU=; b=o 7HMWKBUTNjr02AMozoA4xJny8AkfrgL55dbM8A4j33HjRiFexSSfowcy1VtOXIoE XsjIQhmXhCP+dKN7BGT1jW2+1hVGUPLsHqwLOR/qdqhUMuyqXDVbmyPcfP8Q6hUC jtkL1CFSqrCJRE7oS1w5tnnQwFtGL6W+Cbvk6q4K2RBlF0aDyOzA+NaImVUrCSza K3dszR4XhJfX2vheYaxHJGOEwjnmJoSI7LvFzGg8nEwxdEDsYQxVujZD/iKlGwt1 kUjnQWy0CBf9tE98wuQEIGZ1qEMgX22G/V6ICp7Lp45gAsJ5mMJeKBTk1H9ol0KJ vAOAtRM5hZFzdRCVLM64A== 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= 1774946018; x=1775032418; bh=t5SDUxoXqMRWqShCuotJTO94ZiPyQPNSlfm OSpnWZMU=; b=Xydz6AjaFy8gkXDlYfTJB8WQcYIxpoDlZPixBI5Z2giNCnai+07 lJVeQQeWUb6jeQDn4TjSR+jw5mwY4vlIxeHhgjpWgjyMq3PonSm+PNWgOSx/wc9U vF9lz7bxkFijpSe1Y/1tOJ2DytVvJSVed5TuOjsai6xDA874eqibxBuf7tbYuZPk p5sEaT6lVHA2uTOjSGM0MEqTyxEtdbVmx2QwxzTLgaESxj0HAsj0XPRq9ClpEuIJ 7lpb50PB8X8OX/Q9HRL4jPwgCg85bQceEuABq6YPSWh/wUT23lvxaHPt00BYch0E oW/mBW48QXDyI/jHyGAPabPFvaWp5SNlswQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdefgedugedvucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurheptgfkffggfgfuvfevfhfhjgesmhdtreertddvjeenucfhrhhomheprfgvthgvrhcu gfhishgvnhhtrhgruhhtuceophgvthgvrhesvghishgvnhhtrhgruhhtrdhorhhgqeenuc ggtffrrghtthgvrhhnpeektdeutdfhvdfhveeigfffteegvdejvdfhhfevfeevgfdtgfel geehieevhffgieenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfh hrohhmpehpvghtvghrsegvihhsvghnthhrrghuthdrohhrghdpnhgspghrtghpthhtohep gedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepphhoshhtghhrvghssehjvghlth gvfhdrnhhlpdhrtghpthhtohepphhgshhqlhdqhhgrtghkvghrsheslhhishhtshdrphho shhtghhrvghsqhhlrdhorhhgpdhrtghpthhtohepthhhohhmrghsrdhmuhhnrhhosehgmh grihhlrdgtohhmpdhrtghpthhtoheprghnughrvghssegrnhgrrhgriigvlhdruggv X-ME-Proxy: Feedback-ID: ie0a040ee:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 31 Mar 2026 04:33:37 -0400 (EDT) Content-Type: multipart/mixed; boundary="------------Inif1vwN03yHh0CMsrHpGg3E" Message-ID: <7ddb8894-3939-4846-8d7f-d886b2cb42ab@eisentraut.org> Date: Tue, 31 Mar 2026 10:33:36 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Make copyObject work in C++ To: Jelte Fennema-Nio Cc: PostgreSQL Hackers , Thomas Munro , Andres Freund References: <4d8b9e53-3f37-43f0-a4aa-5bda9c7961b3@eisentraut.org> <4e82f77b-acad-4356-94f6-8255135fb36b@eisentraut.org> <2h2n2gyw2f4ucicbl3drtdkjt2wzf6b2r4wqm7xwks6vpx5j7n@imymv4hkz5jz> <5291d173-1227-4619-b8fd-62336ad292b3@eisentraut.org> <6dff90f6-2afb-44a3-9524-b017924d71da@eisentraut.org> Content-Language: en-US From: Peter Eisentraut In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------Inif1vwN03yHh0CMsrHpGg3E Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 30.03.26 00:53, Jelte Fennema-Nio wrote: > On Fri, 27 Mar 2026 at 12:23, Peter Eisentraut > wrote: >> Here is another tidied up patch set for this.  I didn't go quite as far >> as enabling C++20 by default in meson.build, this would just take more >> time to work out and test all the different combinations, but I added >> the flag to the Cirrus CI task, since there we know what compiler we >> have. > > I think 0001 and 0002 are good. > > 0003 seems awkward though. Attached is an approach that I think is > better: It actually checks for the required featureset and adds the > necessary flags to the compiler. Hmm, note that C++ is also used for LLVM/JIT, and by requiring this additional feature set we are also imposing new requirements for those users. This has not been fully explored, and I hesitate to add such a new requirement at the last moment. But how about this: We add the feature test that you propose and enable the extension based on that. See attached patch. This reduces to essentially a three-line patch, much simpler than all previous proposals. --------------Inif1vwN03yHh0CMsrHpGg3E Content-Type: text/plain; charset=UTF-8; name="0001-Enable-test_cplusplusext-with-MSVC.patch" Content-Disposition: attachment; filename="0001-Enable-test_cplusplusext-with-MSVC.patch" Content-Transfer-Encoding: base64 RnJvbSBlYzdlMTJiMWMwZTUzYTlhMWE0NmQxZjQzNDc5ZmRmNzFkNGJhOGViIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAzMSBNYXIgMjAyNiAwOTo0ODo1MiArMDIwMApTdWJqZWN0 OiBbUEFUQ0hdIEVuYWJsZSB0ZXN0X2NwbHVzcGx1c2V4dCB3aXRoIE1TVkMKClRoZSB0ZXN0 X2NwbHVzcGx1c2V4dCB0ZXN0IG1vZHVsZSBoYXMgc28gZmFyIGJlZW4gZGlzYWJsZWQgb24g TVNWQy4KVGhlIG9ubHkgcmVtYWluaW5nIHByb2JsZW0gbm93IGlzIHRoYXQgZGVzaWduYXRl ZCBpbml0aWFsaXplcnMsIGFzCnVzZWQgaW4gUEdfTU9EVUxFX01BR0lDLCByZXF1aXJlIEMr KzIwLiAgKFdpdGggR0NDIGFuZCBDbGFuZyB0aGV5IHdvcmsKaW4gb2xkZXIgQysrIHZlcnNp b25zIGFzIHdlbGwuKQoKVGhpcyBhZGRzIGFub3RoZXIgdGVzdCBpbiB0aGUgdG9wLWxldmVs IG1lc29uLmJ1aWxkIHRvIGNoZWNrIHRoYXQgdGhlCmNvbXBpbGVyIHN1cHBvcnRzIEMrKzIw IGRlc2lnbmF0ZWQgaW5pdGlhbGl6ZXJzLiAgVGhpcyBpcyBub3QKcmVxdWlyZWQsIHdlIGFy ZSBqdXN0IGNoZWNraW5nIGFuZCByZWNvcmRpbmcgdGhlIGFuc3dlci4gIElmIHllcywgd2UK Y2FuIGVuYWJsZSB0aGUgdGVzdCBtb2R1bGUuCgpNb3N0IGN1cnJlbnQgY29tcGlsZXJzIGxp a2VseSB3b24ndCBiZSBpbiBDKysyMCBtb2RlIGJ5IGRlZmF1bHQuICBUaGlzCmRvZXNuJ3Qg Y2hhbmdlIHRoYXQ7IHdlIGFyZSBub3QgZG9pbmcgYW55dGhpbmcgdG8gdHJ5IHRvIHN3aXRj aCB0aGUKY29tcGlsZXIgaW50byB0aGF0IG1vZGUuICBUaGlzIG1pZ2h0IGJlIGEgc2VwYXJh dGUgcHJvamVjdCwgYnV0IGZvcgpub3cgd2UnbGwgbGVhdmUgdGhhdCBmb3IgdGhlIHVzZXIg b3IgdGhlIHRlc3Qgc2NhZmZvbGRpbmcuCgpUaGUgVlMgdGFzayBvbiBDaXJydXMgQ0kgaXMg Y2hhbmdlZCB0byBwcm92aWRlIHRoZSByZXF1aXJlZCBmbGFnIHRvCnR1cm4gb24gQysrMjAg bW9kZS4KCkRpc2N1c3Npb246IGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL21lc3NhZ2Ut aWQvZmxhdC9DQUdFQ3pRUjIxT25uS2laT18xckxXTzAtMTZrZzFKQnhuVnEtd3ltWVcwLV8x Y1VOdGclNDBtYWlsLmdtYWlsLmNvbQotLS0KIC5jaXJydXMudGFza3MueW1sICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgMSArCiBtZXNvbi5idWlsZCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgMTQgKysrKysrKysrKysrKysKIHNyYy90ZXN0L21v ZHVsZXMvdGVzdF9jcGx1c3BsdXNleHQvbWVzb24uYnVpbGQgfCAgNyArLS0tLS0tCiAzIGZp bGVzIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvLmNpcnJ1cy50YXNrcy55bWwgYi8uY2lycnVzLnRhc2tzLnltbAppbmRleCAwZjMy ODI3OTUyZi4uYTIyY2VmMDYzZjMgMTAwNjQ0Ci0tLSBhLy5jaXJydXMudGFza3MueW1sCisr KyBiLy5jaXJydXMudGFza3MueW1sCkBAIC03ODIsNiArNzgyLDcgQEAgdGFzazoKICAgICBD SVJSVVNfV0lORE9XU19FUlJPUl9NT0RFOiAweDgwMDEKIAogICAgIE1FU09OX0ZFQVRVUkVT OgorICAgICAgLURjcHBfYXJncz0vc3RkOmMrKzIwCiAgICAgICAtRGF1dG9fZmVhdHVyZXM9 ZGlzYWJsZWQKICAgICAgIC1EbGRhcD1lbmFibGVkCiAgICAgICAtRHNzbD1vcGVuc3NsCmRp ZmYgLS1naXQgYS9tZXNvbi5idWlsZCBiL21lc29uLmJ1aWxkCmluZGV4IGM0YjRjZDRhZjA2 Li44YjEzNGIyOGE2OSAxMDA2NDQKLS0tIGEvbWVzb24uYnVpbGQKKysrIGIvbWVzb24uYnVp bGQKQEAgLTIxNzYsNiArMjE3NiwyMCBAQCBjaG9rZSBtZQogZW5kaWYKIAogCisjIENoZWNr IHdoZXRoZXIgdGhlIEMrKyBjb21waWxlciBzdXBwb3J0cyBkZXNpZ25hdGVkIGluaXRpYWxp emVycy4KKyMgVGhlc2UgYXJlIHVzZWQgYnkgUEdfTU9EVUxFX01BR0lDLCBhbmQgd2UgdXNl IHRoZSByZXN1bHQgb2YgdGhpcworIyB0ZXN0IHRvIGRlY2lkZSB3aGV0aGVyIHRvIGVuYWJs ZSB0aGUgdGVzdF9jcGx1c3BsdXNleHQgdGVzdCBtb2R1bGUuCisjIERlc2lnbmF0ZWQgaW5p dGlhbGl6ZXJzIG9ubHkgZ290IHN0YW5kYXJkaXplZCBpbiBDKysyMC4gIEluIEdDQyBhbmQK KyMgQ2xhbmcgdGhleSBhbHNvIHdvcmsgd2hlbiB1c2luZyBlYXJsaWVyIEMrKyB2ZXJzaW9u cywgYnV0IE1TVkMKKyMgcmVhbGx5IG9ubHkgc3VwcG9ydHMgdGhlbSB3aGVuIGl0cyBjb25m aWd1cmVkIHRvIGJlIGluIEMrKzIwIG1vZGUgb3IKKyMgaGlnaGVyLgoraWYgaGF2ZV9jeHgK KyAgaGF2ZV9jeHhfZGVzaW5pdCA9IGN4eC5jb21waWxlcygnc3RydWN0IFMgeyBpbnQgeDsg fSBzID0geyAueCA9IDEgfTsnLCBuYW1lOiAnQysrIGRlc2lnbmF0ZWQgaW5pdGlhbGl6ZXJz JykKK2Vsc2UKKyAgaGF2ZV9jeHhfZGVzaW5pdCA9IGZhbHNlCitlbmRpZgorCisKIAogIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCiAjIENvbXBpbGVyIGZsYWdzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVz L3Rlc3RfY3BsdXNwbHVzZXh0L21lc29uLmJ1aWxkIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0 X2NwbHVzcGx1c2V4dC9tZXNvbi5idWlsZAppbmRleCBkMTMyMTBjYTU5My4uNTg2MDQ2NGE1 MDMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9jcGx1c3BsdXNleHQvbWVz b24uYnVpbGQKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2NwbHVzcGx1c2V4dC9tZXNv bi5idWlsZApAQCAtMSwxMSArMSw2IEBACiAjIENvcHlyaWdodCAoYykgMjAyNS0yMDI2LCBQ b3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAogCi1pZiBub3QgaGF2ZV9jeHgK LSAgc3ViZGlyX2RvbmUoKQotZW5kaWYKLQotIyBDdXJyZW50bHkgbm90IHN1cHBvcnRlZCwg dG8gYmUgZml4ZWQuCi1pZiBjYy5nZXRfaWQoKSA9PSAnbXN2YycKK2lmIG5vdCBoYXZlX2N4 eCBvciBub3QgaGF2ZV9jeHhfZGVzaW5pdAogICBzdWJkaXJfZG9uZSgpCiBlbmRpZgogCi0t IAoyLjUzLjAKCg== --------------Inif1vwN03yHh0CMsrHpGg3E--