Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
5ad6d91e
D
dbeaver
项目概览
suliangchun
/
dbeaver
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dbeaver
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
5ad6d91e
编写于
3月 08, 2016
作者:
S
Serge Rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#271 AuthId access denied workaroun
上级
a6931a32
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
47 addition
and
25 deletion
+47
-25
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreDatabase.java
...g/jkiss/dbeaver/ext/postgresql/model/PostgreDatabase.java
+13
-1
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/cache/JDBCObjectCache.java
.../jkiss/dbeaver/model/impl/jdbc/cache/JDBCObjectCache.java
+34
-24
未找到文件。
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreDatabase.java
浏览文件 @
5ad6d91e
...
...
@@ -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_authid
1
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
.<
PostgreAuthId
>
emptyList
());
// return true;
// }
return
false
;
}
}
class
AccessMethodCache
extends
JDBCObjectCache
<
PostgreDatabase
,
PostgreAccessMethod
>
{
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/cache/JDBCObjectCache.java
浏览文件 @
5ad6d91e
...
...
@@ -84,35 +84,40 @@ public abstract class JDBCObjectCache<OWNER extends DBSObject, OBJECT extends DB
if
(
dataSource
==
null
)
{
throw
new
DBException
(
"Not connected to database"
);
}
try
(
JDBCSession
session
=
DBUtils
.
openMetaSession
(
monitor
,
dataSource
,
"Load objects from "
+
owner
.
getName
()))
{
try
(
JDBCStatement
dbStat
=
prepareObjectsStatement
(
session
,
owner
))
{
monitor
.
subTask
(
"Execute query"
);
dbStat
.
setFetchSize
(
DBConstants
.
METADATA_FETCH_SIZE
);
dbStat
.
executeStatement
();
JDBCResultSet
dbResult
=
dbStat
.
getResultSet
();
if
(
dbResult
!=
null
)
{
try
{
while
(
dbResult
.
next
())
{
if
(
monitor
.
isCanceled
())
{
break
;
try
{
try
(
JDBCSession
session
=
DBUtils
.
openMetaSession
(
monitor
,
dataSource
,
"Load objects from "
+
owner
.
getName
()))
{
try
(
JDBCStatement
dbStat
=
prepareObjectsStatement
(
session
,
owner
))
{
monitor
.
subTask
(
"Execute query"
);
dbStat
.
setFetchSize
(
DBConstants
.
METADATA_FETCH_SIZE
);
dbStat
.
executeStatement
();
JDBCResultSet
dbResult
=
dbStat
.
getResultSet
();
if
(
dbResult
!=
null
)
{
try
{
while
(
dbResult
.
next
())
{
if
(
monitor
.
isCanceled
())
{
break
;
}
OBJECT
object
=
fetchObject
(
session
,
owner
,
dbResult
);
if
(
object
==
null
)
{
continue
;
}
tmpObjectList
.
add
(
object
);
monitor
.
subTask
(
object
.
getName
());
}
OBJECT
object
=
fetchObject
(
session
,
owner
,
dbResult
);
if
(
object
==
null
)
{
continue
;
}
tmpObjectList
.
add
(
object
);
monitor
.
subTask
(
object
.
getName
());
}
finally
{
dbResult
.
close
();
}
}
finally
{
dbResult
.
close
();
}
}
}
catch
(
SQLException
ex
)
{
throw
new
DBException
(
ex
,
dataSource
);
}
}
catch
(
DBException
e
)
{
if
(!
handleCacheReadError
(
e
))
{
throw
e
;
}
}
catch
(
SQLException
ex
)
{
throw
new
DBException
(
ex
,
dataSource
);
}
Comparator
<
OBJECT
>
comparator
=
getListOrderComparator
();
...
...
@@ -127,5 +132,10 @@ public abstract class JDBCObjectCache<OWNER extends DBSObject, OBJECT extends DB
}
}
// Can be implemented to provide custom cache error handler
protected
boolean
handleCacheReadError
(
DBException
error
)
{
return
false
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录