Slightly more complex then you may expect because the tablespace specified by the tables tends to be oid 0 which means the default tablespace is used. However this does not mean pg_default, it means the tablespace as defined as standard in the database definition. So we need to know what the current dbname is retrieve it's details from the catalog and retrieve that tablespace to know what to show for an oid of 0.
196 lines
6 KiB
C++
196 lines
6 KiB
C++
#ifndef PGSQL_OIDS_H
|
|
#define PGSQL_OIDS_H
|
|
|
|
#include <libpq-fe.h>
|
|
#include <cstdint>
|
|
#include <QDateTime>
|
|
|
|
namespace Pgsql {
|
|
constexpr Oid bool_oid = 16;
|
|
constexpr Oid bytea_oid = 17;
|
|
constexpr Oid char_oid = 18;
|
|
constexpr Oid name_oid = 19;
|
|
constexpr Oid int8_oid = 20;
|
|
constexpr Oid int2_oid = 21;
|
|
constexpr Oid int4_oid = 23;
|
|
constexpr Oid regproc_oid = 24;
|
|
constexpr Oid text_oid = 25;
|
|
constexpr Oid oid_oid = 26;
|
|
constexpr Oid tid_oid = 27;
|
|
constexpr Oid xid_oid = 28;
|
|
constexpr Oid cid_oid = 29;
|
|
constexpr Oid json_oid = 114;
|
|
constexpr Oid xml_oid = 142;
|
|
constexpr Oid point_oid = 600;
|
|
constexpr Oid lseg_oid = 601;
|
|
constexpr Oid path_oid = 602;
|
|
constexpr Oid box_oid = 603;
|
|
constexpr Oid polygon_oid = 604;
|
|
constexpr Oid line_oid = 628;
|
|
constexpr Oid cidr_oid = 650;
|
|
constexpr Oid float4_oid = 700;
|
|
constexpr Oid float8_oid = 701;
|
|
constexpr Oid abstime_oid = 702;
|
|
constexpr Oid reltime_oid = 703;
|
|
constexpr Oid tinterval_oid = 704;
|
|
constexpr Oid circle_oid = 718;
|
|
constexpr Oid money_oid = 790;
|
|
constexpr Oid macaddr_oid = 829;
|
|
constexpr Oid inet_oid = 869;
|
|
constexpr Oid aclitem_oid = 1033;
|
|
constexpr Oid bpchar_oid = 1042;
|
|
constexpr Oid varchar_oid = 1043;
|
|
constexpr Oid date_oid = 1082;
|
|
constexpr Oid time_oid = 1083;
|
|
constexpr Oid timestamp_oid = 1114;
|
|
constexpr Oid timestamptz_oid = 1184;
|
|
constexpr Oid interval_oid = 1186;
|
|
constexpr Oid timetz_oid = 1266;
|
|
constexpr Oid bit_oid = 1560;
|
|
constexpr Oid varbit_oid = 1562;
|
|
constexpr Oid numeric_oid = 1700;
|
|
constexpr Oid refcursor_oid = 1790;
|
|
constexpr Oid regprocedure_oid = 2202;
|
|
constexpr Oid regoper_oid = 2203;
|
|
constexpr Oid regoperator_oid = 2204;
|
|
constexpr Oid regclass_oid = 2205;
|
|
constexpr Oid regtype_oid = 2206;
|
|
constexpr Oid uuid_oid = 2950;
|
|
constexpr Oid txid_snapshot_oid = 2970;
|
|
constexpr Oid pg_lsn_oid = 3220;
|
|
constexpr Oid tsvector_oid = 3614;
|
|
constexpr Oid tsquery_oid = 3615;
|
|
constexpr Oid gtsvector_oid = 3642;
|
|
constexpr Oid regconfig_oid = 3734;
|
|
constexpr Oid regdictionary_oid = 3769;
|
|
constexpr Oid jsonb_oid = 3802;
|
|
constexpr Oid int4range_oid = 3904;
|
|
constexpr Oid numrange_oid = 3906;
|
|
constexpr Oid tsrange_oid = 3908;
|
|
constexpr Oid tstzrange_oid = 3910;
|
|
constexpr Oid daterange_oid = 3912;
|
|
constexpr Oid int8range_oid = 3926;
|
|
constexpr Oid regnamespace_oid = 4089;
|
|
constexpr Oid regrole_oid = 4096;
|
|
|
|
constexpr Oid bool_array_oid = 1000;
|
|
constexpr Oid bytea_array_oid = 1001;
|
|
constexpr Oid char_array_oid = 1002;
|
|
constexpr Oid name_array_oid = 1003;
|
|
constexpr Oid int8_array_oid = 1016;
|
|
constexpr Oid int2_array_oid = 1005;
|
|
constexpr Oid int4_array_oid = 1007;
|
|
constexpr Oid regproc_array_oid = 1008;
|
|
constexpr Oid text_array_oid = 1009;
|
|
constexpr Oid oid_array_oid = 1028;
|
|
constexpr Oid tid_array_oid = 1010;
|
|
constexpr Oid xid_array_oid = 1011;
|
|
constexpr Oid cid_array_oid = 1012;
|
|
constexpr Oid json_array_oid = 199;
|
|
constexpr Oid xml_array_oid = 143;
|
|
constexpr Oid point_array_oid = 1017;
|
|
constexpr Oid lseg_array_oid = 1018;
|
|
constexpr Oid path_array_oid = 1019;
|
|
constexpr Oid box_array_oid = 1020;
|
|
constexpr Oid polygon_array_oid = 1027;
|
|
constexpr Oid line_array_oid = 629;
|
|
constexpr Oid cidr_array_oid = 651;
|
|
constexpr Oid float4_array_oid = 1021;
|
|
constexpr Oid float8_array_oid = 1022;
|
|
constexpr Oid abstime_array_oid = 1023;
|
|
constexpr Oid reltime_array_oid = 1024;
|
|
constexpr Oid tinterval_array_oid = 1025;
|
|
constexpr Oid circle_array_oid = 719;
|
|
constexpr Oid money_array_oid = 791;
|
|
constexpr Oid macaddr_array_oid = 1040;
|
|
constexpr Oid inet_array_oid = 1041;
|
|
constexpr Oid aclitem_array_oid = 1034;
|
|
constexpr Oid bpchar_array_oid = 1014;
|
|
constexpr Oid varchar_array_oid = 1015;
|
|
constexpr Oid date_array_oid = 1182;
|
|
constexpr Oid time_array_oid = 1183;
|
|
constexpr Oid timestamp_array_oid = 1115;
|
|
constexpr Oid timestamptz_array_oid = 1185;
|
|
constexpr Oid interval_array_oid = 1187;
|
|
constexpr Oid timetz_array_oid = 1270;
|
|
constexpr Oid bit_array_oid = 1561;
|
|
constexpr Oid varbit_array_oid = 1563;
|
|
constexpr Oid numeric_array_oid = 1231;
|
|
constexpr Oid refcursor_array_oid = 2201;
|
|
constexpr Oid regprocedure_array_oid = 2207;
|
|
constexpr Oid regoper_array_oid = 2208;
|
|
constexpr Oid regoperator_array_oid = 2209;
|
|
constexpr Oid regclass_array_oid = 2210;
|
|
constexpr Oid regtype_array_oid = 2211;
|
|
constexpr Oid uuid_array_oid = 2951;
|
|
constexpr Oid txid_snapshot_array_oid = 2949;
|
|
constexpr Oid pg_lsn_array_oid = 3221;
|
|
constexpr Oid tsvector_array_oid = 3643;
|
|
constexpr Oid tsquery_array_oid = 3645;
|
|
constexpr Oid gtsvector_array_oid = 3644;
|
|
constexpr Oid regconfig_array_oid = 3735;
|
|
constexpr Oid regdictionary_array_oid = 3770;
|
|
constexpr Oid jsonb_array_oid = 3807;
|
|
constexpr Oid int4range_array_oid = 3905;
|
|
constexpr Oid numrange_array_oid = 3907;
|
|
constexpr Oid tsrange_array_oid = 3909;
|
|
constexpr Oid tstzrange_array_oid = 3911;
|
|
constexpr Oid daterange_array_oid = 3913;
|
|
constexpr Oid int8range_array_oid = 3927;
|
|
constexpr Oid regnamespace_array_oid = 4090;
|
|
constexpr Oid regrole_array_oid = 4097;
|
|
|
|
Oid ElemOidFromArrayOid(Oid oid);
|
|
Oid ArrayOidFromElemOid(Oid oid);
|
|
|
|
template <typename T>
|
|
class OidFor {
|
|
public:
|
|
static Oid elem();
|
|
static Oid array();
|
|
};
|
|
|
|
template <>
|
|
class OidFor<int16_t> {
|
|
public:
|
|
static Oid elem() { return int2_oid; }
|
|
static Oid array() { return int2_array_oid; }
|
|
};
|
|
|
|
template <>
|
|
class OidFor<int32_t> {
|
|
public:
|
|
static Oid elem() { return int4_oid; }
|
|
static Oid array() { return int4_array_oid; }
|
|
};
|
|
|
|
template <>
|
|
class OidFor<unsigned int> {
|
|
public:
|
|
static Oid elem() { return oid_oid; }
|
|
static Oid array() { return oid_array_oid; }
|
|
};
|
|
|
|
template <>
|
|
class OidFor<QDateTime> {
|
|
public:
|
|
static Oid elem() { return timestamptz_oid; }
|
|
static Oid array() { return timestamptz_array_oid; }
|
|
};
|
|
|
|
template <>
|
|
class OidFor<QString> {
|
|
public:
|
|
static Oid elem() { return text_oid; }
|
|
static Oid array() { return text_array_oid; }
|
|
};
|
|
// template <>
|
|
// class OidFor<> {
|
|
// public:
|
|
// static Oid elem() { return _oid; }
|
|
// static Oid array() { return _array_oid; }
|
|
// };
|
|
|
|
} // end of namespace Pgsql
|
|
|
|
#endif // PGSQL_OIDS_H
|