pgLab/pglablib/catalog/PgClass.h

77 lines
1.7 KiB
C
Raw Normal View History

#ifndef PGCLASS_H
#define PGCLASS_H
#include "Pgsql_Value.h"
#include "PgNamespaceObject.h"
#include <QString>
#include <libpq-fe.h>
enum class RelPersistence {
Permanent, // p
Unlogged, // u
Temporary // t
};
void operator<<(RelPersistence &s, const Pgsql::Value &v);
enum class RelKind {
Table, // r
Index, // i
Sequence, // S
View, // v
MaterializedView, // m
Composite, // c
Toast, // t
ForeignTable // f
};
void operator<<(RelKind &s, const Pgsql::Value &v);
2018-01-08 20:45:52 +01:00
class PgClass: public PgNamespaceObject {
public:
// Oid oid = InvalidOid;
// QString name;
// Oid relnamespace = InvalidOid;
// QString relnamespace_name; // Transient, cached value from relnamespace
// bool system_namespace = false; // Transient, cached value from relnamespace
Oid type = InvalidOid;
Oid oftype = InvalidOid;
//Oid owner = InvalidOid;
Oid am = InvalidOid;
Oid filenode = InvalidOid;
Oid tablespace = InvalidOid;
int32_t pages_est = 0;
float tuples_est = 0.0f;
Oid toastrelid = InvalidOid;
bool isshared = false;
RelPersistence persistence;
RelKind kind;
bool hasoids = false;
bool ispopulated;
int frozenxid;
int minmxid;
QString acl;
2018-09-02 10:30:30 +00:00
std::vector<QString> options;
using PgNamespaceObject::PgNamespaceObject;
// virtual QString objectName() const override;
// bool operator==(Oid _oid) const { return oid == _oid; }
// bool operator==(const QString &n) const { return objectName() == n; }
// bool operator<(Oid _oid) const { return oid < _oid; }
// bool operator<(const PgClass &rhs) const { return oid < rhs.oid; }
QString createSql() const;
QString typeName() const override;
2018-01-08 20:45:52 +01:00
private:
mutable QString createSqlCache;
QString createTableSql() const;
};
#endif // PGCLASS_H