[teiid-commits] teiid SVN: r3439 - in branches/7.4.x/engine/src: test/java/org/teiid/query/processor and 1 other directory.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Wed Aug 31 14:28:44 EDT 2011


Author: shawkins
Date: 2011-08-31 14:28:44 -0400 (Wed, 31 Aug 2011)
New Revision: 3439

Modified:
   branches/7.4.x/engine/src/main/java/org/teiid/query/tempdata/TempTableDataManager.java
   branches/7.4.x/engine/src/test/java/org/teiid/query/processor/TestWithClauseProcessing.java
Log:
TEIID-1737 fix for temptabledatamanager inappropriately handling queries with a with clause

Modified: branches/7.4.x/engine/src/main/java/org/teiid/query/tempdata/TempTableDataManager.java
===================================================================
--- branches/7.4.x/engine/src/main/java/org/teiid/query/tempdata/TempTableDataManager.java	2011-08-31 15:51:27 UTC (rev 3438)
+++ branches/7.4.x/engine/src/main/java/org/teiid/query/tempdata/TempTableDataManager.java	2011-08-31 18:28:44 UTC (rev 3439)
@@ -64,6 +64,7 @@
 import org.teiid.query.eval.Evaluator;
 import org.teiid.query.mapping.relational.QueryNode;
 import org.teiid.query.metadata.QueryMetadataInterface;
+import org.teiid.query.metadata.TempMetadataAdapter;
 import org.teiid.query.metadata.TempMetadataID;
 import org.teiid.query.optimizer.relational.RelationalPlanner;
 import org.teiid.query.parser.ParseInfo;
@@ -185,6 +186,9 @@
     	TempTableStore contextStore = context.getTempTableStore();
         if (command instanceof Query) {
             Query query = (Query)command;
+            if (modelName != null && !modelName.equals(TempMetadataAdapter.TEMP_MODEL.getID())) {
+            	return null;
+            }
             return registerQuery(context, contextStore, query);
         }
         if (command instanceof ProcedureContainer) {

Modified: branches/7.4.x/engine/src/test/java/org/teiid/query/processor/TestWithClauseProcessing.java
===================================================================
--- branches/7.4.x/engine/src/test/java/org/teiid/query/processor/TestWithClauseProcessing.java	2011-08-31 15:51:27 UTC (rev 3438)
+++ branches/7.4.x/engine/src/test/java/org/teiid/query/processor/TestWithClauseProcessing.java	2011-08-31 18:28:44 UTC (rev 3439)
@@ -64,10 +64,16 @@
         
 	    String sql = "with a (x, y, z) as (select e1, e2, e3 from pm1.g1) SELECT a.x from a, a z"; //$NON-NLS-1$
 	    
-	    FakeDataManager dataManager = new FakeDataManager();
-	    sampleData1(dataManager);
+	    HardcodedDataManager dataManager = new HardcodedDataManager();
+	    List[] expected = new List[] { 
+		        Arrays.asList("a", 1, Boolean.FALSE),
+		    };    
+
+	    dataManager.addData("WITH a (x, y, z) AS (SELECT g_0.e1, g_0.e2, g_0.e3 FROM pm1.g1 AS g_0) SELECT g_0.x FROM a AS g_0, a AS g_1", expected);
 	    
-	    TestOptimizer.helpPlan(sql, RealMetadataFactory.example1Cached(), null, capFinder, new String[] {"WITH a (x, y, z) AS (SELECT g_0.e1, g_0.e2, g_0.e3 FROM pm1.g1 AS g_0) SELECT g_0.x FROM a AS g_0, a AS g_1"}, ComparisonMode.EXACT_COMMAND_STRING);
+	    ProcessorPlan plan = TestOptimizer.helpPlan(sql, RealMetadataFactory.example1Cached(), null, capFinder, new String[] {"WITH a (x, y, z) AS (SELECT g_0.e1, g_0.e2, g_0.e3 FROM pm1.g1 AS g_0) SELECT g_0.x FROM a AS g_0, a AS g_1"}, ComparisonMode.EXACT_COMMAND_STRING);
+	    
+	    helpProcess(plan, dataManager, expected);
 	}
 	
 	@Test public void testWithPushdownWithConstants() throws TeiidException {



More information about the teiid-commits mailing list