[teiid-commits] teiid SVN: r3336 - in branches/7.4.x/engine/src: test/java/org/teiid/dqp/internal/process and 1 other directory.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Tue Jul 26 16:20:59 EDT 2011


Author: shawkins
Date: 2011-07-26 16:20:59 -0400 (Tue, 26 Jul 2011)
New Revision: 3336

Modified:
   branches/7.4.x/engine/src/main/java/org/teiid/query/processor/BatchCollector.java
   branches/7.4.x/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java
Log:
TEIID-1686 fix for assertion error

Modified: branches/7.4.x/engine/src/main/java/org/teiid/query/processor/BatchCollector.java
===================================================================
--- branches/7.4.x/engine/src/main/java/org/teiid/query/processor/BatchCollector.java	2011-07-26 20:13:42 UTC (rev 3335)
+++ branches/7.4.x/engine/src/main/java/org/teiid/query/processor/BatchCollector.java	2011-07-26 20:20:59 UTC (rev 3336)
@@ -150,7 +150,9 @@
             // Check for termination condition
             if(batch.getTerminationFlag()) {
             	done = true;
-            	buffer.close();
+            	if (!this.sourceNode.hasFinalBuffer()) {
+            		buffer.close();
+            	}
                 break;
             }
         }

Modified: branches/7.4.x/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java
===================================================================
--- branches/7.4.x/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java	2011-07-26 20:13:42 UTC (rev 3335)
+++ branches/7.4.x/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java	2011-07-26 20:20:59 UTC (rev 3336)
@@ -363,6 +363,27 @@
     	assertEquals(1, agds.getExecuteCount().get());
     }
     
+    @Test public void testUsingFinalBuffer() throws Exception {
+    	String sql = "select intkey from bqt1.smalla union select 1";
+    	((BufferManagerImpl)core.getBufferManager()).setProcessorBatchSize(2);
+    	agds.sleep = 500;
+        RequestMessage reqMsg = exampleRequestMessage(sql);
+        Future<ResultsMessage> message = core.executeRequest(reqMsg.getExecutionId(), reqMsg);
+        ResultsMessage rm = message.get(500000, TimeUnit.MILLISECONDS);
+        assertNull(rm.getException());
+        assertEquals(1, rm.getResults().length);
+
+        message = core.processCursorRequest(reqMsg.getExecutionId(), 3, 2);
+        rm = message.get(500000, TimeUnit.MILLISECONDS);
+        assertNull(rm.getException());
+        assertEquals(1, rm.getResults().length);
+        
+        message = core.processCursorRequest(reqMsg.getExecutionId(), 3, 2);
+        rm = message.get(500000, TimeUnit.MILLISECONDS);
+        assertNull(rm.getException());
+        assertEquals(0, rm.getResults().length);
+    }
+    
     @Test public void testPreparedPlanInvalidation() throws Exception {
         String sql = "insert into #temp select * FROM vqt.SmallB"; //$NON-NLS-1$
         String userName = "1"; //$NON-NLS-1$



More information about the teiid-commits mailing list