[teiid-commits] teiid SVN: r4290 - in trunk/engine/src: test/java/org/teiid/query/processor and 1 other directory.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Thu Aug 2 15:09:32 EDT 2012


Author: shawkins
Date: 2012-08-02 15:09:31 -0400 (Thu, 02 Aug 2012)
New Revision: 4290

Modified:
   trunk/engine/src/main/java/org/teiid/query/processor/relational/AccessNode.java
   trunk/engine/src/test/java/org/teiid/query/processor/TestProcedureRelational.java
Log:
minor tweak to txn detection

Modified: trunk/engine/src/main/java/org/teiid/query/processor/relational/AccessNode.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/processor/relational/AccessNode.java	2012-08-02 18:04:30 UTC (rev 4289)
+++ trunk/engine/src/main/java/org/teiid/query/processor/relational/AccessNode.java	2012-08-02 19:09:31 UTC (rev 4290)
@@ -52,6 +52,7 @@
 import org.teiid.query.sql.lang.OrderByItem;
 import org.teiid.query.sql.lang.Query;
 import org.teiid.query.sql.lang.Select;
+import org.teiid.query.sql.lang.StoredProcedure;
 import org.teiid.query.sql.lang.SubqueryContainer;
 import org.teiid.query.sql.symbol.Constant;
 import org.teiid.query.sql.symbol.Expression;
@@ -474,7 +475,7 @@
 	@Override
 	public Boolean requiresTransaction(boolean transactionalReads) {
 		Boolean required = super.requiresTransaction(transactionalReads);
-		if (Boolean.TRUE.equals(required)) {
+		if (Boolean.TRUE.equals(required) || (command instanceof StoredProcedure && ((StoredProcedure)command).getUpdateCount() > 1)) {
 			return true;
 		}
 		return null;

Modified: trunk/engine/src/test/java/org/teiid/query/processor/TestProcedureRelational.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/query/processor/TestProcedureRelational.java	2012-08-02 18:04:30 UTC (rev 4289)
+++ trunk/engine/src/test/java/org/teiid/query/processor/TestProcedureRelational.java	2012-08-02 19:09:31 UTC (rev 4290)
@@ -116,7 +116,10 @@
         FakeDataManager dataManager = new FakeDataManager();
         TestProcessor.sampleData1(dataManager);   
         // Plan query
-        ProcessorPlan plan = TestProcessor.helpGetPlan(sql, RealMetadataFactory.example1Cached());       
+        ProcessorPlan plan = TestProcessor.helpGetPlan(sql, RealMetadataFactory.example1Cached());  
+        
+        assertFalse(plan.requiresTransaction(false));
+        assertTrue(plan.requiresTransaction(true)); //TODO: this should be false as there is only a single execution possible
         // Run query
         TestProcessor.helpProcess(plan, dataManager, expected); 
     }



More information about the teiid-commits mailing list