Add tests for loading the catalog
This commit is contained in:
parent
591573b6b8
commit
a1ac545086
13 changed files with 203 additions and 32 deletions
|
|
@ -205,26 +205,9 @@ void DatabasesTableModel::StartLoadDatabaseSizes(std::map<Oid, int> oidIndex)
|
|||
|
||||
DatabasesTableModel::DatabaseSizes DatabasesTableModel::QueryDatabaseSizes()
|
||||
{
|
||||
std::string q =
|
||||
"SELECT pg_database.oid, "
|
||||
" case when has_database_privilege(current_role, pg_database.oid, \n"
|
||||
" 'connect') then pg_database_size(pg_database.oid) else -1 end \n"
|
||||
"FROM pg_database";
|
||||
|
||||
Pgsql::Connection connection;
|
||||
connection.connect(openDatabase->config().connectionString());
|
||||
Pgsql::Result sizesResult = connection.query(q.c_str());
|
||||
|
||||
DatabaseSizes result;
|
||||
result.reserve(sizesResult.rows());
|
||||
for (auto& row : sizesResult)
|
||||
{
|
||||
DatabaseSize ds;
|
||||
ds.oid = row.get(0);
|
||||
ds.totalBytes = row.get(1);
|
||||
result.push_back(ds);
|
||||
}
|
||||
return result;
|
||||
return loadDatabaseSizes(connection);
|
||||
}
|
||||
|
||||
void DatabasesTableModel::PopulateSizes(std::map<Oid, int> oidIndex, DatabaseSizes sizes)
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
#include "BaseTableModel.h"
|
||||
#include "catalog/PgDatabase.h"
|
||||
#include "catalog/PgDatabaseSizes.h"
|
||||
#include <memory>
|
||||
|
||||
class OpenDatabase;
|
||||
|
|
@ -45,17 +46,8 @@ public:
|
|||
protected:
|
||||
virtual QVariant getDataMeaning(const QModelIndex &index) const override;
|
||||
private:
|
||||
class DatabaseSize {
|
||||
public:
|
||||
Oid oid;
|
||||
int64_t totalBytes;
|
||||
|
||||
DatabaseSize()
|
||||
: oid(InvalidOid)
|
||||
, totalBytes(-1)
|
||||
{}
|
||||
};
|
||||
using DatabaseSizes = std::vector<DatabaseSize>;
|
||||
using DatabaseSize = PgDatabaseSize;
|
||||
using DatabaseSizes = PgDatabaseSizes;
|
||||
|
||||
class Database {
|
||||
public:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue