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

From: Mario Emmenlauer <mario(at)emmenlauer(dot)de>
To: Julien Rouhaud <rjuju123(at)gmail(dot)com>
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:30:13
Message-ID: 405193c8-22a6-3b1b-8e6b-3086151e011f@emmenlauer.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs


Hi,

On 16.01.22 16:18, Julien Rouhaud wrote:
> 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?

Ah, this is very helpful! Indeed I developed this code against pg 9.x!
I can see the OID's now in `catalog/pg_type_d.h` and I found a related
commit that may be just exactly what you refer to:
9c0a0de4c9 Tom Lane Switch client-side code to include catalog/pg_foo_d.h not pg_foo.h.

So I assume `catalog/pg_type_d.h` is really what I want! And it does not
need `postgres.h`. Thanks!

All the best,

Mario

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2022-01-16 16:43:14 Re: pg_upgrade --check doesn't check pg_pltemplate modifications
Previous Message Julien Rouhaud 2022-01-16 15:18:35 Re: BUG #17365: Error: redefinition of 'stat' in win32_port.h when including postgres.h