2017-01-25 06:52:02 +01:00
|
|
|
|
#ifndef PGSQLDATABASECATALOGUE_H
|
|
|
|
|
|
#define PGSQLDATABASECATALOGUE_H
|
|
|
|
|
|
|
2017-08-23 13:27:23 +02:00
|
|
|
|
#include <libpq-fe.h>
|
2017-02-18 12:05:48 +01:00
|
|
|
|
#include <QString>
|
2017-01-25 06:52:02 +01:00
|
|
|
|
#include <vector>
|
|
|
|
|
|
|
2017-02-01 20:00:25 +01:00
|
|
|
|
namespace Pgsql {
|
|
|
|
|
|
|
|
|
|
|
|
class Connection;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2017-01-25 06:52:02 +01:00
|
|
|
|
class PgTypeContainer;
|
2017-02-12 14:03:42 +01:00
|
|
|
|
class PgDatabaseContainer;
|
2017-02-18 12:05:48 +01:00
|
|
|
|
class PgAuthIdContainer;
|
2017-01-25 06:52:02 +01:00
|
|
|
|
|
|
|
|
|
|
class PgsqlDatabaseCatalogue {
|
|
|
|
|
|
public:
|
|
|
|
|
|
PgsqlDatabaseCatalogue();
|
2017-02-01 20:00:25 +01:00
|
|
|
|
PgsqlDatabaseCatalogue(const PgsqlDatabaseCatalogue&) = delete;
|
|
|
|
|
|
PgsqlDatabaseCatalogue& operator = (const PgsqlDatabaseCatalogue&) = delete;
|
|
|
|
|
|
|
|
|
|
|
|
~PgsqlDatabaseCatalogue();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void loadAll(Pgsql::Connection &conn);
|
2017-02-18 12:05:48 +01:00
|
|
|
|
void loadInfo(Pgsql::Connection &conn);
|
2017-02-01 20:00:25 +01:00
|
|
|
|
void loadTypes(Pgsql::Connection &conn);
|
2017-02-12 14:03:42 +01:00
|
|
|
|
void loadDatabases(Pgsql::Connection &conn);
|
2017-02-18 12:05:48 +01:00
|
|
|
|
void loadAuthIds(Pgsql::Connection &conn);
|
|
|
|
|
|
|
|
|
|
|
|
const QString& serverVersionString() const;
|
|
|
|
|
|
int serverVersion() const;
|
2017-01-25 06:52:02 +01:00
|
|
|
|
|
2017-02-13 19:51:19 +01:00
|
|
|
|
const PgTypeContainer* types() const;
|
|
|
|
|
|
const PgDatabaseContainer *databases() const;
|
2017-02-18 12:05:48 +01:00
|
|
|
|
const PgAuthIdContainer *authIds() const;
|
2017-01-25 06:52:02 +01:00
|
|
|
|
private:
|
2017-02-18 12:05:48 +01:00
|
|
|
|
QString m_serverVersionString;
|
|
|
|
|
|
int m_serverVersion;
|
2017-02-04 11:55:49 +01:00
|
|
|
|
PgTypeContainer *m_types = nullptr;
|
2017-02-12 14:03:42 +01:00
|
|
|
|
PgDatabaseContainer *m_databases = nullptr;
|
2017-02-18 12:05:48 +01:00
|
|
|
|
PgAuthIdContainer *m_authIds = nullptr;
|
2017-01-25 06:52:02 +01:00
|
|
|
|
};
|
|
|
|
|
|
|
2017-02-18 12:05:48 +01:00
|
|
|
|
QString getRoleNameFromOid(const PgsqlDatabaseCatalogue *cat, Oid oid);
|
|
|
|
|
|
|
2017-01-25 06:52:02 +01:00
|
|
|
|
#endif // PGSQLDATABASECATALOGUE_H
|