提交 67e2f7b2 编写于 作者: S Serge Rider

#6286 Generic driver: procedure type detect fix

上级 0e533f62
...@@ -223,6 +223,8 @@ public class GenericMetaModel { ...@@ -223,6 +223,8 @@ public class GenericMetaModel {
{ {
Map<String, GenericPackage> packageMap = null; Map<String, GenericPackage> packageMap = null;
Map<String, GenericProcedure> funcMap = new LinkedHashMap<>();
GenericDataSource dataSource = container.getDataSource(); GenericDataSource dataSource = container.getDataSource();
GenericMetaObject procObject = dataSource.getMetaObject(GenericConstants.OBJECT_PROCEDURE); GenericMetaObject procObject = dataSource.getMetaObject(GenericConstants.OBJECT_PROCEDURE);
try (JDBCSession session = DBUtils.openMetaSession(monitor, container, "Load procedures")) { try (JDBCSession session = DBUtils.openMetaSession(monitor, container, "Load procedures")) {
...@@ -275,6 +277,8 @@ public class GenericMetaModel { ...@@ -275,6 +277,8 @@ public class GenericMetaModel {
DBSProcedureType.FUNCTION, DBSProcedureType.FUNCTION,
functionResultType); functionResultType);
container.addProcedure(procedure); container.addProcedure(procedure);
funcMap.put(specificName == null ? functionName : specificName, procedure);
} }
} }
finally { finally {
...@@ -318,6 +322,12 @@ public class GenericMetaModel { ...@@ -318,6 +322,12 @@ public class GenericMetaModel {
if (CommonUtils.isEmpty(specificName)) { if (CommonUtils.isEmpty(specificName)) {
specificName = procedureName; specificName = procedureName;
} }
GenericProcedure function = funcMap.get(specificName);
if (function != null) {
// Broken driver
log.debug("Broken driver [" + session.getDataSource().getContainer().getDriver().getName() + "] - returns the same list for getProcedures and getFunctons");
break;
}
procedureName = GenericUtils.normalizeProcedureName(procedureName); procedureName = GenericUtils.normalizeProcedureName(procedureName);
GenericPackage procedurePackage = null; GenericPackage procedurePackage = null;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册