Some stuff I had on another machine and which might provide useful.

This commit is contained in:
eelke 2017-12-28 07:29:07 +01:00
parent 23e307f93a
commit 36e5526f5f
10 changed files with 325 additions and 13 deletions

View file

@ -1,5 +1,6 @@
#include "PgDatabaseCatalog.h"
#include "ASyncDBConnection.h"
#include "PgAttributeContainer.h"
#include "PgAuthIdContainer.h"
#include "PgClassContainer.h"
@ -11,6 +12,8 @@
#include "Pgsql_Connection.h"
#include "Pgsql_oids.h"
#include <QThread>
using namespace Pgsql;
QString getRoleNameFromOid(const PgDatabaseCatalog &cat, Oid oid)
@ -100,17 +103,35 @@ PgDatabaseCatalog::~PgDatabaseCatalog()
{
}
void PgDatabaseCatalog::loadAll(Pgsql::Connection &conn)
void PgDatabaseCatalog::loadAll(Pgsql::Connection &conn,
std::function<bool(int, int)> progress_callback)
{
loadInfo(conn);
if (progress_callback && !progress_callback(1, 9))
return;
load2(m_attributes, conn);
if (progress_callback && !progress_callback(2, 9))
return;
load2(m_authIds, conn);
if (progress_callback && !progress_callback(3, 9))
return;
load2(m_classes, conn);
if (progress_callback && !progress_callback(4, 9))
return;
load2(m_constraints, conn);
if (progress_callback && !progress_callback(5, 9))
return;
load2(m_databases, conn);
if (progress_callback && !progress_callback(6, 9))
return;
load2(m_indexes, conn);
if (progress_callback && !progress_callback(7, 9))
return;
load2(m_namespaces, conn);
if (progress_callback && !progress_callback(8, 9))
return;
load2(m_types, conn);
progress_callback && progress_callback(9, 9);
}
void PgDatabaseCatalog::loadInfo(Pgsql::Connection &conn)
@ -128,6 +149,7 @@ void PgDatabaseCatalog::loadInfo(Pgsql::Connection &conn)
void load(Pgsql::Connection &conn, IPgContainter &pg_cont)
{
QThread::msleep(400);
std::string q = pg_cont.getLoadQuery();
Pgsql::Result result = conn.query(q.c_str());
if (result && result.resultStatus() == PGRES_TUPLES_OK)