Deduplication of loading logic for catalog data.
This commit is contained in:
parent
ea035f58c8
commit
cd4e99cd11
6 changed files with 33 additions and 28 deletions
|
|
@ -53,18 +53,23 @@ void PgDatabaseCatalogue::loadInfo(Pgsql::Connection &conn)
|
|||
m_serverVersionString = r.get(0, 0).asQString();
|
||||
}
|
||||
|
||||
void load(Pgsql::Connection &conn, IPgContainter &pg_cont)
|
||||
{
|
||||
std::string q = pg_cont.getLoadQuery();
|
||||
Pgsql::Result result = conn.query(q.c_str());
|
||||
if (result && result.resultStatus() == PGRES_TUPLES_OK)
|
||||
pg_cont.load(result);
|
||||
else
|
||||
throw std::runtime_error("Query failed");
|
||||
|
||||
}
|
||||
|
||||
void PgDatabaseCatalogue::loadTypes(Pgsql::Connection &conn)
|
||||
{
|
||||
if (!m_types)
|
||||
m_types = std::make_shared<PgTypeContainer>(shared_from_this());
|
||||
|
||||
std::string q = m_types->getLoadQuery();
|
||||
Pgsql::Result result = conn.query(q.c_str());
|
||||
if (result && result.resultStatus() == PGRES_TUPLES_OK)
|
||||
m_types->load(result);
|
||||
else
|
||||
throw std::runtime_error("Query failed");
|
||||
|
||||
load(conn, *m_types);
|
||||
}
|
||||
|
||||
void PgDatabaseCatalogue::loadDatabases(Pgsql::Connection &conn)
|
||||
|
|
@ -72,13 +77,7 @@ void PgDatabaseCatalogue::loadDatabases(Pgsql::Connection &conn)
|
|||
if (!m_databases)
|
||||
m_databases = std::make_shared<PgDatabaseContainer>(shared_from_this());
|
||||
|
||||
|
||||
std::string q = m_databases->getLoadQuery();
|
||||
Pgsql::Result result = conn.query(q.c_str());
|
||||
if (result && result.resultStatus() == PGRES_TUPLES_OK)
|
||||
m_databases->load(result);
|
||||
else
|
||||
throw std::runtime_error("Query failed");
|
||||
load(conn, *m_databases);
|
||||
}
|
||||
|
||||
void PgDatabaseCatalogue::loadAuthIds(Pgsql::Connection &conn)
|
||||
|
|
@ -86,12 +85,7 @@ void PgDatabaseCatalogue::loadAuthIds(Pgsql::Connection &conn)
|
|||
if (!m_authIds)
|
||||
m_authIds = std::make_shared<PgAuthIdContainer>(shared_from_this());
|
||||
|
||||
std::string q = m_authIds->getLoadQuery();
|
||||
Pgsql::Result result = conn.query(q.c_str());
|
||||
if (result && result.resultStatus() == PGRES_TUPLES_OK)
|
||||
m_authIds->load(result);
|
||||
else
|
||||
throw std::runtime_error("Query failed");
|
||||
load(conn, *m_authIds);
|
||||
}
|
||||
|
||||
const QString& PgDatabaseCatalogue::serverVersionString() const
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue