From 5a70749308204d48b3eda2e1b6f02cc8eac1cf05 Mon Sep 17 00:00:00 2001 From: eelke Date: Wed, 14 Apr 2021 19:40:07 +0200 Subject: [PATCH] leave out database sizes for databases the user cannot connect to this prevents permissions errors. --- pglab/DatabasesTableModel.cpp | 3 ++- pglablib/catalog/PgDatabaseContainer.cpp | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/pglab/DatabasesTableModel.cpp b/pglab/DatabasesTableModel.cpp index 1b932ff..7e04752 100644 --- a/pglab/DatabasesTableModel.cpp +++ b/pglab/DatabasesTableModel.cpp @@ -157,7 +157,8 @@ QVariant DatabasesTableModel::getData(const QModelIndex &index) const v = db.description; break; case SizeCol: - v = db.sizeBytes; + if (db.sizeBytes >= 0) + v = db.sizeBytes; break; case AclCol: v = db.aclString(); diff --git a/pglablib/catalog/PgDatabaseContainer.cpp b/pglablib/catalog/PgDatabaseContainer.cpp index 5609071..fe2d8a9 100644 --- a/pglablib/catalog/PgDatabaseContainer.cpp +++ b/pglablib/catalog/PgDatabaseContainer.cpp @@ -5,7 +5,8 @@ std::string PgDatabaseContainer::getLoadQuery() const { return "SELECT pg_database.oid, datname, datdba, encoding, pg_encoding_to_char(encoding), datcollate,\n" - " datctype, datistemplate, datallowconn, datconnlimit, dattablespace, pg_database_size(pg_database.oid),\n" + " datctype, datistemplate, datallowconn, datconnlimit, dattablespace, \n" + " case when has_database_privilege(current_role, oid, 'connect') then pg_database_size(oid) else -1 end,\n" " d.description, datacl\n" "FROM pg_database\n" " LEFT JOIN pg_catalog.pg_shdescription AS d ON (objoid=pg_database.oid)";