提交 820a4cb2 编写于 作者: T titou10

DB2: Display the routine name in trees instead of the specifiname + allow user...

DB2: Display the routine name in trees instead of the specifiname + allow user to expand parameters to distinguish between routines
上级 5141cd46
......@@ -301,7 +301,7 @@ meta.org.jkiss.dbeaver.ext.db2.model.DB2Routine.javaClass.name=Class
meta.org.jkiss.dbeaver.ext.db2.model.DB2Routine.language.name=Language
meta.org.jkiss.dbeaver.ext.db2.model.DB2Routine.lastRegenTime.name=Last Regen Time
meta.org.jkiss.dbeaver.ext.db2.model.DB2Routine.moduleName.name=Module name
meta.org.jkiss.dbeaver.ext.db2.model.DB2Routine.name.name=Specific Name
meta.org.jkiss.dbeaver.ext.db2.model.DB2Routine.name.name=Name
meta.org.jkiss.dbeaver.ext.db2.model.DB2Routine.origin.name=Origin
meta.org.jkiss.dbeaver.ext.db2.model.DB2Routine.owner.name=Owner
meta.org.jkiss.dbeaver.ext.db2.model.DB2Routine.ownerType.name=Owner Type
......@@ -311,6 +311,7 @@ meta.org.jkiss.dbeaver.ext.db2.model.DB2Routine.routineId.name=Id
meta.org.jkiss.dbeaver.ext.db2.model.DB2Routine.routineModuleId.name=Module Id
meta.org.jkiss.dbeaver.ext.db2.model.DB2Routine.routineName.name=Name
meta.org.jkiss.dbeaver.ext.db2.model.DB2Routine.schema.name=Schema
meta.org.jkiss.dbeaver.ext.db2.model.DB2Routine.specificName.name=Specific Name
meta.org.jkiss.dbeaver.ext.db2.model.DB2Routine.valid.name=Valid
meta.org.jkiss.dbeaver.ext.db2.model.DB2RoutineParm.dataType.name=Type
......
......@@ -183,7 +183,7 @@
<folder type="org.jkiss.dbeaver.model.struct.DBSObject" label="%tree.appobjects.node.name" icon="#appobjects" description="Application Objects">
<folder type="org.jkiss.dbeaver.ext.db2.model.DB2Routine" label="%tree.functions.node.name" icon="icon/udf.gif" description="Functions">
<items label="%tree.function.node.name" path="UDF" property="UDFs" icon="#procedure">
<items label="%tree.arguments.node.name" itemLabel="%tree.argument.node.name" path="parameter" property="parameters" icon="#argument" navigable="false" inline="false"/>
<items label="%tree.arguments.node.name" itemLabel="%tree.argument.node.name" path="parameter" property="parameters" icon="#argument" navigable="true" inline="false"/>
</items>
</folder>
<folder type="org.jkiss.dbeaver.ext.db2.model.module.DB2Module"
......@@ -193,8 +193,16 @@
visibleIf="object.dataSource.atLeastV9_7" >
<items label="%tree.module.node.name" path="module" property="modules" icon="#module">
<items label="%tree.conditions.node.name" path="condition" property="conditions" icon="#condition" navigable="false"/>
<items label="%tree.functions.node.name" path="function" property="functions" icon="#function" navigable="false"/>
<items label="%tree.procedures.node.name" path="procedure" property="procedures" icon="#procedure" navigable="false"/>
<folder type="org.jkiss.dbeaver.ext.db2.model.DB2Routine" label="%tree.functions.node.name" icon="icon/udf.gif" description="Functions">
<items label="%tree.functions.node.name" path="function" property="functions" icon="#procedure" navigable="true">
<items label="%tree.arguments.node.name" itemLabel="%tree.argument.node.name" path="parameter" property="parameters" icon="#argument" navigable="true" inline="false"/>
</items>
</folder>
<folder type="org.jkiss.dbeaver.ext.db2.model.DB2Routine" label="%tree.procedures.node.name" icon="#procedures" description="Procedures">
<items label="%tree.procedures.node.name" path="procedure" property="procedures" icon="#procedure" navigable="true">
<items label="%tree.arguments.node.name" itemLabel="%tree.argument.node.name" path="parameter" property="parameters" icon="#argument" navigable="true" inline="false"/>
</items>
</folder>
<items label="%tree.types.node.name" path="type" property="types" icon="#data_type" navigable="false"/>
<items label="%tree.variables.node.name" path="variable" property="variables" icon="icons/variable.gif" navigable="false"/>
</items>
......@@ -211,7 +219,7 @@
</folder>
<folder type="org.jkiss.dbeaver.ext.db2.model.DB2Routine" label="%tree.procedures.node.name" icon="#procedures" description="Procedures">
<items label="%tree.procedure.node.name" path="procedure" property="procedures" icon="#procedure">
<items label="%tree.arguments.node.name" itemLabel="%tree.argument.node.name" path="parameter" property="parameters" icon="#argument" navigable="false" inline="false"/>
<items label="%tree.arguments.node.name" itemLabel="%tree.argument.node.name" path="parameter" property="parameters" icon="#argument" navigable="true" inline="false"/>
</items>
</folder>
<folder type="org.jkiss.dbeaver.ext.db2.model.DB2DataType" label="%tree.udts.node.name" icon="icon/udt.gif" description="User Defined Types">
......
......@@ -235,6 +235,21 @@ public class DB2DataSource extends JDBCDataSource implements DBSObjectSelector,
// disable result set scroll
// (it doesn't work for some queries and some column types so I have to disable it for ALL queries).
// DF: DB2 v10 supports "Scrollable Resultsets" with the folowing restrictions (from the DB2 v10.5 infocenter)
// Restriction: If the ResultSet is scrollable, and the ResultSet is used to select columns from a table on a DB2 for
// Linux, UNIX, and Windows server,
// the SELECT list of the SELECT statement that defines the ResultSet cannot include columns with the following data types:
// - LONG VARCHAR
// - LONG VARGRAPHIC
// - BLOB
// - CLOB
// - XML
// - A distinct type that is based on any of the previous data types in this list
// - A structured type
// So it is not usable for "generic" select statements that may include such columns (ge the "data" tab on tabl view or
// queries run from the SQL editor)
info.setSupportsResultSetScroll(false);
return info;
......
......@@ -39,6 +39,7 @@ import org.jkiss.dbeaver.model.sql.SQLUtils;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.model.struct.DBSObjectContainer;
import org.jkiss.dbeaver.model.struct.DBSObjectState;
import org.jkiss.dbeaver.model.struct.DBSObjectUnique;
import org.jkiss.dbeaver.model.struct.rdb.DBSProcedure;
import org.jkiss.dbeaver.model.struct.rdb.DBSProcedureType;
import org.jkiss.utils.CommonUtils;
......@@ -52,7 +53,8 @@ import java.util.Collection;
*
* @author Denis Forveille
*/
public class DB2Routine extends DB2Object<DBSObject> implements DBSProcedure, DB2SourceObject, DBPRefreshableObject {
public class DB2Routine extends DB2Object<DBSObject> implements DBSProcedure, DB2SourceObject, DBPRefreshableObject,
DBSObjectUnique {
private final DB2RoutineParmsCache parmsCache = new DB2RoutineParmsCache();
......@@ -181,6 +183,13 @@ public class DB2Routine extends DB2Object<DBSObject> implements DBSProcedure, DB
return getContainer();
}
@Override
public String getUniqueName()
{
// unique name is the "specifiname" column
return super.getName();
}
// -----------------
// Children
// -----------------
......@@ -212,7 +221,7 @@ public class DB2Routine extends DB2Object<DBSObject> implements DBSProcedure, DB
@Property(viewable = true, order = 1)
public String getName()
{
return super.getName();
return routineName;
}
@Property(viewable = true, order = 2)
......@@ -222,9 +231,9 @@ public class DB2Routine extends DB2Object<DBSObject> implements DBSProcedure, DB
}
@Property(viewable = true, order = 3)
public String getRoutineName()
public String getSpecificName()
{
return routineName;
return super.getName();
}
@Property(viewable = true, order = 5, category = DB2Constants.CAT_DATETIME)
......
......@@ -21,8 +21,8 @@ package org.jkiss.dbeaver.ext.db2.model.cache;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.ext.db2.model.DB2Routine;
import org.jkiss.dbeaver.ext.db2.model.DB2RoutineParm;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCSession;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCPreparedStatement;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCSession;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCStatement;
import org.jkiss.dbeaver.model.impl.jdbc.cache.JDBCObjectCache;
......@@ -55,13 +55,13 @@ public class DB2RoutineParmsCache extends JDBCObjectCache<DB2Routine, DB2Routine
{
JDBCPreparedStatement dbStat = session.prepareStatement(SQL);
dbStat.setString(1, db2Routine.getSchema().getName());
dbStat.setString(2, db2Routine.getName());
dbStat.setString(2, db2Routine.getUniqueName());
return dbStat;
}
@Override
protected DB2RoutineParm fetchObject(JDBCSession session, DB2Routine db2Routine, ResultSet resultSet)
throws SQLException, DBException
protected DB2RoutineParm fetchObject(JDBCSession session, DB2Routine db2Routine, ResultSet resultSet) throws SQLException,
DBException
{
return new DB2RoutineParm(session.getProgressMonitor(), db2Routine, resultSet);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册