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$
Show replies by date