Author: shawkins
Date: 2012-02-17 22:14:47 -0500 (Fri, 17 Feb 2012)
New Revision: 3891
Modified:
branches/7.7.x/metadata/src/main/java/org/teiid/metadata/index/IndexMetadataFactory.java
Log:
TEIIDDES-152 adding extension properties for null-on-null and varargs
Modified:
branches/7.7.x/metadata/src/main/java/org/teiid/metadata/index/IndexMetadataFactory.java
===================================================================
---
branches/7.7.x/metadata/src/main/java/org/teiid/metadata/index/IndexMetadataFactory.java 2012-02-17
16:12:11 UTC (rev 3890)
+++
branches/7.7.x/metadata/src/main/java/org/teiid/metadata/index/IndexMetadataFactory.java 2012-02-18
03:14:47 UTC (rev 3891)
@@ -497,6 +497,8 @@
}
} else if (procedureRecord.isFunction()) {
boolean deterministic =
Boolean.valueOf(procedureRecord.getProperty(AbstractMetadataRecord.RELATIONAL_URI +
"deterministic", true)); //$NON-NLS-1$
+ boolean nullOnNull =
Boolean.valueOf(procedureRecord.getProperty(AbstractMetadataRecord.RELATIONAL_URI +
"null-on-null", false)); //$NON-NLS-1$
+ boolean varargs =
Boolean.valueOf(procedureRecord.getProperty(AbstractMetadataRecord.RELATIONAL_URI +
"varargs", false)); //$NON-NLS-1$
FunctionParameter outputParam = null;
List<FunctionParameter> args = new
ArrayList<FunctionParameter>(procedureRecord.getParameters().size() - 1);
boolean valid = true;
@@ -520,8 +522,13 @@
}
}
if (valid && outputParam != null) {
- model.addFunction(new FunctionMethod(procedureRecord.getName(),
procedureRecord.getAnnotation(), model.getName(), PushDown.MUST_PUSHDOWN,
- null, null, args.toArray(new FunctionParameter[args.size()]), outputParam,
false, deterministic?Determinism.DETERMINISTIC:Determinism.NONDETERMINISTIC));
+ FunctionMethod function = new FunctionMethod(procedureRecord.getName(),
procedureRecord.getAnnotation(), model.getName(), PushDown.MUST_PUSHDOWN,
+ null, null, args.toArray(new FunctionParameter[args.size()]), outputParam,
false, deterministic?Determinism.DETERMINISTIC:Determinism.NONDETERMINISTIC);
+ function.setNullOnNull(nullOnNull);
+ if (varargs && !function.getInputParameters().isEmpty()) {
+ function.getInputParameters().get(args.size() - 1).setVarArg(varargs);
+ }
+ model.addFunction(function);
continue;
}
}
Show replies by date