[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