[teiid-commits] teiid SVN: r3542 - 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
Fri Oct 7 10:49:25 EDT 2011


Author: shawkins
Date: 2011-10-07 10:49:25 -0400 (Fri, 07 Oct 2011)
New Revision: 3542

Modified:
   branches/7.4.x/engine/src/main/java/org/teiid/query/processor/relational/AccessNode.java
   branches/7.4.x/engine/src/test/java/org/teiid/query/processor/TestProcessor.java
Log:
TEIID-1778 fix for returning incorrect results

Modified: branches/7.4.x/engine/src/main/java/org/teiid/query/processor/relational/AccessNode.java
===================================================================
--- branches/7.4.x/engine/src/main/java/org/teiid/query/processor/relational/AccessNode.java	2011-10-07 12:25:57 UTC (rev 3541)
+++ branches/7.4.x/engine/src/main/java/org/teiid/query/processor/relational/AccessNode.java	2011-10-07 14:49:25 UTC (rev 3542)
@@ -328,6 +328,15 @@
         terminateBatches();
         return pullBatch();
 	}
+	
+	@Override
+	protected void addBatchRow(List row) {
+		if (this.getOutputElements().isEmpty()) {
+			//a dummy column was added to the query, just remove it now
+			row = Collections.emptyList();
+		}
+		super.addBatchRow(row);
+	}
 
 	private void registerNext() throws TeiidComponentException,
 			TeiidProcessingException {

Modified: branches/7.4.x/engine/src/test/java/org/teiid/query/processor/TestProcessor.java
===================================================================
--- branches/7.4.x/engine/src/test/java/org/teiid/query/processor/TestProcessor.java	2011-10-07 12:25:57 UTC (rev 3541)
+++ branches/7.4.x/engine/src/test/java/org/teiid/query/processor/TestProcessor.java	2011-10-07 14:49:25 UTC (rev 3542)
@@ -7573,5 +7573,17 @@
         		Arrays.asList(0, "a")});
     }
     
+    @Test public void testCrossJoinReduction() throws Exception {
+        String sql = "select x.e2 from pm1.g2 y, pm1.g1 x where x.e1 = y.e1 and x.e1 = 'a'"; //$NON-NLS-1$
+
+        HardcodedDataManager dataManager = new HardcodedDataManager();
+        dataManager.addData("SELECT g_0.e2 FROM pm1.g1 AS g_0 WHERE g_0.e1 = 'a'", new List[] {Arrays.asList(3)});
+        dataManager.addData("SELECT 1 FROM pm1.g2 AS g_0 WHERE g_0.e1 = 'a'", new List[] {Arrays.asList(1)});
+        ProcessorPlan plan = helpGetPlan(sql, RealMetadataFactory.example1Cached(), TestOptimizer.getGenericFinder(false));
+        
+        helpProcess(plan, dataManager, new List[] {
+        		Arrays.asList(3)});
+    }
+    
     private static final boolean DEBUG = false;
 }



More information about the teiid-commits mailing list