| From: | Bryan Green <dbryan(dot)green(at)gmail(dot)com> |
|---|---|
| To: | pgsql-hackers(at)lists(dot)postgresql(dot)org |
| Subject: | Re: Make copyObject work in C++ |
| Date: | 2026-02-04 15:54:37 |
| Message-ID: | b03ddcd4-2a16-49ee-b105-e7f609f3c514@gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On 1/25/2026 6:42 AM, Jelte Fennema-Nio wrote:
> On Tue Jan 20, 2026 at 5:28 PM CET, Peter Eisentraut wrote:
>> I have split your first patch further. For a start, I left out the
>> PG_MODULE_MAGIC*-related changes and disabled the module under MSVC.
>> This has been committed. I plan to let the buildfarm run with it for
>> a day or two and then add in the basic MSVC support.
>
> To hopefully make your life a bit easier. Here's a rebased version that
> enables the MSVC support again, with an updated commit message.
>
This causes the build to break on VS 2022. Versions prior do not have
support for __typeof_unqual__. This would have led to
HAVE_TYPEOF_UNQUAL being not defined on the buildfarm causing the
fallback to copyObjectImpl() for VS 2019.
When you build on VS 2022 you will get an error:
../src/backend/commands/event_trigger.c(1901): error C2100: you cannot
dereference an operand of type 'void'
VS 2022 (MSVC) does not handle the void * dereference the way gcc/clang
does (thanks to GNU extensions, I believe). It exposes
__typeof_unqual__ even it C11, but enforces strict C semantics on the
void * dereference. To work on this platform the call
copyObject(lfirst(cell)) would need to have a cast to the correct
concrete type: copyObject((Node *)lfirst(cell)).
I was about to update to VS 2026, but now I think I should have an
instance of VS from 2019, 2022, and 2026.
--
Bryan Green
EDB: https://www.enterprisedb.com
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Zsolt Parragi | 2026-02-04 15:57:48 | Re: Flush some statistics within running transactions |
| Previous Message | Fujii Masao | 2026-02-04 15:50:16 | Re: Allow GUC settings in CREATE SUBSCRIPTION CONNECTION to take effect |