### Eclipse Workspace Patch 1.0
#P org.teiid.designer.metamodels.function
Index: src/com/metamatrix/metamodels/function/i18n.properties
===================================================================
--- src/com/metamatrix/metamodels/function/i18n.properties	(revision 1417)
+++ src/com/metamatrix/metamodels/function/i18n.properties	(working copy)
@@ -45,7 +45,7 @@
 # ====================================================================
 FunctionValidationAspectFactoryImpl.Invalid_classifer_ID,_for_creating_validation_aspect__1=Invalid classifer ID, for creating validation aspect 
 StringNameRule.The_entity_name_may_not_be_null._1=The entity name may not be null.
-ScalarFunctionRule.Invocation_class_must_be_specified_on_a_scalar_function._1=Invocation class must be specified on a scalar function.
+ScalarFunctionRule.Invocation_class_must_be_specified_on_a_scalar_function._1=Invocation class must be specified on a scalar function if push down is not required.
 ScalarFunctionRule.Invocation_method_must_be_specified_on_a_scalar_function._2=Invocation method must be specified on a scalar function if push down is not required.
 ScalarFunctionRule.Invocation_class_3=Invocation class
 ScalarFunctionRule.Invocation_Method_4=Invocation Method
#P org.teiid.designer.legacy
Index: src/com/metamatrix/modeler/transformation/metadata/TransformationMetadata.java
===================================================================
--- src/com/metamatrix/modeler/transformation/metadata/TransformationMetadata.java	(revision 1417)
+++ src/com/metamatrix/modeler/transformation/metadata/TransformationMetadata.java	(working copy)
@@ -316,21 +316,48 @@
      * @see com.metamatrix.query.metadata.QueryMetadataInterface#getStoredProcedureInfoForProcedure(java.lang.String)
      */
     @Override
-    public StoredProcedureInfo getStoredProcedureInfoForProcedure( final String fullyQualifiedProcedureName )
+    public StoredProcedureInfo getStoredProcedureInfoForProcedure( final String procedureName )
         throws TeiidComponentException, QueryMetadataException {
-        ArgCheck.isNotEmpty(fullyQualifiedProcedureName);
+        ArgCheck.isNotEmpty(procedureName);
 
         ProcedureRecord procRecord = null;
+        
+        // procedure full names always contain atlest 2 segments(modelname.procedureName)
+        if (StringUtil.startsWithIgnoreCase(procedureName, UUID.PROTOCOL)
+            || StringUtil.getTokens(procedureName, DELIMITER_STRING).size() >= 2) {
 
-        // procedurefull names always contain atlest 2 segments(modelname.procedureName)
-        if (StringUtil.startsWithIgnoreCase(fullyQualifiedProcedureName, UUID.PROTOCOL)
-            || StringUtil.getTokens(fullyQualifiedProcedureName, DELIMITER_STRING).size() >= 2) {
-            // Query the index files
-            procRecord = (ProcedureRecord)getRecordByType(fullyQualifiedProcedureName, IndexConstants.RECORD_TYPE.CALLABLE);
-        }
+            final Collection results = findMetadataRecords(IndexConstants.RECORD_TYPE.CALLABLE, procedureName, false);
 
+            int resultSize = results.size();
+            if (resultSize == 1) {
+                // get the columnset record for this result
+                procRecord = (ProcedureRecord)results.iterator().next();
+            } else if (resultSize == 0) {
+                if (StringUtil.startsWithIgnoreCase(procedureName, UUID.PROTOCOL)) {
+                    throw new QueryMetadataException(procedureName + NOT_EXISTS_MESSAGE);
+                }
+            } else {
+                // there should be only one for the full name
+                throw new QueryMetadataException(RuntimeMetadataPlugin.Util.getString("TransformationMetadata.0", procedureName)); //$NON-NLS-1$
+            }
+        }
+        
         if (procRecord == null) {
-            throw new QueryMetadataException(fullyQualifiedProcedureName + NOT_EXISTS_MESSAGE);
+        
+            String partialName = DELIMITER_CHAR + procedureName;
+    
+            final Collection results = findMetadataRecords(IndexConstants.RECORD_TYPE.CALLABLE, partialName, true);
+            
+            int resultSize = results.size();
+            if (resultSize == 1) {
+                // get the columnset record for this result
+                procRecord = (ProcedureRecord)results.iterator().next();
+            } else if (resultSize == 0) {
+                throw new QueryMetadataException(procedureName + NOT_EXISTS_MESSAGE);
+            } else {
+                // there should be only one for the UUID
+                throw new QueryMetadataException(RuntimeMetadataPlugin.Util.getString("TransformationMetadata.0", procedureName)); //$NON-NLS-1$
+            }
         }
 
         String procedureFullName = procRecord.getFullName();
