Repository: cayenne Updated Branches: refs/heads/STABLE-4.0 4944e863d -> 21732820a
CAY-2435 cdbimport: procedure parameters are not imported Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/21732820 Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/21732820 Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/21732820 Branch: refs/heads/STABLE-4.0 Commit: 21732820a38c9d8c32b0b311b8edf53a320d91ff Parents: 4944e86 Author: Nikita Timofeev <[email protected]> Authored: Wed May 23 12:19:39 2018 +0300 Committer: Nikita Timofeev <[email protected]> Committed: Wed May 23 12:19:39 2018 +0300 ---------------------------------------------------------------------- RELEASE-NOTES.txt | 1 + .../dbsync/reverse/dbload/ProcedureColumnLoader.java | 14 ++++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cayenne/blob/21732820/RELEASE-NOTES.txt ---------------------------------------------------------------------- diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index c09f88b..6bdc143 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -16,6 +16,7 @@ Changes/New Features: Bug Fixes: +CAY-2435 cdbimport: procedure parameters are not imported CAY-2436 NPE in CayenneRuntimeException constructor ---------------------------------- http://git-wip-us.apache.org/repos/asf/cayenne/blob/21732820/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/ProcedureColumnLoader.java ---------------------------------------------------------------------- diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/ProcedureColumnLoader.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/ProcedureColumnLoader.java index f4096a1..31c6a73 100644 --- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/ProcedureColumnLoader.java +++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/ProcedureColumnLoader.java @@ -58,8 +58,9 @@ public class ProcedureColumnLoader extends PerCatalogAndSchemaLoader { String procCatalog = rs.getString("PROCEDURE_CAT"); String name = rs.getString("PROCEDURE_NAME"); String key = Procedure.generateFullyQualifiedName(procCatalog, procSchema, name); - Procedure procedure = map.getProcedure(key); - if (procedure == null) { + Procedure procedure = map.getProcedure(name); + // should be filtered out in getResultSet() method, but check full name here too.. + if (procedure == null || !key.equals(procedure.getFullyQualifiedName())) { return; } @@ -80,7 +81,7 @@ public class ProcedureColumnLoader extends PerCatalogAndSchemaLoader { return null; } - if (columnName == null) { + if (columnName == null || columnName.isEmpty()) { if (type == DatabaseMetaData.procedureColumnReturn) { LOGGER.debug("null column name, assuming result column: " + key); columnName = "_return_value"; @@ -103,7 +104,10 @@ public class ProcedureColumnLoader extends PerCatalogAndSchemaLoader { } ProcedureParameter column = new ProcedureParameter(columnName); - column.setDirection(getDirection(type)); + int direction = getDirection(type); + if(direction != -1) { + column.setDirection(direction); + } column.setType(columnType); column.setMaxLength(rs.getInt("LENGTH")); column.setPrecision(decimalDigits); @@ -120,6 +124,8 @@ public class ProcedureColumnLoader extends PerCatalogAndSchemaLoader { return ProcedureParameter.IN_OUT_PARAMETER; case DatabaseMetaData.procedureColumnOut: return ProcedureParameter.OUT_PARAMETER; + case DatabaseMetaData.procedureColumnReturn: + return ProcedureParameter.OUT_PARAMETER; default: return -1; }
