PgAttribute loading + ColummnTableModel
Required enchancement to PgContainer to make multifield key work.
This commit is contained in:
parent
f9caadb59e
commit
e9d72d391d
32 changed files with 698 additions and 99 deletions
|
|
@ -1,8 +1,11 @@
|
|||
#include "PgDatabaseCatalog.h"
|
||||
#include "PgTypeContainer.h"
|
||||
#include "PgDatabaseContainer.h"
|
||||
|
||||
#include "PgAttributeContainer.h"
|
||||
#include "PgAuthIdContainer.h"
|
||||
#include "PgClassContainer.h"
|
||||
#include "PgDatabaseContainer.h"
|
||||
#include "PgNamespaceContainer.h"
|
||||
#include "PgTypeContainer.h"
|
||||
#include "Pgsql_Connection.h"
|
||||
|
||||
|
||||
|
|
@ -11,7 +14,7 @@ QString getRoleNameFromOid(const PgDatabaseCatalog &cat, Oid oid)
|
|||
QString name;
|
||||
auto auth_ids = cat.authIds();
|
||||
if (auth_ids) {
|
||||
const PgAuthId& auth_id = auth_ids->getByOid(oid);
|
||||
const PgAuthId& auth_id = auth_ids->getByKey(oid);
|
||||
if (auth_id.valid()) {
|
||||
name = auth_id.name;
|
||||
}
|
||||
|
|
@ -22,13 +25,15 @@ QString getRoleNameFromOid(const PgDatabaseCatalog &cat, Oid oid)
|
|||
QString getRoleDisplayString(const PgDatabaseCatalog &cat, Oid oid)
|
||||
{
|
||||
QString name = getRoleNameFromOid(cat, oid);
|
||||
return QString("%1 (%2)").arg(name).arg(oid);
|
||||
return name;
|
||||
// return QString("%1 (%2)").arg(name).arg(oid);
|
||||
}
|
||||
|
||||
QString getNamespaceDisplayString(const PgDatabaseCatalog &cat, Oid oid)
|
||||
{
|
||||
//QString name;
|
||||
// auto c = cat.();
|
||||
auto nss = cat.namespaces();
|
||||
auto ns = nss->getByKey(oid);
|
||||
// if (auth_ids) {
|
||||
// const PgAuthId& auth_id = auth_ids->getByOid(oid);
|
||||
// if (auth_id.valid()) {
|
||||
|
|
@ -37,7 +42,7 @@ QString getNamespaceDisplayString(const PgDatabaseCatalog &cat, Oid oid)
|
|||
// }
|
||||
//return name;
|
||||
// TODO load list and lookup name
|
||||
return QString("ns %1").arg(oid);
|
||||
return ns.name; //QString("ns %1").arg(oid);
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -47,6 +52,13 @@ QString getTablespaceDisplayString(const PgDatabaseCatalog &cat, Oid oid)
|
|||
return QString("ts %1").arg(oid);
|
||||
}
|
||||
|
||||
QString getTypeDisplayString(const PgDatabaseCatalog &cat, Oid oid)
|
||||
{
|
||||
auto tc = cat.types();
|
||||
auto t = tc->getByKey(oid);
|
||||
return t.name;
|
||||
}
|
||||
|
||||
|
||||
PgDatabaseCatalog::PgDatabaseCatalog()
|
||||
{
|
||||
|
|
@ -59,10 +71,13 @@ PgDatabaseCatalog::~PgDatabaseCatalog()
|
|||
void PgDatabaseCatalog::loadAll(Pgsql::Connection &conn)
|
||||
{
|
||||
loadInfo(conn);
|
||||
loadTypes(conn);
|
||||
loadDatabases(conn);
|
||||
|
||||
loadAttributes(conn);
|
||||
loadAuthIds(conn);
|
||||
loadClasses(conn);
|
||||
loadDatabases(conn);
|
||||
loadNamespaces(conn);
|
||||
loadTypes(conn);
|
||||
}
|
||||
|
||||
void PgDatabaseCatalog::loadInfo(Pgsql::Connection &conn)
|
||||
|
|
@ -89,20 +104,12 @@ void load(Pgsql::Connection &conn, IPgContainter &pg_cont)
|
|||
|
||||
}
|
||||
|
||||
void PgDatabaseCatalog::loadTypes(Pgsql::Connection &conn)
|
||||
void PgDatabaseCatalog::loadAttributes(Pgsql::Connection &conn)
|
||||
{
|
||||
if (!m_types)
|
||||
m_types = std::make_shared<PgTypeContainer>(shared_from_this());
|
||||
if (!m_attributes)
|
||||
m_attributes = std::make_shared<PgAttributeContainer>(shared_from_this());
|
||||
|
||||
load(conn, *m_types);
|
||||
}
|
||||
|
||||
void PgDatabaseCatalog::loadDatabases(Pgsql::Connection &conn)
|
||||
{
|
||||
if (!m_databases)
|
||||
m_databases = std::make_shared<PgDatabaseContainer>(shared_from_this());
|
||||
|
||||
load(conn, *m_databases);
|
||||
load(conn, *m_attributes);
|
||||
}
|
||||
|
||||
void PgDatabaseCatalog::loadAuthIds(Pgsql::Connection &conn)
|
||||
|
|
@ -121,6 +128,31 @@ void PgDatabaseCatalog::loadClasses(Pgsql::Connection &conn)
|
|||
load(conn, *m_classes);
|
||||
}
|
||||
|
||||
void PgDatabaseCatalog::loadDatabases(Pgsql::Connection &conn)
|
||||
{
|
||||
if (!m_databases)
|
||||
m_databases = std::make_shared<PgDatabaseContainer>(shared_from_this());
|
||||
|
||||
load(conn, *m_databases);
|
||||
}
|
||||
|
||||
void PgDatabaseCatalog::loadNamespaces(Pgsql::Connection &conn)
|
||||
{
|
||||
if (!m_namespaces)
|
||||
m_namespaces = std::make_shared<PgNamespaceContainer>(shared_from_this());
|
||||
|
||||
load(conn, *m_namespaces);
|
||||
}
|
||||
|
||||
void PgDatabaseCatalog::loadTypes(Pgsql::Connection &conn)
|
||||
{
|
||||
if (!m_types)
|
||||
m_types = std::make_shared<PgTypeContainer>(shared_from_this());
|
||||
|
||||
load(conn, *m_types);
|
||||
}
|
||||
|
||||
|
||||
const QString& PgDatabaseCatalog::serverVersionString() const
|
||||
{
|
||||
return m_serverVersionString;
|
||||
|
|
@ -131,14 +163,9 @@ int PgDatabaseCatalog::serverVersion() const
|
|||
return m_serverVersion;
|
||||
}
|
||||
|
||||
std::shared_ptr<const PgTypeContainer> PgDatabaseCatalog::types() const
|
||||
std::shared_ptr<const PgAttributeContainer> PgDatabaseCatalog::attributes() const
|
||||
{
|
||||
return m_types;
|
||||
}
|
||||
|
||||
std::shared_ptr<const PgDatabaseContainer> PgDatabaseCatalog::databases() const
|
||||
{
|
||||
return m_databases;
|
||||
return m_attributes;
|
||||
}
|
||||
|
||||
std::shared_ptr<const PgAuthIdContainer> PgDatabaseCatalog::authIds() const
|
||||
|
|
@ -150,3 +177,19 @@ std::shared_ptr<const PgClassContainer> PgDatabaseCatalog::classes() const
|
|||
{
|
||||
return m_classes;
|
||||
}
|
||||
|
||||
std::shared_ptr<const PgDatabaseContainer> PgDatabaseCatalog::databases() const
|
||||
{
|
||||
return m_databases;
|
||||
}
|
||||
|
||||
std::shared_ptr<const PgNamespaceContainer> PgDatabaseCatalog::namespaces() const
|
||||
{
|
||||
return m_namespaces;
|
||||
}
|
||||
|
||||
std::shared_ptr<const PgTypeContainer> PgDatabaseCatalog::types() const
|
||||
{
|
||||
return m_types;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue