2017-01-25 06:52:02 +01:00
|
|
|
|
#ifndef PGTYPE_H
|
|
|
|
|
|
#define PGTYPE_H
|
|
|
|
|
|
|
|
|
|
|
|
#include <QString>
|
2017-08-23 13:27:23 +02:00
|
|
|
|
#include <libpq-fe.h>
|
2017-12-12 20:13:53 +01:00
|
|
|
|
#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);
|
|
|
|
|
|
|
2017-01-25 06:52:02 +01:00
|
|
|
|
|
|
|
|
|
|
class PgType {
|
|
|
|
|
|
public:
|
|
|
|
|
|
PgType();
|
|
|
|
|
|
|
|
|
|
|
|
Oid oid = InvalidOid;
|
2017-12-12 20:13:53 +01:00
|
|
|
|
QString name;//"name";"NO"
|
2017-01-25 06:52:02 +01:00
|
|
|
|
Oid typnamespace = InvalidOid;//"oid";"NO"
|
2017-12-12 20:13:53 +01:00
|
|
|
|
Oid owner = InvalidOid;//"oid";"NO"
|
|
|
|
|
|
short len = -1;//"smallint";"NO"
|
|
|
|
|
|
bool byval = false;//"boolean";"NO"
|
|
|
|
|
|
QString type;//""char"";"NO"
|
|
|
|
|
|
TypCategory category;//""char"";"NO"
|
2017-01-25 06:52:02 +01:00
|
|
|
|
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; }
|
2017-12-12 20:13:53 +01:00
|
|
|
|
bool operator==(const QString &n) const { return name == n; }
|
2017-01-25 06:52:02 +01:00
|
|
|
|
bool operator<(Oid _oid) const { return oid < _oid; }
|
|
|
|
|
|
bool operator<(const PgType &rhs) const { return oid < rhs.oid; }
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#endif // PGTYPE_H
|