[teiid-commits] teiid SVN: r2669 - in branches/7.1.x/engine/src: test/java/org/teiid/query/resolver and 1 other directory.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Thu Oct 21 11:33:12 EDT 2010


Author: shawkins
Date: 2010-10-21 11:33:12 -0400 (Thu, 21 Oct 2010)
New Revision: 2669

Modified:
   branches/7.1.x/engine/src/main/java/org/teiid/query/sql/visitor/SQLStringVisitor.java
   branches/7.1.x/engine/src/test/java/org/teiid/query/resolver/TestResolver.java
Log:
TEIID-1312 fix for procedure defaults in string form

Modified: branches/7.1.x/engine/src/main/java/org/teiid/query/sql/visitor/SQLStringVisitor.java
===================================================================
--- branches/7.1.x/engine/src/main/java/org/teiid/query/sql/visitor/SQLStringVisitor.java	2010-10-21 15:08:08 UTC (rev 2668)
+++ branches/7.1.x/engine/src/main/java/org/teiid/query/sql/visitor/SQLStringVisitor.java	2010-10-21 15:33:12 UTC (rev 2669)
@@ -908,36 +908,36 @@
         append(SPACE);
         append(obj.getProcedureName());
         append("("); //$NON-NLS-1$
-        List params = obj.getInputParameters();
-        if (params != null) {
-            Iterator iter = params.iterator();
-            while (iter.hasNext()) {
-                SPParameter param = (SPParameter)iter.next();
+        boolean first = true;
+        for (SPParameter param : obj.getInputParameters()) {
+            if (param.isUsingDefault()) {
+            	continue;
+            }
+            if (first) {
+            	first = false;
+            } else {
+            	append(", "); //$NON-NLS-1$
+            }
+            if (obj.displayNamedParameters()) {
+                append(escapeSinglePart(ElementSymbol.getShortName(param.getParameterSymbol().getOutputName())));
+                append(" => "); //$NON-NLS-1$
+            }
 
-                if (obj.displayNamedParameters()) {
-                    append(escapeSinglePart(ElementSymbol.getShortName(param.getParameterSymbol().getOutputName())));
-                    append(" => "); //$NON-NLS-1$
-                }
-
-                if (param.getExpression() == null) {
-                    if (param.getName() != null) {
-                        outputDisplayName(obj.getParamFullName(param));
-                    } else {
-                        append("?"); //$NON-NLS-1$
-                    }
+            if (param.getExpression() == null) {
+                if (param.getName() != null) {
+                    outputDisplayName(obj.getParamFullName(param));
                 } else {
-                    boolean addParens = !obj.displayNamedParameters() && param.getExpression() instanceof CompareCriteria;
-                    if (addParens) {
-                        append(Tokens.LPAREN);
-                    }
-                    visitNode(param.getExpression());
-                    if (addParens) {
-                        append(Tokens.RPAREN);
-                    }
+                    append("?"); //$NON-NLS-1$
                 }
-                if (iter.hasNext()) {
-                    append(", "); //$NON-NLS-1$
+            } else {
+                boolean addParens = !obj.displayNamedParameters() && param.getExpression() instanceof CompareCriteria;
+                if (addParens) {
+                    append(Tokens.LPAREN);
                 }
+                visitNode(param.getExpression());
+                if (addParens) {
+                    append(Tokens.RPAREN);
+                }
             }
         }
         append(")"); //$NON-NLS-1$

Modified: branches/7.1.x/engine/src/test/java/org/teiid/query/resolver/TestResolver.java
===================================================================
--- branches/7.1.x/engine/src/test/java/org/teiid/query/resolver/TestResolver.java	2010-10-21 15:08:08 UTC (rev 2668)
+++ branches/7.1.x/engine/src/test/java/org/teiid/query/resolver/TestResolver.java	2010-10-21 15:33:12 UTC (rev 2669)
@@ -350,7 +350,7 @@
      * @param expectedParameterExpressions
      * @since 4.3
      */
-    private void helpResolveExec(String sql, Object[] expectedParameterExpressions) {
+    private StoredProcedure helpResolveExec(String sql, Object[] expectedParameterExpressions) {
 
         StoredProcedure proc = (StoredProcedure)helpResolve(sql);
         
@@ -375,6 +375,8 @@
                 assertEquals(expectedParameterExpressions[i], param.getExpression());
             }
         }
+        
+        return proc;
     }
         
     
@@ -1093,7 +1095,8 @@
     /** test omitting a required parameter that has a default value */
     @Test public void testExecNamedParamsOmitRequiredParamWithDefaultValue() {
         Object[] expectedParameterExpressions = new Object[] {new Constant("xyz"), new Constant(new Integer(666)), new Constant("YYZ")};//$NON-NLS-1$ //$NON-NLS-2$
-        helpResolveExec("EXEC pm1.sq3b(\"in\" = 'xyz', in2 = 666)", expectedParameterExpressions);//$NON-NLS-1$
+        StoredProcedure sp = helpResolveExec("EXEC pm1.sq3b(\"in\" = 'xyz', in2 = 666)", expectedParameterExpressions);//$NON-NLS-1$
+        assertEquals("EXEC pm1.sq3b(\"in\" => 'xyz', in2 => 666)", sp.toString());
     }    
     
     @Test public void testExecNamedParamsOptionalParamWithDefaults() {



More information about the teiid-commits mailing list