Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
26d3dea9
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,发现更多精彩内容 >>
提交
26d3dea9
编写于
3月 31, 2021
作者:
S
Serge Rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Warnings fix
上级
d3235324
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
15 addition
and
15 deletion
+15
-15
plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/completion/SQLCompletionAnalyzer.java
...s/dbeaver/model/sql/completion/SQLCompletionAnalyzer.java
+15
-15
未找到文件。
plugins/org.jkiss.dbeaver.model.sql/src/org/jkiss/dbeaver/model/sql/completion/SQLCompletionAnalyzer.java
浏览文件 @
26d3dea9
...
...
@@ -367,7 +367,7 @@ public class SQLCompletionAnalyzer implements DBRRunnableParametrized<DBRProgres
private
void
makeProceduresProposals
(
DBPDataSource
dataSource
,
String
wordPart
,
boolean
exec
)
throws
DBException
{
// Add procedures/functions for column proposals
DBSStructureAssistant
structureAssistant
=
DBUtils
.
getAdapter
(
DBSStructureAssistant
.
class
,
dataSource
);
DBSStructureAssistant
<?>
structureAssistant
=
DBUtils
.
getAdapter
(
DBSStructureAssistant
.
class
,
dataSource
);
DBSObjectContainer
sc
=
(
DBSObjectContainer
)
dataSource
;
DBSObject
selectedObject
=
DBUtils
.
getActiveInstanceObject
(
request
.
getContext
().
getExecutionContext
());
if
(
selectedObject
instanceof
DBSObjectContainer
)
{
...
...
@@ -505,20 +505,20 @@ public class SQLCompletionAnalyzer implements DBRRunnableParametrized<DBRProgres
// Apply navigator object filters
if
(
dataSource
!=
null
)
{
DBPDataSourceContainer
dsContainer
=
dataSource
.
getContainer
();
Map
<
DBSObject
,
Map
<
Class
,
List
<
SQLCompletionProposalBase
>>>
containerMap
=
new
HashMap
<>();
Map
<
DBSObject
,
Map
<
Class
<?>
,
List
<
SQLCompletionProposalBase
>>>
containerMap
=
new
HashMap
<>();
for
(
SQLCompletionProposalBase
proposal
:
proposals
)
{
DBSObject
container
=
proposal
.
getObjectContainer
();
DBPNamedObject
object
=
proposal
.
getObject
();
if
(
object
==
null
)
{
continue
;
}
Map
<
Class
,
List
<
SQLCompletionProposalBase
>>
typeMap
=
containerMap
.
computeIfAbsent
(
container
,
k
->
new
HashMap
<>());
Class
objectType
=
object
instanceof
DBSObjectReference
?
((
DBSObjectReference
)
object
).
getObjectClass
()
:
object
.
getClass
();
Map
<
Class
<?>
,
List
<
SQLCompletionProposalBase
>>
typeMap
=
containerMap
.
computeIfAbsent
(
container
,
k
->
new
HashMap
<>());
Class
<?>
objectType
=
object
instanceof
DBSObjectReference
?
((
DBSObjectReference
)
object
).
getObjectClass
()
:
object
.
getClass
();
List
<
SQLCompletionProposalBase
>
list
=
typeMap
.
computeIfAbsent
(
objectType
,
k
->
new
ArrayList
<>());
list
.
add
(
proposal
);
}
for
(
Map
.
Entry
<
DBSObject
,
Map
<
Class
,
List
<
SQLCompletionProposalBase
>>>
entry
:
containerMap
.
entrySet
())
{
for
(
Map
.
Entry
<
Class
,
List
<
SQLCompletionProposalBase
>>
typeEntry
:
entry
.
getValue
().
entrySet
())
{
for
(
Map
.
Entry
<
DBSObject
,
Map
<
Class
<?>
,
List
<
SQLCompletionProposalBase
>>>
entry
:
containerMap
.
entrySet
())
{
for
(
Map
.
Entry
<
Class
<?>
,
List
<
SQLCompletionProposalBase
>>
typeEntry
:
entry
.
getValue
().
entrySet
())
{
DBSObjectFilter
filter
=
dsContainer
.
getObjectFilter
(
typeEntry
.
getKey
(),
entry
.
getKey
(),
true
);
if
(
filter
!=
null
&&
filter
.
isEnabled
())
{
for
(
SQLCompletionProposalBase
proposal
:
typeEntry
.
getValue
())
{
...
...
@@ -677,7 +677,7 @@ public class SQLCompletionAnalyzer implements DBRRunnableParametrized<DBRProgres
// Detect selected object (container).
// There could be multiple selected objects on different hierarchy levels (e.g. PG)
DBSObjectContainer
selectedContainers
[]
;
DBSObjectContainer
[]
selectedContainers
;
{
DBSObject
[]
selectedObjects
=
DBUtils
.
getSelectedObjects
(
monitor
,
executionContext
);
selectedContainers
=
new
DBSObjectContainer
[
selectedObjects
.
length
];
...
...
@@ -702,12 +702,12 @@ public class SQLCompletionAnalyzer implements DBRRunnableParametrized<DBRProgres
DBObjectNameCaseTransformer
.
transformName
(
dataSource
,
token
);
childObject
=
objectName
==
null
?
null
:
sc
.
getChild
(
monitor
,
objectName
);
if
(
childObject
==
null
&&
i
==
0
&&
objectName
!=
null
)
{
for
(
int
k
=
0
;
k
<
selectedContainers
.
length
;
k
++
)
{
if
(
selectedContainer
s
[
k
]
!=
null
)
{
for
(
DBSObjectContainer
selectedContainer
:
selectedContainers
)
{
if
(
selectedContainer
!=
null
)
{
// Probably it is from selected object, let's try it
childObject
=
selectedContainer
s
[
k
]
.
getChild
(
monitor
,
objectName
);
childObject
=
selectedContainer
.
getChild
(
monitor
,
objectName
);
if
(
childObject
!=
null
)
{
sc
=
selectedContainer
s
[
k
]
;
sc
=
selectedContainer
;
break
;
}
}
...
...
@@ -760,15 +760,15 @@ public class SQLCompletionAnalyzer implements DBRRunnableParametrized<DBRProgres
}
if
(
tokens
.
length
==
1
)
{
// Try in active object
for
(
int
k
=
0
;
k
<
selectedContainers
.
length
;
k
++
)
{
if
(
selectedContainer
s
[
k
]
!=
null
&&
selectedContainers
[
k
]
!=
childObject
)
{
makeProposalsFromChildren
(
selectedContainer
s
[
k
]
,
lastToken
,
true
,
Collections
.
emptyMap
());
for
(
DBSObjectContainer
selectedContainer
:
selectedContainers
)
{
if
(
selectedContainer
!=
null
&&
selectedContainer
!=
childObject
)
{
makeProposalsFromChildren
(
selectedContainer
,
lastToken
,
true
,
Collections
.
emptyMap
());
}
}
if
(
proposals
.
isEmpty
()
&&
!
request
.
isSimpleMode
())
{
// At last - try to find child tables by pattern
DBSStructureAssistant
structureAssistant
=
null
;
DBSStructureAssistant
<?>
structureAssistant
=
null
;
for
(
DBSObject
object
=
childObject
;
object
!=
null
;
object
=
object
.
getParentObject
())
{
structureAssistant
=
DBUtils
.
getAdapter
(
DBSStructureAssistant
.
class
,
object
);
if
(
structureAssistant
!=
null
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录