You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by km...@apache.org on 2005/03/25 18:57:47 UTC

svn commit: r159041 - in incubator/derby/code/trunk/java: drda/org/apache/derby/impl/drda/ testing/org/apache/derbyTesting/functionTests/master/ testing/org/apache/derbyTesting/functionTests/master/DerbyNet/ testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/ testing/org/apache/derbyTesting/functionTests/suites/ testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/

Author: kmarsden
Date: Fri Mar 25 09:57:43 2005
New Revision: 159041

URL: http://svn.apache.org/viewcvs?view=rev&rev=159041
Log:
Checkin for client setTransactionIsolation 
If no isolation level is in the section number sent from the client, 
use current isolation level.
					
Kathey Marsden

Added:
    incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/setTransactionIsolation.out   (with props)
    incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/setTransactionIsolation_sed.properties   (with props)
Modified:
    incubator/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAStatement.java
    incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/setTransactionIsolation.out
    incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/setTransactionIsolation.out
    incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/DerbyNetClient.exclude
    incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/copyfiles.ant
    incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/setTransactionIsolation.java

Modified: incubator/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAStatement.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAStatement.java?view=diff&r1=159040&r2=159041
==============================================================================
--- incubator/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAStatement.java (original)
+++ incubator/derby/code/trunk/java/drda/org/apache/derby/impl/drda/DRDAStatement.java Fri Mar 25 09:57:43 2005
@@ -484,7 +484,8 @@
 		// save current prepare iso level
 		int saveIsolationLevel = -1;
 		boolean isolationSet = false;
