[teiid-commits] teiid SVN: r2866 - in branches/7.1.x/engine/src: main/java/org/teiid/query/sql/symbol and 1 other directories.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Thu Jan 20 20:40:18 EST 2011


Author: shawkins
Date: 2011-01-20 20:40:16 -0500 (Thu, 20 Jan 2011)
New Revision: 2866

Modified:
   branches/7.1.x/engine/src/main/java/org/teiid/query/resolver/ProcedureContainerResolver.java
   branches/7.1.x/engine/src/main/java/org/teiid/query/sql/symbol/Reference.java
   branches/7.1.x/engine/src/test/java/org/teiid/query/processor/proc/TestProcedureProcessor.java
Log:
 TEIID-1438 refining the validation that is performed on non-query commands to detect pushdown errors.

Modified: branches/7.1.x/engine/src/main/java/org/teiid/query/resolver/ProcedureContainerResolver.java
===================================================================
--- branches/7.1.x/engine/src/main/java/org/teiid/query/resolver/ProcedureContainerResolver.java	2011-01-21 00:55:36 UTC (rev 2865)
+++ branches/7.1.x/engine/src/main/java/org/teiid/query/resolver/ProcedureContainerResolver.java	2011-01-21 01:40:16 UTC (rev 2866)
@@ -229,9 +229,6 @@
 	    externalGroups.addGroup(variables);
 	    TempMetadataID tid = metadata.addTempGroup(name, symbols);
 	    tid.setScalarGroup();
-	    for (TempMetadataID cid : tid.getElements()) {
-			cid.setScalarGroup();
-		}
 	    variables.setMetadataID(tid);
 	    return variables;
 	}

Modified: branches/7.1.x/engine/src/main/java/org/teiid/query/sql/symbol/Reference.java
===================================================================
--- branches/7.1.x/engine/src/main/java/org/teiid/query/sql/symbol/Reference.java	2011-01-21 00:55:36 UTC (rev 2865)
+++ branches/7.1.x/engine/src/main/java/org/teiid/query/sql/symbol/Reference.java	2011-01-21 01:40:16 UTC (rev 2866)
@@ -179,10 +179,11 @@
     		return false;
     	}
     	//metadata hack
-    	if (!(this.expression.getMetadataID() instanceof TempMetadataID)) {
+    	if (this.expression.getGroupSymbol() == null || !(this.expression.getGroupSymbol().getMetadataID() instanceof TempMetadataID)) {
     		return true;
     	}
-    	TempMetadataID tid = (TempMetadataID)this.expression.getMetadataID();
+    	
+    	TempMetadataID tid = (TempMetadataID)this.expression.getGroupSymbol().getMetadataID();
     	return !tid.isScalarGroup();
     }
     

Modified: branches/7.1.x/engine/src/test/java/org/teiid/query/processor/proc/TestProcedureProcessor.java
===================================================================
--- branches/7.1.x/engine/src/test/java/org/teiid/query/processor/proc/TestProcedureProcessor.java	2011-01-21 00:55:36 UTC (rev 2865)
+++ branches/7.1.x/engine/src/test/java/org/teiid/query/processor/proc/TestProcedureProcessor.java	2011-01-21 01:40:16 UTC (rev 2866)
@@ -2662,7 +2662,8 @@
         StringBuffer procedure = new StringBuffer("CREATE VIRTUAL PROCEDURE \n"); //$NON-NLS-1$
         procedure.append("BEGIN\n"); //$NON-NLS-1$
         procedure.append("create local temporary table x (y string);\n"); //$NON-NLS-1$
-        procedure.append("update x set y = in1 || 'foo';\n"); //$NON-NLS-1$
+        procedure.append("declare string s = 'foo';\n"); //$NON-NLS-1$
+        procedure.append("update x set y = in1 || s;\n"); //$NON-NLS-1$
         procedure.append("update pm1.g1 set e1 = lookup('pm1.g1', 'e1', 'e2', in1);\n"); //$NON-NLS-1$
         procedure.append("exec pm1.sq2(in1 || 'foo');\n"); //$NON-NLS-1$
         procedure.append("END"); //$NON-NLS-1$



More information about the teiid-commits mailing list