Re: Make copyObject work in C++
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Jelte Fennema-Nio <postgres@jeltef.nl>
Cc: Peter Eisentraut <peter@eisentraut.org>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>,
Thomas Munro <thomas.munro@gmail.com>
Date: 2026-01-25T20:06:12Z
Lists: pgsql-hackers
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
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Enable test_cplusplusext with MSVC
- c05ad248f99c 19 (unreleased) landed
-
Disable some C++ warnings in MSVC
- 82a7cbea747c 19 (unreleased) landed
-
meson: Make room for C++-only warning flags for MSVC
- 4c83f1253593 19 (unreleased) landed
-
Make fixed-length list building macros work in C++
- f8e7ca328510 19 (unreleased) landed
-
Make unconstify and unvolatize use StaticAssertVariableIsOfTypeMacro
- 258248d0bdbf 19 (unreleased) landed
-
Use typeof everywhere instead of compiler specific spellings
- e2308350c9b7 19 (unreleased) landed
-
Test List macros in C++ extensions
- 3d28ecb5ac76 19 (unreleased) landed
-
Test most StaticAssert macros in C++ extensions
- 451650eaacd5 19 (unreleased) landed
-
Revert "Change copyObject() to use typeof_unqual"
- 0af05b5dbb42 19 (unreleased) landed
-
Fix for C++ compatibility
- b4555cb070f1 19 (unreleased) landed
-
tests: Add a test C++ extension module
- 476b35d4e311 19 (unreleased) landed