Обсуждение: Is it safe to use fundamental type OIDs defined in server/catalog/pg_type.h from client?

Поиск
Список
Период
Сортировка

Is it safe to use fundamental type OIDs defined in server/catalog/pg_type.h from client?

От
"Hoon H."
Дата:
Hello folks.

I am writing a C/C++ program which uses `libpq`. I am stuck at getting result from PQresult because I want to parse
textfrom result automatically by its type OID value. But it's unclear how I should handle type informations.  
What I need is only fundamental built-in types - boolean, int, float, text, timestamp, binary. Maybe adding some system
requiredsystem - such as OID type itself. The problem is OID constant values for built-in types are not defined in
client-side.

According to some mailing list entries,

http://www.postgresql.org/message-id/20080708000535.GA10491@cuci.nl
http://www.postgresql.org/message-id/AANLkTimiNjQa7ws1tyR_W6RQPec6RlxQtWfACNMnZ_1P@mail.gmail.com

It seems safe to use macros defined in `server/catalog/pg_type.h`, but I still doubt because I couldn't find any
officialpolicy on these values.  
Though I agree people on the mailing list entries, but still this is completely up to dev-team's decision. Can I ask
someofficial policy on these values - OID values for built-in types? 

If there's some publicly existing policy, please drop me some link. It's too hard to find it.


Re: Is it safe to use fundamental type OIDs defined in server/catalog/pg_type.h from client?

От
Tom Lane
Дата:
"Hoon H." <drawtree@gmail.com> writes:
> According to some mailing list entries, 

> http://www.postgresql.org/message-id/20080708000535.GA10491@cuci.nl
> http://www.postgresql.org/message-id/AANLkTimiNjQa7ws1tyR_W6RQPec6RlxQtWfACNMnZ_1P@mail.gmail.com

> It seems safe to use macros defined in `server/catalog/pg_type.h`, but I still doubt because I couldn't find any
officialpolicy on these values. 
 

We never have changed the OIDs of those basic types, and I doubt we would.
We're well aware that some client code knows their numbers.
        regards, tom lane