Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
febea3ee
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,发现更多精彩内容 >>
提交
febea3ee
编写于
4月 15, 2019
作者:
A
Andrew Khitrin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Small improvement for plan save-load API
上级
8a08a087
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
12 addition
and
67 deletion
+12
-67
plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/model/plan/OraclePlanNode.java
...g/jkiss/dbeaver/ext/oracle/model/plan/OraclePlanNode.java
+3
-12
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/plan/PostgrePlanNodeBase.java
...beaver/ext/postgresql/model/plan/PostgrePlanNodeBase.java
+1
-1
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/plan/PostgrePlanNodeXML.java
...dbeaver/ext/postgresql/model/plan/PostgrePlanNodeXML.java
+0
-4
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/plan/PostgresPlanNodeExternal.java
...r/ext/postgresql/model/plan/PostgresPlanNodeExternal.java
+2
-11
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/exec/plan/DBCPlanNodeComplex.java
...org/jkiss/dbeaver/model/exec/plan/DBCPlanNodeComplex.java
+0
-27
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/plan/ExecutionPlanDeserializer.java
...ss/dbeaver/model/impl/plan/ExecutionPlanDeserializer.java
+6
-12
未找到文件。
plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/model/plan/OraclePlanNode.java
浏览文件 @
febea3ee
...
...
@@ -21,7 +21,6 @@ import org.jkiss.dbeaver.ext.oracle.model.OracleDataSource;
import
org.jkiss.dbeaver.ext.oracle.model.OracleObjectType
;
import
org.jkiss.dbeaver.ext.oracle.model.OracleTablePhysical
;
import
org.jkiss.dbeaver.model.exec.plan.DBCPlanCostNode
;
import
org.jkiss.dbeaver.model.exec.plan.DBCPlanNodeComplex
;
import
org.jkiss.dbeaver.model.impl.jdbc.JDBCUtils
;
import
org.jkiss.dbeaver.model.impl.plan.AbstractExecutionPlanNode
;
import
org.jkiss.dbeaver.model.meta.Property
;
...
...
@@ -41,7 +40,7 @@ import java.util.Map;
/**
* Oracle execution plan node
*/
public
class
OraclePlanNode
extends
AbstractExecutionPlanNode
implements
DBCPlanCostNode
,
DBCPlanNodeComplex
<
OraclePlanNode
>
{
public
class
OraclePlanNode
extends
AbstractExecutionPlanNode
implements
DBCPlanCostNode
{
public
final
static
String
CAT_DETAILS
=
"Details"
;
...
...
@@ -84,7 +83,7 @@ public class OraclePlanNode extends AbstractExecutionPlanNode implements DBCPlan
private
String
otherXml
;
private
OraclePlanNode
parent
;
protected
List
<
OraclePlanNode
>
nested
;
protected
final
List
<
OraclePlanNode
>
nested
=
new
ArrayList
<>()
;
private
String
aGetString
(
Map
<
String
,
String
>
attributes
,
String
name
)
{
return
attributes
.
containsKey
(
name
)
?
attributes
.
get
(
name
).
toString
()
:
""
;
...
...
@@ -224,10 +223,7 @@ public class OraclePlanNode extends AbstractExecutionPlanNode implements DBCPlan
}
private
void
addChild
(
OraclePlanNode
node
)
{
if
(
this
.
nested
==
null
)
{
createNested
();
}
this
.
nested
.
add
(
node
);
this
.
nested
.
add
(
node
);
}
@Override
...
...
@@ -513,10 +509,5 @@ public class OraclePlanNode extends AbstractExecutionPlanNode implements DBCPlan
}
}
@Override
public
void
createNested
()
{
this
.
nested
=
new
ArrayList
<>();
}
}
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/plan/PostgrePlanNodeBase.java
浏览文件 @
febea3ee
...
...
@@ -53,7 +53,7 @@ public abstract class PostgrePlanNodeBase<NODE extends PostgrePlanNodeBase> exte
private
PostgreDataSource
dataSource
;
protected
NODE
parent
;
protected
List
<
NODE
>
nested
;
protected
final
List
<
NODE
>
nested
=
new
ArrayList
<>()
;
protected
String
nodeType
;
private
String
entity
;
...
...
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/plan/PostgrePlanNodeXML.java
浏览文件 @
febea3ee
...
...
@@ -21,7 +21,6 @@ import org.jkiss.utils.xml.XMLUtils;
import
org.w3c.dom.Element
;
import
org.w3c.dom.Node
;
import
java.util.ArrayList
;
import
java.util.LinkedHashMap
;
import
java.util.Map
;
...
...
@@ -44,9 +43,6 @@ public class PostgrePlanNodeXML extends PostgrePlanNodeBase<PostgrePlanNodeXML>
Element
nestedPlansElement
=
XMLUtils
.
getChildElement
(
element
,
"Plans"
);
if
(
nestedPlansElement
!=
null
)
{
for
(
Element
planElement
:
XMLUtils
.
getChildElementList
(
nestedPlansElement
,
"Plan"
))
{
if
(
nested
==
null
)
{
nested
=
new
ArrayList
<>();
}
nested
.
add
(
new
PostgrePlanNodeXML
(
dataSource
,
null
,
planElement
));
}
}
...
...
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/plan/PostgresPlanNodeExternal.java
浏览文件 @
febea3ee
...
...
@@ -25,14 +25,13 @@ import java.util.Map;
import
java.util.Map.Entry
;
import
org.jkiss.dbeaver.ext.postgresql.model.PostgreDataSource
;
import
org.jkiss.dbeaver.model.exec.plan.DBCPlanNodeComplex
;
import
org.jkiss.dbeaver.model.impl.plan.AbstractExecutionPlanSerializer
;
import
com.google.gson.JsonArray
;
import
com.google.gson.JsonElement
;
import
com.google.gson.JsonObject
;
public
class
PostgresPlanNodeExternal
extends
PostgrePlanNodeBase
<
PostgresPlanNodeExternal
>
implements
DBCPlanNodeComplex
<
PostgresPlanNodeExternal
>
{
public
class
PostgresPlanNodeExternal
extends
PostgrePlanNodeBase
<
PostgresPlanNodeExternal
>
{
private
PostgresPlanNodeExternal
(
PostgreDataSource
dataSource
,
PostgresPlanNodeExternal
parent
)
{
super
(
dataSource
,
parent
);
...
...
@@ -58,14 +57,6 @@ public class PostgresPlanNodeExternal extends PostgrePlanNodeBase<PostgresPlanN
setAttributes
(
attributes
);
}
@Override
public
List
<
PostgresPlanNodeExternal
>
getNested
()
{
return
nested
;
}
@Override
public
void
createNested
()
{
nested
=
new
ArrayList
<>();
}
}
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/exec/plan/DBCPlanNodeComplex.java
已删除
100644 → 0
浏览文件 @
8a08a087
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2019 Serge Rider (serge@jkiss.org)
* Copyright (C) 2019 Andrew Khitrin (ahitrin@gmail.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.jkiss.dbeaver.model.exec.plan
;
import
java.util.Collection
;
public
interface
DBCPlanNodeComplex
<
NODE
extends
DBCPlanNode
>
{
Collection
<
NODE
>
getNested
();
void
createNested
();
}
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/plan/ExecutionPlanDeserializer.java
浏览文件 @
febea3ee
package
org.jkiss.dbeaver.model.impl.plan
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.List
;
import
org.jkiss.dbeaver.model.DBPDataSource
;
import
org.jkiss.dbeaver.model.exec.plan.DBCPlanNode
;
import
org.jkiss.dbeaver.model.exec.plan.DBCPlanNodeComplex
;
import
org.jkiss.dbeaver.model.exec.plan.DBCQueryPlannerDeSerialInfo
;
import
com.google.gson.JsonArray
;
...
...
@@ -27,18 +27,12 @@ public class ExecutionPlanDeserializer<NODE extends DBCPlanNode> {
NODE
node
=
info
.
createNode
(
dataSource
,
nodeObject
,
parent
);
JsonArray
childs
=
nodeObject
.
getAsJsonArray
(
AbstractExecutionPlanSerializer
.
PROP_CHILD
);
if
(
node
instanceof
DBCPlanNodeComplex
<?>)
{
DBCPlanNodeComplex
<
NODE
>
n
=
(
DBCPlanNodeComplex
<
NODE
>)
node
;
if
(
n
.
getNested
()
==
null
)
{
n
.
createNested
();
}
if
(
childs
!=
null
)
{
childs
.
forEach
((
e
)
->
{
n
.
getNested
().
add
(
loadNode
(
dataSource
,
e
.
getAsJsonObject
(),
node
,
info
));
});
}
if
(
childs
!=
null
)
{
childs
.
forEach
((
e
)
->
{
((
Collection
<
NODE
>)
node
.
getNested
()).
add
(
loadNode
(
dataSource
,
e
.
getAsJsonObject
(),
node
,
info
));
});
}
return
node
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录