-		if (pkgnamcsn !=null)
+		if (pkgnamcsn !=null && 
+			isolationLevel != Connection.TRANSACTION_NONE)
 		{
 			saveIsolationLevel = database.getPrepareIsolation();
 			database.setPrepareIsolation(isolationLevel);

Modified: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/setTransactionIsolation.out
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/setTransactionIsolation.out?view=diff&r1=159040&r2=159041
==============================================================================
--- incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/setTransactionIsolation.out (original)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/setTransactionIsolation.out Fri Mar 25 09:57:43 2005
@@ -11,7 +11,7 @@
 1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
 -----
 Statement Name: 
-	SQL_CURSH100C1
+	null
 Statement Text: 
 	select * from t1
 Parse Time: 0
@@ -52,7 +52,7 @@
 1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
 -----
 Statement Name: 
-	SQL_CURSH300C1
+	null
 Statement Text: 
 	select * from t1
 Parse Time: 0
@@ -93,7 +93,7 @@
 1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
 -----
 Statement Name: 
-	SQL_CURSH200C2
+	null
 Statement Text: 
 	select * from t1
 Parse Time: 0
@@ -134,7 +134,7 @@
 1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
 -----
 Statement Name: 
-	SQL_CURSH400C1
+	null
 Statement Text: 
 	select * from t1
 Parse Time: 0
@@ -201,7 +201,7 @@
 1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
 -----
 Statement Name: 
-	SQL_CURSH100C1
+	null
 Statement Text: 
 	select * from t1
 Parse Time: 0
@@ -242,7 +242,7 @@
 1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
 -----
 Statement Name: 
-	SQL_CURSH300C1
+	null
 Statement Text: 
 	select * from t1
 Parse Time: 0
@@ -283,7 +283,7 @@
 1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
 -----
 Statement Name: 
-	SQL_CURSH200C2
+	null
 Statement Text: 
 	select * from t1
 Parse Time: 0
@@ -354,7 +354,7 @@
 1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
 -----
 Statement Name: 
-	SQL_CURSH200C2
+	null
 Statement Text: 
 	select * from t1
 Parse Time: 0
@@ -394,7 +394,7 @@
 1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
 -----
 Statement Name: 
-	SQL_CURSH200C2
+	null
 Statement Text: 
 	select * from t1
 Parse Time: 0
@@ -434,7 +434,7 @@
 1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
 -----
 Statement Name: 
-	SQL_CURSH200C2
+	null
 Statement Text: 
 	select * from t1
 Parse Time: 0
@@ -474,7 +474,7 @@
 1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
 -----
 Statement Name: 
-	SQL_CURSH200C2
+	null
 Statement Text: 
 	select * from t1
 Parse Time: 0
@@ -564,3 +564,4 @@
 con.getTransactionIsolation() =TRANSACTION_SERIALIZABLE:8
 insert into t1copy (select * from t1)
 A lock could not be obtained within the time requested
+FAIL: setTransactionIsolation() did not throw exception with open hold cursor

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/setTransactionIsolation.out
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/setTransactionIsolation.out?view=auto&rev=159041
==============================================================================
--- incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/setTransactionIsolation.out (added)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/setTransactionIsolation.out Fri Mar 25 09:57:43 2005
@@ -0,0 +1,675 @@
+Creating table...
+done creating table and inserting data.
+*** testIsolation. makeNewStatements =true
+*** Test with no lock timeouts ***
+***testLevelsAndPrintStatistics sql:select * from t1 makenewStatements:true
+con.prepareStatement(select * from t1)
+con.setTransactionIsolation(TRANSACTION_READ_UNCOMMITTED:1)
+con.getTransactionIsolation() =TRANSACTION_READ_UNCOMMITTED:1
+con.prepareStatement(select * from t1)
+select * from t1
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+Statement Name: 
+	null
+Statement Text: 
+	select * from t1
+Parse Time: 0
+Bind Time: 0
+Optimize Time: 0
+Generate Time: 0
+Compile Time: 0
+Execute Time: 0
+Begin Compilation Timestamp : null
+End Compilation Timestamp : null
+Begin Execution Timestamp : null
+End Execution Timestamp : null
+Statement Execution Plan Text: 
+Table Scan ResultSet for T1 at read uncommitted isolation level using share row locking chosen by the optimizer
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+Fetch Size = 16
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+scan information: 
+	Bit set of columns fetched=All
+	Number of columns fetched=2
+	Number of pages visited=0
+	Number of rows qualified=0
+	Number of rows visited=0
+	Scan type=heap
+	start position: 
+null	stop position: 
+null	qualifiers:
+None
+con.setTransactionIsolation(TRANSACTION_REAPEATABLE_READ:4)
+con.getTransactionIsolation() =TRANSACTION_REAPEATABLE_READ:4
+con.prepareStatement(select * from t1)
+select * from t1
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+Statement Name: 
+	null
+Statement Text: 
+	select * from t1
+Parse Time: 0
+Bind Time: 0
+Optimize Time: 0
+Generate Time: 0
+Compile Time: 0
+Execute Time: 0
+Begin Compilation Timestamp : null
+End Compilation Timestamp : null
+Begin Execution Timestamp : null
+End Execution Timestamp : null
+Statement Execution Plan Text: 
+Table Scan ResultSet for T1 at repeatable read isolation level using share row locking chosen by the optimizer
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+Fetch Size = 16
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+scan information: 
+	Bit set of columns fetched=All
+	Number of columns fetched=2
+	Number of pages visited=0
+	Number of rows qualified=0
+	Number of rows visited=0
+	Scan type=heap
+	start position: 
+null	stop position: 
+null	qualifiers:
+None
+con.setTransactionIsolation(TRANSACTION_READ_COMMITTED:2)
+con.getTransactionIsolation() =TRANSACTION_READ_COMMITTED:2
+con.prepareStatement(select * from t1)
+select * from t1
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+Statement Name: 
+	null
+Statement Text: 
+	select * from t1
+Parse Time: 0
+Bind Time: 0
+Optimize Time: 0
+Generate Time: 0
+Compile Time: 0
+Execute Time: 0
+Begin Compilation Timestamp : null
+End Compilation Timestamp : null
+Begin Execution Timestamp : null
+End Execution Timestamp : null
+Statement Execution Plan Text: 
+Table Scan ResultSet for T1 at read committed isolation level using instantaneous share row locking chosen by the optimizer
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+Fetch Size = 16
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+scan information: 
+	Bit set of columns fetched=All
+	Number of columns fetched=2
+	Number of pages visited=0
+	Number of rows qualified=0
+	Number of rows visited=0
+	Scan type=heap
+	start position: 
+null	stop position: 
+null	qualifiers:
+None
+con.setTransactionIsolation(TRANSACTION_SERIALIZABLE:8)
+con.getTransactionIsolation() =TRANSACTION_SERIALIZABLE:8
+con.prepareStatement(select * from t1)
+select * from t1
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+Statement Name: 
+	null
+Statement Text: 
+	select * from t1
+Parse Time: 0
+Bind Time: 0
+Optimize Time: 0
+Generate Time: 0
+Compile Time: 0
+Execute Time: 0
+Begin Compilation Timestamp : null
+End Compilation Timestamp : null
+Begin Execution Timestamp : null
+End Execution Timestamp : null
+Statement Execution Plan Text: 
+Table Scan ResultSet for T1 at serializable isolation level using share table locking chosen by the optimizer
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+Fetch Size = 16
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+scan information: 
+	Bit set of columns fetched=All
+	Number of columns fetched=2
+	Number of pages visited=0
+	Number of rows qualified=0
+	Number of rows visited=0
+	Scan type=heap
+	start position: 
+null	stop position: 
+null	qualifiers:
+None
+***testLevelsAndPrintStatistics sql:insert into t1copy (select * from t1) makenewStatements:true
+con.prepareStatement(insert into t1copy (select * from t1))
+con.setTransactionIsolation(TRANSACTION_READ_UNCOMMITTED:1)
+con.getTransactionIsolation() =TRANSACTION_READ_UNCOMMITTED:1
+con.prepareStatement(insert into t1copy (select * from t1))
+insert into t1copy (select * from t1)
+null
+con.setTransactionIsolation(TRANSACTION_REAPEATABLE_READ:4)
+con.getTransactionIsolation() =TRANSACTION_REAPEATABLE_READ:4
+con.prepareStatement(insert into t1copy (select * from t1))
+insert into t1copy (select * from t1)
+null
+con.setTransactionIsolation(TRANSACTION_READ_COMMITTED:2)
+con.getTransactionIsolation() =TRANSACTION_READ_COMMITTED:2
+con.prepareStatement(insert into t1copy (select * from t1))
+insert into t1copy (select * from t1)
+null
+con.setTransactionIsolation(TRANSACTION_SERIALIZABLE:8)
+con.getTransactionIsolation() =TRANSACTION_SERIALIZABLE:8
+con.prepareStatement(insert into t1copy (select * from t1))
+insert into t1copy (select * from t1)
+null
+*** Test with lock timeouts on everything but read uncommitted***
+conn :insert into t1 values(4,'Forth Hello') (no commit)
+***testLevelsAndPrintStatistics sql:select * from t1 makenewStatements:true
+con.prepareStatement(select * from t1)
+con.setTransactionIsolation(TRANSACTION_READ_UNCOMMITTED:1)
+con.getTransactionIsolation() =TRANSACTION_READ_UNCOMMITTED:1
+con.prepareStatement(select * from t1)
+select * from t1
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+Statement Name: 
+	null
+Statement Text: 
+	select * from t1
+Parse Time: 0
+Bind Time: 0
+Optimize Time: 0
+Generate Time: 0
+Compile Time: 0
+Execute Time: 0
+Begin Compilation Timestamp : null
+End Compilation Timestamp : null
+Begin Execution Timestamp : null
+End Execution Timestamp : null
+Statement Execution Plan Text: 
+Table Scan ResultSet for T1 at read uncommitted isolation level using share row locking chosen by the optimizer
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+Fetch Size = 16
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+scan information: 
+	Bit set of columns fetched=All
+	Number of columns fetched=2
+	Number of pages visited=0
+	Number of rows qualified=0
+	Number of rows visited=0
+	Scan type=heap
+	start position: 
+null	stop position: 
+null	qualifiers:
+None
+con.setTransactionIsolation(TRANSACTION_REAPEATABLE_READ:4)
+con.getTransactionIsolation() =TRANSACTION_REAPEATABLE_READ:4
+con.prepareStatement(select * from t1)
+select * from t1
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+Statement Name: 
+	null
+Statement Text: 
+	select * from t1
+Parse Time: 0
+Bind Time: 0
+Optimize Time: 0
+Generate Time: 0
+Compile Time: 0
+Execute Time: 0
+Begin Compilation Timestamp : null
+End Compilation Timestamp : null
+Begin Execution Timestamp : null
+End Execution Timestamp : null
+Statement Execution Plan Text: 
+Table Scan ResultSet for T1 at repeatable read isolation level using share row locking chosen by the optimizer
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+Fetch Size = 16
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+scan information: 
+	Bit set of columns fetched=All
+	Number of columns fetched=2
+	Number of pages visited=0
+	Number of rows qualified=0
+	Number of rows visited=0
+	Scan type=heap
+	start position: 
+null	stop position: 
+null	qualifiers:
+None
+con.setTransactionIsolation(TRANSACTION_READ_COMMITTED:2)
+con.getTransactionIsolation() =TRANSACTION_READ_COMMITTED:2
+con.prepareStatement(select * from t1)
+select * from t1
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+Statement Name: 
+	null
+Statement Text: 
+	select * from t1
+Parse Time: 0
+Bind Time: 0
+Optimize Time: 0
+Generate Time: 0
+Compile Time: 0
+Execute Time: 0
+Begin Compilation Timestamp : null
+End Compilation Timestamp : null
+Begin Execution Timestamp : null
+End Execution Timestamp : null
+Statement Execution Plan Text: 
+Table Scan ResultSet for T1 at read committed isolation level using instantaneous share row locking chosen by the optimizer
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+Fetch Size = 16
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+scan information: 
+	Bit set of columns fetched=All
+	Number of columns fetched=2
+	Number of pages visited=0
+	Number of rows qualified=0
+	Number of rows visited=0
+	Scan type=heap
+	start position: 
+null	stop position: 
+null	qualifiers:
+None
+con.setTransactionIsolation(TRANSACTION_SERIALIZABLE:8)
+con.getTransactionIsolation() =TRANSACTION_SERIALIZABLE:8
+con.prepareStatement(select * from t1)
+select * from t1
+A lock could not be obtained within the time requested
+***testLevelsAndPrintStatistics sql:insert into t1copy (select * from t1) makenewStatements:true
+con.prepareStatement(insert into t1copy (select * from t1))
+con.setTransactionIsolation(TRANSACTION_READ_UNCOMMITTED:1)
+con.getTransactionIsolation() =TRANSACTION_READ_UNCOMMITTED:1
+con.prepareStatement(insert into t1copy (select * from t1))
+insert into t1copy (select * from t1)
+null
+con.setTransactionIsolation(TRANSACTION_REAPEATABLE_READ:4)
+con.getTransactionIsolation() =TRANSACTION_REAPEATABLE_READ:4
+con.prepareStatement(insert into t1copy (select * from t1))
+insert into t1copy (select * from t1)
+A lock could not be obtained within the time requested
+con.setTransactionIsolation(TRANSACTION_READ_COMMITTED:2)
+con.getTransactionIsolation() =TRANSACTION_READ_COMMITTED:2
+con.prepareStatement(insert into t1copy (select * from t1))
+insert into t1copy (select * from t1)
+A lock could not be obtained within the time requested
+con.setTransactionIsolation(TRANSACTION_SERIALIZABLE:8)
+con.getTransactionIsolation() =TRANSACTION_SERIALIZABLE:8
+con.prepareStatement(insert into t1copy (select * from t1))
+insert into t1copy (select * from t1)
+A lock could not be obtained within the time requested
+*** testIsolation. makeNewStatements =false
+*** Test with no lock timeouts ***
+***testLevelsAndPrintStatistics sql:select * from t1 makenewStatements:false
+con.prepareStatement(select * from t1)
+con.setTransactionIsolation(TRANSACTION_READ_UNCOMMITTED:1)
+con.getTransactionIsolation() =TRANSACTION_READ_UNCOMMITTED:1
+select * from t1
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+Statement Name: 
+	null
+Statement Text: 
+	select * from t1
+Parse Time: 0
+Bind Time: 0
+Optimize Time: 0
+Generate Time: 0
+Compile Time: 0
+Execute Time: 0
+Begin Compilation Timestamp : null
+End Compilation Timestamp : null
+Begin Execution Timestamp : null
+End Execution Timestamp : null
+Statement Execution Plan Text: 
+Table Scan ResultSet for T1 at read uncommitted isolation level using share row locking chosen by the optimizer
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+Fetch Size = 16
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+scan information: 
+	Bit set of columns fetched=All
+	Number of columns fetched=2
+	Number of pages visited=0
+	Number of rows qualified=0
+	Number of rows visited=0
+	Scan type=heap
+	start position: 
+null	stop position: 
+null	qualifiers:
+None
+con.setTransactionIsolation(TRANSACTION_REAPEATABLE_READ:4)
+con.getTransactionIsolation() =TRANSACTION_REAPEATABLE_READ:4
+select * from t1
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+Statement Name: 
+	null
+Statement Text: 
+	select * from t1
+Parse Time: 0
+Bind Time: 0
+Optimize Time: 0
+Generate Time: 0
+Compile Time: 0
+Execute Time: 0
+Begin Compilation Timestamp : null
+End Compilation Timestamp : null
+Begin Execution Timestamp : null
+End Execution Timestamp : null
+Statement Execution Plan Text: 
+Table Scan ResultSet for T1 at repeatable read isolation level using share row locking chosen by the optimizer
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+Fetch Size = 16
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+scan information: 
+	Bit set of columns fetched=All
+	Number of columns fetched=2
+	Number of pages visited=0
+	Number of rows qualified=0
+	Number of rows visited=0
+	Scan type=heap
+	start position: 
+null	stop position: 
+null	qualifiers:
+None
+con.setTransactionIsolation(TRANSACTION_READ_COMMITTED:2)
+con.getTransactionIsolation() =TRANSACTION_READ_COMMITTED:2
+select * from t1
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+Statement Name: 
+	null
+Statement Text: 
+	select * from t1
+Parse Time: 0
+Bind Time: 0
+Optimize Time: 0
+Generate Time: 0
+Compile Time: 0
+Execute Time: 0
+Begin Compilation Timestamp : null
+End Compilation Timestamp : null
+Begin Execution Timestamp : null
+End Execution Timestamp : null
+Statement Execution Plan Text: 
+Table Scan ResultSet for T1 at read committed isolation level using instantaneous share row locking chosen by the optimizer
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+Fetch Size = 16
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+scan information: 
+	Bit set of columns fetched=All
+	Number of columns fetched=2
+	Number of pages visited=0
+	Number of rows qualified=0
+	Number of rows visited=0
+	Scan type=heap
+	start position: 
+null	stop position: 
+null	qualifiers:
+None
+con.setTransactionIsolation(TRANSACTION_SERIALIZABLE:8)
+con.getTransactionIsolation() =TRANSACTION_SERIALIZABLE:8
+select * from t1
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+Statement Name: 
+	null
+Statement Text: 
+	select * from t1
+Parse Time: 0
+Bind Time: 0
+Optimize Time: 0
+Generate Time: 0
+Compile Time: 0
+Execute Time: 0
+Begin Compilation Timestamp : null
+End Compilation Timestamp : null
+Begin Execution Timestamp : null
+End Execution Timestamp : null
+Statement Execution Plan Text: 
+Table Scan ResultSet for T1 at serializable isolation level using share table locking chosen by the optimizer
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+Fetch Size = 16
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+scan information: 
+	Bit set of columns fetched=All
+	Number of columns fetched=2
+	Number of pages visited=0
+	Number of rows qualified=0
+	Number of rows visited=0
+	Scan type=heap
+	start position: 
+null	stop position: 
+null	qualifiers:
+None
+***testLevelsAndPrintStatistics sql:insert into t1copy (select * from t1) makenewStatements:false
+con.prepareStatement(insert into t1copy (select * from t1))
+con.setTransactionIsolation(TRANSACTION_READ_UNCOMMITTED:1)
+con.getTransactionIsolation() =TRANSACTION_READ_UNCOMMITTED:1
+insert into t1copy (select * from t1)
+null
+con.setTransactionIsolation(TRANSACTION_REAPEATABLE_READ:4)
+con.getTransactionIsolation() =TRANSACTION_REAPEATABLE_READ:4
+insert into t1copy (select * from t1)
+null
+con.setTransactionIsolation(TRANSACTION_READ_COMMITTED:2)
+con.getTransactionIsolation() =TRANSACTION_READ_COMMITTED:2
+insert into t1copy (select * from t1)
+null
+con.setTransactionIsolation(TRANSACTION_SERIALIZABLE:8)
+con.getTransactionIsolation() =TRANSACTION_SERIALIZABLE:8
+insert into t1copy (select * from t1)
+null
+*** Test with lock timeouts on everything but read uncommitted***
+conn :insert into t1 values(4,'Forth Hello') (no commit)
+***testLevelsAndPrintStatistics sql:select * from t1 makenewStatements:false
+con.prepareStatement(select * from t1)
+con.setTransactionIsolation(TRANSACTION_READ_UNCOMMITTED:1)
+con.getTransactionIsolation() =TRANSACTION_READ_UNCOMMITTED:1
+select * from t1
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+Statement Name: 
+	null
+Statement Text: 
+	select * from t1
+Parse Time: 0
+Bind Time: 0
+Optimize Time: 0
+Generate Time: 0
+Compile Time: 0
+Execute Time: 0
+Begin Compilation Timestamp : null
+End Compilation Timestamp : null
+Begin Execution Timestamp : null
+End Execution Timestamp : null
+Statement Execution Plan Text: 
+Table Scan ResultSet for T1 at read uncommitted isolation level using share row locking chosen by the optimizer
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+Fetch Size = 16
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+scan information: 
+	Bit set of columns fetched=All
+	Number of columns fetched=2
+	Number of pages visited=0
+	Number of rows qualified=0
+	Number of rows visited=0
+	Scan type=heap
+	start position: 
+null	stop position: 
+null	qualifiers:
+None
+con.setTransactionIsolation(TRANSACTION_REAPEATABLE_READ:4)
+con.getTransactionIsolation() =TRANSACTION_REAPEATABLE_READ:4
+select * from t1
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+Statement Name: 
+	null
+Statement Text: 
+	select * from t1
+Parse Time: 0
+Bind Time: 0
+Optimize Time: 0
+Generate Time: 0
+Compile Time: 0
+Execute Time: 0
+Begin Compilation Timestamp : null
+End Compilation Timestamp : null
+Begin Execution Timestamp : null
+End Execution Timestamp : null
+Statement Execution Plan Text: 
+Table Scan ResultSet for T1 at repeatable read isolation level using share row locking chosen by the optimizer
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+Fetch Size = 16
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+scan information: 
+	Bit set of columns fetched=All
+	Number of columns fetched=2
+	Number of pages visited=0
+	Number of rows qualified=0
+	Number of rows visited=0
+	Scan type=heap
+	start position: 
+null	stop position: 
+null	qualifiers:
+None
+con.setTransactionIsolation(TRANSACTION_READ_COMMITTED:2)
+con.getTransactionIsolation() =TRANSACTION_READ_COMMITTED:2
+select * from t1
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+Statement Name: 
+	null
+Statement Text: 
+	select * from t1
+Parse Time: 0
+Bind Time: 0
+Optimize Time: 0
+Generate Time: 0
+Compile Time: 0
+Execute Time: 0
+Begin Compilation Timestamp : null
+End Compilation Timestamp : null
+Begin Execution Timestamp : null
+End Execution Timestamp : null
+Statement Execution Plan Text: 
+Table Scan ResultSet for T1 at read committed isolation level using instantaneous share row locking chosen by the optimizer
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+Fetch Size = 16
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+scan information: 
+	Bit set of columns fetched=All
+	Number of columns fetched=2
+	Number of pages visited=0
+	Number of rows qualified=0
+	Number of rows visited=0
+	Scan type=heap
+	start position: 
+null	stop position: 
+null	qualifiers:
+None
+con.setTransactionIsolation(TRANSACTION_SERIALIZABLE:8)
+con.getTransactionIsolation() =TRANSACTION_SERIALIZABLE:8
+select * from t1
+A lock could not be obtained within the time requested
+***testLevelsAndPrintStatistics sql:insert into t1copy (select * from t1) makenewStatements:false
+con.prepareStatement(insert into t1copy (select * from t1))
+con.setTransactionIsolation(TRANSACTION_READ_UNCOMMITTED:1)
+con.getTransactionIsolation() =TRANSACTION_READ_UNCOMMITTED:1
+insert into t1copy (select * from t1)
+null
+con.setTransactionIsolation(TRANSACTION_REAPEATABLE_READ:4)
+con.getTransactionIsolation() =TRANSACTION_REAPEATABLE_READ:4
+insert into t1copy (select * from t1)
+A lock could not be obtained within the time requested
+con.setTransactionIsolation(TRANSACTION_READ_COMMITTED:2)
+con.getTransactionIsolation() =TRANSACTION_READ_COMMITTED:2
+insert into t1copy (select * from t1)
+A lock could not be obtained within the time requested
+con.setTransactionIsolation(TRANSACTION_SERIALIZABLE:8)
+con.getTransactionIsolation() =TRANSACTION_SERIALIZABLE:8
+insert into t1copy (select * from t1)
+A lock could not be obtained within the time requested
+EXPECTED EXCEPTION SQLSTATE:X0X03 Invalid transaction state - held cursor requires same isolation level

Propchange: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/setTransactionIsolation.out
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/setTransactionIsolation.out
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/setTransactionIsolation.out?view=diff&r1=159040&r2=159041
==============================================================================
--- incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/setTransactionIsolation.out (original)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/setTransactionIsolation.out Fri Mar 25 09:57:43 2005
@@ -672,3 +672,4 @@
 con.getTransactionIsolation() =TRANSACTION_SERIALIZABLE:8
 insert into t1copy (select * from t1)
 A lock could not be obtained within the time requested
+EXPECTED EXCEPTION SQLSTATE:X0X03 Invalid transaction state - held cursor requires same isolation level

Modified: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/DerbyNetClient.exclude
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/DerbyNetClient.exclude?view=diff&r1=159040&r2=159041
==============================================================================
--- incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/DerbyNetClient.exclude (original)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/DerbyNetClient.exclude Fri Mar 25 09:57:43 2005
@@ -6,4 +6,4 @@
 lang/scrollCursors2.java
 jdbcapi/batchUpdate.java
 jdbcapi/statementJdbc20.java
-jdbcapi/setTransactionIsolation.java
+#jdbcapi/setTransactionIsolation.java

Modified: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/copyfiles.ant
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/copyfiles.ant?view=diff&r1=159040&r2=159041
==============================================================================
--- incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/copyfiles.ant (original)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/copyfiles.ant Fri Mar 25 09:57:43 2005
@@ -39,6 +39,7 @@
 secureUsersldap_sed.properties
 searchclob.txt
 setTransactionIsolation_derby.properties
+setTransactionIsolation_sed.properties
 short.txt
 parameterMetaDataJdbc30_app.properties
 users.sql

Modified: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/setTransactionIsolation.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/setTransactionIsolation.java?view=diff&r1=159040&r2=159041
==============================================================================
--- incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/setTransactionIsolation.java (original)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/setTransactionIsolation.java Fri Mar 25 09:57:43 2005
@@ -52,7 +52,6 @@
 		Connection conn = ij.startJBMS();
 		
 		createAndPopulateTable(conn);
-
 		runTests(conn);
 		conn.rollback();
 		conn.close();
@@ -107,6 +106,7 @@
 		   // on already prepared statements for network server
 		   conn.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
 		   testIsolation(conn, false);
+		   testSetTransactionIsolationInHoldCursor(conn);
 
 		} catch (SQLException sqle) {
 			System.out.print("FAIL:");
@@ -168,7 +168,29 @@
 
 	}
 	
