On Fri, Oct 14, 2022 at 2:31 PM Laurenz Albe <laurenz.albe@xxxxxxxxxxx> wrote: > You use the #defines like TEXTOID for the built-in Oids, right? I don't. I used https://github.com/postgres/postgres/blob/master/src/include/catalog/pg_type.dat as a reference. I suspect that should be fairly stable, right? I have at least 2 or 3 dozen OIDs pairs (scalar + array) of primitives and other types (Oid, Name, Text, Bytea, Uuid, etc...). Are there #defines for all of those? Where? template<> struct OidTraits<bool> { // boolean, true/false static constexpr Type type{ "bool", 1, Oid{ 16 }, Oid{ 1000 } }; }; template<> struct OidTraits<Bytea> { // variable-length string, binary values escaped static constexpr Type type{ "bytea", -1, Oid{ 17 }, Oid{ 1001 } }; }; etc... > For types from an extensions, you would run a query on "pg_type". OK, thanks.