提交 c2532e8b 编写于 作者: S Serge Rider

Plan model additions

上级 7f9e2358
......@@ -18,6 +18,7 @@
package org.jkiss.dbeaver.ext.db2.model.plan;
import org.jkiss.dbeaver.model.exec.plan.DBCPlanNode;
import org.jkiss.dbeaver.model.impl.plan.AbstractExecutionPlanNode;
import java.util.ArrayList;
import java.util.Collection;
......@@ -27,7 +28,7 @@ import java.util.Collection;
*
* @author Denis Forveille
*/
public abstract class DB2PlanNode implements DBCPlanNode {
public abstract class DB2PlanNode extends AbstractExecutionPlanNode {
private DB2PlanNode parent;
private Collection<DB2PlanNode> listNestedNodes = new ArrayList<>(64);
......
......@@ -19,6 +19,7 @@ package org.jkiss.dbeaver.ext.exasol.model.plan;
import org.jkiss.dbeaver.model.exec.plan.DBCPlanNode;
import org.jkiss.dbeaver.model.impl.jdbc.JDBCUtils;
import org.jkiss.dbeaver.model.impl.plan.AbstractExecutionPlanNode;
import org.jkiss.dbeaver.model.meta.Property;
import java.sql.ResultSet;
......@@ -28,7 +29,7 @@ import java.util.Collection;
/**
* @author Karl Griesser
*/
public class ExasolPlanNode implements DBCPlanNode {
public class ExasolPlanNode extends AbstractExecutionPlanNode {
private ExasolPlanNode parent;
private Collection<ExasolPlanNode> listNestedNodes = new ArrayList<>(64);
......
......@@ -16,13 +16,14 @@
*/
package org.jkiss.dbeaver.ext.firebird.model.plan;
import org.jkiss.dbeaver.model.exec.plan.DBCPlanNode;
import org.jkiss.dbeaver.model.impl.plan.AbstractExecutionPlanNode;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.jkiss.dbeaver.model.exec.plan.DBCPlanNode;
public class FireBirdPlanNode implements DBCPlanNode {
public class FireBirdPlanNode extends AbstractExecutionPlanNode {
String plan;
FireBirdPlanNode parent;
......
......@@ -19,6 +19,7 @@ package org.jkiss.dbeaver.ext.mysql.model.plan;
import org.jkiss.dbeaver.model.exec.plan.DBCPlanCostNode;
import org.jkiss.dbeaver.model.exec.plan.DBCPlanNode;
import org.jkiss.dbeaver.model.impl.jdbc.JDBCUtils;
import org.jkiss.dbeaver.model.impl.plan.AbstractExecutionPlanNode;
import org.jkiss.dbeaver.model.meta.Property;
import java.sql.ResultSet;
......@@ -27,7 +28,7 @@ import java.util.List;
/**
* MySQL execution plan node
*/
public class MySQLPlanNode implements DBCPlanNode, DBCPlanCostNode {
public class MySQLPlanNode extends AbstractExecutionPlanNode implements DBCPlanCostNode {
private long id;
private String selectType;
......
......@@ -22,6 +22,7 @@ import org.jkiss.dbeaver.ext.oracle.model.OracleObjectType;
import org.jkiss.dbeaver.ext.oracle.model.OracleTablePhysical;
import org.jkiss.dbeaver.model.exec.plan.DBCPlanNode;
import org.jkiss.dbeaver.model.impl.jdbc.JDBCUtils;
import org.jkiss.dbeaver.model.impl.plan.AbstractExecutionPlanNode;
import org.jkiss.dbeaver.model.meta.Property;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.utils.CommonUtils;
......@@ -37,7 +38,7 @@ import java.util.List;
/**
* Oracle execution plan node
*/
public class OraclePlanNode implements DBCPlanNode {
public class OraclePlanNode extends AbstractExecutionPlanNode {
private final OracleDataSource dataSource;
private String statementId;
......
......@@ -458,7 +458,7 @@ meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.nodeType.name=N
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.nodeType.description=
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.actualRows.name=Rows
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.totalTime.name=Time
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.condition.name=Condition
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.nodeCondition.name=Condition
meta.org.jkiss.dbeaver.ext.postgresql.model.session.PostgreSession.appName.name=App Name
meta.org.jkiss.dbeaver.ext.postgresql.model.session.PostgreSession.appName.description=
meta.org.jkiss.dbeaver.ext.postgresql.model.session.PostgreSession.backendStart.name=Backend Start
......
......@@ -317,7 +317,7 @@ meta.org.jkiss.dbeaver.ext.postgresql.model.lock.PostgreLockItem.relation.name
meta.org.jkiss.dbeaver.ext.postgresql.model.lock.PostgreLockItem.tid.description = Transaktions ID
meta.org.jkiss.dbeaver.ext.postgresql.model.lock.PostgreLockItem.tid.name = TID
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.actualRows.name = Reihen
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.condition.name = Bedingung
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.nodeCondition.name = Bedingung
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.cost.name = Kosten
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.entity.name = Entit\u00E4t
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.nodeType.name = Knotentyp
......
......@@ -400,7 +400,7 @@ meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.nodeType.name=T
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.nodeType.description=
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.actualRows.name=Filas
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.totalTime.name=Tiempo
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.condition.name=Condici\u0443n
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.nodeCondition.name=Condici\u0443n
meta.org.jkiss.dbeaver.ext.postgresql.model.session.PostgreSession.appName.name=Nombre de App
meta.org.jkiss.dbeaver.ext.postgresql.model.session.PostgreSession.appName.description=
meta.org.jkiss.dbeaver.ext.postgresql.model.session.PostgreSession.backendStart.name=Inicio del Backend
......
......@@ -403,7 +403,7 @@ meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.nodeType.name=\
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.nodeType.description=
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.actualRows.name=\u884C
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.totalTime.name=\u6642\u9593
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.condition.name=\u8ABF\u5B50
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.nodeCondition.name=\u8ABF\u5B50
meta.org.jkiss.dbeaver.ext.postgresql.model.session.PostgreSession.appName.name=\u30A2\u30D7\u30EA\u540D
meta.org.jkiss.dbeaver.ext.postgresql.model.session.PostgreSession.appName.description=
meta.org.jkiss.dbeaver.ext.postgresql.model.session.PostgreSession.backendStart.name=\u30D0\u30C3\u30AF\u30A8\u30F3\u30C9\u306E\u958B\u59CB
......
......@@ -375,7 +375,7 @@ meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.nodeType.name=\
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.nodeType.description=Node Type
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.actualRows.name=\u0421\u0442\u0440\u043E\u043A\u0438
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.totalTime.name=\u0412\u0440\u0435\u043C\u044F
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.condition.name=\u0423\u0441\u043B\u043E\u0432\u0438\u0435
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.nodeCondition.name=\u0423\u0441\u043B\u043E\u0432\u0438\u0435
meta.org.jkiss.dbeaver.ext.postgresql.model.session.PostgreSession.appName.name=\u041F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435
meta.org.jkiss.dbeaver.ext.postgresql.model.session.PostgreSession.appName.description=
meta.org.jkiss.dbeaver.ext.postgresql.model.session.PostgreSession.backendStart.name=\u0412\u0440\u0435\u043C\u044F \u0437\u0430\u043F\u0443\u0441\u043A\u0430
......
......@@ -376,7 +376,7 @@ meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.nodeType.name=\
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.nodeType.description=
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.actualRows.name=\u884C
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.totalTime.name=\u65F6\u95F4
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.condition.name=\u6761\u4EF6
meta.org.jkiss.dbeaver.ext.postgresql.model.plan.PostgrePlanNode.nodeCondition.name=\u6761\u4EF6
meta.org.jkiss.dbeaver.ext.postgresql.model.session.PostgreSession.appName.name=\u5E94\u7528\u540D\u79F0
meta.org.jkiss.dbeaver.ext.postgresql.model.session.PostgreSession.appName.description=
meta.org.jkiss.dbeaver.ext.postgresql.model.session.PostgreSession.backendStart.name=\u540E\u53F0\u542F\u52A8
......
......@@ -19,6 +19,7 @@ package org.jkiss.dbeaver.ext.postgresql.model.plan;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.ext.postgresql.model.PostgreDataSource;
import org.jkiss.dbeaver.model.exec.plan.DBCPlanCostNode;
import org.jkiss.dbeaver.model.impl.plan.AbstractExecutionPlanNode;
import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.preferences.DBPPropertySource;
import org.jkiss.dbeaver.model.exec.plan.DBCPlanNode;
......@@ -39,7 +40,7 @@ import java.util.Map;
/**
* Postgre execution plan node
*/
public class PostgrePlanNode implements DBCPlanNode, DBCPlanCostNode, DBPPropertySource {
public class PostgrePlanNode extends AbstractExecutionPlanNode implements DBCPlanCostNode, DBPPropertySource {
public static final String ATTR_NODE_TYPE = "Node-Type";
public static final String ATTR_RELATION_NAME = "Relation-Name";
......@@ -142,8 +143,11 @@ public class PostgrePlanNode implements DBCPlanNode, DBCPlanCostNode, DBPPropert
}
@Property(order = 23, viewable = true)
public String getCondition() {
public String getNodeCondition() {
String cond = attributes.get("Index-Cond");
if (cond == null) {
cond = attributes.get("Hash-Cond");
}
if (cond == null) {
cond = attributes.get(ATTR_FILTER);
}
......
......@@ -17,7 +17,6 @@
package org.jkiss.dbeaver.model.exec.plan;
import org.jkiss.dbeaver.model.DBPNamedObject;
import org.jkiss.dbeaver.model.DBPObject;
import java.util.Collection;
......@@ -31,6 +30,8 @@ public interface DBCPlanNode extends DBPObject {
String getNodeType();
String getNodeCondition();
String getNodeDescription();
DBCPlanNode getParent();
......
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2019 Serge Rider (serge@jkiss.org)
*
* 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.impl.plan;
import org.jkiss.dbeaver.model.exec.plan.DBCPlanNode;
/**
* Abstract execution plan
*/
public abstract class AbstractExecutionPlanNode implements DBCPlanNode {
@Override
public String getNodeCondition() {
return null;
}
@Override
public String getNodeDescription() {
return null;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册