Re: BUG #17365: Error: redefinition of 'stat' in win32_port.h when including postgres.h

From: Julien Rouhaud <rjuju123(at)gmail(dot)com>
To: Mario Emmenlauer <mario(at)emmenlauer(dot)de>
Cc: pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: BUG #17365: Error: redefinition of 'stat' in win32_port.h when including postgres.h
Date: 2022-01-16 15:18:35
Message-ID: 20220116151835.ro3b3shvsmmdeyt4@nol
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Hi,

On Sun, Jan 16, 2022 at 04:06:45PM +0100, Mario Emmenlauer wrote:
>
>
> Actually I do not really mean to include `postgres.h`. But I do want
> to identify result types with `Oid vOID = ::PQftype(mResult.get(), vColumn);`
> to check the result type. And the types seem to be defined in header
> `catalog/pg_type.h` which only worked when `postgres.h` was included before.
>
> I guess I'm off the standard track here. Its not completely mandatory for
> me to identify the result types. But it was quite nice to be able to do
> so.
>
> Is this actually unsupported? Or am I doing something wrong?

It's supported and multiple clien-side programs access those constants.
However you don't need to include postgres.h for that. There are examples in
the tree that relies on OID defines if you want to check how it's done, for
instance src/bin/pg_dump/pg_dump.c.

Note that the OIDs aren't in pg_type.h anymore since pg 11. Are you still
compiling against pg 10 or less?

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Mario Emmenlauer 2022-01-16 15:30:13 Re: BUG #17365: Error: redefinition of 'stat' in win32_port.h when including postgres.h
Previous Message Mario Emmenlauer 2022-01-16 15:14:19 Re: BUG #17365: Error: redefinition of 'stat' in win32_port.h when including postgres.h