提交 dd9c1a5b 编写于 作者: S Serge Rider 提交者: GitHub

Merge pull request #12230 from dbeaver/oracle-split-procedures-functions#11408

#11408 Separate procedures and functions

Former-commit-id: b81fe2d6
......@@ -156,12 +156,12 @@
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"/>
<folder type="org.jkiss.dbeaver.ext.db2.model.DB2Routine" label="%tree.functions.node.name" icon="icons/udf.gif" description="Functions">
<folder id="functions" type="org.jkiss.dbeaver.ext.db2.model.DB2Routine" label="%tree.functions.node.name" icon="icons/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">
<folder id="procedures" 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>
......
......@@ -67,7 +67,7 @@
<items icon="#column" label="%tree.index_columns.node.name" itemLabel="%tree.column.node.name" path="column" property="attributeReferences" inline="true" navigable="false" virtual="true"/>
</items>
</folder>
<folder type="org.jkiss.dbeaver.ext.hana.model.HANAProcedure" label="%tree.procedures.node.name" icon="#procedures">
<folder id="procedures" type="org.jkiss.dbeaver.ext.hana.model.HANAProcedure" label="%tree.procedures.node.name" icon="#procedures">
<items label="%tree.procedures.node.name" itemLabel="%tree.procedure.node.name" path="procedure" property="proceduresOnly" icon="#procedure">
<folder label="%tree.procedure_columns.node.name" icon="#columns" description="%tree.procedure_columns.node.name">
<items label="%tree.procedure_columns.node.name" itemLabel="%tree.column.node.name" path="column" property="parameters" navigable="false"/>
......@@ -77,7 +77,7 @@
</folder>
</items>
</folder>
<folder type="org.jkiss.dbeaver.ext.hana.model.HANAProcedure" label="%tree.functions.node.name" icon="#functions">
<folder id="functions" type="org.jkiss.dbeaver.ext.hana.model.HANAProcedure" label="%tree.functions.node.name" icon="#functions">
<items label="%tree.functions.node.name" itemLabel="%tree.function.node.name" path="function" property="functionsOnly" icon="#function">
<folder label="%tree.function_columns.node.name" icon="#columns" description="%tree.procedure_columns.node.name">
<items label="%tree.function_columns.node.name" itemLabel="%tree.column.node.name" path="column" property="parameters" navigable="false"/>
......
......@@ -59,6 +59,8 @@ tree.packages.node.name=Packages
tree.package.node.name=Package
tree.procedures.node.name=Procedures
tree.procedure.node.name=Procedure
tree.functions.node.name=Functions
tree.function.node.name=Function
tree.synonyms.node.name=Synonyms
tree.synonym.node.name=Synonym
tree.database_links.node.name=Database Links
......
......@@ -42,6 +42,8 @@ tree.packages.node.name=\u041F\u0430\u043A\u0435\u0442\u044B
tree.package.node.name=\u041F\u0430\u043A\u0435\u0442
tree.procedures.node.name=\u041F\u0440\u043E\u0446\u0435\u0434\u0443\u0440\u044B
tree.procedure.node.name=\u041F\u0440\u043E\u0446\u0435\u0434\u0443\u0440\u0430
tree.functions.node.name=\u0424\u0443\u043D\u043A\u0446\u0438\u0438
tree.function.node.name=\u0424\u0443\u043D\u043A\u0446\u0438\u044F
tree.synonyms.node.name=\u0421\u0438\u043D\u043E\u043D\u0438\u043C\u044B
tree.synonym.node.name=\u0421\u0438\u043D\u043E\u043D\u0438\u043C
tree.database_links.node.name=\u0421\u0441\u044B\u043B\u043A\u0438 \u043D\u0430 \u0411\u0414
......@@ -231,8 +233,8 @@ meta.org.jkiss.dbeaver.ext.oracle.model.OracleTable.nested.name=\u0412\u043B\u04
meta.org.jkiss.dbeaver.ext.oracle.model.OracleTable.nested.description=\u041E\u0431\u043E\u0437\u043D\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043E \u0442\u0430\u0431\u043B\u0438\u0446\u0430 - \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u0430\u044F
meta.org.jkiss.dbeaver.ext.oracle.model.OracleTableBase.name.name=\u0418\u043C\u044F
meta.org.jkiss.dbeaver.ext.oracle.model.OracleTableBase.name.description=\u0418\u043C\u044F \u0442\u0430\u0431\u043B\u0438\u0446\u044B
meta.org.jkiss.dbeaver.ext.oracle.model.OracleTableBase.comment.name=\u041A\u043E\u043C\u0435\u043D\u0442\u0440\u0438\u0439
meta.org.jkiss.dbeaver.ext.oracle.model.OracleTableBase.comment.description=\u041A\u043E\u043C\u0435\u043D\u0442\u0440\u0438\u0439 \u0442\u0430\u0431\u043B\u0438\u0446\u044B
meta.org.jkiss.dbeaver.ext.oracle.model.OracleTableBase.comment.name=\u041A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439
meta.org.jkiss.dbeaver.ext.oracle.model.OracleTableBase.comment.description=\u041A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439 \u0442\u0430\u0431\u043B\u0438\u0446\u044B
meta.org.jkiss.dbeaver.ext.oracle.model.OracleTableBase.objectState.name=\u0421\u0442\u0430\u0442\u0443\u0441
meta.org.jkiss.dbeaver.ext.oracle.model.OracleTableColumn.fullTypeName.name=\u0422\u0438\u043F
meta.org.jkiss.dbeaver.ext.oracle.model.OracleTableColumn.fullTypeName.description=\u0422\u0438\u043F \u0434\u0430\u043D\u043D\u044B\u0445 \u043A\u043E\u043B\u043E\u043D\u043A\u0438
......
......@@ -165,7 +165,22 @@
</folder>
<folder type="org.jkiss.dbeaver.ext.oracle.model.OraclePackage" label="%tree.packages.node.name" icon="#packages" description="Packages">
<items label="%tree.package.node.name" path="package" property="packages" icon="#package">
<items label="%tree.procedures.node.name" itemLabel="%tree.procedure.node.name" path="procedure" property="procedures" icon="#procedure" visibleIf="object.dataSource.isAtLeastV10()">
<items label="%tree.procedures.node.name" itemLabel="%tree.procedure.node.name" path="procedure" property="proceduresOnly" icon="#procedure" visibleIf="object.dataSource.isAtLeastV10()">
<handler action="open" command="org.jkiss.dbeaver.ext.oracle.code.package.navigate"/>
<!-- Proc arguments. Not inline because arguments reading is expensive -->
<items label="%tree.arguments.node.name" itemLabel="%tree.argument.node.name" path="argument" property="parameters" icon="#argument" navigable="false" inline="false">
<items label="%tree.attributes.node.name" itemLabel="%tree.attribute.node.name" path="attribute" property="attributes" icon="#attribute" navigable="false" inline="true" id="ProcedureArgumentAttributes" visibleIf="object.hasAttributes()">
<items ref="ProcedureArgumentAttributes"/>
</items>
</items>
<folder type="org.jkiss.dbeaver.ext.oracle.model.OracleDependency" label="%tree.dependencies.node.name" description="Procedure dependency/dependent objects">
<items label="%tree.dependency.node.name" path="dependency" property="dependencies" icon="platform:/plugin/org.jkiss.dbeaver.ui/icons/file/link.png">
<items label="%tree.dependencies.node.name" path="entry" property="entries" navigable="false" inline="true">
</items>
</items>
</folder>
</items>
<items label="%tree.functions.node.name" itemLabel="%tree.function.node.name" path="function" property="functionsOnly" icon="#function" visibleIf="object.dataSource.isAtLeastV10()">
<handler action="open" command="org.jkiss.dbeaver.ext.oracle.code.package.navigate"/>
<!-- Proc arguments. Not inline because arguments reading is expensive -->
<items label="%tree.arguments.node.name" itemLabel="%tree.argument.node.name" path="argument" property="parameters" icon="#argument" navigable="false" inline="false">
......@@ -188,8 +203,8 @@
</folder>
</items>
</folder>
<folder type="org.jkiss.dbeaver.ext.oracle.model.OracleProcedureStandalone" label="%tree.procedures.node.name" icon="#procedures" description="Procedures">
<items label="%tree.procedure.node.name" itemLabel="%tree.procedure.node.name" path="procedure" property="procedures" icon="#procedure" id="Procedure">
<folder id="procedures" type="org.jkiss.dbeaver.ext.oracle.model.OracleProcedureStandalone" label="%tree.procedures.node.name" icon="#procedures" description="Procedures">
<items label="%tree.procedure.node.name" itemLabel="%tree.procedure.node.name" path="procedure" property="proceduresOnly" icon="#procedure" id="Procedure">
<items label="%tree.arguments.node.name" itemLabel="%tree.argument.node.name" path="argument" property="parameters" icon="#argument" navigable="false" inline="false">
<items ref="ProcedureArgumentAttributes"/>
</items>
......@@ -201,6 +216,19 @@
</folder>
</items>
</folder>
<folder id="functions" type="org.jkiss.dbeaver.ext.oracle.model.OracleProcedureStandalone" label="%tree.functions.node.name" icon="#functions" description="Functions">
<items label="%tree.function.node.name" itemLabel="%tree.function.node.name" path="function" property="functionsOnly" icon="#function" id="Function">
<items label="%tree.arguments.node.name" itemLabel="%tree.argument.node.name" path="argument" property="parameters" icon="#argument" navigable="false" inline="false">
<items ref="ProcedureArgumentAttributes"/>
</items>
<folder type="org.jkiss.dbeaver.ext.oracle.model.OracleDependency" label="%tree.dependencies.node.name" description="Function dependency/dependent objects">
<items label="%tree.dependency.node.name" path="dependency" property="dependencies" icon="platform:/plugin/org.jkiss.dbeaver.ui/icons/file/link.png">
<items label="%tree.dependencies.node.name" path="entry" property="entries" navigable="false" inline="true">
</items>
</items>
</folder>
</items>
</folder>
<folder type="org.jkiss.dbeaver.ext.oracle.model.OracleSynonym" label="%tree.synonyms.node.name" icon="#synonyms" description="Synonyms">
<items label="%tree.synonym.node.name" path="synonym" property="synonyms" icon="#synonym"/>
</folder>
......
......@@ -40,11 +40,13 @@ import org.jkiss.dbeaver.model.struct.DBSObjectContainer;
import org.jkiss.dbeaver.model.struct.DBSObjectState;
import org.jkiss.dbeaver.model.struct.rdb.DBSPackage;
import org.jkiss.dbeaver.model.struct.rdb.DBSProcedureContainer;
import org.jkiss.dbeaver.model.struct.rdb.DBSProcedureType;
import org.jkiss.utils.CommonUtils;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*;
import java.util.stream.Collectors;
/**
* GenericProcedure
......@@ -116,13 +118,29 @@ public class OraclePackage extends OracleSchemaObject
}
@Association
public Collection<OracleProcedurePackaged> getProcedures(DBRProgressMonitor monitor) throws DBException {
return proceduresCache.getAllObjects(monitor, this);
public Collection<OracleDependencyGroup> getDependencies(DBRProgressMonitor monitor) {
return OracleDependencyGroup.of(this);
}
@Association
public Collection<OracleDependencyGroup> getDependencies(DBRProgressMonitor monitor) {
return OracleDependencyGroup.of(this);
public Collection<OracleProcedurePackaged> getProceduresOnly(DBRProgressMonitor monitor) throws DBException {
return getProcedures(monitor)
.stream()
.filter(proc -> proc.getProcedureType() == DBSProcedureType.PROCEDURE)
.collect(Collectors.toList());
}
@Association
public Collection<OracleProcedurePackaged> getFunctionsOnly(DBRProgressMonitor monitor) throws DBException {
return getProcedures(monitor)
.stream()
.filter(proc -> proc.getProcedureType() == DBSProcedureType.FUNCTION)
.collect(Collectors.toList());
}
@Association
public Collection<OracleProcedurePackaged> getProcedures(DBRProgressMonitor monitor) throws DBException {
return proceduresCache.getAllObjects(monitor, this);
}
@Override
......
......@@ -40,6 +40,7 @@ import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.struct.DBSEntity;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.model.struct.rdb.DBSProcedureContainer;
import org.jkiss.dbeaver.model.struct.rdb.DBSProcedureType;
import org.jkiss.dbeaver.model.struct.rdb.DBSSchema;
import org.jkiss.utils.ArrayUtils;
import org.jkiss.utils.CommonUtils;
......@@ -47,6 +48,7 @@ import org.jkiss.utils.CommonUtils;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*;
import java.util.stream.Collectors;
/**
* OracleSchema
......@@ -252,6 +254,22 @@ public class OracleSchema extends OracleGlobalObject implements DBSSchema, DBPRe
return packageCache.getAllObjects(monitor, this);
}
@Association
public Collection<OracleProcedureStandalone> getProceduresOnly(DBRProgressMonitor monitor) throws DBException {
return getProcedures(monitor)
.stream()
.filter(proc -> proc.getProcedureType() == DBSProcedureType.PROCEDURE)
.collect(Collectors.toList());
}
@Association
public Collection<OracleProcedureStandalone> getFunctionsOnly(DBRProgressMonitor monitor) throws DBException {
return getProcedures(monitor)
.stream()
.filter(proc -> proc.getProcedureType() == DBSProcedureType.FUNCTION)
.collect(Collectors.toList());
}
@Association
public Collection<OracleProcedureStandalone> getProcedures(DBRProgressMonitor monitor)
throws DBException
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册