Re: Make copyObject work in C++

Bertrand Drouvot <bertranddrouvot.pg@gmail.com>

From: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
To: Peter Eisentraut <peter@eisentraut.org>
Cc: Jelte Fennema-Nio <postgres@jeltef.nl>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Thomas Munro <thomas.munro@gmail.com>, Andres Freund <andres@anarazel.de>
Date: 2026-04-16T11:31:27Z
Lists: pgsql-hackers
Hi,

On Thu, Apr 16, 2026 at 10:07:35AM +0200, Peter Eisentraut wrote:
> On 14.04.26 15:10, Bertrand Drouvot wrote:
> > Hi,
> > 
> > On Thu, Apr 09, 2026 at 11:41:39AM +0000, Bertrand Drouvot wrote:
> > > Hi,
> > > 
> > > On Wed, Apr 01, 2026 at 07:54:07AM +0200, Peter Eisentraut wrote:
> > > > 
> > > > Ok, I have committed the shown patch.
> > > 
> > > d50c86e74375 added a comment mentionning that StaticAssertStmt is deprecated, so
> > > we really need the one added in test_cplusplusext.cpp?
> > 
> > Now that 66ad764c8d5 is in, the only remaining use of StaticAssertStmt() is in
> > test_cplusplusext.cpp. What about the attached to get rid of it?
> 
> This is a test module.  Even if the construct is deprecated, we can still
> test it.

Right, but I was thinking that if we introduce a "pg_attribute_deprecated" macro
(like discussed in [1] and [2]) and make use of it for StaticAssertStmt(), then
this test module would generate Warnings.

We can still come back to it should the above be implemented.

[1]: https://postgr.es/m/CA%2BhUKGK2zuRevnNzCpVzLA7ieHnJoYPnDvgtWRcB4pVnOzchhQ%40mail.gmail.com
[2]: https://postgr.es/m/aRGa87Ab0f3ItWRV@ip-10-97-1-34.eu-west-3.compute.internal

Regards,

-- 
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Enable test_cplusplusext with MSVC

  2. Disable some C++ warnings in MSVC

  3. meson: Make room for C++-only warning flags for MSVC

  4. Make fixed-length list building macros work in C++

  5. Make unconstify and unvolatize use StaticAssertVariableIsOfTypeMacro

  6. Use typeof everywhere instead of compiler specific spellings

  7. Test List macros in C++ extensions

  8. Test most StaticAssert macros in C++ extensions

  9. Revert "Change copyObject() to use typeof_unqual"

  10. Fix for C++ compatibility

  11. tests: Add a test C++ extension module