From 5ad6d91e086b0bd6217eaa1c9d5fdccb339ef2ed Mon Sep 17 00:00:00 2001 From: Serge Rider Date: Tue, 8 Mar 2016 20:27:56 +0300 Subject: [PATCH] #271 AuthId access denied workaroun --- .../ext/postgresql/model/PostgreDatabase.java | 14 ++++- .../impl/jdbc/cache/JDBCObjectCache.java | 58 +++++++++++-------- 2 files changed, 47 insertions(+), 25 deletions(-) diff --git a/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreDatabase.java b/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreDatabase.java index 9594de02a0..6f1ee24216 100644 --- a/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreDatabase.java +++ b/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreDatabase.java @@ -44,6 +44,7 @@ import org.jkiss.dbeaver.model.struct.rdb.DBSCatalog; import java.sql.SQLException; import java.util.Collection; +import java.util.Collections; /** * PostgreDatabase @@ -399,7 +400,7 @@ public class PostgreDatabase implements DBSInstance, DBSCatalog, DBPRefreshableO throws SQLException { return session.prepareStatement( - "SELECT a.oid,a.* FROM pg_catalog.pg_authid a " + + "SELECT a.oid,a.* FROM pg_catalog.pg_authid1 a " + "\nORDER BY a.oid" ); } @@ -410,6 +411,17 @@ public class PostgreDatabase implements DBSInstance, DBSCatalog, DBPRefreshableO { return new PostgreAuthId(owner, dbResult); } + + @Override + protected boolean handleCacheReadError(DBException error) { + // #271: in some databases (AWS?) pg_authid is not accessible +// if (PostgreConstants.EC_PERMISSION_DENIED.equals(error.getDatabaseState())) { +// log.warn(error); + setCache(Collections.emptyList()); +// return true; +// } + return false; + } } class AccessMethodCache extends JDBCObjectCache { diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/cache/JDBCObjectCache.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/cache/JDBCObjectCache.java index 0ad7496aa3..dda3cd3ed8 100644 --- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/cache/JDBCObjectCache.java +++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/cache/JDBCObjectCache.java @@ -84,35 +84,40 @@ public abstract class JDBCObjectCache comparator = getListOrderComparator(); @@ -127,5 +132,10 @@ public abstract class JDBCObjectCache