You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2013/06/05 22:07:51 UTC

svn commit: r1490021 - /cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextProcedureQueryTest.java

Author: aadamchik
Date: Wed Jun  5 20:07:51 2013
New Revision: 1490021

URL: http://svn.apache.org/r1490021
Log:
comments on PG functions behavior

Modified:
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextProcedureQueryTest.java

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextProcedureQueryTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextProcedureQueryTest.java?rev=1490021&r1=1490020&r2=1490021&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextProcedureQueryTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextProcedureQueryTest.java Wed Jun  5 20:07:51 2013
@@ -88,8 +88,7 @@ public class DataContextProcedureQueryTe
 
         try {
             context.performGenericQuery(q);
-        }
-        finally {
+        } finally {
             Transaction.bindThreadTransaction(null);
             t.commit();
         }
@@ -124,8 +123,7 @@ public class DataContextProcedureQueryTe
 
         try {
             context.performGenericQuery(q);
-        }
-        finally {
+        } finally {
             Transaction.bindThreadTransaction(null);
             t.commit();
         }
@@ -202,9 +200,7 @@ public class DataContextProcedureQueryTe
         createArtist(1000.0);
 
         // test ProcedureQuery with Procedure as root
-        Procedure proc = context
-                .getEntityResolver()
-                .getProcedure(SELECT_STORED_PROCEDURE);
+        Procedure proc = context.getEntityResolver().getProcedure(SELECT_STORED_PROCEDURE);
         ProcedureQuery q = new ProcedureQuery(proc);
         q.addParameter("aName", "An Artist");
         q.addParameter("paintingPrice", new Integer(3000));
@@ -301,9 +297,7 @@ public class DataContextProcedureQueryTe
         assertEquals(1, rows.size());
         Object row = rows.get(0);
         assertNotNull(row);
-        assertTrue(
-                "Unexpected row class: " + row.getClass().getName(),
-                row instanceof Map<?, ?>);
+        assertTrue("Unexpected row class: " + row.getClass().getName(), row instanceof Map<?, ?>);
         Map<?, ?> outParams = (Map<?, ?>) row;
         Number price = (Number) outParams.get("out_param");
         assertNotNull("Null result... row content: " + row, price);
@@ -348,9 +342,7 @@ public class DataContextProcedureQueryTe
         createArtist(1000.0);
 
         // test ProcedureQuery with Procedure as root
-        Procedure proc = context
-                .getEntityResolver()
-                .getProcedure(SELECT_STORED_PROCEDURE);
+        Procedure proc = context.getEntityResolver().getProcedure(SELECT_STORED_PROCEDURE);
         ProcedureQuery q = new ProcedureQuery(proc);
         q.setFetchingDataRows(true);
         q.addParameter("aName", "An Artist");
@@ -383,18 +375,21 @@ public class DataContextProcedureQueryTe
     }
 
     protected List<DataRow> runProcedureSelect(ProcedureQuery q) throws Exception {
-        // Sybase blows whenever a transaction wraps a SP, so turn off transactions
+        // Sybase blows whenever a transaction wraps a SP, so turn off
+        // transactions
 
-        boolean transactionsFlag = context
-                .getParentDataDomain()
-                .isUsingExternalTransactions();
+        // TODO: it is quite the opposite with PostgreSQL. If an SP returns an
+        // open refcursor, it actually expects a TX in progress, so while we
+        // don't have refcursor unit tests, this is something to keep in mind
+        // e.g. http://stackoverflow.com/questions/16921942/porting-apache-cayenne-from-oracle-to-postgresql
+
+        boolean transactionsFlag = context.getParentDataDomain().isUsingExternalTransactions();
 
         context.getParentDataDomain().setUsingExternalTransactions(true);
 
         try {
             return context.performQuery(q);
-        }
-        finally {
+        } finally {
             context.getParentDataDomain().setUsingExternalTransactions(transactionsFlag);
         }
     }