-
+	/**
+	 *   Call setTransactionIsolation with holdable cursor open?
+	 */
+	public static void testSetTransactionIsolationInHoldCursor(Connection conn) 
+	{
+		try {
+			
+			PreparedStatement ps = conn.prepareStatement("SELECT * from TAB1");
+			ResultSet rs = ps.executeQuery();
+			rs.next();
+			// setTransactionIsolation should fail because we have 
+			// a holdable cursor open
+			conn.setTransactionIsolation(java.sql.Connection.TRANSACTION_SERIALIZABLE);
+		} catch (SQLException se)
+		{
+			System.out.println("EXPECTED EXCEPTION SQLSTATE:" + 
+							   se.getSQLState() + " " +
+							   se.getMessage());
+			return;
+		}
+		System.out.println("FAIL: setTransactionIsolation() did not throw exception with open hold cursor");
+	}
+	
 	public static void testLevelsAndPrintStatistics(Connection con, String sql,
 													boolean makeNewStatements)
 		throws SQLException

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/setTransactionIsolation_sed.properties
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/setTransactionIsolation_sed.properties?view=auto&rev=159041
==============================================================================
--- incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/setTransactionIsolation_sed.properties (added)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/setTransactionIsolation_sed.properties Fri Mar 25 09:57:43 2005
@@ -0,0 +1,9 @@
+# Filters and substitutes for SED
+# Multiple patterns for DELETE: comma separated
+#   delete=pattern1,pattern2,...,patternn
+# No commas can be allowed in the patterns.
+#
+# Multiple patterns for SUBSTITUTE: comma separated <pattern;substitute> pair
+#   substitute=pattern1;substitute1,pattern2;substitute2,...,patternn;substituten
+# No commas or semicolons can be allowed in the patterns/subsitutes.
+substitute=SQL_CUR.*;null

Propchange: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/setTransactionIsolation_sed.properties
------------------------------------------------------------------------------
    svn:eol-style = native