#ifndef PGTYPE_H #define PGTYPE_H #include #include #include "Pgsql_Value.h" enum class TypCategory { Array, Boolean, Composite, DateTime, Enum, Geometric, NetworkAddress, Numeric, Pseudo, Range, String, Timespan, UserDefined, BitString, Unknown }; void operator<<(TypCategory &s, const Pgsql::Value &v); class PgType { public: PgType(); Oid oid = InvalidOid; QString name;//"name";"NO" Oid typnamespace = InvalidOid;//"oid";"NO" Oid owner = InvalidOid;//"oid";"NO" short len = -1;//"smallint";"NO" bool byval = false;//"boolean";"NO" QString type;//""char"";"NO" TypCategory category;//""char"";"NO" bool typispreferred = false;//"boolean";"NO" bool typisdefined = false;//"boolean";"NO" QString typdelim;//""char"";"NO" Oid typrelid = InvalidOid;//"oid";"NO" Oid typelem = InvalidOid;//"oid";"NO" Oid typarray = InvalidOid;//"oid";"NO" QString typinput;//regproc";"NO" QString typoutput;//"regproc";"NO" QString typreceive;//"regproc";"NO" QString typsend;//"regproc";"NO" QString typmodin;//"regproc";"NO" QString typmodout;//"regproc";"NO" QString typanalyze;//"regproc";"NO" QString typalign;//""char"";"NO" QString typstorage;//""char"";"NO" bool typnotnull = false;//"boolean";"NO" Oid typbasetype = InvalidOid;//"oid";"NO" int typtypmod = -1;//"integer";"NO" int typndims = 0;//"integer";"NO" Oid typcollation = InvalidOid;//"oid";"NO" QString typdefaultbin;//"pg_node_tree";"YES" QString typdefault;//"text";"YES" QString typacl;//"ARRAY";"YES" bool operator==(Oid _oid) const { return oid == _oid; } bool operator==(const QString &n) const { return name == n; } bool operator<(Oid _oid) const { return oid < _oid; } bool operator<(const PgType &rhs) const { return oid < rhs.oid; } }; #endif // PGTYPE_H