[teiid-commits] teiid SVN: r3891 - branches/7.7.x/metadata/src/main/java/org/teiid/metadata/index.
teiid-commits at lists.jboss.org
teiid-commits at lists.jboss.org
Fri Feb 17 22:14:50 EST 2012
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;
}
}
More information about the teiid-commits
mailing list