[#5943] Boolean data type rewrites on Oracle procedures conflict with PL/SQL BOOLEAN data type logic

This commit is contained in:
lukaseder 2017-03-07 13:50:31 +01:00
parent c12899bf3f
commit 81ce77d34b
3 changed files with 30 additions and 1 deletions

View File

@ -4298,6 +4298,17 @@ public class JavaGenerator extends AbstractGenerator {
else
out.tab(2).println("addOutParameter(%s);", paramId);
}
}
if (routine.getOverload() != null) {

View File

@ -113,6 +113,10 @@ abstract class AbstractTypedElementDefinition<T extends Definition>
return type;
}
DataTypeDefinition getDefinedType() {
return definedType;
}
static DataTypeDefinition mapDefinedType(Definition container, Definition child, DataTypeDefinition definedType) {
DataTypeDefinition result = definedType;
Database db = container.getDatabase();

View File

@ -129,6 +129,9 @@ public abstract class AbstractRoutine<T> extends AbstractQueryPart implements Ro
private final List<Parameter<?>> allParameters;
private final List<Parameter<?>> inParameters;
private final List<Parameter<?>> outParameters;
private final DataType<T> type;
private Parameter<T> returnParameter;
private ResultsImpl results;
@ -207,6 +210,7 @@ public abstract class AbstractRoutine<T> extends AbstractQueryPart implements Ro
this.allParameters = new ArrayList<Parameter<?>>();
this.inParameters = new ArrayList<Parameter<?>>();
this.outParameters = new ArrayList<Parameter<?>>();
this.plsqlBooleanParameters = new ArrayList<Parameter<?>>();
this.results = new ResultsImpl(null);
this.inValues = new HashMap<Parameter<?>, Field<?>>();
this.inValuesDefaulted = new HashSet<Parameter<?>>();
@ -1247,7 +1251,6 @@ public abstract class AbstractRoutine<T> extends AbstractQueryPart implements Ro
}
@ -1268,6 +1271,10 @@ public abstract class AbstractRoutine<T> extends AbstractQueryPart implements Ro
@ -1307,6 +1314,13 @@ public abstract class AbstractRoutine<T> extends AbstractQueryPart implements Ro
returnParameter = parameter;
}
public final Field<T> asField() {
if (function == null) {
function = new RoutineField();