diff --git a/pglablib/catalog/PgDatabaseCatalog.cpp b/pglablib/catalog/PgDatabaseCatalog.cpp index 9f60029..026d37e 100644 --- a/pglablib/catalog/PgDatabaseCatalog.cpp +++ b/pglablib/catalog/PgDatabaseCatalog.cpp @@ -72,11 +72,11 @@ QString getTablespaceDisplayString(const PgDatabaseCatalog &cat, Oid oid) auto dbname = cat.getDBName(); oid = cat.databases()->getByName(dbname)->tablespace; auto ts = cat.tablespaces()->getByKey(oid); - return ts->name + " (inherited)"; + return ts->objectName() + " (inherited)"; } else { auto ts = cat.tablespaces()->getByKey(oid); - return ts->name; + return ts->objectName(); } } diff --git a/pglablib/catalog/PgTablespace.cpp b/pglablib/catalog/PgTablespace.cpp index 48709aa..a55515d 100644 --- a/pglablib/catalog/PgTablespace.cpp +++ b/pglablib/catalog/PgTablespace.cpp @@ -1,4 +1,6 @@ #include "PgTablespace.h" -PgTablespace::PgTablespace() -{} +QString PgTablespace::typeName() const +{ + return "TABLESPACE"; +} diff --git a/pglablib/catalog/PgTablespace.h b/pglablib/catalog/PgTablespace.h index cf50c64..ba590df 100644 --- a/pglablib/catalog/PgTablespace.h +++ b/pglablib/catalog/PgTablespace.h @@ -1,24 +1,17 @@ #ifndef PGTABLESPACE_H #define PGTABLESPACE_H +#include "PgServerObject.h" #include #include #include -class PgTablespace { +class PgTablespace: public PgServerObject { public: - Oid oid = InvalidOid; - QString name; - Oid owner = InvalidOid; - std::vector acl; std::vector options; - PgTablespace(); - - 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 PgTablespace &rhs) const { return oid < rhs.oid; } + using PgServerObject::PgServerObject; + QString typeName() const override; }; #endif // PGTABLESPACE_H diff --git a/pglablib/catalog/PgTablespaceContainer.cpp b/pglablib/catalog/PgTablespaceContainer.cpp index b0b3556..a983b99 100644 --- a/pglablib/catalog/PgTablespaceContainer.cpp +++ b/pglablib/catalog/PgTablespaceContainer.cpp @@ -17,7 +17,16 @@ FROM pg_tablespace PgTablespace PgTablespaceContainer::loadElem(const Pgsql::Row &row) { Pgsql::Col col(row); - PgTablespace v; - col >> v.oid >> v.name >> v.owner >> v.acl >> v.options; + Oid oid = col.nextValue(); + QString name = col.nextValue(); + Oid owner = col.nextValue(); + PgTablespace v(m_catalog, oid, name); + v.setOwnerOid(owner); + + AclList acl_list; + col >> acl_list; + v.setAcls(std::move(acl_list)); + + col >> v.options; return v; }