db-derby-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kmars...@apache.org
Subject svn commit: r125449 - incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient
Date Tue, 18 Jan 2005 00:45:08 GMT
Author: kmarsden
Date: Mon Jan 17 16:45:05 2005
New Revision: 125449

URL: http://svn.apache.org/viewcvs?view=rev&rev=125449
Log:

New Masters for DerbyNetClient framework


Added:
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/NSinSameJVM.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/StmtCloseFunTest.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/autoGeneratedJdbc30.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/big.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/blobclob4BLOB.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/callable.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/characterStreams.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/csPrepStmt.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/dataSourcePermissions_net.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/dbMetaDataJdbc30.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/dblook_test_net.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/forupdate.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/getCurConnJdbc20.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/holdCursorExternalSortJDBC30.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/holdCursorIJ.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/holdCursorJDBC30.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/maxfieldsize.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadata.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadataJdbc20.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/parameterMetaDataJdbc30.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/prepStmtMetaData.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/prepstmt.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/procedure.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/resultset.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/savepointJdbc30.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/scrollCursors1.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/secureUsers.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/secureUsers1.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/secureUsersldap.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/supersimple.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/svn-commit.tmp   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/sysinfo.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/testij.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/users.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/users2.out   (contents, props changed)
   incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/wisconsin.out   (contents, props changed)

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/NSinSameJVM.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/NSinSameJVM.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/NSinSameJVM.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,9 @@
+main-NSinSameJVM: Derby drivers loaded
+Server is ready to accept connections on port 20000.
+Connection number: 1.
+main-NSinSameJVM: NetworkServer started
+Connection number: 2.
+main-NSinSameJVM: Connected to database NSinSameJVMTestDB;create=true
+getting ready to shutdown
+Connection number: 3.
+Shutdown successful.

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/StmtCloseFunTest.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/StmtCloseFunTest.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/StmtCloseFunTest.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,21 @@
+Statement Close Fun Test starting 
+Statement test begin
+beetle 5524
+Statement Test failed (12)
+beetle 5524
+Statement Test failed (13)
+Statement test end
+Prepared Statement test begin
+beetle 5524
+Prepared Statement Test failed
+beetle 5524
+Prepared Statement Test failed
+Prepared Statement test end
+Callable Statement test begin
+The result is 3
+beetle 5524
+Callable Statement Test failed
+beetle 5524
+Callable Statement Test failed
+Callable Statement test end
+Statement Close Fun Test finished

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/autoGeneratedJdbc30.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/autoGeneratedJdbc30.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/autoGeneratedJdbc30.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,273 @@
+Test autoGeneratedJdbc30 starting
+Test 1 - request for generated keys resultset on a brand new statement with no sql executed on it yet
+We will get a resultset with no rows because it is a non-insert sql
+<NULL>
+Test2 - request for generated keys on a statement which does select from a table ie a non-insert sql
+We will get a resultset with no rows because it is a non-insert sql
+<NULL>
+Now try the same test again but this time with PreparedStatement.execute. It should behave the same
+<NULL>
+Test 3 - insert multiple rows into a table with autogenerated key and request generated keys resultset
+ We will get a row with NULL value because this insert sql inserted more than one row and 
+ there was no prior one-row insert into a table with autogenerated key
+	 1
+	 -
+	{null}
+Now try the same test again but this time with Statement.executeUpdate. It should behave the same
+	 1
+	 -
+	{null}
+Now try the same test again but this time with PreparedStatement.execute. It should behave the same
+	 1
+	 -
+	{null}
+Now try the same test again but this time with PreparedStatement.executeUpdate. It should behave the same
+	 1
+	 -
+	{null}
+Test 4 - request for generated keys after doing an insert into a table with no auto generated keys
+ And there has been no one-row insert into a table with auto-generated keys yet.
+We should get a resultset with one row of NULL value from getGeneratedKeys
+	 1
+	 -
+	{null}
+Now try the same test again but this time with Statement.executeUpdate. It should behave the same
+	 1
+	 -
+	{null}
+Now try the same test again but this time with PreparedStatement.execute. It should behave the same
+	 1
+	 -
+	{null}
+Now try the same test again but this time with PreparedStatement.executeUpdate. It should behave the same
+	 1
+	 -
+	{null}
+Test 5a - request for generated keys after doing a one-row insert(using a subquery) into a table with autogenerated key using a subquery with auto generated keys
+Even though this is a one-row insert but since insert has a sub-select, get generated keys will return one row of NULL value
+	 1
+	 -
+	{null}
+Now try the same test again but this time with Statement.executeUpdate. It should behave the same
+	 1
+	 -
+	{null}
+Now try the same test again but this time with PreparedStatement.execute. It should behave the same
+	 1
+	 -
+	{null}
+Now try the same test again but this time with PreparedStatement.executeUpdate. It should behave the same
+	 1
+	 -
+	{null}
+Test 5b - request for generated keys after doing a one-row insert(using a subquery) into a table with autogenerated key using a subquery with auto generated keys
+Even though this is a one-row insert but since insert has a sub-select, get generated keys will return one row of NULL value
+	 1
+	 -
+	{null}
+Now try the same test again but this time with Statement.executeUpdate. It should behave the same
+	 1
+	 -
+	{null}
+Now try the same test again but this time with PreparedStatement.execute. It should behave the same
+	 1
+	 -
+	{null}
+Now try the same test again but this time with PreparedStatement.executeUpdate. It should behave the same
+	 1
+	 -
+	{null}
+Test 5c - request for generated keys after doing a one-row insert(using a subquery) into a table with autogenerated key using a subquery with auto generated keys
+Even though this is a one-row insert but since insert has a sub-select, get generated keys will return one row of NULL value
+	 1
+	 -
+	{null}
+Now try the same test again but this time with Statement.executeUpdate. It should behave the same
+	 1
+	 -
+	{null}
+Now try the same test again but this time with PreparedStatement.execute. It should behave the same
+	 1
+	 -
+	{null}
+Now try the same test again but this time with PreparedStatement.executeUpdate. It should behave the same
+	 1
+	 -
+	{null}
+Test 6 - request for generated keys after doing a one-row insert into a table with auto generated keys
+We should get a resultset with one row of non-NULL value
+	 1
+	 -
+	{29}
+Now try the same test again but this time with Statement.executeUpdate. It should behave the same
+	 1
+	 -
+	{30}
+Now try the same test again but this time with PreparedStatement.execute. It should behave the same
+	 1
+	 -
+	{31}
+Now try the same test again but this time with PreparedStatement.executeUpdate. It should behave the same
+	 1
+	 -
+	{32}
+Test 7 - Now try again inserting multiple rows into a table with autogenerated key and request generated keys resultset
+ This time we will get a row of non-NULL value because there has been a prior one-row insert into table with auto-generated key 
+	 1
+	 -
+	{32}
+Now try the same test again but this time with Statement.executeUpdate. It should behave the same
+	 1
+	 -
+	{32}
+Now try the same test again but this time with PreparedStatement.execute. It should behave the same
+	 1
+	 -
+	{32}
+Now try the same test again but this time with PreparedStatement.executeUpdate. It should behave the same
+	 1
+	 -
+	{32}
+Test 8 - create a new statement and request for generated keys on it after doing an insert into 
+ a table with no auto generated keys
+We should get a resultset with one row of non-NULL value
+	 1
+	 -
+	{32}
+Now try the same test again but this time with Statement.executeUpdate. It should behave the same
+	 1
+	 -
+	{32}
+Now try the same test again but this time with PreparedStatement.execute. It should behave the same
+	 1
+	 -
+	{32}
+Now try the same test again but this time with PreparedStatement.executeUpdate. It should behave the same
+	 1
+	 -
+	{32}
+Test 9 - request for generated keys on a statement which does a update 
+We should get a resultset with no rows from getGeneratedKeys because we executed a non-insert sql
+<NULL>
+Now try the same test again but this time with Statement.executeUpdate. It should behave the same
+<NULL>
+Now try the same test again but this time with PreparedStatement.execute. It should behave the same
+<NULL>
+Now try the same test again but this time with PreparedStatement.executeUpdate. It should behave the same
+<NULL>
+Test 10 - request for generated keys on a statement which does a delete 
+We should get a resultset with no rows from getGeneratedKeys because we executed a non-insert sql
+<NULL>
+Now try the same test again but this time with Statement.executeUpdate. It should behave the same
+<NULL>
+Now try the same test again but this time with PreparedStatement.execute. It should behave the same
+<NULL>
+Now try the same test again but this time with PreparedStatement.executeUpdate. It should behave the same
+<NULL>
+Test 11 - do a commit and request for generated keys on a statement which does insert into a table with 
+ no auto generated keys (previous transaction had a one-row insert on a table with auto-generated keys)
+expected to see resultset with one row of NULL value but instead get one row of non-NULL value from getGeneratedKeys
+	 1
+	 -
+	{32}
+Now try the same test again but this time with Statement.executeUpdate. It should behave the same
+	 1
+	 -
+	{32}
+Now try the same test again but this time with PreparedStatement.execute. It should behave the same
+	 1
+	 -
+	{32}
+Now try the same test again but this time with PreparedStatement.executeUpdate. It should behave the same
+	 1
+	 -
+	{32}
+Test 12 - do a rollback and request for generated keys on a statement which does insert into a table with 
+ no auto generated keys (previous transaction had a one-row insert on a table with auto-generated keys)
+had expected to see resultset with one row of NULL value but instead get one row of non-NULL value from getGeneratedKeys
+	 1
+	 -
+	{32}
+Now try the same test again but this time with Statement.executeUpdate. It should behave the same
+	 1
+	 -
+	{32}
+Now try the same test again but this time with PreparedStatement.execute. It should behave the same
+	 1
+	 -
+	{32}
+Now try the same test again but this time with PreparedStatement.executeUpdate. It should behave the same
+	 1
+	 -
+	{32}
+Test 13 - try savepoint rollback and see what happens to auto generated keys resultset
+Inside the savepoint unit, issue a one-row insert into a table with auto generated keys
+We should get a resultset with one row of non-NULL value
+	 1
+	 -
+	{33}
+Now rollback the savepoint unit, and make sure that autogenerated keys resultset still holds on to 
+ value that got set inside the rolled back savepoint unit
+	 1
+	 -
+	{33}
+Test 14 - Look at metadata of a getGeneratedKeys resultset
+The resultset will have one column only
+Found 1 column in the resultset
+Type of the column is DECIMAL
+Precision of the column is 31
+Scale of the column is 0
+	 1
+	 -
+	{25}
+Test 15 - Can not see the auto generated keys if insert is with NO_GENERATED_KEYS
+<NULL>
+<NULL>
+<NULL>
+<NULL>
+Test 16 - Can not see the auto generated keys if insert is done jdbc 2.0 way ie with no generated key feature
+<NULL>
+<NULL>
+<NULL>
+<NULL>
+Test 17 - non-insert with NO_GENERATED_KEYS
+<NULL>
+<NULL>
+<NULL>
+<NULL>
+Test 18 - non-insert is done jdbc 2.0 way ie with no generated key feature
+<NULL>
+<NULL>
+<NULL>
+<NULL>
+Test19 - fix the no auto generated key resultset generated for INSERT with generated keys if server-side methods are invoked
+Back to client side looking for auto generated keys
+	 1
+	 -
+	{33}
+	 1
+	 -
+	{16}
+Test20 - bug 4837garbage collection of the generated key result sets was closing the activation.
+Test21 - insert select with columnIndexes[] array should fail
+Try passing array with Statement.execute
+PASS - expected exception - Feature not implemented
+Try passing array with Statement.executeUpdate
+PASS -- expected exception
+SQLSTATE(null): Driver not capable
+Test21ps - insert select with columnIndexes[] array should fail
+Try passing array with Connection.prepareStatement
+PASS -- expected exception
+SQLSTATE(null): Driver not capable
+Test22 - insert select with columnNames[] array should fail
+Try passing array with Statement.execute
+PASS -- expected exception
+SQLSTATE(null): Driver not capable
+Try passing array with Statement.executeUpdate
+PASS -- expected exception
+SQLSTATE(null): Driver not capable
+Test22ps - insert select with columnNames[] array should fail
+Try passing array with Connection.prepareStatement
+PASS -- expected exception
+SQLSTATE(null): Driver not capable
+Test autoGeneratedJdbc30 finished

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/big.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/big.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/big.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,174 @@
+ij> -- create table with row greater than 32K
+----- try with just one row of data - JCC may handle those differently?
+create table big(c1 varchar(10000), c2 varchar(10000), c3 varchar(10000), c4 varchar(10000));
+0 rows inserted/updated/deleted
+ij> create procedure INSERTDATA1(IN a int) language java parameter style java external name 'org.apache.derbyTesting.functionTests.util.ProcedureTest.bigTestData';
+0 rows inserted/updated/deleted
+ij> prepare p1 as 'call INSERTDATA1(?)';
+ij> execute p1 using 'values 1';
+IJ WARNING: Autocommit may close using result set
+Statement executed.
+ij> select * from big;
+C1 |C2 |C3 |C4                                                                                                                              
+-----
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa& |bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb& |ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc& |ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd&
+ij> -- multiple rows of data
+execute p1 using 'values 2';
+IJ WARNING: Autocommit may close using result set
+Statement executed.
+ij> select * from big;
+C1 |C2 |C3 |C4                                                                                                                              
+-----
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa& |bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb& |ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc& |ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd&
+eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee& |fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff& |ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg& |hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh&
+ij> -- the overhead for DSS on QRYDTA is 15 bytes
+----- let's try a row which is exactly 32767 (default JCC queryblock size)
+drop table big;
+0 rows inserted/updated/deleted
+ij> create table big(c1 varchar(30000), c2 varchar(2752));
+0 rows inserted/updated/deleted
+ij> execute p1 using 'values 5';
+IJ WARNING: Autocommit may close using result set
+Statement executed.
+ij> select * from big;
+C1 |C2                                                                                                                              
+-----
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa& |bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb&
+ij> -- what happens when the row + the ending SQLCARD is too big
+drop table big;
+0 rows inserted/updated/deleted
+ij> create table big(c1 varchar(30000), c2 varchar(2750));
+0 rows inserted/updated/deleted
+ij> execute p1 using 'values 6';
+IJ WARNING: Autocommit may close using result set
+Statement executed.
+ij> select * from big;
+C1 |C2                                                                                                                              
+-----
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa& |bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb&
+ij> -- let's try scrolling
+drop table big;
+0 rows inserted/updated/deleted
+ij> create table big(c1 varchar(10000), c2 varchar(10000), c3 varchar(10000), c4 varchar(10000));
+0 rows inserted/updated/deleted
+ij> execute p1 using 'values 1';
+IJ WARNING: Autocommit may close using result set
+Statement executed.
+ij> execute p1 using 'values 2';
+IJ WARNING: Autocommit may close using result set
+Statement executed.
+ij> execute p1 using 'values 3';
+IJ WARNING: Autocommit may close using result set
+Statement executed.
+ij> execute p1 using 'values 4';
+IJ WARNING: Autocommit may close using result set
+Statement executed.
+ij> get scroll insensitive cursor c1 as 'select * from big';
+ij> first c1;
+C1 |C2 |C3 |C4                                                                                                                              
+-----
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa& |bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb& |ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc& |ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd&
+ij> next c1;
+C1 |C2 |C3 |C4                                                                                                                              
+-----
+eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee& |fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff& |ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg& |hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh&
+ij> previous c1;
+C1 |C2 |C3 |C4                                                                                                                              
+-----
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa& |bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb& |ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc& |ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd&
+ij> last c1;
+C1 |C2 |C3 |C4                                                                                                                              
+-----
+mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm& |nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn& |ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo& |ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp&
+ij> close c1;
+ij> -- try going directly to the last row
+get scroll insensitive cursor c1 as 'select * from big';
+ij> last c1;
+C1 |C2 |C3 |C4                                                                                                                              
+-----
+mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm& |nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn& |ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo& |ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp&
+ij> close c1;
+ij> drop table big;
+0 rows inserted/updated/deleted
+ij> -- try a column which is > 32767
+create table big (c1 clob(40000));
+0 rows inserted/updated/deleted
+ij> execute p1 using 'values 7';
+IJ WARNING: Autocommit may close using result set
+Statement executed.
+ij> select * from big;
+C1                                                                                                                              
+-----
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&
+ij> drop table big;
+0 rows inserted/updated/deleted
+ij> -- try several columns > 32767
+create table big (c1 clob(40000), c2 clob(40000), c3 clob(40000));
+0 rows inserted/updated/deleted
+ij> execute p1 using 'values 8';
+IJ WARNING: Autocommit may close using result set
+Statement executed.
+ij> select * from big;
+C1 |C2 |C3                                                                                                                              
+-----
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa& |bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb& |ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc&
+ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd& |eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee& |fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff&
+ij> drop table big;
+0 rows inserted/updated/deleted
+ij> -- The tests below won't run with db2 compat mode.
+----- try java objects of different sizes
+----- create table big(s java.lang.String);
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',1000));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',2000));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',3000));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',32000));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',33000));
+----- select * from big;
+----- drop table big;
+----- big long varchar
+----- create table big(lvc long varchar );
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',1000));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',2000));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',3000));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',32000));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',33000));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',64000));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',64499));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',65500));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',64501));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',66000));
+----- select * from big;
+----- drop table big;
+----- create table big(vc varchar(32767));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',1000));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',2000));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',3000));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',32000));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',33000));
+----- select * from big;
+----- drop table big;
+----- create table big(lvc long bit varying );
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',1000));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',2000));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',3000));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',32000));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',33000));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',64000));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',64499));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',65500));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',64501));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',66000));
+----- select * from big;
+----- drop table big;
+----- create table big(vb bit varying(131072));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',1000));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',2000));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',3000));
+----- These cannot be run until 4662 is fixed because we send 
+----- a big arg to the localization method..
+-----  insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',32000));
+----- insert into big values(org.apache.derbyTesting.functionTests.util.Formatters::repeatChar('a',33000));
+----- select * from big;
+----- drop table big;
+;
+ij> 

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/blobclob4BLOB.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/blobclob4BLOB.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/blobclob4BLOB.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,721 @@
+Test blobclob starting
+===> inserting extin/short.txt length = 56
+===> inserting extin/littleclob.txt length = 10000
+===> inserting extin/empty.txt length = 0
+===> inserting extin/searchclob.txt length = 5000
+===> inserting extin/aclob.txt length = 300000
+===> inserting extin/short.txt length = 56
+===> inserting extin/littleclob.txt length = 10000
+===> inserting extin/empty.txt length = 0
+===> inserting extin/searchclob.txt length = 5000
+===> inserting extin/aclob.txt length = 300000
+unicode string 0 correct
+unicode string 1 correct
+unicode string 2 correct
+Finished prepareUnicodeFile
+Length of clob is 5009
+unicode string 0 matched
+unicode string 1 matched
+unicode string 2 matched
+EOF matched
+setCharacterStreamTest finished
+clobTest0 finished
+clobTest11 finished
+Succeeded to match, row 1
+PASSED, row 1, length was 3
+Succeeded to match, row 2
+PASSED, row 2, length was 3
+Succeeded to match, row 3
+PASSED, row 3, length was 3
+Succeeded to match, row 4
+PASSED, row 4, length was 5016
+Succeeded to match, row 5
+PASSED, row 5, length was 5016
+Succeeded to match, row 6
+PASSED, row 6, length was 5016
+clobTest12 finished
+CLOB getSubString 9905 > 0
+Known JCC Bug 5914 - String index out of range: -9904
+CLOB getSubString 5910 > 0
+Known JCC Bug 5914 - String index out of range: -5909
+CLOB getSubString 5910 > 0
+Known JCC Bug 5914 - String index out of range: -5909
+CLOB getSubString 204 > 0
+Known JCC Bug 5914 - String index out of range: -203
+CLOB getSubString 68 > 0
+Known JCC Bug 5914 - String index out of range: -67
+CLOB getSubString 1 > 0
+1(5) (len 50) 
+CLOB FAIL - NO ERROR ON getSubString POS TOO LARGE 1 > 0
+CLOB getSubString 1 > 0
+1(6) (len 1) 
+CLOB FAIL - NO ERROR ON getSubString POS TOO LARGE 1 > 0
+CLOB getSubString 9905 > 65
+Known JCC Bug 5914 - String index out of range: -9839
+CLOB getSubString 5910 > 65
+Known JCC Bug 5914 - String index out of range: -5844
+CLOB getSubString 5910 > 65
+Known JCC Bug 5914 - String index out of range: -5844
+CLOB getSubString 204 > 65
+Known JCC Bug 5914 - String index out of range: -138
+CLOB getSubString 68 > 65
+Known JCC Bug 5914 - String index out of range: -2
+2(5) (len 50) you can lead a horse to water but you can't form i
+2(6) (len 1) y
+CLOB getSubString 9905 > 26
+Known JCC Bug 5914 - String index out of range: -9878
+CLOB getSubString 5910 > 26
+Known JCC Bug 5914 - String index out of range: -5883
+CLOB getSubString 5910 > 26
+Known JCC Bug 5914 - String index out of range: -5883
+CLOB getSubString 204 > 26
+Known JCC Bug 5914 - String index out of range: -177
+CLOB getSubString 68 > 26
+Known JCC Bug 5914 - String index out of range: -41
+3(5) (len 50) a stitch in time says ouch
+3(6) (len 1) a
+CLOB getSubString 9905 > 42
+Known JCC Bug 5914 - String index out of range: -9862
+CLOB getSubString 5910 > 42
+Known JCC Bug 5914 - String index out of range: -5867
+CLOB getSubString 5910 > 42
+Known JCC Bug 5914 - String index out of range: -5867
+CLOB getSubString 204 > 42
+Known JCC Bug 5914 - String index out of range: -161
+CLOB getSubString 68 > 42
+Known JCC Bug 5914 - String index out of range: -25
+4(5) (len 50) here is a string with a return 
+ character
+4(6) (len 1) h
+CLOB getSubString 9905 > 56
+Known JCC Bug 5914 - String index out of range: -9848
+CLOB getSubString 5910 > 56
+Known JCC Bug 5914 - String index out of range: -5853
+CLOB getSubString 5910 > 56
+Known JCC Bug 5914 - String index out of range: -5853
+CLOB getSubString 204 > 56
+Known JCC Bug 5914 - String index out of range: -147
+CLOB getSubString 68 > 56
+Known JCC Bug 5914 - String index out of range: -11
+5(5) (len 50) test data: a string column inserted as an Ascii st
+5(6) (len 1) t
+6(0) (len 50) wwPosition-9907-behold-the-end-of-the-clob-is-nigh
+6(1) (len 150) I-am-hiding-here-at-position-5910-in-this-little-clobwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+6(2) (len 50) I-am-hiding-here-at-position-5910-in-this-little-c
+6(3) (len 50) This-is-position-204wwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+6(4) (len 50) wposition-69-end-of-the-first-l
+ine-we-are-now-on
+6(5) (len 50) Beginning-this-is-itwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+6(6) (len 1) B
+6(7) 
+wwwwwwPosition-9907-behold-the-end-of-the-clob-is-nighwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+CLOB getSubString 9905 > 0
+Known JCC Bug 5914 - String index out of range: -9904
+CLOB getSubString 5910 > 0
+Known JCC Bug 5914 - String index out of range: -5909
+CLOB getSubString 5910 > 0
+Known JCC Bug 5914 - String index out of range: -5909
+CLOB getSubString 204 > 0
+Known JCC Bug 5914 - String index out of range: -203
+CLOB getSubString 68 > 0
+Known JCC Bug 5914 - String index out of range: -67
+CLOB getSubString 1 > 0
+7(5) (len 50) 
+CLOB FAIL - NO ERROR ON getSubString POS TOO LARGE 1 > 0
+CLOB getSubString 1 > 0
+7(6) (len 1) 
+CLOB FAIL - NO ERROR ON getSubString POS TOO LARGE 1 > 0
+CLOB getSubString 9905 > 5000
+Known JCC Bug 5914 - String index out of range: -4904
+CLOB getSubString 5910 > 5000
+Known JCC Bug 5914 - String index out of range: -909
+CLOB getSubString 5910 > 5000
+Known JCC Bug 5914 - String index out of range: -909
+8(3) (len 50) wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+8(4) (len 50) wwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+wwwwwwwwwwwwwwwww
+8(5) (len 50) wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+8(6) (len 1) w
+8(7) 
+wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+9(0) (len 50) wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+9(1) (len 150) I-am-hiding-here-at-position-5910-in-this-humungus-clobwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+9(2) (len 50) I-am-hiding-here-at-position-5910-in-this-humungus
+9(3) (len 50) wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+9(4) (len 50) wwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+wwwwwwwwwwwwwwwww
+9(5) (len 50) wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+9(6) (len 1) w
+9(7) 
+wwHere-I-am-at-position-299003-near-the-end-of-the-clobwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+clobTest2 finished
+Row 1 : Succeeded
+Row 2 : Succeeded
+Row 3 : Succeeded
+Row 4 : Succeeded
+Second time Succeeded
+Row 5 : Succeeded
+Second time Succeeded
+Row 6 : Succeeded
+Second time Succeeded
+clobTest22 finished
+Found horse in row 1 starting from position 1 at position  NOTFOUND 
+Found ouch in row 1 starting from position 1 at position  NOTFOUND 
+Found 
+ in row 1 starting from position 1 at position  NOTFOUND 
+Found  in row 1 starting from position 1 at position 1
+Found Beginning in row 1 starting from position 1 at position  NOTFOUND 
+Found Beginning in row 1 starting from position 2 at position  NOTFOUND 
+Found position-69 in row 1 starting from position 1 at position  NOTFOUND 
+Found This-is-position-204 in row 1 starting from position 1 at position  NOTFOUND 
+Found I-am-hiding-here-at-position-5910 in row 1 starting from position 1 at position  NOTFOUND 
+Found I-am-hiding-here-at-position-5910 in row 1 starting from position 5910 at position  NOTFOUND 
+Found I-am-hiding-here-at-position-5910 in row 1 starting from position 5911 at position  NOTFOUND 
+Found Position-9907 in row 1 starting from position 1 at position  NOTFOUND 
+Found horse in row 2 starting from position 1 at position 16
+Found ouch in row 2 starting from position 1 at position  NOTFOUND 
+Found 
+ in row 2 starting from position 1 at position  NOTFOUND 
+Found  in row 2 starting from position 1 at position 1
+Found Beginning in row 2 starting from position 1 at position  NOTFOUND 
+Found Beginning in row 2 starting from position 2 at position  NOTFOUND 
+Found position-69 in row 2 starting from position 1 at position  NOTFOUND 
+Found This-is-position-204 in row 2 starting from position 1 at position  NOTFOUND 
+Found I-am-hiding-here-at-position-5910 in row 2 starting from position 1 at position  NOTFOUND 
+Found I-am-hiding-here-at-position-5910 in row 2 starting from position 5910 at position  NOTFOUND 
+Found I-am-hiding-here-at-position-5910 in row 2 starting from position 5911 at position  NOTFOUND 
+Found Position-9907 in row 2 starting from position 1 at position  NOTFOUND 
+Found horse in row 3 starting from position 1 at position  NOTFOUND 
+Found ouch in row 3 starting from position 1 at position 23
+Found 
+ in row 3 starting from position 1 at position  NOTFOUND 
+Found  in row 3 starting from position 1 at position 1
+Found Beginning in row 3 starting from position 1 at position  NOTFOUND 
+Found Beginning in row 3 starting from position 2 at position  NOTFOUND 
+Found position-69 in row 3 starting from position 1 at position  NOTFOUND 
+Found This-is-position-204 in row 3 starting from position 1 at position  NOTFOUND 
+Found I-am-hiding-here-at-position-5910 in row 3 starting from position 1 at position  NOTFOUND 
+Found I-am-hiding-here-at-position-5910 in row 3 starting from position 5910 at position  NOTFOUND 
+Found I-am-hiding-here-at-position-5910 in row 3 starting from position 5911 at position  NOTFOUND 
+Found Position-9907 in row 3 starting from position 1 at position  NOTFOUND 
+Found horse in row 4 starting from position 1 at position  NOTFOUND 
+Found ouch in row 4 starting from position 1 at position  NOTFOUND 
+Found 
+ in row 4 starting from position 1 at position 32
+Found  in row 4 starting from position 1 at position 1
+Found Beginning in row 4 starting from position 1 at position  NOTFOUND 
+Found Beginning in row 4 starting from position 2 at position  NOTFOUND 
+Found position-69 in row 4 starting from position 1 at position  NOTFOUND 
+Found This-is-position-204 in row 4 starting from position 1 at position  NOTFOUND 
+Found I-am-hiding-here-at-position-5910 in row 4 starting from position 1 at position  NOTFOUND 
+Found I-am-hiding-here-at-position-5910 in row 4 starting from position 5910 at position  NOTFOUND 
+Found I-am-hiding-here-at-position-5910 in row 4 starting from position 5911 at position  NOTFOUND 
+Found Position-9907 in row 4 starting from position 1 at position  NOTFOUND 
+Found horse in row 5 starting from position 1 at position  NOTFOUND 
+Found ouch in row 5 starting from position 1 at position  NOTFOUND 
+Found 
+ in row 5 starting from position 1 at position 56
+Found  in row 5 starting from position 1 at position 1
+Found Beginning in row 5 starting from position 1 at position  NOTFOUND 
+Found Beginning in row 5 starting from position 2 at position  NOTFOUND 
+Found position-69 in row 5 starting from position 1 at position  NOTFOUND 
+Found This-is-position-204 in row 5 starting from position 1 at position  NOTFOUND 
+Found I-am-hiding-here-at-position-5910 in row 5 starting from position 1 at position  NOTFOUND 
+Found I-am-hiding-here-at-position-5910 in row 5 starting from position 5910 at position  NOTFOUND 
+Found I-am-hiding-here-at-position-5910 in row 5 starting from position 5911 at position  NOTFOUND 
+Found Position-9907 in row 5 starting from position 1 at position  NOTFOUND 
+Found horse in row 6 starting from position 1 at position  NOTFOUND 
+Found ouch in row 6 starting from position 1 at position  NOTFOUND 
+Found 
+ in row 6 starting from position 1 at position 100
+Found  in row 6 starting from position 1 at position 1
+Found Beginning in row 6 starting from position 1 at position 1
+Found Beginning in row 6 starting from position 2 at position  NOTFOUND 
+Found position-69 in row 6 starting from position 1 at position 69
+Found This-is-position-204 in row 6 starting from position 1 at position 204
+Found I-am-hiding-here-at-position-5910 in row 6 starting from position 1 at position 5910
+Found I-am-hiding-here-at-position-5910 in row 6 starting from position 5910 at position 5910
+Found I-am-hiding-here-at-position-5910 in row 6 starting from position 5911 at position  NOTFOUND 
+Found Position-9907 in row 6 starting from position 1 at position 9907
+Found horse in row 7 starting from position 1 at position  NOTFOUND 
+Found ouch in row 7 starting from position 1 at position  NOTFOUND 
+Found 
+ in row 7 starting from position 1 at position  NOTFOUND 
+Found  in row 7 starting from position 1 at position 1
+Found Beginning in row 7 starting from position 1 at position  NOTFOUND 
+Found Beginning in row 7 starting from position 2 at position  NOTFOUND 
+Found position-69 in row 7 starting from position 1 at position  NOTFOUND 
+Found This-is-position-204 in row 7 starting from position 1 at position  NOTFOUND 
+Found I-am-hiding-here-at-position-5910 in row 7 starting from position 1 at position  NOTFOUND 
+Found I-am-hiding-here-at-position-5910 in row 7 starting from position 5910 at position  NOTFOUND 
+Found I-am-hiding-here-at-position-5910 in row 7 starting from position 5911 at position  NOTFOUND 
+Found Position-9907 in row 7 starting from position 1 at position  NOTFOUND 
+Found horse in row 8 starting from position 1 at position  NOTFOUND 
+Found ouch in row 8 starting from position 1 at position  NOTFOUND 
+Found 
+ in row 8 starting from position 1 at position 100
+Found  in row 8 starting from position 1 at position 1
+Found Beginning in row 8 starting from position 1 at position  NOTFOUND 
+Found Beginning in row 8 starting from position 2 at position  NOTFOUND 
+Found position-69 in row 8 starting from position 1 at position  NOTFOUND 
+Found This-is-position-204 in row 8 starting from position 1 at position  NOTFOUND 
+Found I-am-hiding-here-at-position-5910 in row 8 starting from position 1 at position  NOTFOUND 
+Found I-am-hiding-here-at-position-5910 in row 8 starting from position 5910 at position  NOTFOUND 
+Found I-am-hiding-here-at-position-5910 in row 8 starting from position 5911 at position  NOTFOUND 
+Found Position-9907 in row 8 starting from position 1 at position  NOTFOUND 
+clobTest3 finished
+Succeeded: Found unicode string 0 at position 1,row 1
+Succeeded: Found unicode string 0 at position -1,row 1
+Succeeded: Found unicode string 1 at position 1,row 2
+Succeeded: Found unicode string 1 at position -1,row 2
+Succeeded: Found unicode string 2 at position 1,row 3
+Succeeded: Found unicode string 2 at position -1,row 3
+Succeeded: Found unicode string 0 at position 1,row 4
+Succeeded: Found unicode string 0 at position 5004,row 4
+Succeeded: Found unicode string 1 at position 1,row 5
+Succeeded: Found unicode string 1 at position 5004,row 5
+Succeeded: Found unicode string 2 at position 1,row 6
+Succeeded: Found unicode string 2 at position 5004,row 6
+clobTest32 finished
+position(clob) NOT FOUND 1 searchStr horse
+position(clob) NOT FOUND 1 searchStr ouch
+position(clob) NOT FOUND 1 searchStr 
+position(clob) FOUND @ 1 with empty search clob in clob of length 0
+position(clob) NOT FOUND 1 searchStr Beginning
+position(clob) NOT FOUND 1 searchStr position-69
+position(clob) NOT FOUND 1 searchStr I-am-hiding-here-at-position-5910
+position(clob) NOT FOUND 1 searchStr Position-9907
+position(clob) NOT FOUND 1 searchStr test data: a string column inserted as an Ascii stream
+position(clob) NOT FOUND 1 searchStr >150chars
+position(clob) FOUND @ 1 with empty search clob in clob of length 0
+position(clob) NOT FOUND 1 searchStr >150chars
+searchClob row 13 skipped (too large)
+Found horse in row 2 at position 16
+position(clob) NOT FOUND 2 searchStr ouch
+position(clob) NOT FOUND 2 searchStr 
+position(clob) FOUND @ 1 with empty search clob in clob of length 65
+position(clob) NOT FOUND 2 searchStr Beginning
+position(clob) NOT FOUND 2 searchStr position-69
+position(clob) NOT FOUND 2 searchStr I-am-hiding-here-at-position-5910
+position(clob) NOT FOUND 2 searchStr Position-9907
+position(clob) NOT FOUND 2 searchStr test data: a string column inserted as an Ascii stream
+position(clob) NOT FOUND 2 searchStr >150chars
+position(clob) FOUND @ 1 with empty search clob in clob of length 65
+position(clob) NOT FOUND 2 searchStr >150chars
+searchClob row 13 skipped (too large)
+position(clob) NOT FOUND 3 searchStr horse
+Found ouch in row 3 at position 23
+position(clob) NOT FOUND 3 searchStr 
+position(clob) FOUND @ 1 with empty search clob in clob of length 26
+position(clob) NOT FOUND 3 searchStr Beginning
+position(clob) NOT FOUND 3 searchStr position-69
+position(clob) NOT FOUND 3 searchStr I-am-hiding-here-at-position-5910
+position(clob) NOT FOUND 3 searchStr Position-9907
+position(clob) NOT FOUND 3 searchStr test data: a string column inserted as an Ascii stream
+position(clob) NOT FOUND 3 searchStr >150chars
+position(clob) FOUND @ 1 with empty search clob in clob of length 26
+position(clob) NOT FOUND 3 searchStr >150chars
+searchClob row 13 skipped (too large)
+position(clob) NOT FOUND 4 searchStr horse
+position(clob) NOT FOUND 4 searchStr ouch
+Found 
+ in row 4 at position 32
+position(clob) FOUND @ 1 with empty search clob in clob of length 42
+position(clob) NOT FOUND 4 searchStr Beginning
+position(clob) NOT FOUND 4 searchStr position-69
+position(clob) NOT FOUND 4 searchStr I-am-hiding-here-at-position-5910
+position(clob) NOT FOUND 4 searchStr Position-9907
+position(clob) NOT FOUND 4 searchStr test data: a string column inserted as an Ascii stream
+position(clob) NOT FOUND 4 searchStr >150chars
+position(clob) FOUND @ 1 with empty search clob in clob of length 42
+position(clob) NOT FOUND 4 searchStr >150chars
+searchClob row 13 skipped (too large)
+position(clob) NOT FOUND 5 searchStr horse
+position(clob) NOT FOUND 5 searchStr ouch
+Found 
+ in row 5 at position 56
+position(clob) FOUND @ 1 with empty search clob in clob of length 56
+position(clob) NOT FOUND 5 searchStr Beginning
+position(clob) NOT FOUND 5 searchStr position-69
+position(clob) NOT FOUND 5 searchStr I-am-hiding-here-at-position-5910
+position(clob) NOT FOUND 5 searchStr Position-9907
+Found test data: a string column inserted as an Ascii stream
+ in row 5 at position 1
+position(clob) NOT FOUND 5 searchStr >150chars
+position(clob) FOUND @ 1 with empty search clob in clob of length 56
+position(clob) NOT FOUND 5 searchStr >150chars
+searchClob row 13 skipped (too large)
+position(clob) NOT FOUND 6 searchStr horse
+position(clob) NOT FOUND 6 searchStr ouch
+Found 
+ in row 6 at position 100
+position(clob) FOUND @ 1 with empty search clob in clob of length 10000
+Found Beginning in row 6 at position 1
+Found position-69 in row 6 at position 69
+Found I-am-hiding-here-at-position-5910 in row 6 at position 5910
+Found Position-9907 in row 6 at position 9907
+position(clob) NOT FOUND 6 searchStr test data: a string column inserted as an Ascii stream
+Found clob (row 10)  in row 6 at position 1
+position(clob) FOUND @ 1 with empty search clob in clob of length 10000
+Found clob (row 12)  in row 6 at position 301
+searchClob row 13 skipped (too large)
+position(clob) NOT FOUND 7 searchStr horse
+position(clob) NOT FOUND 7 searchStr ouch
+position(clob) NOT FOUND 7 searchStr 
+position(clob) FOUND @ 1 with empty search clob in clob of length 0
+position(clob) NOT FOUND 7 searchStr Beginning
+position(clob) NOT FOUND 7 searchStr position-69
+position(clob) NOT FOUND 7 searchStr I-am-hiding-here-at-position-5910
+position(clob) NOT FOUND 7 searchStr Position-9907
+position(clob) NOT FOUND 7 searchStr test data: a string column inserted as an Ascii stream
+position(clob) NOT FOUND 7 searchStr >150chars
+position(clob) FOUND @ 1 with empty search clob in clob of length 0
+position(clob) NOT FOUND 7 searchStr >150chars
+searchClob row 13 skipped (too large)
+position(clob) NOT FOUND 8 searchStr horse
+position(clob) NOT FOUND 8 searchStr ouch
+Found 
+ in row 8 at position 100
+position(clob) FOUND @ 1 with empty search clob in clob of length 5000
+position(clob) NOT FOUND 8 searchStr Beginning
+position(clob) NOT FOUND 8 searchStr position-69
+position(clob) NOT FOUND 8 searchStr I-am-hiding-here-at-position-5910
+position(clob) NOT FOUND 8 searchStr Position-9907
+position(clob) NOT FOUND 8 searchStr test data: a string column inserted as an Ascii stream
+position(clob) NOT FOUND 8 searchStr >150chars
+position(clob) FOUND @ 1 with empty search clob in clob of length 5000
+Found clob (row 12)  in row 8 at position 1
+searchClob row 13 skipped (too large)
+testCLOB_MAIN row 9 skipped (too large)
+clobTest4 finished
+Succeeded: Found clob at position 1,row 0
+Succeeded: Found clob at position 1,row 1
+Succeeded: Found clob at position 1,row 2
+clobTest42 finished
+clobTest51 finished
+create table testInteger (a integer)
+insert into testInteger values('158')
+select a from testInteger
+getClob(1)
+52: SQLException
+EXPECTED SQL Exception: Invalid data conversion: Wrong result column type for requested conversion.
+clobTest53 finished
+start clobTest54
+EXPECTED SQLSTATE(22018): Invalid character string format for type INTEGER.
+end clobTest54
+ negative tests for clob.getSubstring won't run  for network server  until 5243 is fixed
+start clobTest7
+clobTest7 finished
+start clobTest8
+small string pattern
+@1  position MATCH(129)
+@2  position MATCH(2074)
+@3  position MATCH(4595)
+@4  position MATCH(34584)
+@5  position MATCH(67918)
+@6  position MATCH(-1)
+@7  position MATCH(-1)
+@8  position MATCH(-1)
+@9  position MATCH(-1)
+@10  position MATCH(-1)
+small java.sql.Clob pattern
+@1  position MATCH(129)
+@2  position MATCH(2074)
+@3  position MATCH(4595)
+@4  position MATCH(34584)
+@5  position MATCH(67918)
+@6  position MATCH(-1)
+@7  position MATCH(-1)
+@8  position MATCH(-1)
+@9  position MATCH(-1)
+@10  position MATCH(-1)
+medium string pattern
+@1  position MATCH(11253)
+@2  position MATCH(12225)
+@3  position MATCH(13478)
+@4  position MATCH(43467)
+@5  position MATCH(76801)
+@6  position MATCH(-1)
+@7  position MATCH(-1)
+@8  position MATCH(-1)
+@9  position MATCH(-1)
+@10  position MATCH(-1)
+medium java.sql.Clob pattern
+@1  position MATCH(11253)
+@2  position MATCH(12225)
+@3  position MATCH(13478)
+@4  position MATCH(43467)
+@5  position MATCH(76801)
+@6  position MATCH(-1)
+@7  position MATCH(-1)
+@8  position MATCH(-1)
+@9  position MATCH(-1)
+@10  position MATCH(-1)
+long string pattern
+@1  position MATCH(287875)
+@2  position MATCH(288847)
+@3  position MATCH(290108)
+@4  position MATCH(305102)
+@5  position MATCH(321769)
+@6  position MATCH(-1)
+@7  position MATCH(-1)
+@8  position MATCH(-1)
+@9  position MATCH(-1)
+@10  position MATCH(-1)
+long java.sql.Clob pattern
+@1  position MATCH(287875)
+@2  position MATCH(288847)
+@3  position MATCH(290108)
+@4  position MATCH(305102)
+@5  position MATCH(321769)
+@6  position MATCH(-1)
+@7  position MATCH(-1)
+@8  position MATCH(-1)
+@9  position MATCH(-1)
+@10  position MATCH(-1)
+complete clobTest8
+done row 0, length was 0
+done row 1, length was 65
+done row 2, length was 26
+done row 3, length was 42
+done row 4, length was 56
+done row 5, length was 10000
+done row 6, length was 0
+done row 7, length was 5000
+done row 8, length was 300000
+row 9 is null, skipped
+clobTest91 finished
+FAIL -- unexpected exception ****************
+SQLSTATE(40XL1): A lock could not be obtained within the time requested
+clobTest92 finished
+shortClob length after commit is 26
+clobTest94 finished
+shortClob length after closing connection is 26
+EXPECTED SQL Exception: Lob method called after connection was closed
+EXPECTED SQL Exception: Lob method called after connection was closed
+EXPECTED SQL Exception: Lob method called after connection was closed
+EXPECTED SQL Exception: Lob method called after connection was closed
+clobTest95 finished
+clobTest96 finished
+===> inserting extin/short.txt length = 56
+===> inserting extin/littleclob.txt length = 10000
+===> inserting extin/empty.txt length = 0
+===> inserting extin/searchclob.txt length = 5000
+===> inserting extin/aclob.txt length = 300000
+===> inserting extin/short.txt length = 56
+===> inserting extin/littleclob.txt length = 10000
+===> inserting extin/empty.txt length = 0
+===> inserting extin/searchclob.txt length = 5000
+===> inserting extin/aclob.txt length = 300000
+blobTest0 finished
+testing Blob.getBytes() with pos 9905 > 0
+Known JCC Bug 5914
+testing Blob.getBytes() with pos 5910 > 0
+Known JCC Bug 5914
+testing Blob.getBytes() with pos 5910 > 0
+Known JCC Bug 5914
+testing Blob.getBytes() with pos 204 > 0
+Known JCC Bug 5914
+testing Blob.getBytes() with pos 68 > 0
+Known JCC Bug 5914
+testing Blob.getBytes() with pos 1 > 0
+1(5) 
+FAIL testing Blob.getBytes() with pos 1 > 0
+testing Blob.getBytes() with pos 1 > 0
+1(6) 
+FAIL testing Blob.getBytes() with pos 1 > 0
+testing Blob.getBytes() with pos 9905 > 65
+Known JCC Bug 5914
+testing Blob.getBytes() with pos 5910 > 65
+Known JCC Bug 5914
+testing Blob.getBytes() with pos 5910 > 65
+Known JCC Bug 5914
+testing Blob.getBytes() with pos 204 > 65
+Known JCC Bug 5914
+testing Blob.getBytes() with pos 68 > 65
+Known JCC Bug 5914
+2(5) you can lead a horse to water but you can't form i
+2(6) y
+testing Blob.getBytes() with pos 9905 > 26
+Known JCC Bug 5914
+testing Blob.getBytes() with pos 5910 > 26
+Known JCC Bug 5914
+testing Blob.getBytes() with pos 5910 > 26
+Known JCC Bug 5914
+testing Blob.getBytes() with pos 204 > 26
+Known JCC Bug 5914
+testing Blob.getBytes() with pos 68 > 26
+Known JCC Bug 5914
+3(5) a stitch in time says ouch
+3(6) a
+testing Blob.getBytes() with pos 9905 > 42
+Known JCC Bug 5914
+testing Blob.getBytes() with pos 5910 > 42
+Known JCC Bug 5914
+testing Blob.getBytes() with pos 5910 > 42
+Known JCC Bug 5914
+testing Blob.getBytes() with pos 204 > 42
+Known JCC Bug 5914
+testing Blob.getBytes() with pos 68 > 42
+Known JCC Bug 5914
+4(5) here is a string with a return 
+ character
+4(6) h
+testing Blob.getBytes() with pos 9905 > 56
+Known JCC Bug 5914
+testing Blob.getBytes() with pos 5910 > 56
+Known JCC Bug 5914
+testing Blob.getBytes() with pos 5910 > 56
+Known JCC Bug 5914
+testing Blob.getBytes() with pos 204 > 56
+Known JCC Bug 5914
+testing Blob.getBytes() with pos 68 > 56
+Known JCC Bug 5914
+5(5) test data: a string column inserted as an Ascii st
+5(6) t
+6(0) wwPosition-9907-behold-the-end-of-the-clob-is-nigh
+6(1) I-am-hiding-here-at-position-5910-in-this-little-clobwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+6(2) I-am-hiding-here-at-position-5910-in-this-little-c
+6(3) This-is-position-204wwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+6(4) wposition-69-end-of-the-first-l
+ine-we-are-now-on
+6(5) Beginning-this-is-itwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+6(6) B
+6(7) 
+wwwwwwPosition-9907-behold-the-end-of-the-clob-is-nighwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+testing Blob.getBytes() with pos 9905 > 0
+Known JCC Bug 5914
+testing Blob.getBytes() with pos 5910 > 0
+Known JCC Bug 5914
+testing Blob.getBytes() with pos 5910 > 0
+Known JCC Bug 5914
+testing Blob.getBytes() with pos 204 > 0
+Known JCC Bug 5914
+testing Blob.getBytes() with pos 68 > 0
+Known JCC Bug 5914
+testing Blob.getBytes() with pos 1 > 0
+7(5) 
+FAIL testing Blob.getBytes() with pos 1 > 0
+testing Blob.getBytes() with pos 1 > 0
+7(6) 
+FAIL testing Blob.getBytes() with pos 1 > 0
+testing Blob.getBytes() with pos 9905 > 5000
+Known JCC Bug 5914
+testing Blob.getBytes() with pos 5910 > 5000
+Known JCC Bug 5914
+testing Blob.getBytes() with pos 5910 > 5000
+Known JCC Bug 5914
+8(3) wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+8(4) wwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+wwwwwwwwwwwwwwwww
+8(5) wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+8(6) w
+8(7) 
+wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+9(0) wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+9(1) I-am-hiding-here-at-position-5910-in-this-humungus-clobwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+9(2) I-am-hiding-here-at-position-5910-in-this-humungus
+9(3) wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+9(4) wwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+wwwwwwwwwwwwwwwww
+9(5) wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+9(6) w
+9(7) 
+wwHere-I-am-at-position-299003-near-the-end-of-the-clobwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
+blobTest2 finished
+Found horse in row 2 starting from position 1 at position 16
+Found ouch in row 3 starting from position 1 at position 23
+Found 
+ in row 4 starting from position 1 at position 32
+Found 
+ in row 5 starting from position 1 at position 56
+Found 
+ in row 6 starting from position 1 at position 100
+Found Beginning in row 6 starting from position 1 at position 1
+Found position-69 in row 6 starting from position 1 at position 69
+Found This-is-position-204 in row 6 starting from position 1 at position 204
+Found I-am-hiding-here-at-position-5910 in row 6 starting from position 1 at position 5910
+Found I-am-hiding-here-at-position-5910 in row 6 starting from position 5910 at position 5910
+Found Position-9907 in row 6 starting from position 1 at position 9907
+Found 
+ in row 8 starting from position 1 at position 100
+blobTest3 finished
+searchBlob row 13 skipped (too large)
+Found horse in row 2 at position 16
+searchBlob row 13 skipped (too large)
+Found ouch in row 3 at position 23
+searchBlob row 13 skipped (too large)
+Found 
+ in row 4 at position 32
+searchBlob row 13 skipped (too large)
+Found 
+ in row 5 at position 56
+Found test data: a string column inserted as an Ascii stream
+ in row 5 at position 1
+searchBlob row 13 skipped (too large)
+Found 
+ in row 6 at position 100
+Found Beginning in row 6 at position 1
+Found position-69 in row 6 at position 69
+Found I-am-hiding-here-at-position-5910 in row 6 at position 5910
+Found Position-9907 in row 6 at position 9907
+Found blob (row 10)  in row 6 at position 1
+Found blob (row 12)  in row 6 at position 301
+searchBlob row 13 skipped (too large)
+searchBlob row 13 skipped (too large)
+Found 
+ in row 8 at position 100
+Found blob (row 12)  in row 8 at position 1
+searchBlob row 13 skipped (too large)
+testBlob row 9 skipped (too large)
+blobTest4 finished
+blobTest51 finished
+EXPECTED SQLSTATE(null): Invalid data conversion: Wrong result column type for requested conversion.
+blobTest53 finished
+EXPECTED SQLSTATE(XCL12): An attempt was made to put a data value of type 'byte[]' into a data value of type 'INTEGER'.
+EXPECTED SQLSTATE(null): Invalid position 0 or length 5
+EXPECTED SQLSTATE(null): Invalid position 1 or length -76
+EXPECTED SQLSTATE(null): Search pattern cannot be null.
+EXPECTED SQLSTATE(null): Search pattern cannot be null.
+blobTest6 finished
+blobTest7 finished
+done row 0, length was 0
+done row 1, length was 65
+done row 2, length was 26
+done row 3, length was 42
+done row 4, length was 56
+done row 5, length was 10000
+done row 6, length was 0
+done row 7, length was 5000
+done row 8, length was 300000
+row 9 is null, skipped
+blobTest91 finished
+FAIL -- unexpected exception ****************
+SQLSTATE(40XL1): A lock could not be obtained within the time requested
+blobTest93 finished
+shortBlob length after commit is 26
+blobTest94 finished
+EXPECTED SQLSTATE(null): Lob method called after connection was closed
+EXPECTED SQLSTATE(null): Lob method called after connection was closed
+EXPECTED SQLSTATE(null): Lob method called after connection was closed
+EXPECTED SQLSTATE(null): Lob method called after connection was closed
+EXPECTED SQLSTATE(null): Lob method called after connection was closed
+EXPECTED SQLSTATE(null): Lob method called after connection was closed
+blobTest95 finished
+blobTest96 finished
+length of clob chosen is 10000
+After update
+Row 1 value.substring(0,50) is jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
+10000 total bytes read
+clobTestSelfDestructive finished
+length of clob chosen is 10000
+After drop
+Expect to get an IOException, container has been closed
+10000 total bytes read
+clobTestSelfDestructive2 finished
+FINISHED TEST blobclob :-)
+Test blobclob finished

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/callable.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/callable.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/callable.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,37 @@
+CallableStatement Test Starts
+Sum of 6 and 9 is: 15
+return value: Square of 6 then plus 6 is: 42
+return value is: 55
+return short: 3
+return int: 4
+return long: 5
+return float: 6.0
+return double: 7.0
+return decimal: 88.880
+return date: 2002-05-12
+return time: 10:05:02
+return time stamp: xxxxxxFILTERED-TIMESTAMPxxxxx
+return byte[0]: 1
+return byte[1]: 2
+method 5 return decimal: 33.3330
+method 5 return decimal: -33332.9966
+method 5 return decimal: -966.6669
+method 5 return decimal: 0.0000
+method 5 return decimal: 0.0000
+method 5 return decimal: 99999999.0000
+method 5 return decimal: -99999999.0000
+Integer: Sum of 6 and 9 is: 15
+Short: Sum of 6 and 9 is: 15
+Long: Sum of 99999 and 88888888 is: 88988887
+Float: Sum of 6.123453 and 77777 is: 77783.125
+Double: Sum of 6.987654 and 8888888888888.01234 is: 8.888888888894135E12
+Time: Old time of 10:05:02 changed to: 11:06:03
+cstmt.getBigDecimal(1): 999999999999999.000000000000000
+cstmt.getBigDecimal(2): 0.000000000000001
+cstmt.getBigDecimal(3): null
+get the CallableStatement object
+execute the procedure with LONGVARBINARY
+execute the procedure with BLOB
+Select lvbc from Longvarbinary_Tab
+done testing long varbinary
+CallableStatement Test Ends

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/characterStreams.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/characterStreams.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/characterStreams.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1 @@
+SKIP TEST FOR NOW

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/csPrepStmt.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/csPrepStmt.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/csPrepStmt.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,69 @@
+csPrepStmt Test Starts
+executeUpdate() without parameters
+Update count is: 0
+executeUpdate() with parameters
+Update count is: 1
+execute() with parameters, no result set returned
+Update count is: 2
+executQuery() without parameters
+got row:  99 5 9
+got row:  2 6 10
+got row:  7 5 8
+end of rows
+executQuery() with parameters
+got row:  99 5 9
+got row:  7 5 8
+end of rows
+execute() with parameters with result set returned
+got row:  99 5 9
+got row:  7 5 8
+end of rows
+test different data types for input parameters of a Prepared Statement
+Update count is: 0
+Update count is: 1
+test setObject on different data types for input  parameters of a Prepared Statement
+Update count is: 1
+test setNull on different data types for input  parameters of a Prepared Statement
+Update count is: 1
+got row:   1 2 3 4 5.0 6.0 7.0 88.88 99.100 column11string       column11vcstring column12lvcstring 0123456789abcdef10111213202020 0123456789abcdef10111213 0123456789abcdef10111213 xxxxxxFILTERED-TIMESTAMPxxxxx-04-12 11:44:30.0
+Timestamp match!
+got row:   1 2 3 4 5.0 6.0 7.0 88.88 99.100 column10string       column11vcstring column12lvcstring 0123456789abcdef10111213202020 0123456789abcdef10111213 0123456789abcdef10111213 xxxxxxFILTERED-TIMESTAMPxxxxx-04-12 11:44:30.0
+Timestamp match!
+got row:   0 0 0 0 0.0 0.0 0.0 null null null null null null null null null null xxxxxxFILTERED-TIMESTAMPxxxxx
+After first Timestamp!
+end of rows
+SQLState: 07000 message: At least one parameter to the current statement is uninitialized.
+SQLState: 07000 message: At least one parameter to the current statement is uninitialized.
+insertTab ( bigtab,50)
+insertTab ( bigtab,200)
+insertTab ( bigtab,300)
+insertTab ( bigtab,500)
+insertTab ( bigtab,1000)
+select * from bigtab
+Col # 500 = null  Col 1000 = null
+Col # 500 = null  Col 1000 = null
+Col # 500 = null  Col 1000 = null
+Col # 500 = 500  Col 1000 = null
+Col # 500 = 500  Col 1000 = 1000
+Insert too many Columns
+insertTab ( bigtab,1001)
+SQLState: 42X14 message: 'C1001' is not a column in table or VTI 'APP.BIGTAB'.
+Expected Syntax error 
+insertTab ( bigtab,0)
+SQLState: 42X01 message: Syntax error: Encountered "<EOF>" at line 1, column 32.
+Expected Table does not exist 
+insertTab ( wrongtab,1000)
+SQLState: 42X05 message: Table 'WRONGTAB' does not exist.
+Minimum BigDecimal Value: 0.000000000000001
+Prepared Statement String: update Numeric_Tab set NULL_VAL=?
+Select NULL_VAL from Numeric_Tab
+Returned BigDecimal Value after Updation: 0.000000000000001
+Value returned from ctssql.stmt: 0.000000000000001
+setObject Method sets the designated parameter with the Object
+Negative test setString with Invalid Timestamp:20
+SQLState: 22007 message: The syntax of the string representation of a datetime value is incorrect.
+CLOB result.
+GOT ROW: yayorsomething
+BLOB result.
+GOT ROW: 003100300031003000310030003000300031003100300031
+csPrepStmt Test Ends

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/dataSourcePermissions_net.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/dataSourcePermissions_net.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/dataSourcePermissions_net.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,38 @@
+EXPECTED SHUTDOWN DB2 SQL error: SQLCODE: -1, SQLSTATE: 08006, SQLERRMC: wombat08006.DDatabase 'wombat' shutdown.((server log XXX)
+Checking authentication with DriverManager
+EXPECTED CONNFAIL null userid not supported
+EXPECTED CONNFAIL Connection authorization failure occurred.  Reason: userid invalid.
+DS connected as EDWARD
+DS connected as FRANCES
+Checking connections with DataSource
+EXPECTED SHUTDOWN DB2 SQL error: SQLCODE: -1, SQLSTATE: 08006, SQLERRMC: wombat08006.DDatabase 'wombat' shutdown.((server log XXX)
+data source with no default user
+EXPECTED CONNFAIL null userid not supported
+EXPECTED CONNFAIL Connection authorization failure occurred.  Reason: userid invalid.
+DS connected as EDWARD
+DS connected as FRANCES
+EXPECTED SHUTDOWN DB2 SQL error: SQLCODE: -1, SQLSTATE: 08006, SQLERRMC: wombat08006.DDatabase 'wombat' shutdown.((server log XXX)
+data source with invalid default user
+EXPECTED CONNFAIL Connection authorization failure occurred.  Reason: userid invalid.
+DS connected as FRANCES
+EXPECTED SHUTDOWN DB2 SQL error: SQLCODE: -1, SQLSTATE: 08006, SQLERRMC: wombat08006.DDatabase 'wombat' shutdown.((server log XXX)
+data source with valid default user
+DS connected as EDWARD
+DS connected as FRANCES
+EXPECTED SHUTDOWN DB2 SQL error: SQLCODE: -1, SQLSTATE: 08006, SQLERRMC: wombat08006.DDatabase 'wombat' shutdown.((server log XXX)
+Checking connections with ConnectionPoolDataSource
+ConnectionPoolDataSource with no default user
+EXPECTED CONNFAIL null userid not supported
+EXPECTED CONNFAIL Connection authorization failure occurred.  Reason: userid invalid.
+CP connected as EDWARD
+CP connected as FRANCES
+EXPECTED SHUTDOWN DB2 SQL error: SQLCODE: -1, SQLSTATE: 08006, SQLERRMC: wombat08006.DDatabase 'wombat' shutdown.((server log XXX)
+ConnectionPoolDataSource with invalid default user
+EXPECTED CONNFAIL Connection authorization failure occurred.  Reason: userid invalid.
+CP connected as FRANCES
+EXPECTED SHUTDOWN DB2 SQL error: SQLCODE: -1, SQLSTATE: 08006, SQLERRMC: wombat08006.DDatabase 'wombat' shutdown.((server log XXX)
+ConnectionPoolDataSource with valid default user
+CP connected as EDWARD
+CP connected as FRANCES
+EXPECTED SHUTDOWN DB2 SQL error: SQLCODE: -1, SQLSTATE: 08006, SQLERRMC: wombat08006.DDatabase 'wombat' shutdown.((server log XXX)
+Completed dataSourcePermissions_net

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/dbMetaDataJdbc30.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/dbMetaDataJdbc30.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/dbMetaDataJdbc30.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,31 @@
+Test dbMetaDataJdbc30 starting
+JDBC Driver 'IBM DB2 JDBC Universal Driver Architecture', version (EXPECTED VERSION)
+The URL is: jdbc:derby:net://localhost:1527/wombat;create=true
+supportsSavepoints() : true
+supportsNamedParameters() : false
+supportsMultipleOpenResults() : true
+supportsGetGeneratedKeys() : false
+supportsResultSetHoldability(HOLD_CURSORS_OVER_COMMIT) : true
+supportsResultSetHoldability(CLOSE_CURSORS_AT_COMMIT) : true
+getJDBCMajorVersion() : 3
+getJDBCMinorVersion() : 0
+getSQLStateType() : 2
+getResultSetHoldability() : 1
+getDatabaseMajorVersion() : 10
+getDatabaseMinorVersion() : 1
+supportsStatementPooling() : false
+getMaxColumnNameLength() = 30
+getMaxCursorNameLength() = 18
+getMaxSchemaNameLength() = 30
+getMaxProcedureNameLength() = 128
+getMaxTableNameLength() = 128
+getMaxUserNameLength() = 30
+getSuperTypes() with null :
+EXPECTED: Not Implemented Exception or empty  ResultSet
+getSuperTables() with null :
+EXPECTED: Not Implemented Exception or empty  ResultSet
+getAttributes() with null :
+EXPECTED: Not Implemented Exception or empty  ResultSet
+locatorsUpdateCopy(): 
+Returned: true
+Test dbMetaDataJdbc30 finished

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/dblook_test_net.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/dblook_test_net.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/dblook_test_net.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,1790 @@
+-----= Start dblook (net server) Test. =-
+Creating database 'wombat' from ddl script 'dblook_makeDB.sql'
+-----
+*******************************************
+Dumping DDL for all objects, using
+Network Server:
+*******************************************
+File dblook.log was empty.
+Creating database 'wombat_new' from ddl script 'wombat.sql'
+Dumping system tables for 'wombat_new'
+-----=================---------------
+System Tables for: wombat_new
+-----=================---------------
+========== SYSALIASES ==========
+<systemid>
+"proc "In Quotes with spaces"
+APP
+org.apache.derbyTesting.functionTests.util.ProcedureTest
+P
+P
+false
+inoutparams3(INOUT A CHAR(10),IN B INTEGER) LANGUAGE JAVA PARAMETER STYLE JAVA MODIFIES SQL DATA DYNAMIC RESULT SETS 2
+<systemname>
+-----
+<systemid>
+OP4
+BAR
+org.apache.derbyTesting.functionTests.util.ProcedureTest
+P
+P
+false
+inoutparams4(OUT A DECIMAL(4,2),IN B VARCHAR(255)) LANGUAGE JAVA PARAMETER STYLE JAVA MODIFIES SQL DATA
+<systemname>
+-----
+<systemid>
+PROC1
+APP
+org.apache.derbyTesting.functionTests.util.ProcedureTest
+P
+P
+false
+inoutparams3(INOUT A CHAR(10),IN B INTEGER) LANGUAGE JAVA PARAMETER STYLE JAVA CONTAINS SQL DYNAMIC RESULT SETS 4
+<systemname>
+-----
+<systemid>
+PROC2
+Foo Bar
+org.apache.derbyTesting.functionTests.util.ProcedureTest
+P
+P
+false
+sqlControl(OUT E1 VARCHAR(128),OUT E2 VARCHAR(128),OUT E3 VARCHAR(128),OUT E4 VARCHAR(128),OUT E5 VARCHAR(128),OUT E6 VARCHAR(128),OUT E7 VARCHAR(128)) LANGUAGE JAVA PARAMETER STYLE JAVA READS SQL DATA
+<systemname>
+-----
+<systemid>
+SQQLCONTROL_1
+FOO
+org.apache.derbyTesting.functionTests.util.ProcedureTest
+P
+P
+false
+sqlControl(OUT E1 VARCHAR(128),OUT E2 VARCHAR(128),OUT E3 VARCHAR(128),OUT E4 VARCHAR(128),OUT E5 VARCHAR(128),OUT E6 VARCHAR(128),OUT E7 VARCHAR(128)) LANGUAGE JAVA PARAMETER STYLE JAVA NO SQL
+<systemname>
+-----
+<systemid>
+procTwo
+APP
+org.apache.derbyTesting.functionTests.util.ProcedureTest
+P
+P
+false
+inoutparams3(INOUT A CHAR(10),IN B INTEGER) LANGUAGE JAVA PARAMETER STYLE JAVA MODIFIES SQL DATA DYNAMIC RESULT SETS 2
+<systemname>
+-----
+========== SYSCHECKS ==========
+<systemname>
+(i > 0)
+(2)
+-----
+"ck2
+("""iq2" > 0)
+(2)
+-----
+NOTEVIL
+(vc != 'evil')
+(3)
+-----
+c"k1
+("i""q2" > 4)
+(2)
+-----
+chkOne
+(k < 0)
+(2)
+-----
+ck2"
+("iq2""" > 4)
+(2)
+-----
+========== SYSCOLUMNS ==========
+----- Columns for Tables ---
+"tquoteTwo
+"iq1
+1
+INTEGER
+null
+null
+<autoincval>
+null
+null
+-----
+"tquoteTwo
+"iq2
+2
+INTEGER
+null
+null
+<autoincval>
+null
+null
+-----
+MULTI WORD NAME
+C
+1
+CHAR(2)
+null
+null
+<autoincval>
+null
+null
+-----
+REMOVED
+X
+1
+INTEGER
+null
+null
+<autoincval>
+null
+null
+-----
+T10
+K
+2
+INTEGER NOT NULL
+null
+null
+<autoincval>
+null
+null
+-----
+T10
+UK
+3
+CHAR(3) NOT NULL
+null
+null
+<autoincval>
+null
+null
+-----
+T10
+VACH
+1
+VARCHAR(12)
+null
+null
+<autoincval>
+null
+null
+-----
+T11
+LOLA
+2
+INTEGER
+null
+null
+<autoincval>
+null
+null
+-----
+T11
+MYCHAR
+1
+CHAR(8)
+null
+null
+<autoincval>
+null
+null
+-----
+T1
+C
+2
+CHAR(8)
+null
+null
+<autoincval>
+null
+null
+-----
+T1
+C
+2
+CLOB(15)
+null
+null
+<autoincval>
+null
+null
+-----
+T1
+D
+3
+DATE
+null
+null
+<autoincval>
+null
+null
+-----
+T1
+F
+4
+DOUBLE NOT NULL
+null
+null
+<autoincval>
+null
+null
+-----
+T1
+I
+1
+INTEGER
+null
+null
+<autoincval>
+null
+null
+-----
+T1
+P1
+1
+VARCHAR(10) NOT NULL
+null
+null
+<autoincval>
+null
+null
+-----
+T2
+B
+2
+BLOB(20)
+null
+null
+<autoincval>
+null
+null
+-----
+T2
+C
+3
+CLOB(15)
+null
+null
+<autoincval>
+null
+null
+-----
+T2
+P1
+1
+VARCHAR(10)
+null
+null
+<autoincval>
+null
+null
+-----
+T3
+B
+2
+BLOB(20)
+null
+null
+<autoincval>
+null
+null
+-----
+T3
+ID
+3
+INTEGER NOT NULL
+null
+null
+<autoincval>
+2
+4
+-----
+T3
+P1
+1
+VARCHAR(10)
+'okie'
+<systemid>
+<autoincval>
+null
+null
+-----
+T4
+I
+1
+INTEGER
+2
+<systemid>
+<autoincval>
+null
+null
+-----
+T4
+J
+2
+INTEGER NOT NULL
+null
+null
+<autoincval>
+null
+null
+-----
+T4
+K
+3
+INTEGER NOT NULL
+null
+null
+<autoincval>
+1
+1
+-----
+T5
+COST
+1
+DOUBLE
+null
+null
+<autoincval>
+null
+null
+-----
+T6
+LETTER
+2
+CHAR(1)
+null
+null
+<autoincval>
+null
+null
+-----
+T6
+NUM
+1
+INTEGER
+null
+null
+<autoincval>
+null
+null
+-----
+T7
+DEUX
+2
+INTEGER
+null
+null
+<autoincval>
+null
+null
+-----
+T7
+UN
+1
+INTEGER
+null
+null
+<autoincval>
+null
+null
+-----
+T8
+FKCHAR
+2
+CHAR(5)
+null
+null
+<autoincval>
+null
+null
+-----
+T8
+SOMEINT
+1
+INTEGER NOT NULL
+null
+null
+<autoincval>
+null
+null
+-----
+T8T1T4
+C1
+1
+CHAR(4)
+'okie'
+<systemid>
+<autoincval>
+null
+null
+-----
+T8T1T4
+C2
+2
+CHAR(4)
+'doki'
+<systemid>
+<autoincval>
+null
+null
+-----
+T9
+CH
+2
+CHAR(8) NOT NULL
+null
+null
+<autoincval>
+null
+null
+-----
+T9
+FKINT
+1
+INTEGER NOT NULL
+null
+null
+<autoincval>
+null
+null
+-----
+V"3
+I
+1
+INTEGER NOT NULL
+null
+null
+<autoincval>
+null
+null
+-----
+V1
+DEE
+2
+CHAR(8)
+null
+null
+<autoincval>
+null
+null
+-----
+V1
+DOKIE
+3
+VARCHAR(10)
+null
+null
+<autoincval>
+null
+null
+-----
+V1
+DOO
+1
+INTEGER
+null
+null
+<autoincval>
+null
+null
+-----
+V1
+DUM
+1
+DATE
+null
+null
+<autoincval>
+null
+null
+-----
+V1
+DWA
+2
+CHAR(1)
+null
+null
+<autoincval>
+null
+null
+-----
+V2
+C
+2
+CLOB(15)
+null
+null
+<autoincval>
+null
+null
+-----
+V2
+P1
+1
+VARCHAR(10) NOT NULL
+null
+null
+<autoincval>
+null
+null
+-----
+X
+X
+1
+INTEGER
+null
+null
+<autoincval>
+null
+null
+-----
+tWithKeys
+C
+1
+CHAR(5) NOT NULL
+null
+null
+<autoincval>
+null
+null
+-----
+tWithKeys
+I
+2
+INTEGER
+null
+null
+<autoincval>
+null
+null
+-----
+tWithKeys
+VC
+3
+VARCHAR(10)
+null
+null
+<autoincval>
+null
+null
+-----
+tee""Hee
+N
+1
+CHAR(1) NOT NULL
+null
+null
+<autoincval>
+null
+null
+-----
+tquote"One
+i"q1
+1
+INTEGER NOT NULL
+null
+null
+<autoincval>
+null
+null
+-----
+tquote"One
+i"q2
+2
+INTEGER
+8
+<systemid>
+<autoincval>
+null
+null
+-----
+tquoteThree"
+iq1"
+1
+INTEGER NOT NULL
+null
+null
+<autoincval>
+null
+null
+-----
+tquoteThree"
+iq2"
+2
+INTEGER
+null
+null
+<autoincval>
+null
+null
+-----
+viewTwo
+LOLA
+2
+INTEGER
+null
+null
+<autoincval>
+null
+null
+-----
+viewTwo
+MYCHAR
+1
+CHAR(8)
+null
+null
+<autoincval>
+null
+null
+-----
+----- Columns for Statements ---
+========== SYSCONGLOMERATES ==========
+"Quoted"Schema"
+tee""Hee
+<systemnumber>
+<systemname>
+true
+UNIQUE BTREE (1)
+true
+<systemid>
+-----
+"Quoted"Schema"
+tee""Hee
+<systemnumber>
+Ix"5
+true
+BTREE (1 DESC)
+false
+<systemid>
+-----
+"Quoted"Schema"
+tee""Hee
+<systemnumber>
+tee""Hee
+false
+null
+false
+<systemid>
+-----
+APP
+"tquoteTwo
+<systemnumber>
+<systemname>
+true
+BTREE (1)
+true
+<systemid>
+-----
+APP
+"tquoteTwo
+<systemnumber>
+"tquoteTwo
+false
+null
+false
+<systemid>
+-----
+APP
+REMOVED
+<systemnumber>
+REMOVED
+false
+null
+false
+<systemid>
+-----
+APP
+T11
+<systemnumber>
+<systemname>
+true
+BTREE (1, 2)
+true
+<systemid>
+-----
+APP
+T11
+<systemnumber>
+T11
+false
+null
+false
+<systemid>
+-----
+APP
+T1
+<systemnumber>
+IX1
+true
+BTREE (4, 1)
+false
+<systemid>
+-----
+APP
+T1
+<systemnumber>
+T1
+false
+null
+false
+<systemid>
+-----
+APP
+T2
+<systemnumber>
+T2
+false
+null
+false
+<systemid>
+-----
+APP
+T8T1T4
+<systemnumber>
+T8T1T4
+false
+null
+false
+<systemid>
+-----
+APP
+X
+<systemnumber>
+X
+false
+null
+false
+<systemid>
+-----
+APP
+tquote"One
+<systemnumber>
+<systemname>
+true
+UNIQUE BTREE (1)
+true
+<systemid>
+-----
+APP
+tquote"One
+<systemnumber>
+tquote"One
+false
+null
+false
+<systemid>
+-----
+APP
+tquoteThree"
+<systemnumber>
+<systemname>
+true
+UNIQUE BTREE (1)
+true
+<systemid>
+-----
+APP
+tquoteThree"
+<systemnumber>
+tquoteThree"
+false
+null
+false
+<systemid>
+-----
+BAR
+MULTI WORD NAME
+<systemnumber>
+MULTI WORD NAME
+false
+null
+false
+<systemid>
+-----
+BAR
+T1
+<systemnumber>
+<systemname>
+true
+UNIQUE BTREE (1)
+true
+<systemid>
+-----
+BAR
+T1
+<systemnumber>
+T1
+false
+null
+false
+<systemid>
+-----
+BAR
+T3
+<systemnumber>
+IX2
+true
+BTREE (1 DESC, 3 DESC)
+false
+<systemid>
+-----
+BAR
+T3
+<systemnumber>
+T3
+false
+null
+false
+<systemid>
+-----
+BAR
+T4
+<systemnumber>
+IX4
+true
+UNIQUE BTREE (3)
+false
+<systemid>
+-----
+BAR
+T4
+<systemnumber>
+T4
+false
+null
+false
+<systemid>
+-----
+BAR
+T8
+<systemnumber>
+<systemname>
+true
+BTREE (2)
+true
+<systemid>
+-----
+BAR
+T8
+<systemnumber>
+<systemname>
+true
+UNIQUE BTREE (1)
+true
+<systemid>
+-----
+BAR
+T8
+<systemnumber>
+T8
+false
+null
+false
+<systemid>
+-----
+BAR
+tWithKeys
+<systemnumber>
+<systemname>
+true
+UNIQUE BTREE (1)
+true
+<systemid>
+-----
+BAR
+tWithKeys
+<systemnumber>
+IX3
+true
+BTREE (1 DESC)
+false
+<systemid>
+-----
+BAR
+tWithKeys
+<systemnumber>
+tWithKeys
+false
+null
+false
+<systemid>
+-----
+FOO
+T10
+<systemnumber>
+<systemname>
+true
+UNIQUE BTREE (2)
+true
+<systemid>
+-----
+FOO
+T10
+<systemnumber>
+<systemname>
+true
+UNIQUE BTREE (3)
+true
+<systemid>
+-----
+FOO
+T10
+<systemnumber>
+T10
+false
+null
+false
+<systemid>
+-----
+FOO
+T9
+<systemnumber>
+<systemname>
+true
+BTREE (1)
+true
+<systemid>
+-----
+FOO
+T9
+<systemnumber>
+<systemname>
+true
+UNIQUE BTREE (2, 1)
+true
+<systemid>
+-----
+FOO
+T9
+<systemnumber>
+T9
+false
+null
+false
+<systemid>
+-----
+Foo Bar
+T5
+<systemnumber>
+CostIndex
+true
+UNIQUE BTREE (1)
+false
+<systemid>
+-----
+Foo Bar
+T5
+<systemnumber>
+T5
+false
+null
+false
+<systemid>
+-----
+Foo Bar
+T6
+<systemnumber>
+T6
+false
+null
+false
+<systemid>
+-----
+Foo Bar
+T7
+<systemnumber>
+T7
+false
+null
+false
+<systemid>
+-----
+========== SYSCONSTRAINTS ==========
+"ck2
+"tquoteTwo
+"ck2
+C
+APP
+E
+0
+-----
+"effkay1
+"tquoteTwo
+"effkay1
+F
+APP
+E
+0
+-----
+<systemname>
+T10
+<systemname>
+P
+FOO
+E
+1
+-----
+<systemname>
+T10
+<systemname>
+U
+FOO
+E
+0
+-----
+<systemname>
+T8
+<systemname>
+F
+BAR
+E
+0
+-----
+<systemname>
+T8
+<systemname>
+P
+BAR
+E
+0
+-----
+<systemname>
+tWithKeys
+<systemname>
+C
+BAR
+E
+0
+-----
+<systemname>
+tWithKeys
+<systemname>
+P
+BAR
+E
+1
+-----
+NOTEVIL
+tWithKeys
+NOTEVIL
+C
+BAR
+E
+0
+-----
+<systemname>
+T11
+<systemname>
+F
+APP
+E
+0
+-----
+UNQ
+T1
+UNQ
+U
+BAR
+E
+0
+-----
+c"k1
+tquote"One
+c"k1
+C
+APP
+E
+0
+-----
+chkOne
+T10
+chkOne
+C
+FOO
+E
+0
+-----
+ck2"
+tquoteThree"
+ck2"
+C
+APP
+E
+0
+-----
+fkOne
+T9
+fkOne
+F
+FOO
+E
+0
+-----
+pee"kay1
+tquote"One
+pee"kay1
+P
+APP
+E
+1
+-----
+pkTwo
+T9
+pkTwo
+P
+FOO
+E
+1
+-----
+<systemname>
+tee""Hee
+<systemname>
+P
+"Quoted"Schema"
+E
+0
+-----
+unqkay1"
+tquoteThree"
+unqkay1"
+U
+APP
+E
+0
+-----
+========== SYSDEPENDS ==========
+"effkay1
+<Constraint>APP."effkay1 -> <Constraint>APP.pee"kay1
+Constraint
+pee"kay1
+Constraint
+-----
+<systemname>
+<Constraint>APP.<sysname> -> <Constraint>FOO.pkTwo
+Constraint
+pkTwo
+Constraint
+-----
+<systemname>
+<Constraint>BAR.<sysname> -> <Constraint>BAR.<sysname>
+Constraint
+<systemname>
+Constraint
+-----
+fkOne
+<Constraint>FOO.fkOne -> <Constraint>FOO.<sysname>
+Constraint
+<systemname>
+Constraint
+-----
+<systemid>
+<StoredPreparedStatement>"Quoted"Schema".<sysname> -> <Table>"Quoted"Schema".tee""Hee
+StoredPreparedStatement
+tee""Hee
+Table
+-----
+<systemid>
+<StoredPreparedStatement>APP.<sysname> -> <ColumnsInTable>BAR.T4
+StoredPreparedStatement
+T4
+ColumnsInTable
+-----
+<systemid>
+<StoredPreparedStatement>APP.<sysname> -> <ColumnsInTable>BAR.tWithKeys
+StoredPreparedStatement
+tWithKeys
+ColumnsInTable
+-----
+<systemid>
+<StoredPreparedStatement>APP.<sysname> -> <Conglomerate>APP.<sysname>
+StoredPreparedStatement
+<systemid>
+Conglomerate
+-----
+<systemid>
+<StoredPreparedStatement>APP.<sysname> -> <Conglomerate>BAR.<sysname>
+StoredPreparedStatement
+<systemid>
+Conglomerate
+-----
+<systemid>
+<StoredPreparedStatement>APP.<sysname> -> <Conglomerate>BAR.IX3
+StoredPreparedStatement
+<systemid>
+Conglomerate
+-----
+<systemid>
+<StoredPreparedStatement>APP.<sysname> -> <Table>APP.REMOVED
+StoredPreparedStatement
+REMOVED
+Table
+-----
+<systemid>
+<StoredPreparedStatement>APP.<sysname> -> <Table>APP.X
+StoredPreparedStatement
+X
+Table
+-----
+<systemid>
+<StoredPreparedStatement>APP.<sysname> -> <Table>BAR.T3
+StoredPreparedStatement
+T3
+Table
+-----
+<systemid>
+<StoredPreparedStatement>APP.<sysname> -> <Table>BAR.tWithKeys
+StoredPreparedStatement
+tWithKeys
+Table
+-----
+<systemid>
+<StoredPreparedStatement>BAR.<sysname> -> <Table>BAR.T8
+StoredPreparedStatement
+T8
+Table
+-----
+<systemid>
+<StoredPreparedStatement>Foo Bar.<sysname> -> <Table>BAR.T1
+StoredPreparedStatement
+T1
+Table
+-----
+<systemid>
+<Trigger>"Quoted"Schema"."trig"One" -> <StoredPreparedStatement>"Quoted"Schema".<sysname>
+Trigger
+<systemid>
+StoredPreparedStatement
+-----
+<systemid>
+<Trigger>"Quoted"Schema"."trig"One" -> <Table>"Quoted"Schema".tee""Hee
+Trigger
+tee""Hee
+Table
+-----
+<systemid>
+<Trigger>APP.TRIGFOUR -> <StoredPreparedStatement>APP.<sysname>
+Trigger
+<systemid>
+StoredPreparedStatement
+-----
+<systemid>
+<Trigger>APP.TRIGFOUR -> <Table>APP.X
+Trigger
+X
+Table
+-----
+<systemid>
+<Trigger>APP.TRIGONE -> <StoredPreparedStatement>APP.<sysname>
+Trigger
+<systemid>
+StoredPreparedStatement
+-----
+<systemid>
+<Trigger>APP.TRIGONE -> <Table>BAR.T3
+Trigger
+T3
+Table
+-----
+<systemid>
+<Trigger>APP.TrigThree -> <StoredPreparedStatement>APP.<sysname>
+Trigger
+<systemid>
+StoredPreparedStatement
+-----
+<systemid>
+<Trigger>APP.TrigThree -> <Table>BAR.tWithKeys
+Trigger
+tWithKeys
+Table
+-----
+<systemid>
+<Trigger>BAR.REFTRIG -> <StoredPreparedStatement>BAR.<sysname>
+Trigger
+<systemid>
+StoredPreparedStatement
+-----
+<systemid>
+<Trigger>BAR.REFTRIG -> <Table>BAR.T8
+Trigger
+T8
+Table
+-----
+<systemid>
+<Trigger>Foo Bar.TRIG2 -> <StoredPreparedStatement>Foo Bar.<sysname>
+Trigger
+<systemid>
+StoredPreparedStatement
+-----
+<systemid>
+<Trigger>Foo Bar.TRIG2 -> <Table>BAR.T1
+Trigger
+T1
+Table
+-----
+V1
+<View>APP.V1 -> <ColumnsInTable>APP.T1
+View
+T1
+ColumnsInTable
+-----
+V1
+<View>APP.V1 -> <ColumnsInTable>BAR.T3
+View
+T3
+ColumnsInTable
+-----
+V2
+<View>APP.V2 -> <ColumnsInTable>BAR.T1
+View
+T1
+ColumnsInTable
+-----
+viewTwo
+<View>BAR.viewTwo -> <ColumnsInTable>APP.T11
+View
+T11
+ColumnsInTable
+-----
+V1
+<View>FOO.V1 -> <ColumnsInTable>Foo Bar.T6
+View
+T6
+ColumnsInTable
+-----
+========== SYSFILES ==========
+<systemid>
+FOO
+FOOJAR
+<systemnumber>
+-----
+========== SYSFOREIGNKEYS ==========
+<systemname>
+<systemid>
+<systemname>
+U
+R
+-----
+"effkay1
+<systemid>
+pee"kay1
+R
+R
+-----
+fkOne
+<systemid>
+<systemname>
+R
+S
+-----
+<systemname>
+<systemid>
+pkTwo
+R
+R
+-----
+========== SYSKEYS ==========
+<systemname>
+<systemid>
+-----
+<systemname>
+<systemid>
+-----
+<systemname>
+<systemid>
+-----
+<systemname>
+<systemid>
+-----
+<systemname>
+<systemid>
+-----
+UNQ
+<systemid>
+-----
+pee"kay1
+<systemid>
+-----
+pkTwo
+<systemid>
+-----
+unqkay1"
+<systemid>
+-----
+========== SYSSCHEMAS ==========
+"Quoted"Schema"
+"Quoted"Schema"
+APP
+-----
+APP
+APP
+APP
+-----
+BAR
+BAR
+APP
+-----
+FOO
+FOO
+APP
+-----
+Foo Bar
+Foo Bar
+APP
+-----
+========== SYSSTATEMENTS ==========
+<systemid>
+<systemname>
+APP
+T
+<validityflag>
+insert into removed select * from new org.apache.derby.catalog.TriggerOldTransitionRows() OLD  where x not in (select x from new org.apache.derby.catalog.TriggerNewTransitionRows() NEW  where x < 10)
+<systemid>
+APP
+null
+-----
+<systemid>
+<systemname>
+APP
+T
+<validityflag>
+select c from bar."tWithKeys"
+<systemid>
+APP
+null
+-----
+<systemid>
+<systemname>
+APP
+T
+<validityflag>
+update bar.t4 set j=8 where i=2
+<systemid>
+APP
+null
+-----
+<systemid>
+<systemname>
+"Quoted"Schema"
+T
+<validityflag>
+values(8)
+<systemid>
+APP
+null
+-----
+<systemid>
+<systemname>
+BAR
+T
+<validityflag>
+select * from new org.apache.derby.catalog.TriggerOldTransitionRows() OLDTABLE 
+<systemid>
+APP
+null
+-----
+<systemid>
+<systemname>
+Foo Bar
+T
+<validityflag>
+values (1), (2)
+<systemid>
+APP
+null
+-----
+========== SYSTABLES ==========
+"tquoteTwo
+"tquoteTwo
+T
+APP
+R
+-----
+MULTI WORD NAME
+MULTI WORD NAME
+T
+BAR
+R
+-----
+REMOVED
+REMOVED
+T
+APP
+R
+-----
+T10
+T10
+T
+FOO
+R
+-----
+T11
+T11
+T
+APP
+R
+-----
+T1
+T1
+T
+APP
+R
+-----
+T1
+T1
+T
+BAR
+R
+-----
+T2
+T2
+T
+APP
+R
+-----
+T3
+T3
+T
+BAR
+R
+-----
+T4
+T4
+T
+BAR
+R
+-----
+T5
+T5
+T
+Foo Bar
+R
+-----
+T6
+T6
+T
+Foo Bar
+R
+-----
+T7
+T7
+T
+Foo Bar
+R
+-----
+T8T1T4
+T8T1T4
+T
+APP
+R
+-----
+T8
+T8
+T
+BAR
+R
+-----
+T9
+T9
+T
+FOO
+R
+-----
+V"3
+V"3
+V
+APP
+R
+-----
+V1
+V1
+V
+APP
+R
+-----
+V1
+V1
+V
+FOO
+R
+-----
+V2
+V2
+V
+APP
+R
+-----
+X
+X
+T
+APP
+R
+-----
+tWithKeys
+tWithKeys
+T
+BAR
+R
+-----
+tee""Hee
+tee""Hee
+T
+"Quoted"Schema"
+R
+-----
+tquote"One
+tquote"One
+T
+APP
+R
+-----
+tquoteThree"
+tquoteThree"
+T
+APP
+R
+-----
+viewTwo
+viewTwo
+V
+BAR
+R
+-----
+========== SYSTRIGGERS ==========
+<systemid>
+"trig"One"
+"Quoted"Schema"
+<systemid>
+I
+A
+R
+E
+tee""Hee
+null
+<systemid>
+null
+values(8)
+false
+false
+null
+null
+-----
+<systemid>
+REFTRIG
+BAR
+<systemid>
+D
+A
+S
+E
+T8
+null
+<systemid>
+null
+select * from oldtable
+true
+false
+OLDTABLE
+null
+-----
+<systemid>
+TRIG2
+Foo Bar
+<systemid>
+D
+B
+S
+E
+T1
+null
+<systemid>
+null
+values (1), (2)
+false
+false
+null
+null
+-----
+<systemid>
+TRIGFOUR
+APP
+<systemid>
+U
+A
+S
+E
+X
+null
+<systemid>
+(1)
+insert into removed select * from old where x not in (select x from new where x < 10)
+true
+true
+OLD
+NEW
+-----
+<systemid>
+TRIGONE
+APP
+<systemid>
+I
+A
+R
+E
+T3
+null
+<systemid>
+null
+update bar.t4 set j=8 where i=2
+false
+false
+null
+null
+-----
+<systemid>
+TrigThree
+APP
+<systemid>
+U
+A
+R
+E
+tWithKeys
+null
+<systemid>
+(1,2)
+select c from bar."tWithKeys"
+false
+false
+null
+null
+-----
+========== SYSVIEWS ==========
+V"3
+create view "V""3"(i) as values (8), (28), (78)
+N
+APP
+-----
+V1
+create view v1 (dum, dee, dokie) as select a.d, a.c, b.p1 from t1 as a, bar.t3 as b
+N
+APP
+-----
+V1
+create view v1 (doo, dwa) as select num, letter from "Foo Bar".t6
+N
+FOO
+-----
+V2
+create view v2 as select * from bar.t1
+N
+APP
+-----
+viewTwo
+create view bar."viewTwo" as select * from app.t11
+N
+APP
+-----
+Database 'wombat_new' deleted.
+[ Done. ]

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/forupdate.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/forupdate.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/forupdate.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,514 @@
+ij> --
+----- tests for the for update/read only and updatable specifications parts
+----- of cursors and positioned statements.
+-----
+----- for positioned update/delete see positionedUpdate.jsql and
+----- positionedDelete.jsql.
+-----
+----- note that comments that begin '-- .' are test cases from the test plan
+----- assumed available in queries at time of initial writing:
+----- subqueries.  Additional tests will be needed once we have:
+----- union (all), order by, group by, having, aggregates, distinct, views ...
+----- setup some tables for use in the tests
+create table t1 ( i int, v varchar(10), d double precision, t time );
+0 rows inserted/updated/deleted
+ij> create table t2 ( s smallint, c char(10), r real, ts timestamp );
+0 rows inserted/updated/deleted
+ij> -- we need to turn autocommit off so that cursors aren't closed before
+----- the positioned statements against them.
+autocommit off;
+ij> -- . leave out some keywords (for, update, read, only)
+----- results: all of these should get syntax errors for missing/inappropriate keywords
+select i, v from t1 for;
+ERROR 42X01: Syntax error: Encountered "<EOF>" at line 1, column 23.
+ij> select i, v from t1 for read;
+ERROR 42X01: Syntax error: Encountered "<EOF>" at line 1, column 28.
+ij> select i, v from t1 for only;
+ERROR 42X01: Syntax error: Encountered "only" at line 1, column 25.
+ij> select i, v from t1 for update of;
+ERROR 42X01: Syntax error: Encountered "<EOF>" at line 1, column 33.
+ij> select i, v from t1 update;
+ERROR 42X01: Syntax error: Encountered "update" at line 1, column 21.
+ij> select i, v from t1 only;
+ERROR 42X01: Syntax error: Encountered "only" at line 1, column 21.
+ij> select i, v from t1 read;
+ERROR 42X01: Syntax error: Encountered "read" at line 1, column 21.
+ij> -- . for update no columns listed
+----- should not complain
+select i, v from t1 for update;
+I |V         
+-----
+ij> -- . implicit update test for read only spec
+----- this will end up being read only; we know because the delete is refused
+----- with a 'cursor not updatable' message
+get cursor c as 'select i, v from t1, t2';
+ij> delete from t1 where current of c;
+ERROR 42X23: Cursor SQL_CURSH200C1 is not updatable.
+ij> --  cursor with same name already exists
+get cursor c as 'select i, v from t1, t2';
+ERROR (no SQLState): Duplicate cursor names are not allowed.
+ij> close c;
+ij> -- . implicit update test for updatable spec
+----- this will end up being read only; we know because the delete is refused
+get cursor c1 as 'select i, v from t1 where i is not null';
+ij> next c1;
+No current row
+ij> -- the delete will get a 'cursor not updatable' execution error, but won't get
+----- a compile time error
+delete from t1 where current of c1;
+ERROR (no SQLState): Invalid cursor name "C1" in the Update/Delete statement.
+ij> close c1;
+ij> -- . read only for read only cursor spec
+----- we know because the delete is refused with a 'cursor not updatable' message
+get cursor c2 as 'select i, v from t1, t2 for read only';
+ij> delete from t1 where current of c2;
+ERROR 42X23: Cursor SQL_CURSH200C1 is not updatable.
+ij> close c2;
+ij> -- . read only for updatable cursor spec
+----- we know because the delete is refused with a 'cursor not updatable' message
+get cursor c3 as 'select i, v from t1 where i is not null for read only';
+ij> delete from t1 where current of c3;
+ERROR 42X23: Cursor SQL_CURSH200C1 is not updatable.
+ij> close c3;
+ij> -- . for update col not in select list
+----- this is allowed:
+select i, v from t1 for update of t;
+I |V         
+-----
+ij> -- . for update col in select list
+----- this is allowed:
+select i, v from t1 for update of i;
+I |V         
+-----
+ij> -- . for update col not in sel list or in table
+----- this gets a 'no such column' error
+select i, v from t1 for update of g;
+ERROR 42X04: Column 'G' is not in any table in the FROM list or it appears within a join specification and is outside the scope of the join specification or it appears in a HAVING clause and is not in the GROUP BY list.  If this is a CREATE or ALTER TABLE statement then 'G' is not a column in the target table.
+ij> -- . for update col in select not in table (generated col)
+----- this gets a 'no such column' error
+select i+10 as iPlus10, v from t1 for update of iPlus10;
+ERROR 42X04: Column 'IPLUS10' is not in any table in the FROM list or it appears within a join specification and is outside the scope of the join specification or it appears in a HAVING clause and is not in the GROUP BY list.  If this is a CREATE or ALTER TABLE statement then 'IPLUS10' is not a column in the target table.
+ij> -- . for update on read only spec, variety of reasons 
+----- these will get cursor not updatable errors:
+----- join is not updatable
+select i from t1, t2 for update;
+ERROR 42Y90: FOR UPDATE is not permitted on this type of statement.
+ij> -- no subqueries are updatable
+select i from t1 where i=(select i from t1) for update;
+ERROR 42Y90: FOR UPDATE is not permitted on this type of statement.
+ij> select i from t1 where i in (select i from t1) for update;
+ERROR 42Y90: FOR UPDATE is not permitted on this type of statement.
+ij> select i from t1 where exists (select i from t1) for update;
+ERROR 42Y90: FOR UPDATE is not permitted on this type of statement.
+ij> select i from t1 where exists (select s from t2) for update;
+ERROR 42Y90: FOR UPDATE is not permitted on this type of statement.
+ij> select i from t1 where exists (select s from t2 where i=s) for update;
+ERROR 42Y90: FOR UPDATE is not permitted on this type of statement.
+ij> -- note subquery in select expr is not updatable
+select (select s from t2) from t1 where exists (select i from t1) for update;
+ERROR 42Y90: FOR UPDATE is not permitted on this type of statement.
+ij> select (select s from t2 where i=s) from t1 where exists (select i from t1) for update;
+ERROR 42Y90: FOR UPDATE is not permitted on this type of statement.
+ij> select * from (select i, d from t1) a for update;
+ERROR 42Y90: FOR UPDATE is not permitted on this type of statement.
+ij> select * from (select i+10, d from t1) a for update;
+ERROR 42Y90: FOR UPDATE is not permitted on this type of statement.
+ij> -- constant table not updatable
+select * from (values (1, 2, 3)) a for update;
+ERROR 42Y90: FOR UPDATE is not permitted on this type of statement.
+ij> values (1, 2, 3) for update;
+ERROR 42Y90: FOR UPDATE is not permitted on this type of statement.
+ij> -- unions are not updatable
+select * from t1 union all select * from t1 for update;
+ERROR 42Y90: FOR UPDATE is not permitted on this type of statement.
+ij> -- . table with/without correlation name
+----- the idea is that the delete is against the table name, not the correlation name
+----- we've already seen the without correlation name case in previous tests
+get cursor c4 as 'select i from t1 s1 for update';
+ij> next c4;
+No current row
+ij> -- this will get a target table mismatch error, it uses the correlation name:
+delete from s1 where current of c4;
+ERROR (no SQLState): Invalid cursor name "C4" in the Update/Delete statement.
+ij> -- this will compile and get a 'no current row' error, it uses the table name:
+delete from t1 where current of c4;
+ERROR (no SQLState): Invalid cursor name "C4" in the Update/Delete statement.
+ij> close c4;
+ij> -- . list columns in order same/different from appearance in table
+----- the columns are 'found' regardless of their order.
+----- none of these should get errors:
+select i from t1 for update of i, v, d, t;
+I          
+-----
+ij> select i from t1 for update of v, i, t, d;
+I          
+-----
+ij> -- . list some, not all, columns in table, not contiguous
+----- the columns are 'found' regardless of their order or contiguity
+----- none of these should get errors:
+select i from t1 for update of i, d;
+I          
+-----
+ij> select i from t1 for update of t, v;
+I          
+-----
+ij> select i from t1 for update of d;
+I          
+-----
+ij> -- . use column as named in as clause of select v. as named in base table
+----- the column name must be the table's column name, not the select list name
+select i as z from t1 for update of z;
+ERROR 42X04: Column 'Z' is not in any table in the FROM list or it appears within a join specification and is outside the scope of the join specification or it appears in a HAVING clause and is not in the GROUP BY list.  If this is a CREATE or ALTER TABLE statement then 'Z' is not a column in the target table.
+ij> -- . use column as named in as clause that matches underlying column name
+----- this uses the select list name which *is* an underlying column name
+----- note that the column updated is the underlying column, *not* the
+----- selected column (we can see this from the type error)
+get cursor c5 as 'select i as v from t1 for update of v';
+ij> -- i (renamed v in the select) is an integer; but v is still the
+----- varchar column, so this compiles (gets a no current row error):
+update t1 set v='hello' where current of c5;
+ERROR XCL08: Cursor 'SQL_CURSH200C1' is not on a row.
+ij> close c5;
+ij> -- . include duplicate column name
+----- expect an error:
+select i from t1 for update of i, v, v, t;
+I          
+-----
+ij> -- . try using qualified column name
+----- expect an error, only unqualified names are expected (SQL92 spec):
+select i from t1 for update of t1.v, t1.i, t1.d;
+ERROR 42X01: Syntax error: Encountered "." at line 1, column 34.
+ij> -- . for update when select list has expressions and correlation name in use,
+-----   and column is repeated
+----- this is allowed:
+select a.i+10, d, d from t1 a for update;
+1 |D |D                     
+-----
+ij> -- for update is used by applications to control locking behaviour
+----- without ever doing a positioned update. We test here to see
+----- that is some situations we can use an index even when no
+----- columns are specified in the for update case.
+create table t3 (i int not null constraint t3pk primary key, b char(10));
+0 rows inserted/updated/deleted
+ij> create index t3bi on t3(b);
+0 rows inserted/updated/deleted
+ij> insert into t3 values (1, 'hhhh'), (2, 'uuuu'), (3, 'yyyy'), (4, 'aaaa'), (5, 'jjjj'), (6, 'rrrr');
+6 rows inserted/updated/deleted
+ij> insert into t3 values (7, 'iiii'), (8, 'wwww'), (9, 'rrrr'), (10, 'cccc'), (11, 'hhhh'), (12, 'rrrr');
+6 rows inserted/updated/deleted
+ij> commit;
+ij> maximumdisplaywidth 5000;
+ij> call SYSCS_UTIL.SYSCS_SET_RUNTIMESTATISTICS(1);
+Statement executed.
+ij> select i, b from t3 FOR UPDATE;
+I |B         
+-----
+1 |hhhh      
+2 |uuuu      
+3 |yyyy      
+4 |aaaa      
+5 |jjjj      
+6 |rrrr      
+7 |iiii      
+8 |wwww      
+9 |rrrr      
+10 |cccc      
+11 |hhhh      
+12 |rrrr      
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select i, b from t3 FOR UPDATE
+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 T3 at read committed isolation level using exclusive row locking chosen by the optimizer
+Number of opens = 1
+Rows seen = 12
+Rows filtered = 0
+Fetch Size = 1
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	next time in milliseconds/row = 0
+scan information: 
+	Bit set of columns fetched=All
+	Number of columns fetched=2
+	Number of pages visited=1
+	Number of rows qualified=12
+	Number of rows visited=12
+	Scan type=heap
+	start position: 
+null	stop position: 
+null	qualifiers:
+None
+ij> commit;
+ij> prepare T3PK as 'select i, b from t3  where i = ? FOR UPDATE';
+ij> execute T3PK using 'values (7)';
+I |B         
+-----
+7 |iiii      
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select i, b from t3  where i = ? FOR UPDATE
+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: 
+Index Row to Base Row ResultSet for T3:
+Number of opens = 1
+Rows seen = 1
+Columns accessed from heap = {0, 1}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for T3 using constraint T3PK at read committed isolation level using exclusive row locking chosen by the optimizer
+	Number of opens = 1
+	Rows seen = 1
+	Rows filtered = 0
+	Fetch Size = 1
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+		next time in milliseconds/row = 0
+	scan information: 
+		Bit set of columns fetched=All
+		Number of columns fetched=2
+		Number of deleted rows visited=0
+		Number of pages visited=1
+		Number of rows qualified=1
+		Number of rows visited=1
+		Scan type=btree
+		Tree height=1
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		qualifiers:
+None
+ij> remove T3PK;
+ij> commit;
+ij> prepare T3PKFORCE as 'select i, b from t3 where i = ? FOR UPDATE';
+ij> prepare T3PK as 'select i, b from t3 where i < ? FOR UPDATE';
+ij> execute T3PK using 'values (7)';
+I |B         
+-----
+1 |hhhh      
+2 |uuuu      
+3 |yyyy      
+4 |aaaa      
+5 |jjjj      
+6 |rrrr      
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C3
+Statement Text: 
+	select i, b from t3 where i < ? FOR UPDATE
+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: 
+Index Row to Base Row ResultSet for T3:
+Number of opens = 1
+Rows seen = 6
+Columns accessed from heap = {0, 1}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for T3 using constraint T3PK at read committed isolation level using exclusive row locking chosen by the optimizer
+	Number of opens = 1
+	Rows seen = 6
+	Rows filtered = 0
+	Fetch Size = 1
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+		next time in milliseconds/row = 0
+	scan information: 
+		Bit set of columns fetched=All
+		Number of columns fetched=2
+		Number of deleted rows visited=0
+		Number of pages visited=1
+		Number of rows qualified=6
+		Number of rows visited=7
+		Scan type=btree
+		Tree height=1
+		start position: 
+	None
+		stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		qualifiers:
+None
+ij> remove T3PK;
+ij> commit;
+ij> -- non-unique index
+prepare T3BI as 'select i, b from t3  where b = ? FOR UPDATE';
+ij> execute T3BI using 'values (''cccc'')';
+I |B         
+-----
+10 |cccc      
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C3
+Statement Text: 
+	select i, b from t3  where b = ? FOR UPDATE
+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: 
+Index Row to Base Row ResultSet for T3:
+Number of opens = 1
+Rows seen = 1
+Columns accessed from heap = {0, 1}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for T3 using index T3BI at read committed isolation level using exclusive row locking chosen by the optimizer
+	Number of opens = 1
+	Rows seen = 1
+	Rows filtered = 0
+	Fetch Size = 1
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+		next time in milliseconds/row = 0
+	scan information: 
+		Bit set of columns fetched=All
+		Number of columns fetched=2
+		Number of deleted rows visited=0
+		Number of pages visited=1
+		Number of rows qualified=1
+		Number of rows visited=2
+		Scan type=btree
+		Tree height=1
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		qualifiers:
+None
+ij> remove T3BI;
+ij> commit;
+ij> prepare T3BIFORCE as 'select i, b from t3 where b = ? FOR UPDATE';
+ij> commit;
+ij> call SYSCS_UTIL.SYSCS_SET_RUNTIMESTATISTICS(0);
+Statement executed.
+ij> -- see what happens to a cursor that updates the primary key.
+----- first case - no update;
+get cursor T3C1 as 'select i,b from t3 where i = 4 for update';
+ij> next T3C1;
+I |B         
+-----
+4 |aaaa      
+ij> next T3C1;
+No current row
+ij> close T3C1;
+ij> commit;
+ij> -- second case - simple update;
+get cursor T3C1 as 'select i,b from t3 where i = 4 for update';
+ij> next T3C1;
+I |B         
+-----
+4 |aaaa      
+ij> update t3 set i = 13 where current of T3C1;
+1 row inserted/updated/deleted
+ij> next T3C1;
+No current row
+ij> close T3C1;
+ij> commit;
+ij> -- third (evil) case - update to change key value and insert a new value;
+get cursor T3C1 as 'select i,b from t3 where i = 6 for update';
+ij> next T3C1;
+I |B         
+-----
+6 |rrrr      
+ij> update t3 set i = 14 where current of T3C1;
+1 row inserted/updated/deleted
+ij> insert into t3 values (6, 'new!');
+1 row inserted/updated/deleted
+ij> -- We will not see the newly inserted row because we are now using index scan on the
+----- updateable cursor and we already get a row with that key from the unique index.
+----- We would get the new row if the index were not unique.  Beetle 3865.
+next T3C1;
+No current row
+ij> close T3C1;
+ij> commit;
+ij> -- reset autocomiit
+autocommit on;
+ij> -- drop the tables
+drop table t1;
+0 rows inserted/updated/deleted
+ij> drop table t2;
+0 rows inserted/updated/deleted
+ij> -- bug 5643
+----- JCC throws NPE when trying to execute a cursor after the resultset is closed
+autocommit off;
+ij> create table t1 (c1 int);
+0 rows inserted/updated/deleted
+ij> insert into t1 (c1) values (1),(2),(3);
+3 rows inserted/updated/deleted
+ij> get cursor curs1 as 'select * from t1 for update of c1';
+ij> prepare curs1 as 'update t1 set c1=c1 where current of curs1';
+ij> next curs1;
+C1         
+-----
+1          
+ij> close curs1;
+ij> execute curs1;
+ERROR (no SQLState): ResultSet for cursor CURS1 is closed.
+ij> -- clean up
+drop table t1;
+0 rows inserted/updated/deleted
+ij> 

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/getCurConnJdbc20.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/getCurConnJdbc20.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/getCurConnJdbc20.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,22 @@
+ij> -- test getCurConnJdbc20
+----- this test will get run under jdk12 only. If run under jdk11x, will get an exception like
+----- following for call to newToJdbc20Method
+----- ERROR 38000: The exception 'java.lang.NoSuchMethodError: java.sql.Connection: method 
+----- createStatement(II)Ljava/sql/Statement; not found' was thrown while evaluating an expression.
+----- method alias and table used later
+create procedure newToJdbc20Method() PARAMETER STYLE JAVA LANGUAGE JAVA EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.Jdbc20Test.newToJdbc20Method';
+0 rows inserted/updated/deleted
+ij> create table T (a int NOT NULL primary key);
+0 rows inserted/updated/deleted
+ij> insert into T values (1);
+1 row inserted/updated/deleted
+ij> -- now lets try a variety of errors
+call newToJdbc20Method();
+Statement executed.
+ij> ------------------------------------------------------------
+----- drop the table
+drop table T;
+0 rows inserted/updated/deleted
+ij> drop procedure newToJdbc20Method;
+0 rows inserted/updated/deleted
+ij> 

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/holdCursorExternalSortJDBC30.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/holdCursorExternalSortJDBC30.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/holdCursorExternalSortJDBC30.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,345 @@
+ij> ------------------------------------------------------------------------------
+----- TEST CASES SPECIFIC TO STORE IMPLEMENTATION OF HOLD CURSOR (external sort):
+----- overview:
+-----    TEST  0: test hold cursor with external sort (order by).
+-----    TEST  1: basic heap  scan tests (multiple rows)
+-----    TEST  2: basic btree scan tests (zero rows/update nonkey field)
+-----    TEST  3: basic btree scan tests (multiple rows/update nonkey field)
+-----    TEST  4: basic btree scan tests (zero rows/read only/no group fetch)
+-----    TEST  5: basic btree scan tests (multiple rows/read only/no group fetch)
+-----    TEST  6: basic tests for cursors with order by
+-----    TEST  7: test of hold cursor code in DistinctScalarAggregateResultSet.java
+-----    TEST  8: test of hold cursor code in GroupedAggregateResultSet.java
+-----    TEST  9: test scan positioned on a row which has been purged.
+-----    TEST 10: test scan positioned on a page which has been purged
+-----
+-----
+-----
+-----    TEST  0: test hold cursor with external sort (order by).
+-----     Cutover to external sort has been set to 4 rows by the test property 
+-----     file so with 10 rows we get a 1 level external sort.  This tests that
+-----     temp files will be held open across the commit if the cursor is held
+-----     open.
+-----
+run resource 'createTestProcedures.subsql';
+ij> CREATE FUNCTION  PADSTRING (DATA VARCHAR(32000), LENGTH INTEGER) RETURNS VARCHAR(32000) EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.Formatters.padString' LANGUAGE JAVA PARAMETER STYLE JAVA;
+0 rows inserted/updated/deleted
+ij> CREATE PROCEDURE WAIT_FOR_POST_COMMIT() DYNAMIC RESULT SETS 0 LANGUAGE JAVA EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.T_Access.waitForPostCommitToFinish' PARAMETER STYLE JAVA;
+0 rows inserted/updated/deleted
+ij> autocommit off;
+ij> create table foo (a int, data varchar(2000));
+0 rows inserted/updated/deleted
+ij> insert into foo values 
+    (10,PADSTRING('10',2000)), (9,PADSTRING('9',2000)), (8,PADSTRING('8',2000)), (7,PADSTRING('7',2000)), (6,PADSTRING('6',2000)), (5,PADSTRING('5',2000)), (4,PADSTRING('4',2000)), (3,PADSTRING('3',2000)), (2,PADSTRING('2',2000)), (1,PADSTRING('1',2000));
+10 rows inserted/updated/deleted
+ij> call SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.language.bulkFetchDefault', '1');
+Statement executed.
+ij> get with hold cursor test1 as 
+    'select * from foo order by a';
+ij> call SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.language.bulkFetchDefault', '16');
+Statement executed.
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+1 |1                                                                                                                              &
+ij> commit;
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+2 |2                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+3 |3                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+4 |4                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+5 |5                                                                                                                              &
+ij> commit;
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+6 |6                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+7 |7                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+8 |8                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+9 |9                                                                                                                              &
+ij> commit;
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+10 |10                                                                                                                             &
+ij> next test1;
+No current row
+ij> commit;
+ij> close test1;
+ij> -- exercise the non-held cursor path also.
+call SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.language.bulkFetchDefault', '1');
+Statement executed.
+ij> get cursor test1 as 
+    'select * from foo order by a';
+ij> call SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.language.bulkFetchDefault', '16');
+Statement executed.
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+1 |1                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+2 |2                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+3 |3                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+4 |4                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+5 |5                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+6 |6                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+7 |7                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+8 |8                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+9 |9                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+10 |10                                                                                                                             &
+ij> next test1;
+No current row
+ij> close test1;
+ij> commit;
+ij> ------------------------------------------------------------------------------
+-----    TEST  1: test hold cursor with multi-level external sort (order by).
+-----     Cutover to external sort has been set to 4 rows by the test property 
+-----     file so with 10 rows we get a 1 level external sort.  This tests that
+-----     temp files will be held open across the commit if the cursor is held
+-----     open.
+-----
+insert into foo select a + 100, data from foo;
+10 rows inserted/updated/deleted
+ij> insert into foo select a + 10,  data from foo;
+20 rows inserted/updated/deleted
+ij> insert into foo select a + 200, data from foo;
+40 rows inserted/updated/deleted
+ij> insert into foo select a + 200, data from foo;
+80 rows inserted/updated/deleted
+ij> call SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.language.bulkFetchDefault', '1');
+Statement executed.
+ij> get with hold cursor test1 as 
+    'select * from foo order by a';
+ij> call SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.language.bulkFetchDefault', '16');
+Statement executed.
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+1 |1                                                                                                                              &
+ij> commit;
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+2 |2                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+3 |3                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+4 |4                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+5 |5                                                                                                                              &
+ij> commit;
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+6 |6                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+7 |7                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+8 |8                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+9 |9                                                                                                                              &
+ij> commit;
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+10 |10                                                                                                                             &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+11 |1                                                                                                                              &
+ij> commit;
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+12 |2                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+13 |3                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+14 |4                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+15 |5                                                                                                                              &
+ij> commit;
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+16 |6                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+17 |7                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+18 |8                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+19 |9                                                                                                                              &
+ij> commit;
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+20 |10                                                                                                                             &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+101 |1                                                                                                                              &
+ij> commit;
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+102 |2                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+103 |3                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+104 |4                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+105 |5                                                                                                                              &
+ij> commit;
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+106 |6                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+107 |7                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+108 |8                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+109 |9                                                                                                                              &
+ij> commit;
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+110 |10                                                                                                                             &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+111 |1                                                                                                                              &
+ij> commit;
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+112 |2                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+113 |3                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+114 |4                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+115 |5                                                                                                                              &
+ij> commit;
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+116 |6                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+117 |7                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+118 |8                                                                                                                              &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+119 |9                                                                                                                              &
+ij> commit;
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+120 |10                                                                                                                             &
+ij> next test1;
+A |DATA                                                                                                                            
+-----
+201 |1                                                                                                                              &
+ij> commit;
+ij> close test1;
+ij> -- clean up
+drop function PADSTRING;
+0 rows inserted/updated/deleted
+ij> drop procedure WAIT_FOR_POST_COMMIT;
+0 rows inserted/updated/deleted
+ij> drop table foo;
+0 rows inserted/updated/deleted
+ij> 

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/holdCursorIJ.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/holdCursorIJ.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/holdCursorIJ.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,300 @@
+ij> -- create a table
+create table t1(c11 int, c12 int);
+0 rows inserted/updated/deleted
+ij> -- insert data into tables
+insert into t1 values(1,1);
+1 row inserted/updated/deleted
+ij> insert into t1 values(2,2);
+1 row inserted/updated/deleted
+ij> -- set autocommit off
+autocommit off;
+ij> -- first test - make sure that only cursors created with holdability true
+----- have open resultsets after commit
+----- declare 3 different kind of cursors one for each jdbc release so far
+get with nohold cursor jdk1 as 'SELECT * FROM t1';
+ij> get scroll insensitive with nohold cursor jdk2 as 'SELECT * FROM t1';
+ij> get with hold cursor jdk4 as 'SELECT * FROM t1';
+ij> -- do fetches from these cursors
+next jdk1;
+C11 |C12        
+-----
+1 |1          
+ij> next jdk2;
+C11 |C12        
+-----
+1 |1          
+ij> next jdk4;
+C11 |C12        
+-----
+1 |1          
+ij> --commit
+commit;
+ij> -- now try the fetch on cursors again after commit
+----- cursors jdk1 and jdk2 will give errors
+next jdk1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next jdk2;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next jdk4;
+C11 |C12        
+-----
+2 |2          
+ij> -- end of resultset for jdk4, but try next again
+next jdk4;
+No current row
+ij> close jdk4;
+ij> next jdk4;
+IJ ERROR: Unable to establish cursor
+ij> -- second test - make sure that all the cursors (including holdability true)
+----- have their resultsets closed after rollback.
+----- declare the cursors again, this time, try with rollback
+get with nohold cursor jdk1 as 'SELECT * FROM t1';
+ij> get scroll insensitive with nohold cursor jdk2 as 'SELECT * FROM t1';
+ij> get with hold cursor jdk4 as 'SELECT * FROM t1';
+ij> -- do fetches from these cursors
+next jdk1;
+C11 |C12        
+-----
+1 |1          
+ij> next jdk2;
+C11 |C12        
+-----
+1 |1          
+ij> next jdk4;
+C11 |C12        
+-----
+1 |1          
+ij> --rollback
+rollback;
+ij> -- now try the fetch on cursors again after rollback
+----- all the cursors will give errors
+next jdk1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next jdk2;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next jdk4;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> -- third test - Define a hold cursor on a table. Shouldn't be able to drop that
+----- table before & after commit. Have to close the cursor before table can be dropped.
+get with nohold cursor jdk1 as 'SELECT * FROM t1';
+ij> get with hold cursor jdk4 as 'SELECT * FROM t1';
+ij> next jdk1;
+C11 |C12        
+-----
+1 |1          
+ij> next jdk4;
+C11 |C12        
+-----
+1 |1          
+ij> -- wont' be able to drop table because of cursors jdk1 and jdk4
+drop table t1;
+ERROR X0X95: Operation 'DROP TABLE' cannot be performed on object 'T1' because there is an open ResultSet dependent on that object.
+ij> commit;
+ij> -- drop table still won't work because jdk4 is still open after commit
+drop table t1;
+ERROR X0X95: Operation 'DROP TABLE' cannot be performed on object 'T1' because there is an open ResultSet dependent on that object.
+ij> -- close cursor jdk4 and try then deleting the table
+close jdk4;
+ij> drop table t1;
+0 rows inserted/updated/deleted
+ij> -- recreate and populate the table for next test
+create table t1(c11 int, c12 int);
+0 rows inserted/updated/deleted
+ij> insert into t1 values(1,1);
+1 row inserted/updated/deleted
+ij> insert into t1 values(2,2);
+1 row inserted/updated/deleted
+ij> -- fourth test - try to change the isolation level while there are
+----- held cursors
+get with nohold cursor jdk1 as 'SELECT * FROM t1';
+ij> get with hold cursor jdk4 as 'SELECT * FROM t1';
+ij> next jdk1;
+C11 |C12        
+-----
+1 |1          
+ij> next jdk4;
+C11 |C12        
+-----
+1 |1          
+ij> -- try to change the isolation level. will give error because of jdk1 and jdk4
+set current isolation RR;
+ERROR X0X03: Invalid transaction state - held cursor requires same isolation level
+ij> commit;
+ij> -- attempt to change isolation level should give error because of jdk4 hold cursor
+set isolation = REPEATABLE READ;
+ERROR X0X03: Invalid transaction state - held cursor requires same isolation level
+ij> -- close jdk4 and then should be able to change isolation
+close jdk4;
+ij> set isolation to serializable;
+0 rows inserted/updated/deleted
+ij> -- fifth test - try isolation level change alongwith changing the isolation
+----- level of just one statement
+get with hold cursor jdk4 as 'SELECT * FROM t1';
+ij> get with nohold cursor jdk1 as 'SELECT * FROM t1 WITH CS';
+ij> next jdk4;
+C11 |C12        
+-----
+1 |1          
+ij> next jdk1;
+C11 |C12        
+-----
+1 |1          
+ij> -- following should fail because of cursor jdk4
+set isolation RS;
+ERROR X0X03: Invalid transaction state - held cursor requires same isolation level
+ij> -- following should fail because of cursor jdk4
+set isolation UR;
+ERROR X0X03: Invalid transaction state - held cursor requires same isolation level
+ij> close jdk4;
+ij> -- should be able to change the isolation now
+set isolation READ UNCOMMITTED;
+0 rows inserted/updated/deleted
+ij> set isolation RS;
+0 rows inserted/updated/deleted
+ij> -- sixth test - try positioned update with hold cursor
+get with hold cursor jdk4 as 'SELECT * FROM t1 FOR UPDATE';
+ij> -- following should give error because cursor is not positioned on any row
+update t1 set c12=12 where current of jdk4;
+ERROR XCL08: Cursor 'SQL_CURSH200C2' is not on a row.
+ij> select * from t1;
+C11 |C12        
+-----
+1 |1          
+2 |2          
+ij> next jdk4;
+C11 |C12        
+-----
+1 |1          
+ij> update t1 set c12=12 where current of jdk4;
+1 row inserted/updated/deleted
+ij> select * from t1;
+C11 |C12        
+-----
+1 |12         
+2 |2          
+ij> commit;
+ij> -- after commit, the next transaction should do a fetch again before doing
+----- any positioned update
+update t1 set c12=123 where current of jdk4;
+ERROR 24000: Invalid cursor state - no current row.
+ij> select * from t1;
+C11 |C12        
+-----
+1 |12         
+2 |2          
+ij> next jdk4;
+C11 |C12        
+-----
+2 |2          
+ij> update t1 set c12=23 where current of jdk4;
+1 row inserted/updated/deleted
+ij> select * from t1;
+C11 |C12        
+-----
+1 |12         
+2 |23         
+ij> close jdk4;
+ij> update t1 set c12=234 where current of jdk4;
+ERROR (no SQLState): Invalid cursor name "JDK4" in the Update/Delete statement.
+ij> select * from t1;
+C11 |C12        
+-----
+1 |12         
+2 |23         
+ij> -- seventh test - try positioned delete with hold cursor
+get with hold cursor jdk4 as 'SELECT * FROM t1 FOR UPDATE';
+ij> -- following should give error because cursor is not positioned on any row
+delete from t1 where current of jdk4;
+ERROR XCL08: Cursor 'SQL_CURSH200C2' is not on a row.
+ij> select * from t1;
+C11 |C12        
+-----
+1 |12         
+2 |23         
+ij> next jdk4;
+C11 |C12        
+-----
+1 |12         
+ij> delete from  t1 where current of jdk4;
+1 row inserted/updated/deleted
+ij> select * from t1;
+C11 |C12        
+-----
+2 |23         
+ij> commit;
+ij> -- after commit, the next transaction should do a fetch again before doing
+----- any positioned delete
+delete from t1 where current of jdk4;
+ERROR 24000: Invalid cursor state - no current row.
+ij> select * from t1;
+C11 |C12        
+-----
+2 |23         
+ij> next jdk4;
+C11 |C12        
+-----
+2 |23         
+ij> delete from t1 where current of jdk4;
+1 row inserted/updated/deleted
+ij> select * from t1;
+C11 |C12        
+-----
+ij> close jdk4;
+ij> delete from t1 where current of jdk4;
+ERROR (no SQLState): Invalid cursor name "JDK4" in the Update/Delete statement.
+ij> select * from t1;
+C11 |C12        
+-----
+ij> -- populate the table for next test
+insert into t1 values(1,1);
+1 row inserted/updated/deleted
+ij> insert into t1 values(2,2);
+1 row inserted/updated/deleted
+ij> -- eighth test - scrollable cursors
+get scroll insensitive with hold cursor jdk4 as 'SELECT * FROM t1';
+ij> commit;
+ij> previous jdk4;
+No current row
+ij> after last jdk4;
+No current row
+ij> before first jdk4;
+No current row
+ij> first jdk4;
+C11 |C12        
+-----
+1 |1          
+ij> last jdk4;
+C11 |C12        
+-----
+2 |2          
+ij> next jdk4;
+No current row
+ij> previous jdk4;
+C11 |C12        
+-----
+2 |2          
+ij> next jdk4;
+No current row
+ij> close jdk4;
+ij> first jdk4;
+IJ ERROR: Unable to establish cursor
+ij> -- ninth test - close the updateable holdable cursor after commit
+----- we get npe
+get with hold cursor jdk4 as 'SELECT * FROM T1 FOR UPDATE';
+ij> next jdk4;
+C11 |C12        
+-----
+1 |1          
+ij> commit;
+ij> close jdk4;
+ij> -- tenth test - bug 4515 - have a more useful message
+----- update where current of fails in autocommit=true, held open cursor
+autocommit on;
+ij> get with hold cursor scrollCursor as 'select * from t1 for update of c12';
+ij> next scrollCursor;
+C11 |C12        
+-----
+1 |1          
+ij> update t1 set c12=c12+1 where current of scrollCursor;
+1 row inserted/updated/deleted
+ij> 

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/holdCursorJDBC30.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/holdCursorJDBC30.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/holdCursorJDBC30.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,1579 @@
+ij> ------------------------------------------------------------------------------
+----- TEST CASES SPECIFIC TO STORE IMPLEMENTATION OF HOLD CURSOR:
+----- overview:
+-----    TEST  0: basic heap  scan tests (0 rows).
+-----    TEST  1: basic heap  scan tests (multiple rows)
+-----    TEST  2: basic btree scan tests (zero rows/update nonkey field)
+-----    TEST  3: basic btree scan tests (multiple rows/update nonkey field)
+-----    TEST  4: basic btree scan tests (zero rows/read only/no group fetch)
+-----    TEST  5: basic btree scan tests (multiple rows/read only/no group fetch)
+-----    TEST  6: basic tests for cursors with order by
+-----    TEST  7: test of hold cursor code in DistinctScalarAggregateResultSet.java
+-----    TEST  8: test of hold cursor code in GroupedAggregateResultSet.java
+-----    TEST  9: test scan positioned on a row which has been purged.
+-----    TEST 10: test scan positioned on a page which has been purged
+-----
+-----
+-----
+----- TEST 0: basic heap scan tests (0 rows).
+-----     The following tests that no matter where commit comes in the state of
+-----     the scan that the scan will continue after the commit.  Tests various
+-----     states of scan like: before first next, after first next, before close,
+-----     after close.
+-----
+run resource 'createTestProcedures.subsql';
+ij> CREATE FUNCTION  PADSTRING (DATA VARCHAR(32000), LENGTH INTEGER) RETURNS VARCHAR(32000) EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.Formatters.padString' LANGUAGE JAVA PARAMETER STYLE JAVA;
+0 rows inserted/updated/deleted
+ij> CREATE PROCEDURE WAIT_FOR_POST_COMMIT() DYNAMIC RESULT SETS 0 LANGUAGE JAVA EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.T_Access.waitForPostCommitToFinish' PARAMETER STYLE JAVA;
+0 rows inserted/updated/deleted
+ij> autocommit off;
+ij> create table foo (a int, data int);
+0 rows inserted/updated/deleted
+ij> -- the following for update cursors will all use group fetch = 1, thus each
+----- next passes straight through to store.
+call SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.language.bulkFetchDefault', '1');
+Statement executed.
+ij> get with hold cursor test1 as 'select * from foo for update';
+ij> close test1;
+ij> commit;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as 'select * from foo for update';
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as 'select * from foo for update';
+ij> commit;
+ij> next  test1;
+No current row
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as 'select * from foo for update';
+ij> next  test1;
+No current row
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as 'select * from foo for update';
+ij> next  test1;
+No current row
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as 'select * from foo for update';
+ij> next  test1;
+No current row
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as 'select * from foo for update';
+ij> next  test1;
+No current row
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as 'select * from foo for update';
+ij> next  test1;
+No current row
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> close test1;
+ij> commit;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> commit;
+ij> ------------------------------------------------------------------------------
+----- TEST 1: basic heap scan tests (multiple rows)
+-----     The following tests that no matter where commit comes in the state of
+-----     the scan that the scan will continue after the commit.  Tests various
+-----     states of scan like: before first next, after first next, before close,
+-----     after close.
+-----
+insert into foo values (1, 10);
+1 row inserted/updated/deleted
+ij> insert into foo values (1, 20);
+1 row inserted/updated/deleted
+ij> insert into foo values (1, 30);
+1 row inserted/updated/deleted
+ij> insert into foo values (1, 40);
+1 row inserted/updated/deleted
+ij> insert into foo values (1, 50);
+1 row inserted/updated/deleted
+ij> -- the following for update cursors will all use group fetch = 1, thus each
+----- next passes straight through to store.
+get with hold cursor test1 as 'select * from foo for update';
+ij> close test1;
+ij> commit;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as 'select * from foo for update';
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as 'select * from foo for update';
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |10         
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as 'select * from foo for update';
+ij> next  test1;
+A |DATA       
+-----
+1 |10         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |20         
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as 'select * from foo for update';
+ij> next  test1;
+A |DATA       
+-----
+1 |10         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |20         
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as 'select * from foo for update';
+ij> next  test1;
+A |DATA       
+-----
+1 |10         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |20         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |30         
+ij> next  test1;
+A |DATA       
+-----
+1 |40         
+ij> next  test1;
+A |DATA       
+-----
+1 |50         
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as 'select * from foo for update';
+ij> next  test1;
+A |DATA       
+-----
+1 |10         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |20         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |30         
+ij> next  test1;
+A |DATA       
+-----
+1 |40         
+ij> next  test1;
+A |DATA       
+-----
+1 |50         
+ij> next  test1;
+No current row
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as 'select * from foo for update';
+ij> next  test1;
+A |DATA       
+-----
+1 |10         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |20         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |30         
+ij> next  test1;
+A |DATA       
+-----
+1 |40         
+ij> next  test1;
+A |DATA       
+-----
+1 |50         
+ij> next  test1;
+No current row
+ij> close test1;
+ij> commit;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> commit;
+ij> ------------------------------------------------------------------------------
+----- TEST 2: basic btree scan tests (zero rows/update nonkey field)
+-----     The following tests that no matter where commit comes in the state of
+-----     the scan that the scan will continue after the commit.  Tests various
+-----     states of scan like: before first next, after first next, before close,
+-----     after close.
+-----
+autocommit off;
+ij> drop table foo;
+0 rows inserted/updated/deleted
+ij> create table foo (a int, data int);
+0 rows inserted/updated/deleted
+ij> create index foox on foo (a);
+0 rows inserted/updated/deleted
+ij> -- the following for update cursors will all use group fetch = 1, thus each
+----- next passes straight through to store.
+get with hold cursor test1 as
+    'select * from foo for update of data';
+ij> close test1;
+ij> commit;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select * from foo for update of data';
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select * from foo for update of data';
+ij> commit;
+ij> next  test1;
+No current row
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select * from foo for update of data';
+ij> next  test1;
+No current row
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select * from foo for update of data';
+ij> next  test1;
+No current row
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select * from foo for update of data';
+ij> next  test1;
+No current row
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select * from foo for update of data';
+ij> next  test1;
+No current row
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select * from foo for update of data';
+ij> next  test1;
+No current row
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> close test1;
+ij> commit;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> commit;
+ij> ------------------------------------------------------------------------------
+----- TEST 3: basic btree scan tests (multiple rows/update nonkey field)
+-----     The following tests that no matter where commit comes in the state of
+-----     the scan that the scan will continue after the commit.  Tests various
+-----     states of scan like: before first next, after first next, before close,
+-----     after close.
+-----
+insert into foo values (1, 10);
+1 row inserted/updated/deleted
+ij> insert into foo values (1, 20);
+1 row inserted/updated/deleted
+ij> insert into foo values (1, 30);
+1 row inserted/updated/deleted
+ij> insert into foo values (1, 40);
+1 row inserted/updated/deleted
+ij> insert into foo values (1, 50);
+1 row inserted/updated/deleted
+ij> -- the following for update of data cursors will all use group fetch = 1, thus each
+----- next passes straight through to store.
+get with hold cursor test1 as
+    'select * from foo for update of data';
+ij> close test1;
+ij> commit;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select * from foo for update of data';
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select * from foo for update of data';
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |10         
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select * from foo for update of data';
+ij> next  test1;
+A |DATA       
+-----
+1 |10         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |20         
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select * from foo for update of data';
+ij> next  test1;
+A |DATA       
+-----
+1 |10         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |20         
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select * from foo for update of data';
+ij> next  test1;
+A |DATA       
+-----
+1 |10         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |20         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |30         
+ij> next  test1;
+A |DATA       
+-----
+1 |40         
+ij> next  test1;
+A |DATA       
+-----
+1 |50         
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select * from foo for update of data';
+ij> next  test1;
+A |DATA       
+-----
+1 |10         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |20         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |30         
+ij> next  test1;
+A |DATA       
+-----
+1 |40         
+ij> next  test1;
+A |DATA       
+-----
+1 |50         
+ij> next  test1;
+No current row
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as 
+    'select * from foo for update of data';
+ij> next  test1;
+A |DATA       
+-----
+1 |10         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |20         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |30         
+ij> next  test1;
+A |DATA       
+-----
+1 |40         
+ij> next  test1;
+A |DATA       
+-----
+1 |50         
+ij> next  test1;
+No current row
+ij> close test1;
+ij> commit;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> --  test negative case of trying non next operations after commit
+get with hold cursor test1 as 
+    'select * from foo for update of data';
+ij> next  test1;
+A |DATA       
+-----
+1 |10         
+ij> commit;
+ij> delete from foo where current of test1;
+ERROR 24000: Invalid cursor state - no current row.
+ij> next  test1;
+A |DATA       
+-----
+1 |20         
+ij> commit;
+ij> update foo set data=-3000 where current of test1;
+ERROR 24000: Invalid cursor state - no current row.
+ij> next  test1;
+A |DATA       
+-----
+1 |30         
+ij> next  test1;
+A |DATA       
+-----
+1 |40         
+ij> next  test1;
+A |DATA       
+-----
+1 |50         
+ij> next  test1;
+No current row
+ij> close test1;
+ij> commit;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> --  test positive case of trying delete/update after commit and next.
+get with hold cursor test1 as 
+    'select * from foo for update of data';
+ij> next  test1;
+A |DATA       
+-----
+1 |10         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |20         
+ij> delete from foo where current of test1;
+1 row inserted/updated/deleted
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |30         
+ij> next  test1;
+A |DATA       
+-----
+1 |40         
+ij> update foo set data=-3000 where current of test1;
+1 row inserted/updated/deleted
+ij> next  test1;
+A |DATA       
+-----
+1 |50         
+ij> next  test1;
+No current row
+ij> close test1;
+ij> commit;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> --  make sure above deletes/updates worked.
+get with hold cursor test1 as 
+    'select * from foo for update of data';
+ij> next  test1;
+A |DATA       
+-----
+1 |10         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |30         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |-3000      
+ij> next  test1;
+A |DATA       
+-----
+1 |50         
+ij> next  test1;
+No current row
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> close test1;
+ij> commit;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> commit;
+ij> ------------------------------------------------------------------------------
+----- TEST 4: basic btree scan tests (zero rows/read only/no group fetch)
+-----     The following tests that no matter where commit comes in the state of
+-----     the scan that the scan will continue after the commit.  Tests various
+-----     states of scan like: before first next, after first next, before close,
+-----     after close.
+-----
+----- basic tests for btree
+autocommit off;
+ij> drop table foo;
+0 rows inserted/updated/deleted
+ij> create table foo (a int, data int);
+0 rows inserted/updated/deleted
+ij> create index foox on foo (a);
+0 rows inserted/updated/deleted
+ij> -- the following for read cursors will all use group fetch = 1, thus each
+----- next passes straight through to store.  This select should only use the
+----- index with no interaction with the base table.
+get with hold cursor test1 as
+    'select a from foo ';
+ij> close test1;
+ij> commit;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select * from foo ';
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select * from foo ';
+ij> commit;
+ij> next  test1;
+No current row
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select * from foo ';
+ij> next  test1;
+No current row
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select * from foo ';
+ij> next  test1;
+No current row
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select * from foo ';
+ij> next  test1;
+No current row
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select * from foo ';
+ij> next  test1;
+No current row
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select * from foo ';
+ij> next  test1;
+No current row
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> close test1;
+ij> commit;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> commit;
+ij> ------------------------------------------------------------------------------
+----- TEST 5: basic btree scan tests (multiple rows/read only/no group fetch)
+-----     The following tests that no matter where commit comes in the state of
+-----     the scan that the scan will continue after the commit.  Tests various
+-----     states of scan like: before first next, after first next, before close,
+-----     after close.
+-----
+insert into foo values (1, 10);
+1 row inserted/updated/deleted
+ij> insert into foo values (1, 20);
+1 row inserted/updated/deleted
+ij> insert into foo values (1, 30);
+1 row inserted/updated/deleted
+ij> insert into foo values (1, 40);
+1 row inserted/updated/deleted
+ij> insert into foo values (1, 50);
+1 row inserted/updated/deleted
+ij> -- the following for read cursors will all use group fetch = 1, thus each
+----- next passes straight through to store.  This select should only use the
+----- index with no interaction with the base table.
+get with hold cursor test1 as
+    'select * from foo ';
+ij> close test1;
+ij> commit;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select * from foo ';
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select * from foo ';
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |10         
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select * from foo ';
+ij> next  test1;
+A |DATA       
+-----
+1 |10         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |20         
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select * from foo ';
+ij> next  test1;
+A |DATA       
+-----
+1 |10         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |20         
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select * from foo ';
+ij> next  test1;
+A |DATA       
+-----
+1 |10         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |20         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |30         
+ij> next  test1;
+A |DATA       
+-----
+1 |40         
+ij> next  test1;
+A |DATA       
+-----
+1 |50         
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select * from foo ';
+ij> next  test1;
+A |DATA       
+-----
+1 |10         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |20         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |30         
+ij> next  test1;
+A |DATA       
+-----
+1 |40         
+ij> next  test1;
+A |DATA       
+-----
+1 |50         
+ij> next  test1;
+No current row
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as 
+    'select * from foo ';
+ij> next  test1;
+A |DATA       
+-----
+1 |10         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |20         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |30         
+ij> next  test1;
+A |DATA       
+-----
+1 |40         
+ij> next  test1;
+A |DATA       
+-----
+1 |50         
+ij> next  test1;
+No current row
+ij> close test1;
+ij> commit;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> commit;
+ij> ------------------------------------------------------------------------------
+----- TEST 6: basic tests for cursors with order by
+-----     The following tests that no matter where commit comes in the state of
+-----     the scan that the scan will continue after the commit.  Tests various
+-----     states of scan like: before first next, after first next, before close,
+-----     after close.
+-----
+----- basic tests for cursors which include an order by
+autocommit off;
+ij> drop table foo;
+0 rows inserted/updated/deleted
+ij> create table foo (a int, data int);
+0 rows inserted/updated/deleted
+ij> create index foox on foo (a);
+0 rows inserted/updated/deleted
+ij> -- the following for update cursors will all use group fetch = 1, thus each
+----- next passes straight through to store.  This select should only use the
+----- index with no interaction with the base table.
+get with hold cursor test1 as
+    'select a,data from foo order by data desc';
+ij> close test1;
+ij> commit;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select a,data from foo order by data desc';
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select a,data from foo order by data desc';
+ij> commit;
+ij> next  test1;
+No current row
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select a,data from foo order by data desc';
+ij> next  test1;
+No current row
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select a,data from foo order by data desc';
+ij> next  test1;
+No current row
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select a,data from foo order by data desc';
+ij> next  test1;
+No current row
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select a,data from foo order by data desc';
+ij> next  test1;
+No current row
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select a,data from foo order by data desc';
+ij> next  test1;
+No current row
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> commit;
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> next  test1;
+ERROR (no SQLState): Invalid operation: result set closed
+ij> close test1;
+ij> commit;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> commit;
+ij> insert into foo values (1, 10);
+1 row inserted/updated/deleted
+ij> insert into foo values (1, 20);
+1 row inserted/updated/deleted
+ij> insert into foo values (1, 30);
+1 row inserted/updated/deleted
+ij> insert into foo values (1, 40);
+1 row inserted/updated/deleted
+ij> insert into foo values (1, 50);
+1 row inserted/updated/deleted
+ij> -- insert into foo (select a + 5, data + 50 from foo);
+----- the following for update of data cursors will all use group fetch = 1, thus each
+----- next passes straight through to store.
+get with hold cursor test1 as
+    'select a,data from foo order by data desc';
+ij> close test1;
+ij> commit;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select a,data from foo order by data desc';
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select a,data from foo order by data desc';
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |50         
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select a,data from foo order by data desc';
+ij> next  test1;
+A |DATA       
+-----
+1 |50         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |40         
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select a,data from foo order by data desc';
+ij> next  test1;
+A |DATA       
+-----
+1 |50         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |40         
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select a,data from foo order by data desc';
+ij> next  test1;
+A |DATA       
+-----
+1 |50         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |40         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |30         
+ij> next  test1;
+A |DATA       
+-----
+1 |20         
+ij> next  test1;
+A |DATA       
+-----
+1 |10         
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as
+    'select a,data from foo order by data desc';
+ij> next  test1;
+A |DATA       
+-----
+1 |50         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |40         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |30         
+ij> next  test1;
+A |DATA       
+-----
+1 |20         
+ij> next  test1;
+A |DATA       
+-----
+1 |10         
+ij> next  test1;
+No current row
+ij> commit;
+ij> close test1;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> get with hold cursor test1 as 
+    'select a,data from foo order by data desc';
+ij> next  test1;
+A |DATA       
+-----
+1 |50         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |40         
+ij> commit;
+ij> next  test1;
+A |DATA       
+-----
+1 |30         
+ij> next  test1;
+A |DATA       
+-----
+1 |20         
+ij> next  test1;
+A |DATA       
+-----
+1 |10         
+ij> next  test1;
+No current row
+ij> close test1;
+ij> commit;
+ij> -- should fail
+next test1;
+IJ ERROR: Unable to establish cursor
+ij> commit;
+ij> ------------------------------------------------------------------------------
+----- TEST 7: test of hold cursor code in DistinctScalarAggregateResultSet.java
+-----     Directed test of hold cursor as applies to sort scans opened by
+-----     DistinctScalarAggregateResultSet.java.
+-----
+drop table t1;
+ERROR 42Y55: 'DROP TABLE' cannot be performed on 'T1' because it does not exist.
+ij> create table t1 (c1 int, c2 int);
+0 rows inserted/updated/deleted
+ij> insert into t1 values (null, null), (1,1), (null, null), (2,1), (3,1), (10,10);
+6 rows inserted/updated/deleted
+ij> select * from t1;
+C1 |C2         
+-----
+NULL |NULL       
+1 |1          
+NULL |NULL       
+2 |1          
+3 |1          
+10 |10         
+ij> select sum(distinct c1) from t1;
+1          
+-----
+16         
+WARNING 01003: Null values were eliminated from the argument of a column function. : 
+ij> get with hold cursor test1 as 'select sum(distinct c1) from t1';
+ij> commit;
+ij> next test1;
+1          
+-----
+16         
+WARNING 01003: Null values were eliminated from the argument of a column function. : 
+ij> close test1;
+ij> get with hold cursor test1 as 'select sum(distinct c1) from t1';
+ij> next test1;
+1          
+-----
+16         
+WARNING 01003: Null values were eliminated from the argument of a column function. : 
+ij> commit;
+ij> next test1;
+No current row
+ij> commit;
+ij> close test1;
+ij> commit;
+ij> ------------------------------------------------------------------------------
+----- TEST 8: test of hold cursor code in GroupedAggregateResultSet.java
+-----     Directed test of hold cursor as applies to sort scans opened by
+-----     GroupedAggregateResultSet.java.
+-----
+drop table t1;
+0 rows inserted/updated/deleted
+ij> create table t1 (c1 int, c2 int);
+0 rows inserted/updated/deleted
+ij> insert into t1 values (null, null), (1,1), (null, null), (2,1), (3,1), (10,10);
+6 rows inserted/updated/deleted
+ij> select * from t1;
+C1 |C2         
+-----
+NULL |NULL       
+1 |1          
+NULL |NULL       
+2 |1          
+3 |1          
+10 |10         
+ij> select sum(distinct c1) from t1 group by c2;
+1          
+-----
+6          
+10         
+NULL       
+WARNING 01003: Null values were eliminated from the argument of a column function. : 
+ij> commit;
+ij> get with hold cursor test1 as 'select sum(distinct c1) from t1 group by c2';
+ij> commit;
+ij> next test1;
+1          
+-----
+6          
+ij> next test1;
+1          
+-----
+10         
+ij> commit;
+ij> next test1;
+1          
+-----
+NULL       
+WARNING 01003: Null values were eliminated from the argument of a column function. : 
+ij> close test1;
+ij> get with hold cursor test1 as 'select sum(distinct c1) from t1 group by c2';
+ij> next test1;
+1          
+-----
+6          
+ij> commit;
+ij> next test1;
+1          
+-----
+10         
+ij> commit;
+ij> next test1;
+1          
+-----
+NULL       
+WARNING 01003: Null values were eliminated from the argument of a column function. : 
+ij> close test1;
+ij> ------------------------------------------------------------------------------
+----- TEST 9: test scan positioned on a row which has been purged.
+-----
+drop table t1;
+0 rows inserted/updated/deleted
+ij> create table t1 (c1 int, c2 int);
+0 rows inserted/updated/deleted
+ij> create index tx on t1 (c1);
+0 rows inserted/updated/deleted
+ij> insert into t1 values (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6);
+6 rows inserted/updated/deleted
+ij> get with hold cursor test1 as 
+    'select c1 from t1';
+ij> next test1;
+C1         
+-----
+1          
+ij> commit;
+ij> -- at this point the btree scan is positioned by "key" on (1,1).  Make sure
+----- deleting this key doesn't cause any problems.
+delete from t1 where c1 = 1 or c1 = 2;
+2 rows inserted/updated/deleted
+ij> next test1;
+C1         
+-----
+2          
+ij> -- at this point the btree scan is positioned on (3, 3), let's see what happens
+----- if we delete (3,3) and look at current scan.
+delete from t1 where c1 = 3;
+1 row inserted/updated/deleted
+ij> -- position on (4,4)
+next test1;
+C1         
+-----
+3          
+ij> commit;
+ij> -- delete all the rows and hopefully get all rows to be purged by the time
+----- the scan does the next.
+delete from t1;
+3 rows inserted/updated/deleted
+ij> commit;
+ij> next test1;
+C1         
+-----
+4          
+ij> close test1;
+ij> ------------------------------------------------------------------------------
+----- TEST 10: test scan positioned on a page which has been purged (should really
+-----          not be any different than a row being purged).
+-----
+drop table t1;
+0 rows inserted/updated/deleted
+ij> create table t1 (c1 varchar(1000), c2 int);
+0 rows inserted/updated/deleted
+ij> call SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.storage.pageSize', '4096');
+Statement executed.
+ij> create index tx on t1 (c1);
+0 rows inserted/updated/deleted
+ij> call SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.storage.pageSize', NULL);
+Statement executed.
+ij> insert into t1 values (PADSTRING('1',1000), 1), (PADSTRING('2',1000), 2), (PADSTRING('3',1000), 3), (PADSTRING('4',1000), 4), (PADSTRING('5',1000), 5), (PADSTRING('6',1000), 6), (PADSTRING('7',1000), 7);
+7 rows inserted/updated/deleted
+ij> get with hold cursor test1 as 
+    'select c1 from t1';
+ij> next test1;
+C1                                                                                                                              
+-----
+1                                                                                                                              &
+ij> commit;
+ij> -- at this point the btree scan is positioned by "key" on (1,1).  Make sure
+----- deleting this key doesn't cause any problems.
+delete from t1 where c1 = PADSTRING('1',1000) or c1 = PADSTRING('2',1000);
+2 rows inserted/updated/deleted
+ij> next test1;
+C1                                                                                                                              
+-----
+2                                                                                                                              &
+ij> -- at this point the btree scan is positioned on (3, 3), let's see what happens
+----- if we delete (3,3) and look at current scan.
+delete from t1 where c1 = PADSTRING('3',1000);
+1 row inserted/updated/deleted
+ij> -- position on (4,4)
+next test1;
+C1                                                                                                                              
+-----
+3                                                                                                                              &
+ij> commit;
+ij> -- delete all the rows and hopefully get all rows to be purged by the time
+----- the scan does the next.
+delete from t1;
+4 rows inserted/updated/deleted
+ij> commit;
+ij> next test1;
+C1                                                                                                                              
+-----
+4                                                                                                                              &
+ij> close test1;
+ij> ------------------------------------------------------------------------------
+----- TEST 11: beetle 4902: test query plans which use reopenScan() on a btree to 
+-----          do the inner table processing of a join.  Prior to the fix a null
+-----          pointer exception would be thrown after the commit, as the code
+-----          did not handle keeping the resultset used for the inner table
+-----          open across commits in this case.
+-----
+drop table t1;
+0 rows inserted/updated/deleted
+ij> drop table t2;
+ERROR 42Y55: 'DROP TABLE' cannot be performed on 'T2' because it does not exist.
+ij> create table t1 (i1 int, i2 int);
+0 rows inserted/updated/deleted
+ij> create table t2 (i1 int, i2 int);
+0 rows inserted/updated/deleted
+ij> create index t1_idx on t1 (i1);
+0 rows inserted/updated/deleted
+ij> create index t2_idx on t2 (i1);
+0 rows inserted/updated/deleted
+ij> insert into t1 values (1, 10), (2, 20), (3, 30), (4, 40), (5, 50);
+5 rows inserted/updated/deleted
+ij> insert into t2 values (1, 10), (2, 20),          (4, 40), (5, 50);
+4 rows inserted/updated/deleted
+ij> commit;
+ij> -- force nestedLoop to make sure reopenScan() is used on inner table.
+get with hold cursor test11 as
+'select * from
+    t1, t2
+        where t1.i1 = t2.i1';
+ij> commit;
+ij> next test11;
+I1 |I2 |I1 |I2         
+-----
+1 |10 |1 |10         
+ij> commit;
+ij> next test11;
+I1 |I2 |I1 |I2         
+-----
+2 |20 |2 |20         
+ij> commit;
+ij> next test11;
+I1 |I2 |I1 |I2         
+-----
+4 |40 |4 |40         
+ij> next test11;
+I1 |I2 |I1 |I2         
+-----
+5 |50 |5 |50         
+ij> commit;
+ij> commit;
+ij> next test11;
+No current row
+ij> commit;
+ij> close test11;
+ij> ------------------------------------------------------------------------------
+----- TEST 12: beetle 4902: test query plans which use reopenScan() on a base table
+-----          to do the inner table processing of a join.  Prior to the fix a null
+-----          pointer exception would be thrown after the commit, as the code
+-----          did not handle keeping the resultset used for the inner table
+-----          open across commits in this case.
+-----
+drop table t1;
+0 rows inserted/updated/deleted
+ij> drop table t2;
+0 rows inserted/updated/deleted
+ij> create table t1 (i1 int, i2 int);
+0 rows inserted/updated/deleted
+ij> create table t2 (i1 int, i2 int);
+0 rows inserted/updated/deleted
+ij> insert into t1 values (1, 10), (2, 20), (3, 30), (4, 40), (5, 50);
+5 rows inserted/updated/deleted
+ij> insert into t2 values (1, 10), (2, 20),          (4, 40), (5, 50);
+4 rows inserted/updated/deleted
+ij> commit;
+ij> -- force nestedLoop to make sure reopenScan() is used on inner table.
+get with hold cursor test12 as
+'select * from
+    t1, t2
+        where t1.i1 = t2.i1';
+ij> call SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.language.bulkFetchDefault', '16');
+Statement executed.
+ij> commit;
+ij> next test12;
+I1 |I2 |I1 |I2         
+-----
+1 |10 |1 |10         
+ij> commit;
+ij> next test12;
+I1 |I2 |I1 |I2         
+-----
+2 |20 |2 |20         
+ij> commit;
+ij> next test12;
+I1 |I2 |I1 |I2         
+-----
+4 |40 |4 |40         
+ij> next test12;
+I1 |I2 |I1 |I2         
+-----
+5 |50 |5 |50         
+ij> commit;
+ij> commit;
+ij> next test12;
+No current row
+ij> commit;
+ij> close test12;
+ij> exit;

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/maxfieldsize.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/maxfieldsize.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/maxfieldsize.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,893 @@
+Test MaxFieldSize  starting
+Iteration #: 0
+Max Field Size = 0
+Column #: 1
+getObject(1)
+  as byte[] length 100
+x43x31x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+Column #: 2
+getObject(2)
+  as byte[] length 43
+x43x32x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58
+Column #: 3
+getObject(3)
+  as byte[] length 43
+x43x33x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58
+Column #: 4
+getObject(4)
+  as String
+C4XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX                                                        
+Column #: 5
+getObject(5)
+  as String
+C5XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+Column #: 6
+getObject(6)
+  as String
+C6XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+Iteration #: 1
+Max Field Size = 0
+Column #: 1
+beetle 5350 - JCC returns incorrect result for maxfieldsize()
+getString(1) length 200
+43315858585858585858585858585858585858585858585858585858585858585858585858585858585858202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020
+Column #: 2
+beetle 5350 - JCC returns incorrect result for maxfieldsize()
+getString(2) length 86
+43325858585858585858585858585858585858585858585858585858585858585858585858585858585858
+Column #: 3
+beetle 5350 - JCC returns incorrect result for maxfieldsize()
+getString(3) length 86
+43335858585858585858585858585858585858585858585858585858585858585858585858585858585858
+Column #: 4
+beetle 5350 - JCC returns incorrect result for maxfieldsize()
+getString(4) length 100
+C4XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX                                                        
+Column #: 5
+beetle 5350 - JCC returns incorrect result for maxfieldsize()
+getString(5) length 45
+C5XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+Column #: 6
+beetle 5350 - JCC returns incorrect result for maxfieldsize()
+getString(6) length 46
+C6XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+Iteration #: 2
+Max Field Size = 0
+Column #: 1
+getAsciiStream(1)
+x43x31x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+Column #: 2
+getAsciiStream(2)
+x43x32x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58
+Column #: 3
+getAsciiStream(3)
+x43x33x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58
+Column #: 4
+getAsciiStream(4)
+x43x34x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+Column #: 5
+getAsciiStream(5)
+x43x35x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58
+Column #: 6
+getAsciiStream(6)
+x43x36x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58
+Iteration #: 3
+Max Field Size = 0
+Column #: 1
+getBinaryStream(1)
+x43x31x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+Column #: 2
+getBinaryStream(2)
+x43x32x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58
+Column #: 3
+getBinaryStream(3)
+x43x33x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58
+Column #: 4
+SKIPPING
+Column #: 5
+SKIPPING
+Column #: 6
+SKIPPING
+Iteration #: 4
+Max Field Size = 0
+Column #: 1
+getBytes(1)
+x43x31x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+Column #: 2
+getBytes(2)
+x43x32x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58
+Column #: 3
+getBytes(3)
+x43x33x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58
+Column #: 4
+SKIPPING
+Column #: 5
+SKIPPING
+Column #: 6
+SKIPPING
+Iteration #: 5
+Max Field Size = 24
+Column #: 1
+getObject(1)
+  as byte[] length 24
+x43x31x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #: 2
+getObject(2)
+  as byte[] length 24
+x43x32x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #: 3
+getObject(3)
+  as byte[] length 24
+x43x33x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #: 4
+getObject(4)
+  as String
+C4XXXXXXXXXXXXXXXXXXXXXX
+Column #: 5
+getObject(5)
+  as String
+C5XXXXXXXXXXXXXXXXXXXXXX
+Column #: 6
+getObject(6)
+  as String
+C6XXXXXXXXXXXXXXXXXXXXXX
+Iteration #: 6
+Max Field Size = 24
+Column #: 1
+beetle 5350 - JCC returns incorrect result for maxfieldsize()
+getString(1) length 24
+433158585858585858585858
+Column #: 2
+beetle 5350 - JCC returns incorrect result for maxfieldsize()
+getString(2) length 24
+433258585858585858585858
+Column #: 3
+beetle 5350 - JCC returns incorrect result for maxfieldsize()
+getString(3) length 24
+433358585858585858585858
+Column #: 4
+beetle 5350 - JCC returns incorrect result for maxfieldsize()
+getString(4) length 24
+C4XXXXXXXXXXXXXXXXXXXXXX
+Column #: 5
+beetle 5350 - JCC returns incorrect result for maxfieldsize()
+getString(5) length 24
+C5XXXXXXXXXXXXXXXXXXXXXX
+Column #: 6
+beetle 5350 - JCC returns incorrect result for maxfieldsize()
+getString(6) length 24
+C6XXXXXXXXXXXXXXXXXXXXXX
+Iteration #: 7
+Max Field Size = 24
+Column #: 1
+getAsciiStream(1)
+x43x31x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #: 2
+getAsciiStream(2)
+x43x32x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #: 3
+getAsciiStream(3)
+x43x33x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #: 4
+getAsciiStream(4)
+x43x34x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #: 5
+getAsciiStream(5)
+x43x35x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #: 6
+getAsciiStream(6)
+x43x36x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Iteration #: 8
+Max Field Size = 24
+Column #: 1
+getBinaryStream(1)
+x43x31x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #: 2
+getBinaryStream(2)
+x43x32x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #: 3
+getBinaryStream(3)
+x43x33x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #: 4
+SKIPPING
+Column #: 5
+SKIPPING
+Column #: 6
+SKIPPING
+Iteration #: 9
+Max Field Size = 24
+Column #: 1
+getBytes(1)
+x43x31x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #: 2
+getBytes(2)
+x43x32x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #: 3
+getBytes(3)
+x43x33x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #: 4
+SKIPPING
+Column #: 5
+SKIPPING
+Column #: 6
+SKIPPING
+Expected Exception - Invalid maxFieldsize
+Doing external sort
+Max Field Size = 0
+Iteration #: 0
+Column #1: 4999
+Column #2:
+getBinaryStream(2)
+x43x31x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+Column #3:
+getBinaryStream(3)
+x43x32x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58
+Column #4:
+getBinaryStream(4)
+x43x33x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58
+Column #5:
+getAsciiStream(5)
+x43x34x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+Column #6:
+getAsciiStream(6)
+x43x35x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58
+Column #7:
+getAsciiStream(7)
+x43x36x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58
+Iteration #: 1
+Column #1: 4998
+Column #2:
+getBinaryStream(2)
+x43x31x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+Column #3:
+getBinaryStream(3)
+x43x32x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58
+Column #4:
+getBinaryStream(4)
+x43x33x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58
+Column #5:
+getAsciiStream(5)
+x43x34x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+Column #6:
+getAsciiStream(6)
+x43x35x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58
+Column #7:
+getAsciiStream(7)
+x43x36x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58
+Iteration #: 2
+Column #1: 4997
+Column #2:
+getBinaryStream(2)
+x43x31x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+Column #3:
+getBinaryStream(3)
+x43x32x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58
+Column #4:
+getBinaryStream(4)
+x43x33x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58
+Column #5:
+getAsciiStream(5)
+x43x34x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+Column #6:
+getAsciiStream(6)
+x43x35x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58
+Column #7:
+getAsciiStream(7)
+x43x36x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58
+Iteration #: 3
+Column #1: 4996
+Column #2:
+getBinaryStream(2)
+x43x31x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+Column #3:
+getBinaryStream(3)
+x43x32x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58
+Column #4:
+getBinaryStream(4)
+x43x33x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58
+Column #5:
+getAsciiStream(5)
+x43x34x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+Column #6:
+getAsciiStream(6)
+x43x35x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58
+Column #7:
+getAsciiStream(7)
+x43x36x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58
+Iteration #: 4
+Column #1: 4995
+Column #2:
+getBinaryStream(2)
+x43x31x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+Column #3:
+getBinaryStream(3)
+x43x32x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58
+Column #4:
+getBinaryStream(4)
+x43x33x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58
+Column #5:
+getAsciiStream(5)
+x43x34x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+Column #6:
+getAsciiStream(6)
+x43x35x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58
+Column #7:
+getAsciiStream(7)
+x43x36x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58
+Iteration #: 4995
+Column #1: 4
+Column #2:
+getBinaryStream(2)
+x43x31x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+Column #3:
+getBinaryStream(3)
+x43x32x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58
+Column #4:
+getBinaryStream(4)
+x43x33x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58
+Column #5:
+getAsciiStream(5)
+x43x34x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+Column #6:
+getAsciiStream(6)
+x43x35x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58
+Column #7:
+getAsciiStream(7)
+x43x36x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58
+Iteration #: 4996
+Column #1: 3
+Column #2:
+getBinaryStream(2)
+x43x31x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+Column #3:
+getBinaryStream(3)
+x43x32x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58
+Column #4:
+getBinaryStream(4)
+x43x33x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58
+Column #5:
+getAsciiStream(5)
+x43x34x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+Column #6:
+getAsciiStream(6)
+x43x35x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58
+Column #7:
+getAsciiStream(7)
+x43x36x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58
+Iteration #: 4997
+Column #1: 2
+Column #2:
+getBinaryStream(2)
+x43x31x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+Column #3:
+getBinaryStream(3)
+x43x32x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58
+Column #4:
+getBinaryStream(4)
+x43x33x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58
+Column #5:
+getAsciiStream(5)
+x43x34x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+Column #6:
+getAsciiStream(6)
+x43x35x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58
+Column #7:
+getAsciiStream(7)
+x43x36x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58
+Iteration #: 4998
+Column #1: 1
+Column #2:
+getBinaryStream(2)
+x43x31x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+Column #3:
+getBinaryStream(3)
+x43x32x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58
+Column #4:
+getBinaryStream(4)
+x43x33x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58
+Column #5:
+getAsciiStream(5)
+x43x34x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+Column #6:
+getAsciiStream(6)
+x43x35x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58
+Column #7:
+getAsciiStream(7)
+x43x36x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58
+Iteration #: 4999
+Column #1: 0
+Column #2:
+getBinaryStream(2)
+x43x31x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+Column #3:
+getBinaryStream(3)
+x43x32x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58
+Column #4:
+getBinaryStream(4)
+x43x33x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58
+Column #5:
+getAsciiStream(5)
+x43x34x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20
+Column #6:
+getAsciiStream(6)
+x43x35x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58
+Column #7:
+getAsciiStream(7)
+x43x36x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58x58x58
+Max Field Size = 24
+Iteration #: 0
+Column #1: 4999
+Column #2:
+getBinaryStream(2)
+x43x31x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #3:
+getBinaryStream(3)
+x43x32x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #4:
+getBinaryStream(4)
+x43x33x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #5:
+getAsciiStream(5)
+x43x34x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #6:
+getAsciiStream(6)
+x43x35x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #7:
+getAsciiStream(7)
+x43x36x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Iteration #: 1
+Column #1: 4998
+Column #2:
+getBinaryStream(2)
+x43x31x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #3:
+getBinaryStream(3)
+x43x32x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #4:
+getBinaryStream(4)
+x43x33x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #5:
+getAsciiStream(5)
+x43x34x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #6:
+getAsciiStream(6)
+x43x35x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #7:
+getAsciiStream(7)
+x43x36x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Iteration #: 2
+Column #1: 4997
+Column #2:
+getBinaryStream(2)
+x43x31x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #3:
+getBinaryStream(3)
+x43x32x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #4:
+getBinaryStream(4)
+x43x33x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #5:
+getAsciiStream(5)
+x43x34x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #6:
+getAsciiStream(6)
+x43x35x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #7:
+getAsciiStream(7)
+x43x36x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Iteration #: 3
+Column #1: 4996
+Column #2:
+getBinaryStream(2)
+x43x31x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #3:
+getBinaryStream(3)
+x43x32x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #4:
+getBinaryStream(4)
+x43x33x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #5:
+getAsciiStream(5)
+x43x34x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #6:
+getAsciiStream(6)
+x43x35x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #7:
+getAsciiStream(7)
+x43x36x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Iteration #: 4
+Column #1: 4995
+Column #2:
+getBinaryStream(2)
+x43x31x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #3:
+getBinaryStream(3)
+x43x32x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #4:
+getBinaryStream(4)
+x43x33x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #5:
+getAsciiStream(5)
+x43x34x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #6:
+getAsciiStream(6)
+x43x35x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #7:
+getAsciiStream(7)
+x43x36x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Iteration #: 4995
+Column #1: 4
+Column #2:
+getBinaryStream(2)
+x43x31x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #3:
+getBinaryStream(3)
+x43x32x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #4:
+getBinaryStream(4)
+x43x33x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #5:
+getAsciiStream(5)
+x43x34x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #6:
+getAsciiStream(6)
+x43x35x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #7:
+getAsciiStream(7)
+x43x36x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Iteration #: 4996
+Column #1: 3
+Column #2:
+getBinaryStream(2)
+x43x31x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #3:
+getBinaryStream(3)
+x43x32x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #4:
+getBinaryStream(4)
+x43x33x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #5:
+getAsciiStream(5)
+x43x34x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #6:
+getAsciiStream(6)
+x43x35x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #7:
+getAsciiStream(7)
+x43x36x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Iteration #: 4997
+Column #1: 2
+Column #2:
+getBinaryStream(2)
+x43x31x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #3:
+getBinaryStream(3)
+x43x32x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #4:
+getBinaryStream(4)
+x43x33x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #5:
+getAsciiStream(5)
+x43x34x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #6:
+getAsciiStream(6)
+x43x35x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #7:
+getAsciiStream(7)
+x43x36x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Iteration #: 4998
+Column #1: 1
+Column #2:
+getBinaryStream(2)
+x43x31x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #3:
+getBinaryStream(3)
+x43x32x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #4:
+getBinaryStream(4)
+x43x33x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #5:
+getAsciiStream(5)
+x43x34x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #6:
+getAsciiStream(6)
+x43x35x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #7:
+getAsciiStream(7)
+x43x36x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Iteration #: 4999
+Column #1: 0
+Column #2:
+getBinaryStream(2)
+x43x31x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #3:
+getBinaryStream(3)
+x43x32x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #4:
+getBinaryStream(4)
+x43x33x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #5:
+getAsciiStream(5)
+x43x34x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #6:
+getAsciiStream(6)
+x43x35x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Column #7:
+getAsciiStream(7)
+x43x36x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58x58
+x58x58x58
+Test maxfieldsize  finished

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadata.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadata.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadata.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,471 @@
+Test metadata starting
+Column display size of the union result is: 12
+dec(10,2) -- precision: 10 scale: 2 display size: 12 type name: DECIMAL
+dec(10,2) -- precision: 10 scale: 2 display size: 12 type name: DECIMAL
+real + dec(10,2) -- precision: 7 scale: 0 display size: 13 type name: REAL
+double precision - dec(10,2) -- precision: 15 scale: 0 display size: 22 type name: DOUBLE
+dec(10,2) - double precision -- precision: 15 scale: 2 display size: 22 type name: DOUBLE
+result row: 11.10 11.10 14.4 -6.699999999999999 6.699999999999999
+Column result scale after division is: 23
+dc / 2 = 5.55000000000000000000000
+dc / 2 = 5.55500000000000000000000
+JDBC Driver 'IBM DB2 JDBC Universal Driver Architecture', version (EXPECTED VERSION)
+The URL is: jdbc:derby://localhost:1527/wombat;create=true
+allTablesAreSelectable(): true
+maxColumnNameLength(): 30
+getSchemas():
+TABLE_SCHEM
+APP
+NULLID
+SQLJ
+SYS
+SYSCAT
+SYSCS_DIAG
+SYSCS_UTIL
+SYSFUN
+SYSIBM
+SYSPROC
+SYSSTAT
+getCatalogs():
+TABLE_CAT
+getSearchStringEscape(): 
+getSQLKeywords(): ALIAS,BIGINT,BOOLEAN,CALL,CLASS,COPY,DB2J_DEBUG,EXECUTE,EXPLAIN,FILE,FILTER,GETCURRENTCONNECTION,INDEX,INSTANCEOF,METHOD,NEW,OFF,PROPERTIES,PUBLICATION,RECOMPILE,REFRESH,RENAME,RUNTIMESTATISTICS,STATEMENT,STATISTICS,TIMING,WAIT
+getDefaultTransactionIsolation(): 2
+getProcedures():
+PROCEDURE_CAT,PROCEDURE_SCHEM,PROCEDURE_NAME,RESERVED1,RESERVED2,RESERVED3,REMARKS,PROCEDURE_TYPE
+,APP,GETPCTEST1,null,null,null,org.apache.derbyTesting.functionTests.tests.jdbcapi.metadata.getpc,1
+,APP,GETPCTEST2,null,null,null,org.apache.derbyTesting.functionTests.tests.jdbcapi.metadata.getpc,1
+,APP,GETPCTEST3A,null,null,null,org.apache.derbyTesting.functionTests.tests.jdbcapi.metadata.getpc,1
+,APP,GETPCTEST3B,null,null,null,org.apache.derbyTesting.functionTests.tests.jdbcapi.metadata.getpc,1
+,APP,GETPCTEST4A,null,null,null,org.apache.derbyTesting.functionTests.tests.jdbcapi.metadata.getpc4a,1
+,APP,GETPCTEST4B,null,null,null,org.apache.derbyTesting.functionTests.tests.jdbcapi.metadata.getpc4b,1
+,APP,GETPCTEST4BX,null,null,null,org.apache.derbyTesting.functionTests.tests.jdbcapi.metadata.getpc4b,1
+allProceduresAreCallable(): true
+getUserName(): APP
+isReadOnly(): false
+nullsAreSortedHigh(): true
+nullsAreSortedLow(): false
+nullsAreSortedAtStart(): false
+nullsAreSortedAtEnd(): false
+getDatabaseProductName(): Apache Derby
+getDatabaseProductVersion(): 10.1.0.0 alpha
+getDriverVersion(): EXPECTED VERSION
+usesLocalFiles(): true
+usesLocalFilePerTable(): true
+supportsMixedCaseIdentifiers(): false
+storesUpperCaseIdentifiers(): true
+storesLowerCaseIdentifiers(): false
+storesMixedCaseIdentifiers(): false
+supportsMixedCaseQuotedIdentifiers(): true
+storesUpperCaseQuotedIdentifiers(): false
+storesLowerCaseQuotedIdentifiers(): false
+storesMixedCaseQuotedIdentifiers(): true
+getIdentifierQuoteString(): "
+getNumericFunctions(): ABS,SQRT
+getStringFunctions(): LENGTH,LOWER,LTRIM,RTRIM,SUBSTR,SUBSTRING,UPPER
+getSystemFunctions(): CURRENT_USER,getCurrentConnection,runTimeStatistics,SESSION_USER,USER,CURRENT SCHEMA
+getTimeDateFunctions(): CURDATE,CURTIME,CURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMP,EXTRACT
+getExtraNameCharacters(): 
+supportsAlterTableWithAddColumn(): true
+supportsAlterTableWithDropColumn(): true
+supportsColumnAliasing(): true
+nullPlusNonNullIsNull(): true
+supportsConvert(): true
+supportsConvert(Types.INTEGER, Types.SMALLINT): false
+supportsTableCorrelationNames(): true
+supportsDifferentTableCorrelationNames(): true
+supportsExpressionsInOrderBy(): false
+supportsOrderByUnrelated(): false
+supportsGroupBy(): true
+supportsGroupByUnrelated(): true
+supportsGroupByBeyondSelect(): true
+supportsLikeEscapeClause(): true
+supportsMultipleResultSets(): true
+supportsMultipleTransactions(): true
+supportsNonNullableColumns(): true
+supportsMinimumSQLGrammar(): true
+supportsCoreSQLGrammar(): false
+supportsExtendedSQLGrammar(): false
+supportsANSI92EntryLevelSQL(): true
+supportsANSI92IntermediateSQL(): false
+supportsANSI92FullSQL(): false
+supportsIntegrityEnhancementFacility(): false
+supportsOuterJoins(): true
+supportsFullOuterJoins(): false
+supportsLimitedOuterJoins(): true
+getSchemaTerm(): SCHEMA
+getProcedureTerm(): PROCEDURE
+getCatalogTerm(): CATALOG
+isCatalogAtStart(): false
+getCatalogSeparator(): 
+supportsSchemasInDataManipulation(): true
+supportsSchemasInProcedureCalls(): true
+supportsSchemasInTableDefinitions(): true
+supportsSchemasInIndexDefinitions(): true
+supportsSchemasInPrivilegeDefinitions(): true
+supportsCatalogsInDataManipulation(): false
+supportsCatalogsInProcedureCalls(): false
+supportsCatalogsInTableDefinitions(): false
+supportsCatalogsInIndexDefinitions(): false
+supportsCatalogsInPrivilegeDefinitions(): false
+supportsPositionedDelete(): true
+supportsPositionedUpdate(): true
+supportsSelectForUpdate(): true
+supportsStoredProcedures(): true
+supportsSubqueriesInComparisons(): true
+supportsSubqueriesInExists(): true
+supportsSubqueriesInIns(): true
+supportsSubqueriesInQuantifieds(): true
+supportsCorrelatedSubqueries(): true
+supportsUnion(): true
+supportsUnionAll(): true
+supportsOpenCursorsAcrossCommit(): false
+supportsOpenCursorsAcrossRollback(): false
+supportsOpenStatementsAcrossCommit(): true
+supportsOpenStatementsAcrossRollback(): false
+getMaxBinaryLiteralLength(): 0
+getMaxCharLiteralLength(): 0
+getMaxColumnsInGroupBy(): 0
+getMaxColumnsInIndex(): 0
+getMaxColumnsInOrderBy(): 0
+getMaxColumnsInSelect(): 0
+getMaxColumnsInTable(): 0
+getMaxConnections(): 0
+getMaxCursorNameLength(): 18
+getMaxIndexLength(): 0
+getMaxSchemaNameLength(): 30
+getMaxProcedureNameLength(): 128
+getMaxCatalogNameLength(): 0
+getMaxRowSize(): 0
+doesMaxRowSizeIncludeBlobs(): true
+getMaxStatementLength(): 0
+getMaxStatements(): 0
+getMaxTableNameLength(): 128
+getMaxTablesInSelect(): 0
+getMaxUserNameLength(): 30
+supportsTransactions(): true
+supportsTransactionIsolationLevel(Connection.TRANSACTION_NONE): false
+supportsTransactionIsolationLevel(Connection.TRANSACTION_REPEATABLE_READ): true
+supportsTransactionIsolationLevel(Connection.TRANSACTION_SERIALIZABLE): true
+supportsDataDefinitionAndDataManipulationTransactions(): true
+supportsDataManipulationTransactionsOnly(): false
+dataDefinitionCausesTransactionCommit(): false
+dataDefinitionIgnoredInTransactions(): false
+getConnection(): same connection
+getProcedureColumns():
+PROCEDURE_CAT,PROCEDURE_SCHEM,PROCEDURE_NAME,COLUMN_NAME,COLUMN_TYPE,DATA_TYPE,TYPE_NAME,PRECISION,LENGTH,SCALE,RADIX,NULLABLE,REMARKS,METHOD_ID,PARAMETER_ID
+null,APP,GETPCTEST1,OUTB,4,12,VARCHAR,3,3,0,10,1,null,12,0
+null,APP,GETPCTEST1,A,1,12,VARCHAR,3,3,0,10,1,null,12,1
+null,APP,GETPCTEST1,B,1,2,NUMERIC,5,6,0,10,1,null,12,2
+null,APP,GETPCTEST1,C,1,5,SMALLINT,5,2,0,10,1,null,12,3
+null,APP,GETPCTEST1,E,1,5,SMALLINT,5,2,0,10,1,null,12,4
+null,APP,GETPCTEST1,F,1,4,INTEGER,10,4,0,10,1,null,12,5
+null,APP,GETPCTEST1,G,1,-5,BIGINT,19,8,0,10,1,null,12,6
+null,APP,GETPCTEST1,H,1,8,DOUBLE,52,8,0,2,1,null,12,7
+null,APP,GETPCTEST1,I,1,8,DOUBLE,52,8,0,2,1,null,12,8
+null,APP,GETPCTEST1,K,1,91,DATE,10,-1,0,10,1,null,12,9
+null,APP,GETPCTEST1,L,1,92,TIME,8,-1,0,10,1,null,12,10
+null,APP,GETPCTEST1,T,1,93,TIMESTAMP,26,-1,0,10,1,null,12,11
+null,APP,GETPCTEST2,PA,1,4,INTEGER,10,4,0,10,1,null,2,0
+null,APP,GETPCTEST2,PB,1,-5,BIGINT,19,8,0,10,1,null,2,1
+null,APP,GETPCTEST3A,STRING1,1,12,VARCHAR,5,5,0,10,1,null,2,0
+null,APP,GETPCTEST3A,STRING2,4,12,VARCHAR,5,5,0,10,1,null,2,1
+null,APP,GETPCTEST3B,STRING3,1,12,VARCHAR,5,5,0,10,1,null,2,0
+null,APP,GETPCTEST3B,STRING4,2,12,VARCHAR,5,5,0,10,1,null,2,1
+null,APP,GETPCTEST4BX,RETPARAM,4,4,INTEGER,10,4,0,10,1,null,1,0
+getTables() with TABLE_TYPE in ('SYSTEM TABLE') :
+TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS
+,SYS,SYSALIASES,SYSTEM TABLE,
+,SYS,SYSCHECKS,SYSTEM TABLE,
+,SYS,SYSCOLUMNS,SYSTEM TABLE,
+,SYS,SYSCONGLOMERATES,SYSTEM TABLE,
+,SYS,SYSCONSTRAINTS,SYSTEM TABLE,
+,SYS,SYSDEPENDS,SYSTEM TABLE,
+,SYS,SYSFILES,SYSTEM TABLE,
+,SYS,SYSFOREIGNKEYS,SYSTEM TABLE,
+,SYS,SYSKEYS,SYSTEM TABLE,
+,SYS,SYSSCHEMAS,SYSTEM TABLE,
+,SYS,SYSSTATEMENTS,SYSTEM TABLE,
+,SYS,SYSSTATISTICS,SYSTEM TABLE,
+,SYS,SYSTABLES,SYSTEM TABLE,
+,SYS,SYSTRIGGERS,SYSTEM TABLE,
+,SYS,SYSVIEWS,SYSTEM TABLE,
+,SYSIBM,SYSDUMMY1,SYSTEM TABLE,
+getTables() with no types:
+TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS
+,SYS,SYSALIASES,SYSTEM TABLE,
+,SYS,SYSCHECKS,SYSTEM TABLE,
+,SYS,SYSCOLUMNS,SYSTEM TABLE,
+,SYS,SYSCONGLOMERATES,SYSTEM TABLE,
+,SYS,SYSCONSTRAINTS,SYSTEM TABLE,
+,SYS,SYSDEPENDS,SYSTEM TABLE,
+,SYS,SYSFILES,SYSTEM TABLE,
+,SYS,SYSFOREIGNKEYS,SYSTEM TABLE,
+,SYS,SYSKEYS,SYSTEM TABLE,
+,SYS,SYSSCHEMAS,SYSTEM TABLE,
+,SYS,SYSSTATEMENTS,SYSTEM TABLE,
+,SYS,SYSSTATISTICS,SYSTEM TABLE,
+,SYS,SYSTABLES,SYSTEM TABLE,
+,SYS,SYSTRIGGERS,SYSTEM TABLE,
+,SYS,SYSVIEWS,SYSTEM TABLE,
+,SYSIBM,SYSDUMMY1,SYSTEM TABLE,
+,APP,ALLTYPES,TABLE,
+,APP,INFLIGHT,TABLE,
+,APP,LOUIE,TABLE,
+,APP,REFTAB,TABLE,
+,APP,REFTAB2,TABLE,
+,APP,T,TABLE,
+,APP,SCREWIE,VIEW,
+getTables() with TABLE_TYPE in ('VIEW','TABLE') :
+TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS
+,APP,ALLTYPES,TABLE,
+,APP,INFLIGHT,TABLE,
+,APP,LOUIE,TABLE,
+,APP,REFTAB,TABLE,
+,APP,REFTAB2,TABLE,
+,APP,T,TABLE,
+,APP,SCREWIE,VIEW,
+getTableTypes():
+TABLE_TYPE
+SYSTEM TABLE
+TABLE
+VIEW
+getColumns():
+TABLE_CAT,TABLE_SCHEM,TABLE_NAME,COLUMN_NAME,DATA_TYPE,TYPE_NAME,COLUMN_SIZE,BUFFER_LENGTH,DECIMAL_DIGITS,NUM_PREC_RADIX,NULLABLE,REMARKS,COLUMN_DEF,SQL_DATA_TYPE,SQL_DATETIME_SUB,CHAR_OCTET_LENGTH,ORDINAL_POSITION,IS_NULLABLE
+getColumns('SYSTABLES'):
+TABLE_CAT,TABLE_SCHEM,TABLE_NAME,COLUMN_NAME,DATA_TYPE,TYPE_NAME,COLUMN_SIZE,BUFFER_LENGTH,DECIMAL_DIGITS,NUM_PREC_RADIX,NULLABLE,REMARKS,COLUMN_DEF,SQL_DATA_TYPE,SQL_DATETIME_SUB,CHAR_OCTET_LENGTH,ORDINAL_POSITION,IS_NULLABLE
+,SYS,SYSTABLES,TABLEID,1,CHAR,36,null,null,10,0,,null,null,null,72,1,NO
+,SYS,SYSTABLES,TABLENAME,12,VARCHAR,128,null,null,10,0,,null,null,null,256,2,NO
+,SYS,SYSTABLES,TABLETYPE,1,CHAR,1,null,null,10,0,,null,null,null,2,3,NO
+,SYS,SYSTABLES,SCHEMAID,1,CHAR,36,null,null,10,0,,null,null,null,72,4,NO
+,SYS,SYSTABLES,LOCKGRANULARITY,1,CHAR,1,null,null,10,0,,null,null,null,2,5,NO
+getColumns('ALLTYPES'):
+TABLE_CAT,TABLE_SCHEM,TABLE_NAME,COLUMN_NAME,DATA_TYPE,TYPE_NAME,COLUMN_SIZE,BUFFER_LENGTH,DECIMAL_DIGITS,NUM_PREC_RADIX,NULLABLE,REMARKS,COLUMN_DEF,SQL_DATA_TYPE,SQL_DATETIME_SUB,CHAR_OCTET_LENGTH,ORDINAL_POSITION,IS_NULLABLE
+,APP,ALLTYPES,SMALLINTCOL,5,SMALLINT,5,null,null,10,1,,null,null,null,null,1,YES
+,APP,ALLTYPES,INTCOL,4,INTEGER,10,null,null,10,1,,20,null,null,null,2,YES
+,APP,ALLTYPES,BIGINTCOL,-5,BIGINT,19,null,null,10,1,,null,null,null,null,3,YES
+,APP,ALLTYPES,REALCOL,7,REAL,23,null,null,2,1,,null,null,null,null,4,YES
+,APP,ALLTYPES,DOUBLEPRECCOL,8,DOUBLE,52,null,null,2,1,,10,null,null,null,5,YES
+,APP,ALLTYPES,DECIMALCOL10P4S,3,DECIMAL,10,null,4,10,1,,null,null,null,null,6,YES
+,APP,ALLTYPES,NUMERICCOL20P2S,2,NUMERIC,20,null,2,10,1,,null,null,null,null,7,YES
+,APP,ALLTYPES,CHAR8COL___,1,CHAR,8,null,null,10,1,,null,null,null,16,8,YES
+,APP,ALLTYPES,VARCHAR9COL,12,VARCHAR,9,null,null,10,1,,null,null,null,18,9,YES
+,APP,ALLTYPES,LONGVARCHARCOL,-1,LONG VARCHAR,32700,null,null,10,1,,null,null,null,null,10,YES
+,APP,ALLTYPES,BLOBCOL,2004,BLOB,3072,null,null,10,1,,null,null,null,null,11,YES
+getColumns('LOUIE'):
+TABLE_CAT,TABLE_SCHEM,TABLE_NAME,COLUMN_NAME,DATA_TYPE,TYPE_NAME,COLUMN_SIZE,BUFFER_LENGTH,DECIMAL_DIGITS,NUM_PREC_RADIX,NULLABLE,REMARKS,COLUMN_DEF,SQL_DATA_TYPE,SQL_DATETIME_SUB,CHAR_OCTET_LENGTH,ORDINAL_POSITION,IS_NULLABLE
+,APP,LOUIE,I,4,INTEGER,10,null,null,10,0,,10,null,null,null,1,NO
+,APP,LOUIE,S,5,SMALLINT,5,null,null,10,0,,null,null,null,null,2,NO
+,APP,LOUIE,C30,1,CHAR,30,null,null,10,0,,null,null,null,60,3,NO
+,APP,LOUIE,VC10,12,VARCHAR,10,null,null,10,0,,'asdf',null,null,20,4,NO
+,APP,LOUIE,AI,-5,BIGINT,19,null,null,10,0,,AUTOINCREMENT: start -10 increment 2001,null,null,null,5,NO
+getColumns('INFLIGHT'):
+TABLE_CAT,TABLE_SCHEM,TABLE_NAME,COLUMN_NAME,DATA_TYPE,TYPE_NAME,COLUMN_SIZE,BUFFER_LENGTH,DECIMAL_DIGITS,NUM_PREC_RADIX,NULLABLE,REMARKS,COLUMN_DEF,SQL_DATA_TYPE,SQL_DATETIME_SUB,CHAR_OCTET_LENGTH,ORDINAL_POSITION,IS_NULLABLE
+,APP,INFLIGHT,FLT_NUM,1,CHAR,20,null,null,10,0,,null,null,null,40,1,NO
+,APP,INFLIGHT,FLT_ORIGIN,1,CHAR,6,null,null,10,1,,null,null,null,12,2,YES
+,APP,INFLIGHT,FLT_DEST,1,CHAR,6,null,null,10,1,,null,null,null,12,3,YES
+,APP,INFLIGHT,FLT_AIRCRAFT,1,CHAR,20,null,null,10,1,,null,null,null,40,4,YES
+,APP,INFLIGHT,FLT_FLYING_TIME,12,VARCHAR,22,null,null,10,1,,null,null,null,44,5,YES
+,APP,INFLIGHT,FLT_DEPT_TIME,1,CHAR,8,null,null,10,1,,null,null,null,16,6,YES
+,APP,INFLIGHT,FLT_ARR_TIME,1,CHAR,8,null,null,10,1,,null,null,null,16,7,YES
+,APP,INFLIGHT,FLT_NOTES,12,VARCHAR,510,null,null,10,1,,null,null,null,1020,8,YES
+,APP,INFLIGHT,FLT_DAYS_OF_WK,1,CHAR,14,null,null,10,1,,null,null,null,28,9,YES
+,APP,INFLIGHT,FLT_CRAFT_PIC,12,VARCHAR,32672,null,null,10,1,,null,null,null,65344,10,YES
+getColumnPrivileges():
+TABLE_CAT,TABLE_SCHEM,TABLE_NAME,COLUMN_NAME,GRANTOR,GRANTEE,PRIVILEGE,IS_GRANTABLE
+getTablePrivileges():
+TABLE_CAT,TABLE_SCHEM,TABLE_NAME,GRANTOR,GRANTEE,PRIVILEGE,IS_GRANTABLE
+getBestRowIdentifier("",null,"LOUIE"):
+SCOPE,COLUMN_NAME,DATA_TYPE,TYPE_NAME,COLUMN_SIZE,BUFFER_LENGTH,DECIMAL_DIGITS,PSEUDO_COLUMN
+2,I,4,INTEGER,4,null,10,1
+2,VC10,12,VARCHAR,10,null,0,1
+getBestRowIdentifier("","SYS","SYSTABLES"):
+SCOPE,COLUMN_NAME,DATA_TYPE,TYPE_NAME,COLUMN_SIZE,BUFFER_LENGTH,DECIMAL_DIGITS,PSEUDO_COLUMN
+2,TABLEID,1,CHAR,36,null,0,1
+getVersionColumns():
+SCOPE,COLUMN_NAME,DATA_TYPE,TYPE_NAME,COLUMN_SIZE,BUFFER_LENGTH,DECIMAL_DIGITS,PSEUDO_COLUMN
+getPrimaryKeys():
+TABLE_CAT,TABLE_SCHEM,TABLE_NAME,COLUMN_NAME,KEY_SEQ,PK_NAME
+,APP,LOUIE,I,2,PRIMKEY
+,APP,LOUIE,VC10,1,PRIMKEY
+getPrimaryKeys(null, null, tablename):
+TABLE_CAT,TABLE_SCHEM,TABLE_NAME,COLUMN_NAME,KEY_SEQ,PK_NAME
+,APP,LOUIE,I,2,PRIMKEY
+,APP,LOUIE,VC10,1,PRIMKEY
+getImportedKeys():
+PKTABLE_CAT,PKTABLE_SCHEM,PKTABLE_NAME,PKCOLUMN_NAME,FKTABLE_CAT,FKTABLE_SCHEM,FKTABLE_NAME,FKCOLUMN_NAME,KEY_SEQ,UPDATE_RULE,DELETE_RULE,FK_NAME,PK_NAME,DEFERRABILITY
+,APP,LOUIE,VC10,,APP,REFTAB2,T2_VC10,1,3,3,T2_FKEY1,PRIMKEY,7
+,APP,LOUIE,VC10,,APP,REFTAB,VC10,1,3,3,FKEY1,PRIMKEY,7
+,APP,LOUIE,I,,APP,REFTAB2,T2_I,2,3,3,T2_FKEY1,PRIMKEY,7
+,APP,LOUIE,I,,APP,REFTAB,I,2,3,3,FKEY1,PRIMKEY,7
+,APP,LOUIE,C30,,APP,REFTAB,C30,1,3,3,FKEY3,UNIQUEKEY,7
+,APP,LOUIE,C30,,APP,REFTAB,C30,1,3,3,FKEY2,UNIQUEKEY,7
+,APP,LOUIE,S,,APP,REFTAB,S,2,3,3,FKEY3,UNIQUEKEY,7
+,APP,LOUIE,S,,APP,REFTAB,S2,2,3,3,FKEY2,UNIQUEKEY,7
+,APP,REFTAB,DPRIM,,APP,REFTAB,DFOR,1,3,3,FKEYSELF,PKEY_REFTAB,7
+getExportedKeys():
+PKTABLE_CAT,PKTABLE_SCHEM,PKTABLE_NAME,PKCOLUMN_NAME,FKTABLE_CAT,FKTABLE_SCHEM,FKTABLE_NAME,FKCOLUMN_NAME,KEY_SEQ,UPDATE_RULE,DELETE_RULE,FK_NAME,PK_NAME,DEFERRABILITY
+,APP,LOUIE,VC10,,APP,REFTAB,VC10,1,3,3,FKEY1,PRIMKEY,7
+,APP,LOUIE,I,,APP,REFTAB,I,2,3,3,FKEY1,PRIMKEY,7
+,APP,LOUIE,C30,,APP,REFTAB,C30,1,3,3,FKEY2,UNIQUEKEY,7
+,APP,LOUIE,S,,APP,REFTAB,S2,2,3,3,FKEY2,UNIQUEKEY,7
+,APP,LOUIE,C30,,APP,REFTAB,C30,1,3,3,FKEY3,UNIQUEKEY,7
+,APP,LOUIE,S,,APP,REFTAB,S,2,3,3,FKEY3,UNIQUEKEY,7
+,APP,REFTAB,DPRIM,,APP,REFTAB,DFOR,1,3,3,FKEYSELF,PKEY_REFTAB,7
+,APP,LOUIE,VC10,,APP,REFTAB2,T2_VC10,1,3,3,T2_FKEY1,PRIMKEY,7
+,APP,LOUIE,I,,APP,REFTAB2,T2_I,2,3,3,T2_FKEY1,PRIMKEY,7
+-----
+getCrossReference('',null,'louie','',null,'reftab' ):
+PKTABLE_CAT,PKTABLE_SCHEM,PKTABLE_NAME,PKCOLUMN_NAME,FKTABLE_CAT,FKTABLE_SCHEM,FKTABLE_NAME,FKCOLUMN_NAME,KEY_SEQ,UPDATE_RULE,DELETE_RULE,FK_NAME,PK_NAME,DEFERRABILITY
+,APP,LOUIE,VC10,,APP,REFTAB,VC10,1,3,3,FKEY1,PRIMKEY,7
+,APP,LOUIE,I,,APP,REFTAB,I,2,3,3,FKEY1,PRIMKEY,7
+,APP,LOUIE,C30,,APP,REFTAB,C30,1,3,3,FKEY2,UNIQUEKEY,7
+,APP,LOUIE,S,,APP,REFTAB,S2,2,3,3,FKEY2,UNIQUEKEY,7
+,APP,LOUIE,C30,,APP,REFTAB,C30,1,3,3,FKEY3,UNIQUEKEY,7
+,APP,LOUIE,S,,APP,REFTAB,S,2,3,3,FKEY3,UNIQUEKEY,7
+getCrossReference('','APP','reftab','',null,'reftab' ):
+PKTABLE_CAT,PKTABLE_SCHEM,PKTABLE_NAME,PKCOLUMN_NAME,FKTABLE_CAT,FKTABLE_SCHEM,FKTABLE_NAME,FKCOLUMN_NAME,KEY_SEQ,UPDATE_RULE,DELETE_RULE,FK_NAME,PK_NAME,DEFERRABILITY
+,APP,REFTAB,DPRIM,,APP,REFTAB,DFOR,1,3,3,FKEYSELF,PKEY_REFTAB,7
+getCrossReference('',null,null,'','APP','reftab' ):
+PKTABLE_CAT,PKTABLE_SCHEM,PKTABLE_NAME,PKCOLUMN_NAME,FKTABLE_CAT,FKTABLE_SCHEM,FKTABLE_NAME,FKCOLUMN_NAME,KEY_SEQ,UPDATE_RULE,DELETE_RULE,FK_NAME,PK_NAME,DEFERRABILITY
+,APP,LOUIE,VC10,,APP,REFTAB,VC10,1,3,3,FKEY1,PRIMKEY,7
+,APP,LOUIE,I,,APP,REFTAB,I,2,3,3,FKEY1,PRIMKEY,7
+,APP,LOUIE,C30,,APP,REFTAB,C30,1,3,3,FKEY2,UNIQUEKEY,7
+,APP,LOUIE,S,,APP,REFTAB,S2,2,3,3,FKEY2,UNIQUEKEY,7
+,APP,LOUIE,C30,,APP,REFTAB,C30,1,3,3,FKEY3,UNIQUEKEY,7
+,APP,LOUIE,S,,APP,REFTAB,S,2,3,3,FKEY3,UNIQUEKEY,7
+,APP,REFTAB,DPRIM,,APP,REFTAB,DFOR,1,3,3,FKEYSELF,PKEY_REFTAB,7
+getImportedKeys('',null,null,'','APP','reftab' ):
+PKTABLE_CAT,PKTABLE_SCHEM,PKTABLE_NAME,PKCOLUMN_NAME,FKTABLE_CAT,FKTABLE_SCHEM,FKTABLE_NAME,FKCOLUMN_NAME,KEY_SEQ,UPDATE_RULE,DELETE_RULE,FK_NAME,PK_NAME,DEFERRABILITY
+,APP,LOUIE,VC10,,APP,REFTAB,VC10,1,3,3,FKEY1,PRIMKEY,7
+,APP,LOUIE,I,,APP,REFTAB,I,2,3,3,FKEY1,PRIMKEY,7
+,APP,LOUIE,C30,,APP,REFTAB,C30,1,3,3,FKEY3,UNIQUEKEY,7
+,APP,LOUIE,C30,,APP,REFTAB,C30,1,3,3,FKEY2,UNIQUEKEY,7
+,APP,LOUIE,S,,APP,REFTAB,S,2,3,3,FKEY3,UNIQUEKEY,7
+,APP,LOUIE,S,,APP,REFTAB,S2,2,3,3,FKEY2,UNIQUEKEY,7
+,APP,REFTAB,DPRIM,,APP,REFTAB,DFOR,1,3,3,FKEYSELF,PKEY_REFTAB,7
+getCrossReference('',null,'louie','','APP',null):
+PKTABLE_CAT,PKTABLE_SCHEM,PKTABLE_NAME,PKCOLUMN_NAME,FKTABLE_CAT,FKTABLE_SCHEM,FKTABLE_NAME,FKCOLUMN_NAME,KEY_SEQ,UPDATE_RULE,DELETE_RULE,FK_NAME,PK_NAME,DEFERRABILITY
+,APP,LOUIE,VC10,,APP,REFTAB,VC10,1,3,3,FKEY1,PRIMKEY,7
+,APP,LOUIE,I,,APP,REFTAB,I,2,3,3,FKEY1,PRIMKEY,7
+,APP,LOUIE,C30,,APP,REFTAB,C30,1,3,3,FKEY2,UNIQUEKEY,7
+,APP,LOUIE,S,,APP,REFTAB,S2,2,3,3,FKEY2,UNIQUEKEY,7
+,APP,LOUIE,C30,,APP,REFTAB,C30,1,3,3,FKEY3,UNIQUEKEY,7
+,APP,LOUIE,S,,APP,REFTAB,S,2,3,3,FKEY3,UNIQUEKEY,7
+,APP,LOUIE,VC10,,APP,REFTAB2,T2_VC10,1,3,3,T2_FKEY1,PRIMKEY,7
+,APP,LOUIE,I,,APP,REFTAB2,T2_I,2,3,3,T2_FKEY1,PRIMKEY,7
+getExportedKeys('',null,'louie,'','APP',null ):
+PKTABLE_CAT,PKTABLE_SCHEM,PKTABLE_NAME,PKCOLUMN_NAME,FKTABLE_CAT,FKTABLE_SCHEM,FKTABLE_NAME,FKCOLUMN_NAME,KEY_SEQ,UPDATE_RULE,DELETE_RULE,FK_NAME,PK_NAME,DEFERRABILITY
+,APP,LOUIE,VC10,,APP,REFTAB,VC10,1,3,3,FKEY1,PRIMKEY,7
+,APP,LOUIE,I,,APP,REFTAB,I,2,3,3,FKEY1,PRIMKEY,7
+,APP,LOUIE,C30,,APP,REFTAB,C30,1,3,3,FKEY2,UNIQUEKEY,7
+,APP,LOUIE,S,,APP,REFTAB,S2,2,3,3,FKEY2,UNIQUEKEY,7
+,APP,LOUIE,C30,,APP,REFTAB,C30,1,3,3,FKEY3,UNIQUEKEY,7
+,APP,LOUIE,S,,APP,REFTAB,S,2,3,3,FKEY3,UNIQUEKEY,7
+,APP,LOUIE,VC10,,APP,REFTAB2,T2_VC10,1,3,3,T2_FKEY1,PRIMKEY,7
+,APP,LOUIE,I,,APP,REFTAB2,T2_I,2,3,3,T2_FKEY1,PRIMKEY,7
+getCrossReference('','badschema','LOUIE','','APP','REFTAB' ):
+PKTABLE_CAT,PKTABLE_SCHEM,PKTABLE_NAME,PKCOLUMN_NAME,FKTABLE_CAT,FKTABLE_SCHEM,FKTABLE_NAME,FKCOLUMN_NAME,KEY_SEQ,UPDATE_RULE,DELETE_RULE,FK_NAME,PK_NAME,DEFERRABILITY
+getTypeInfo():
+TYPE_NAME,DATA_TYPE,PRECISION,LITERAL_PREFIX,LITERAL_SUFFIX,CREATE_PARAMS,NULLABLE,CASE_SENSITIVE,SEARCHABLE,UNSIGNED_ATTRIBUTE,FIXED_PREC_SCALE,AUTO_INCREMENT,LOCAL_TYPE_NAME,MINIMUM_SCALE,MAXIMUM_SCALE,SQL_DATA_TYPE,SQL_DATETIME_SUB,NUM_PREC_RADIX
+BIGINT,-5,19,null,null,null,1,0,2,0,0,1,BIGINT,0,0,null,null,10
+LONG VARCHAR FOR BIT DATA,-4,32700,X',',null,1,0,2,1,0,0,LONG VARCHAR FOR BIT DATA,0,0,null,null,0
+VARCHAR () FOR BIT DATA,-3,32762,X',',length,1,0,2,1,0,0,VARCHAR () FOR BIT DATA,0,0,null,null,2
+CHAR () FOR BIT DATA,-2,254,X',',length,1,0,2,1,0,0,CHAR () FOR BIT DATA,0,0,null,null,2
+LONG VARCHAR,-1,32700,',',null,1,1,3,1,0,0,LONG VARCHAR,0,0,null,null,0
+LONG NVARCHAR,-1,32700,',',null,1,1,3,1,0,0,LONG NVARCHAR,0,0,null,null,0
+CHAR,1,254,',',length,1,1,3,1,0,0,CHAR,0,0,null,null,0
+NATIONAL CHAR,1,2147483647,',',length,1,1,3,1,0,0,NATIONAL CHAR,0,0,null,null,0
+NUMERIC,2,31,null,null,precision,scale,1,0,2,0,1,0,NUMERIC,0,32767,null,null,10
+DECIMAL,3,31,null,null,precision,scale,1,0,2,0,1,0,DECIMAL,0,32767,null,null,10
+INTEGER,4,10,null,null,null,1,0,2,0,0,1,INTEGER,0,0,null,null,10
+SMALLINT,5,5,null,null,null,1,0,2,0,0,1,SMALLINT,0,0,null,null,10
+FLOAT,6,52,null,null,precision,1,0,2,0,0,0,FLOAT,0,0,null,null,2
+REAL,7,23,null,null,null,1,0,2,0,0,0,REAL,0,0,null,null,2
+DOUBLE,8,52,null,null,null,1,0,2,0,0,0,DOUBLE,0,0,null,null,2
+VARCHAR,12,32672,',',length,1,1,3,1,0,0,VARCHAR,0,0,null,null,0
+NATIONAL CHAR VARYING,12,2147483647,',',length,1,1,3,1,0,0,NATIONAL CHAR VARYING,0,0,null,null,0
+DATE,91,10,DATE',',null,1,0,2,1,0,0,DATE,0,0,null,null,0
+TIME,92,0,TIME',',null,1,0,2,1,0,0,TIME,0,0,null,null,0
+TIMESTAMP,93,0,TIMESTAMP',',null,1,0,2,1,0,0,TIMESTAMP,0,0,null,null,0
+BLOB,2004,2147483647,null,null,length,1,0,1,null,0,null,BLOB,null,null,null,null,null
+CLOB,2005,2147483647,',',length,1,1,1,null,0,null,CLOB,null,null,null,null,null
+getIndexInfo():
+TABLE_CAT,TABLE_SCHEM,TABLE_NAME,NON_UNIQUE,INDEX_QUALIFIER,INDEX_NAME,TYPE,ORDINAL_POSITION,COLUMN_NAME,ASC_OR_DESC,CARDINALITY,PAGES,FILTER_CONDITION
+,SYS,SYSCOLUMNS,0,,SYSCOLUMNS_INDEX1,3,1,REFERENCEID,A,null,null,null
+,SYS,SYSCOLUMNS,0,,SYSCOLUMNS_INDEX1,3,2,COLUMNNAME,A,null,null,null
+getIndexInfo():
+TABLE_CAT,TABLE_SCHEM,TABLE_NAME,NON_UNIQUE,INDEX_QUALIFIER,INDEX_NAME,TYPE,ORDINAL_POSITION,COLUMN_NAME,ASC_OR_DESC,CARDINALITY,PAGES,FILTER_CONDITION
+,SYS,SYSCOLUMNS,0,,SYSCOLUMNS_INDEX1,3,1,REFERENCEID,A,null,null,null
+,SYS,SYSCOLUMNS,0,,SYSCOLUMNS_INDEX1,3,2,COLUMNNAME,A,null,null,null
+,SYS,SYSCOLUMNS,1,,SYSCOLUMNS_INDEX2,3,1,COLUMNDEFAULTID,A,null,null,null
+getIndexInfo():
+TABLE_CAT,TABLE_SCHEM,TABLE_NAME,NON_UNIQUE,INDEX_QUALIFIER,INDEX_NAME,TYPE,ORDINAL_POSITION,COLUMN_NAME,ASC_OR_DESC,CARDINALITY,PAGES,FILTER_CONDITION
+,SYS,SYSTABLES,0,,SYSTABLES_INDEX1,3,1,TABLENAME,A,null,null,null
+,SYS,SYSTABLES,0,,SYSTABLES_INDEX1,3,2,SCHEMAID,A,null,null,null
+,SYS,SYSTABLES,0,,SYSTABLES_INDEX2,3,1,TABLEID,A,null,null,null
+getColumns('SYSTABLES'):
+TABLE_CAT,TABLE_SCHEM,TABLE_NAME,COLUMN_NAME,DATA_TYPE,TYPE_NAME,COLUMN_SIZE,BUFFER_LENGTH,DECIMAL_DIGITS,NUM_PREC_RADIX,NULLABLE,REMARKS,COLUMN_DEF,SQL_DATA_TYPE,SQL_DATETIME_SUB,CHAR_OCTET_LENGTH,ORDINAL_POSITION,IS_NULLABLE
+,SYS,SYSTABLES,TABLEID,1,CHAR,36,null,null,10,0,,null,null,null,72,1,NO
+,SYS,SYSTABLES,TABLENAME,12,VARCHAR,128,null,null,10,0,,null,null,null,256,2,NO
+,SYS,SYSTABLES,TABLETYPE,1,CHAR,1,null,null,10,0,,null,null,null,2,3,NO
+,SYS,SYSTABLES,SCHEMAID,1,CHAR,36,null,null,10,0,,null,null,null,72,4,NO
+,SYS,SYSTABLES,LOCKGRANULARITY,1,CHAR,1,null,null,10,0,,null,null,null,2,5,NO
+-----
+Referential action values
+RESTRICT = 1
+NO ACTION = 3
+CASCADE = 0
+SETNULL = 2
+SETDEFAULT = 4
+getCrossReference('','APP','REFACTION1','','APP','REFACTIONNONE' ):
+PKTABLE_CAT,PKTABLE_SCHEM,PKTABLE_NAME,PKCOLUMN_NAME,FKTABLE_CAT,FKTABLE_SCHEM,FKTABLE_NAME,FKCOLUMN_NAME,KEY_SEQ,UPDATE_RULE,DELETE_RULE,FK_NAME,PK_NAME,DEFERRABILITY
+,APP,REFACTION1,A,,APP,REFACTNONE,A,1,3,3,xxxxGENERATED-IDxxxx,xxxxGENERATED-IDxxxx,7
+getCrossReference('','APP','REFACTION1','','APP','REFACTRESTRICT' ):
+PKTABLE_CAT,PKTABLE_SCHEM,PKTABLE_NAME,PKCOLUMN_NAME,FKTABLE_CAT,FKTABLE_SCHEM,FKTABLE_NAME,FKCOLUMN_NAME,KEY_SEQ,UPDATE_RULE,DELETE_RULE,FK_NAME,PK_NAME,DEFERRABILITY
+,APP,REFACTION1,A,,APP,REFACTRESTRICT,A,1,3,1,xxxxGENERATED-IDxxxx,xxxxGENERATED-IDxxxx,7
+getCrossReference('','APP','REFACTION1','','APP','REFACTNOACTION' ):
+PKTABLE_CAT,PKTABLE_SCHEM,PKTABLE_NAME,PKCOLUMN_NAME,FKTABLE_CAT,FKTABLE_SCHEM,FKTABLE_NAME,FKCOLUMN_NAME,KEY_SEQ,UPDATE_RULE,DELETE_RULE,FK_NAME,PK_NAME,DEFERRABILITY
+,APP,REFACTION1,A,,APP,REFACTNOACTION,A,1,3,3,xxxxGENERATED-IDxxxx,xxxxGENERATED-IDxxxx,7
+getCrossReference('','APP','REFACTION1','','APP','REFACTCASCADE' ):
+PKTABLE_CAT,PKTABLE_SCHEM,PKTABLE_NAME,PKCOLUMN_NAME,FKTABLE_CAT,FKTABLE_SCHEM,FKTABLE_NAME,FKCOLUMN_NAME,KEY_SEQ,UPDATE_RULE,DELETE_RULE,FK_NAME,PK_NAME,DEFERRABILITY
+,APP,REFACTION1,A,,APP,REFACTCASCADE,A,1,3,0,xxxxGENERATED-IDxxxx,xxxxGENERATED-IDxxxx,7
+getCrossReference('','APP','REFACTION1','','APP','REFACTSETNULL' ):
+PKTABLE_CAT,PKTABLE_SCHEM,PKTABLE_NAME,PKCOLUMN_NAME,FKTABLE_CAT,FKTABLE_SCHEM,FKTABLE_NAME,FKCOLUMN_NAME,KEY_SEQ,UPDATE_RULE,DELETE_RULE,FK_NAME,PK_NAME,DEFERRABILITY
+,APP,REFACTION1,A,,APP,REFACTSETNULL,A,1,3,2,xxxxGENERATED-IDxxxx,xxxxGENERATED-IDxxxx,7
+getCrossReference('','APP','REFACTION1','','APP','REFACTUPDRESTRICT' ):
+PKTABLE_CAT,PKTABLE_SCHEM,PKTABLE_NAME,PKCOLUMN_NAME,FKTABLE_CAT,FKTABLE_SCHEM,FKTABLE_NAME,FKCOLUMN_NAME,KEY_SEQ,UPDATE_RULE,DELETE_RULE,FK_NAME,PK_NAME,DEFERRABILITY
+,APP,REFACTION1,A,,APP,REFACTUPDRESTRICT,A,1,1,3,xxxxGENERATED-IDxxxx,xxxxGENERATED-IDxxxx,7
+getCrossReference('','APP','REFACTION1','','APP','REFACTUPDNOACTION' ):
+PKTABLE_CAT,PKTABLE_SCHEM,PKTABLE_NAME,PKCOLUMN_NAME,FKTABLE_CAT,FKTABLE_SCHEM,FKTABLE_NAME,FKCOLUMN_NAME,KEY_SEQ,UPDATE_RULE,DELETE_RULE,FK_NAME,PK_NAME,DEFERRABILITY
+,APP,REFACTION1,A,,APP,REFACTUPDNOACTION,A,1,3,3,xxxxGENERATED-IDxxxx,xxxxGENERATED-IDxxxx,7
+getImportedKeys - none update Passed
+getImportedKeys - none delete Passed
+getImportedKeys - delete Restrict Passed
+getImportedKeys - delete NO ACTION Passed
+getImportedKeys - delete CASCADE Passed
+getImportedKeys - delete SET NULL Passed
+getImportedKeys - update Restrict Passed
+getImportedKeys - update NO ACTION Passed
+getExportedKeys('',null,null,'','APP','REFACTION1' ):
+PKTABLE_CAT,PKTABLE_SCHEM,PKTABLE_NAME,PKCOLUMN_NAME,FKTABLE_CAT,FKTABLE_SCHEM,FKTABLE_NAME,FKCOLUMN_NAME,KEY_SEQ,UPDATE_RULE,DELETE_RULE,FK_NAME,PK_NAME,DEFERRABILITY
+,APP,REFACTION1,A,,APP,REFACTCASCADE,A,1,3,0,xxxxGENERATED-IDxxxx,xxxxGENERATED-IDxxxx,7
+,APP,REFACTION1,A,,APP,REFACTNOACTION,A,1,3,3,xxxxGENERATED-IDxxxx,xxxxGENERATED-IDxxxx,7
+,APP,REFACTION1,A,,APP,REFACTNONE,A,1,3,3,xxxxGENERATED-IDxxxx,xxxxGENERATED-IDxxxx,7
+,APP,REFACTION1,A,,APP,REFACTRESTRICT,A,1,3,1,xxxxGENERATED-IDxxxx,xxxxGENERATED-IDxxxx,7
+,APP,REFACTION1,A,,APP,REFACTSETNULL,A,1,3,2,xxxxGENERATED-IDxxxx,xxxxGENERATED-IDxxxx,7
+,APP,REFACTION1,A,,APP,REFACTUPDNOACTION,A,1,3,3,xxxxGENERATED-IDxxxx,xxxxGENERATED-IDxxxx,7
+,APP,REFACTION1,A,,APP,REFACTUPDRESTRICT,A,1,1,3,xxxxGENERATED-IDxxxx,xxxxGENERATED-IDxxxx,7
+-----
+getColumns for 'T1'
+  Next line is real null.
+defval for col C1 type INTEGER DEFAULT 'null' wasnull true
+  Next line is real null.
+defval for col C2 type INTEGER DEFAULT 'null' wasnull true
+defval for col C3 type INTEGER DEFAULT 'NULL' wasnull false
+  Next line is real null.
+defval for col C4 type CHAR DEFAULT 'null' wasnull true
+defval for col C5 type CHAR DEFAULT 'NULL' wasnull false
+defval for col C6 type CHAR DEFAULT ''NULL'' wasnull false
+defval for col C7 type INTEGER DEFAULT '88' wasnull false
+Test metadata finished

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadataJdbc20.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadataJdbc20.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/metadataJdbc20.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,14 @@
+Test metadataJdbc20 starting
+JDBC Driver 'IBM DB2 JDBC Universal Driver Architecture', version (EXPECTED VERSION)
+The URL is: jdbc:derby:net://localhost:1527/wombat;create=true
+getUDTs() with user-named types null :
+TYPE_CAT,TYPE_SCHEM,TYPE_NAME,CLASS_NAME,DATA_TYPE,REMARKS
+getUDTs() with user-named types in ('JAVA_OBJECT') :
+TYPE_CAT,TYPE_SCHEM,TYPE_NAME,CLASS_NAME,DATA_TYPE,REMARKS
+getUDTs() with user-named types in ('STRUCT') :
+TYPE_CAT,TYPE_SCHEM,TYPE_NAME,CLASS_NAME,DATA_TYPE,REMARKS
+getUDTs() with user-named types in ('DISTINCT') :
+TYPE_CAT,TYPE_SCHEM,TYPE_NAME,CLASS_NAME,DATA_TYPE,REMARKS
+getUDTs() with user-named types in ('JAVA_OBJECT', 'STRUCT') :
+TYPE_CAT,TYPE_SCHEM,TYPE_NAME,CLASS_NAME,DATA_TYPE,REMARKS
+Test metadataJdbc20 finished

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/parameterMetaDataJdbc30.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/parameterMetaDataJdbc30.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/parameterMetaDataJdbc30.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,260 @@
+Test parameterMetaDataJdbc30 starting
+parameters count for callable statement is 4
+Parameter number : 1
+parameter isNullable PARAMETER_NULLABLE
+parameter isSigned true
+parameter getPrecision 10
+parameter getScale 0
+parameter getParameterType 4
+parameter getParameterTypeName INTEGER
+parameter getParameterClassName java.lang.Integer
+parameter getParameterMode PARAMETER_MODE_IN
+Parameter number : 2
+parameter isNullable PARAMETER_NULLABLE
+parameter isSigned true
+parameter getPrecision 10
+parameter getScale 0
+parameter getParameterType 4
+parameter getParameterTypeName INTEGER
+parameter getParameterClassName java.lang.Integer
+parameter getParameterMode PARAMETER_MODE_IN
+Parameter number : 3
+parameter isNullable PARAMETER_NULLABLE
+parameter isSigned true
+parameter getPrecision 10
+parameter getScale 0
+parameter getParameterType 4
+parameter getParameterTypeName INTEGER
+parameter getParameterClassName java.lang.Integer
+parameter getParameterMode PARAMETER_MODE_OUT
+Parameter number : 4
+parameter isNullable PARAMETER_NULLABLE
+parameter isSigned true
+parameter getPrecision 10
+parameter getScale 0
+parameter getParameterType 4
+parameter getParameterTypeName INTEGER
+parameter getParameterClassName java.lang.Integer
+parameter getParameterMode PARAMETER_MODE_IN_OUT
+Bug 4450 - generate metadata for return parameter
+param count is: 2
+Parameter number : 1
+parameter isNullable PARAMETER_NULLABLE
+parameter isSigned true
+parameter getPrecision 31
+parameter getScale 0
+parameter getParameterType 3
+parameter getParameterTypeName DECIMAL
+parameter getParameterClassName java.math.BigDecimal
+parameter getParameterMode PARAMETER_MODE_OUT
+Parameter number : 2
+parameter isNullable PARAMETER_NULLABLE
+parameter isSigned true
+parameter getPrecision 10
+parameter getScale 0
+parameter getParameterType 4
+parameter getParameterTypeName INTEGER
+parameter getParameterClassName java.lang.Integer
+parameter getParameterMode PARAMETER_MODE_IN
+parameters count for prepared statement is 5
+Parameter number : 1
+parameter isNullable PARAMETER_NULLABLE
+parameter isSigned false
+parameter getPrecision 5
+parameter getScale 0
+parameter getParameterType 1
+parameter getParameterTypeName CHAR
+parameter getParameterClassName java.lang.String
+parameter getParameterMode PARAMETER_MODE_IN
+Parameter number : 2
+parameter isNullable PARAMETER_NULLABLE
+parameter isSigned true
+parameter getPrecision 10
+parameter getScale 0
+parameter getParameterType 4
+parameter getParameterTypeName INTEGER
+parameter getParameterClassName java.lang.Integer
+parameter getParameterMode PARAMETER_MODE_IN
+Parameter number : 3
+parameter isNullable PARAMETER_NULLABLE
+parameter isSigned true
+parameter getPrecision 10
+parameter getScale 0
+parameter getParameterType 4
+parameter getParameterTypeName INTEGER
+parameter getParameterClassName java.lang.Integer
+parameter getParameterMode PARAMETER_MODE_IN
+Parameter number : 4
+parameter isNullable PARAMETER_NULLABLE
+parameter isSigned true
+parameter getPrecision 5
+parameter getScale 0
+parameter getParameterType 3
+parameter getParameterTypeName DECIMAL
+parameter getParameterClassName java.math.BigDecimal
+parameter getParameterMode PARAMETER_MODE_IN
+Parameter number : 5
+parameter isNullable PARAMETER_NULLABLE
+parameter isSigned false
+parameter getPrecision 10
+parameter getScale 0
+parameter getParameterType 91
+parameter getParameterTypeName DATE
+parameter getParameterClassName java.sql.Date
+parameter getParameterMode PARAMETER_MODE_IN
+Bug 4533 - hide associated parameters
+parameters count for prepared statement is 2
+Parameter number : 1
+parameter isNullable PARAMETER_NULLABLE
+parameter isSigned false
+parameter getPrecision 128
+parameter getScale 0
+parameter getParameterType 12
+parameter getParameterTypeName VARCHAR
+parameter getParameterClassName java.lang.String
+parameter getParameterMode PARAMETER_MODE_IN
+Parameter number : 2
+parameter isNullable PARAMETER_NULLABLE
+parameter isSigned false
+parameter getPrecision 36
+parameter getScale 0
+parameter getParameterType 1
+parameter getParameterTypeName CHAR
+parameter getParameterClassName java.lang.String
+parameter getParameterMode PARAMETER_MODE_IN
+variation 1, testing jira 44
+parameters count for prepared statement is 2
+Parameter number : 1
+parameter isNullable PARAMETER_NULLABLE
+parameter isSigned false
+parameter getPrecision 128
+parameter getScale 0
+parameter getParameterType 12
+parameter getParameterTypeName VARCHAR
+parameter getParameterClassName java.lang.String
+parameter getParameterMode PARAMETER_MODE_IN
+Parameter number : 2
+parameter isNullable PARAMETER_NULLABLE
+parameter isSigned false
+parameter getPrecision 128
+parameter getScale 0
+parameter getParameterType 12
+parameter getParameterTypeName VARCHAR
+parameter getParameterClassName java.lang.String
+parameter getParameterMode PARAMETER_MODE_IN
+parameters count for prepared statement is 0
+Bug 4654 - fill in where clause parameter type info
+parameters count for prepared statement is 1
+Parameter number : 1
+parameter isNullable PARAMETER_NULLABLE
+parameter isSigned true
+parameter getPrecision 10
+parameter getScale 0
+parameter getParameterType 4
+parameter getParameterTypeName INTEGER
+parameter getParameterClassName java.lang.Integer
+parameter getParameterMode PARAMETER_MODE_IN
+PASS -- expected exception
+SQLSTATE(null): SQL Exception: Invalid argument: column index -1 is out of range.
+PASS -- expected exception
+SQLSTATE(null): SQL Exception: Invalid argument: column index 0 is out of range.
+PASS -- expected exception
+SQLSTATE(null): SQL Exception: Invalid argument: column index 2 is out of range.
+test: no parameter for the statement and then do getParameterMetaData()
+parameters count for prepared statement is 0
+test: the scale returned should be the one set by registerOutParameter
+Parameter number : 1
+parameter isNullable PARAMETER_NULLABLE
+parameter isSigned true
+parameter getPrecision 30
+parameter getScale 15
+parameter getParameterType 3
+parameter getParameterTypeName DECIMAL
+parameter getParameterClassName java.math.BigDecimal
+parameter getParameterMode PARAMETER_MODE_OUT
+Parameter number : 2
+parameter isNullable PARAMETER_NULLABLE
+parameter isSigned true
+parameter getPrecision 30
+parameter getScale 15
+parameter getParameterType 3
+parameter getParameterTypeName DECIMAL
+parameter getParameterClassName java.math.BigDecimal
+parameter getParameterMode PARAMETER_MODE_OUT
+Behaviour of meta data and out params after re-compile
+Parameter number : 1
+parameter isNullable PARAMETER_NULLABLE
+parameter isSigned true
+parameter getPrecision 10
+parameter getScale 0
+parameter getParameterType 4
+parameter getParameterTypeName INTEGER
+parameter getParameterClassName java.lang.Integer
+parameter getParameterMode PARAMETER_MODE_IN
+Parameter number : 2
+parameter isNullable PARAMETER_NULLABLE
+parameter isSigned true
+parameter getPrecision 10
+parameter getScale 0
+parameter getParameterType 4
+parameter getParameterTypeName INTEGER
+parameter getParameterClassName java.lang.Integer
+parameter getParameterMode PARAMETER_MODE_IN
+Parameter number : 3
+parameter isNullable PARAMETER_NULLABLE
+parameter isSigned true
+parameter getPrecision 10
+parameter getScale 0
+parameter getParameterType 4
+parameter getParameterTypeName INTEGER
+parameter getParameterClassName java.lang.Integer
+parameter getParameterMode PARAMETER_MODE_OUT
+Parameter number : 4
+parameter isNullable PARAMETER_NULLABLE
+parameter isSigned true
+parameter getPrecision 10
+parameter getScale 0
+parameter getParameterType 4
+parameter getParameterTypeName INTEGER
+parameter getParameterClassName java.lang.Integer
+parameter getParameterMode PARAMETER_MODE_IN_OUT
+DUMMYINT alias returned 11111
+Parameter number : 1
+parameter isNullable PARAMETER_NULLABLE
+parameter isSigned true
+parameter getPrecision 10
+parameter getScale 0
+parameter getParameterType 4
+parameter getParameterTypeName INTEGER
+parameter getParameterClassName java.lang.Integer
+parameter getParameterMode PARAMETER_MODE_IN
+Parameter number : 2
+parameter isNullable PARAMETER_NULLABLE
+parameter isSigned true
+parameter getPrecision 10
+parameter getScale 0
+parameter getParameterType 4
+parameter getParameterTypeName INTEGER
+parameter getParameterClassName java.lang.Integer
+parameter getParameterMode PARAMETER_MODE_IN
+Parameter number : 3
+parameter isNullable PARAMETER_NULLABLE
+parameter isSigned true
+parameter getPrecision 10
+parameter getScale 0
+parameter getParameterType 4
+parameter getParameterTypeName INTEGER
+parameter getParameterClassName java.lang.Integer
+parameter getParameterMode PARAMETER_MODE_OUT
+Parameter number : 4
+parameter isNullable PARAMETER_NULLABLE
+parameter isSigned true
+parameter getPrecision 10
+parameter getScale 0
+parameter getParameterType 4
+parameter getParameterTypeName INTEGER
+parameter getParameterClassName java.lang.Integer
+parameter getParameterMode PARAMETER_MODE_IN_OUT
+DUMMYINT alias returned 22222
+DUMMYINT alias returned 22222
+Test parameterMetaDataJdbc30 finished

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/prepStmtMetaData.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/prepStmtMetaData.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/prepStmtMetaData.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,26 @@
+Test prepStmtMetaData starting
+ResultSetMetaData is Null or empty
+ResultSetMetaData is Null or empty
+ResultSetMetaData is Null or empty
+ResultSetMetaData is Null or empty
+ResultSetMetaData is Null or empty
+ResultSetMetaData is Null or empty
+ResultSetMetaData is Null or empty
+ResultSetMetaData is Null or empty
+ResultSetMetaData is Null or empty
+ResultSetMetaData is Null or empty
+ResultSetMetaData is Null or empty
+ResultSetMetaData is Null or empty
+ResultSetMetaData is Null or empty
+ResultSetMetaData is Null or empty
+Result meta data for select
+A,B
+ResultSetMetaData is Null or empty
+ResultSetMetaData is Null or empty
+bug 4579 and 5338 : Result meta data for select *
+C11
+bug 4579 and 5338 : Result meta data for select * after alter table but w/o execute query
+C11
+bug 4579 and 5338 : Result meta data for select * after alter table and execute query
+C11
+Test prepStmtMetaData finished

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/prepstmt.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/prepstmt.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/prepstmt.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,65 @@
+prepStmt Test Starts
+executeUpdate() without parameters
+Update count is: 0
+executeUpdate() with parameters
+Update count is: 1
+execute() with parameters, no result set returned
+Update count is: 2
+executQuery() without parameters
+got row:  99 5 9
+got row:  2 6 10
+got row:  7 5 8
+end of rows
+executQuery() with parameters
+got row:  99 5 9
+got row:  7 5 8
+end of rows
+execute() with parameters with result set returned
+got row:  99 5 9
+got row:  7 5 8
+end of rows
+test different data types for input parameters of a Prepared Statement
+Update count is: 0
+Update count is: 1
+test setObject on different data types for input  parameters of a Prepared Statement
+Update count is: 1
+test setNull on different data types for input  parameters of a Prepared Statement
+Update count is: 1
+got row:  1 2 3 4.0 5.0 6.0 77.77 8.100 column9string        column10vcstring column11lvcstring 0123456789abcdef10111213202020 0123456789abcdef10111213 0123456789abcdef10111213 xxxxxxFILTERED-TIMESTAMPxxxxx-04-12 11:44:30.0
+Timestamp match!
+got row:  1 2 3 4.0 5.0 6.0 77.77 8.100 column11string       column10vcstring column11lvcstring 0123456789abcdef10111213202020 0123456789abcdef10111213 0123456789abcdef10111213 xxxxxxFILTERED-TIMESTAMPxxxxx-04-12 11:44:30.0
+Timestamp match!
+got row:  0 0 0 0.0 0.0 0.0 null null null null null null null null null null xxxxxxFILTERED-TIMESTAMPxxxxx
+After first Timestamp!
+end of rows
+SQLState: 07000 message: At least one parameter to the current statement is uninitialized.
+SQLState: 07000 message: At least one parameter to the current statement is uninitialized.
+insertTab ( bigtab,50)
+insertTab ( bigtab,200)
+insertTab ( bigtab,300)
+insertTab ( bigtab,500)
+insertTab ( bigtab,1000)
+select * from bigtab
+Col # 500 = null  Col 1000 = null
+Col # 500 = null  Col 1000 = null
+Col # 500 = null  Col 1000 = null
+Col # 500 = 500  Col 1000 = null
+Col # 500 = 500  Col 1000 = 1000
+Insert wrong column name
+insertTab ( bigtab,1001)
+SQLState: 42X14 message: 'C1001' is not a column in table or VTI 'APP.BIGTAB'.
+Expected Syntax error 
+insertTab ( bigtab,0)
+SQLState: 42X01 message: Syntax error: Encountered "<EOF>" at line 1, column 29.
+Expected Table does not exist 
+insertTab ( wrongtab,1000)
+SQLState: 42X05 message: Table 'WRONGTAB' does not exist.
+Minimum BigDecimal Value: 0.000000000000001
+Prepared Statement String: update Numeric_Tab set NULL_VAL=?
+Select NULL_VAL from Numeric_Tab
+Returned BigDecimal Value after Updation: 0.000000000000001
+Value returned from ctssql.stmt: 0.000000000000001
+setObject Method sets the designated parameter with the Object
+Negative test setString with Invalid Timestamp:20
+SQLState: 22007 message: The syntax of the string representation of a datetime value is incorrect.
+prepStmt Test Ends

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/procedure.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/procedure.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/procedure.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,914 @@
+testNegative
+create procedure asdf() language java external name 'asdfasdf' parameter style java
+EXPECTED SQL Exception: (42Y04) Cannot create a procedure or function with EXTERNAL NAME 'asdfasdf' because it is not a dot separated list. The expected format is <full java path>.<method name> .
+create procedure asdf() language java external name 'asdfasdf.' parameter style java
+EXPECTED SQL Exception: (42Y04) Cannot create a procedure or function with EXTERNAL NAME 'asdfasdf.' because it is not a dot separated list. The expected format is <full java path>.<method name> .
+create procedure a23456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789() language java external name 'asdf.asdf' parameter style java
+EXPECTED SQL Exception: (42622) The name 'A23456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789' is too long. The maximum length is '128'.
+create procedure asdf language java external name java.lang.Thread.currentThread parameter style java
+EXPECTED SQL Exception: (42X01) Syntax error: Encountered "language" at line 1, column 23.
+CREATE PROCEDURE ASSEMBLY_PARTS (IN ASSEMBLY_NUM INTEGER, OUT NUM_PARTS INTEGER, OUT COST DOUBLE) EXTERNAL NAME 'parts!assembly' DYNAMIC RESULT SETS 1 LANGUAGE C PARAMETER STYLE GENERAL
+EXPECTED SQL Exception: (42X01) Syntax error: Encountered "C" at line 1, column 161.
+create procedure sys.proc1() language java external name 'java.lang.System.gc' parameter style java
+EXPECTED SQL Exception: (42X62) 'CREATE PROCEDURE' is not allowed in the 'SYS' schema.
+create procedure noclass() language java external name 'asdf.asdf' parameter style java language java
+EXPECTED SQL Exception: (42613) Multiple or conflicting keywords involving the 'LANGUAGE' clause are present.
+create procedure noclass() parameter style java language java external name 'asdf.asdf' parameter style java
+EXPECTED SQL Exception: (42613) Multiple or conflicting keywords involving the 'PARAMETER STYLE' clause are present.
+create procedure noclass() external name 'asdf.xxxx' language java external name 'asdf.asdf' parameter style java
+EXPECTED SQL Exception: (42613) Multiple or conflicting keywords involving the 'EXTERNAL NAME' clause are present.
+create procedure noclass() parameter style java language java external name 'asdf.asdf' parameter style derby_rs_collection
+EXPECTED SQL Exception: (42X01) Syntax error: Encountered "derby_rs_collection" at line 1, column 105.
+create procedure missing01()
+EXPECTED SQL Exception: (42X01) Syntax error: Encountered "<EOF>" at line 1, column 28.
+create procedure missing02() language java
+EXPECTED SQL Exception: (42X01) Syntax error: MISSING ELEMENT.
+create procedure missing03() language java parameter style java
+EXPECTED SQL Exception: (42X01) Syntax error: MISSING ELEMENT.
+create procedure missing04() language java external name 'foo.bar'
+EXPECTED SQL Exception: (42X01) Syntax error: MISSING ELEMENT.
+create procedure missing05() parameter style java
+EXPECTED SQL Exception: (42X01) Syntax error: MISSING ELEMENT.
+create procedure missing06() parameter style java external name 'foo.bar'
+EXPECTED SQL Exception: (42X01) Syntax error: MISSING ELEMENT.
+create procedure missing07() external name 'goo.bar'
+EXPECTED SQL Exception: (42X01) Syntax error: MISSING ELEMENT.
+create procedure missing08() dynamic result sets 1
+EXPECTED SQL Exception: (42X01) Syntax error: MISSING ELEMENT.
+create procedure NO_BLOB(IN P1 BLOB(3k)) language java parameter style java external name 'no.blob'
+EXPECTED SQL Exception: (42962) Long column type column or parameter 'P1' not permitted in declared global temporary tables or procedure definitions. 
+create procedure NO_CLOB(IN P1 CLOB(3k)) language java parameter style java external name 'no.clob'
+EXPECTED SQL Exception: (42962) Long column type column or parameter 'P1' not permitted in declared global temporary tables or procedure definitions. 
+create procedure NO_LVC(IN P1 LONG VARCHAR) language java parameter style java external name 'no.lvc'
+EXPECTED SQL Exception: (42962) Long column type column or parameter 'P1' not permitted in declared global temporary tables or procedure definitions. 
+create procedure DUP_P1(IN FRED INT, OUT RON CHAR(10), IN FRED INT) language java parameter style java external name 'no.dup1'
+EXPECTED SQL Exception: (42734) Name 'FRED' specified in context 'DUP_P1' is not unique.
+create procedure D2.DUP_P2(IN "FreD" INT, OUT RON CHAR(10), IN "FreD" INT) language java parameter style java external name 'no.dup2'
+EXPECTED SQL Exception: (42734) Name 'FreD' specified in context 'D2.DUP_P2' is not unique.
+create procedure D3.DUP_P3(IN "FRED" INT, OUT RON CHAR(10), IN fred INT) language java parameter style java external name 'no.dup3'
+EXPECTED SQL Exception: (42734) Name 'FRED' specified in context 'D3.DUP_P3' is not unique.
+CALL APP.NSP(?, ?)
+EXPECTED SQL Exception: (42Y03) 'APP.NSP' is not recognized as a function or procedure.
+call syscs_util.syscs_set_database_property("foo", "bar")
+EXPECTED SQL Exception: (42X15) Column name 'foo' appears in a statement without a FROM list.
+testDelayedClassChecking
+call noclass()
+EXPECTED SQL Exception: (42X51) The class 'asdf' does not exist or is inaccessible. This can happen if the class is not public. SQLSTATE: XJ001: Java exception: 'asdf: java.lang.ClassNotFoundException'.
+call nomethod()
+EXPECTED SQL Exception: (42X50) No method was found to be able to match method call java.lang.Integer.asdf(), even tried all combinations of object and primitive types and any possible type conversion for any parameters the method call may have.  It may be that the method exists, but it is not public and/or static, or that the parameter types are not method invocation convertible.
+call notstatic()
+EXPECTED SQL Exception: (42X50) No method was found to be able to match method call java.lang.Integer.equals(), even tried all combinations of object and primitive types and any possible type conversion for any parameters the method call may have.  It may be that the method exists, but it is not public and/or static, or that the parameter types are not method invocation convertible.
+call notvoid()
+EXPECTED SQL Exception: (42X50) No method was found to be able to match method call void java.lang.Runtime.getRuntime(), even tried all combinations of object and primitive types and any possible type conversion for any parameters the method call may have.  It may be that the method exists, but it is not public and/or static, or that the parameter types are not method invocation convertible.
+testDuplicates
+create procedure PROCDUP() language java external name 'failAPP.fail0' parameter style java
+EXPECTED SQL Exception: (X0Y68) PROCEDURE 'PROCDUP' already exists.
+create procedure s1.PROCDUP() language java external name 'fails1.fail0' parameter style java
+EXPECTED SQL Exception: (X0Y68) PROCEDURE 'PROCDUP' already exists.
+create procedure s2.PROCDUP() language java external name 'fails2.fail0' parameter style java
+EXPECTED SQL Exception: (X0Y68) PROCEDURE 'PROCDUP' already exists.
+DEFINED PROCEDURES FOR PROCDUP
+  APP.PROCDUP AS okAPP.ok0() LANGUAGE JAVA PARAMETER STYLE JAVA MODIFIES SQL DATA
+  S1.PROCDUP AS oks1.ok0() LANGUAGE JAVA PARAMETER STYLE JAVA MODIFIES SQL DATA
+  S2.PROCDUP AS oks2.ok0() LANGUAGE JAVA PARAMETER STYLE JAVA MODIFIES SQL DATA
+DATABASE METATDATA PROCEDURES FOR PROCDUP
+  APP.PROCDUP AS okAPP.ok0 type procedureNoResult
+  S1.PROCDUP AS oks1.ok0 type procedureNoResult
+  S2.PROCDUP AS oks2.ok0 type procedureNoResult
+-----
+create procedure S1.NOTYET() SPECIFIC fred language java external name 'failAPP.fail0' parameter style java
+EXPECTED SQL Exception: (0A000) Feature not implemented: SPECIFIC identifier.
+ambigiousMethods
+call AMBIGIOUS01(?, ?)
+EXPECTED SQL Exception: (42X73) Method resolution for signature org.apache.derbyTesting.functionTests.util.ProcedureTest.ambigious1(int, java.lang.String, [Ljava.sql.ResultSet;) was ambiguous. (No single maximally specific method.)
+call AMBIGIOUS02(?, ?)
+EXPECTED SQL Exception: (42X50) No method was found to be able to match method call org.apache.derbyTesting.functionTests.util.ProcedureTest.ambigious2(int, int, java.sql.ResultSet[]), even tried all combinations of object and primitive types and any possible type conversion for any parameters the method call may have.  It may be that the method exists, but it is not public and/or static, or that the parameter types are not method invocation convertible.
+No ResultSet or update count returned
+No ResultSet or update count returned
+zeroArgProcedures
+No ResultSet or update count returned
+No ResultSet or update count returned
+No ResultSet or update count returned
+FAIL - prepareStatement call za(?)
+No ResultSet or update count returned
+No ResultSet or update count returned
+DEFINED PROCEDURES FOR ZA
+  APP.ZA AS org.apache.derbyTesting.functionTests.util.ProcedureTest.zeroArg() LANGUAGE JAVA PARAMETER STYLE JAVA MODIFIES SQL DATA
+DATABASE METATDATA PROCEDURES FOR ZA
+  APP.ZA AS org.apache.derbyTesting.functionTests.util.ProcedureTest.zeroArg type procedureNoResult
+-----
+DEFINED PROCEDURES FOR ZA
+DATABASE METATDATA PROCEDURES FOR ZA
+-----
+sqlProcedures()
+DEFINED PROCEDURES FOR IR%
+  APP.IR AS org.apache.derbyTesting.functionTests.util.ProcedureTest.insertRow(IN P1 INTEGER) LANGUAGE JAVA PARAMETER STYLE JAVA MODIFIES SQL DATA
+  APP.IR2 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.insertRow(IN P1 INTEGER,IN P2 CHAR(10)) LANGUAGE JAVA PARAMETER STYLE JAVA MODIFIES SQL DATA
+DATABASE METATDATA PROCEDURES FOR IR%
+  APP.IR AS org.apache.derbyTesting.functionTests.util.ProcedureTest.insertRow type procedureNoResult
+    procedureColumnIn P1 INTEGER
+  APP.IR2 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.insertRow type procedureNoResult
+    procedureColumnIn P1 INTEGER
+    procedureColumnIn P2 CHAR
+-----
+CALL IR()
+EXPECTED SQL Exception: (42Y03) 'IR' is not recognized as a function or procedure.
+No ResultSet or update count returned
+No ResultSet or update count returned
+EXPECTED SQL Exception: The exception 'SQL Exception: The statement was aborted because it would have caused a duplicate key value in a unique or primary key constraint or unique index identified by 'xxxxGENERATED-IDxxxx' defined on 'T1'.' was thrown while evaluating an expression. SQLSTATE: 23505: The statement was aborted because it would have caused a duplicate key value in a unique or primary key constraint or unique index identified by 'xxxxGENERATED-IDxxxx' defined on 'T1'.
+No ResultSet or update count returned
+No ResultSet or update count returned
+No ResultSet or update count returned
+No ResultSet or update count returned
+No ResultSet or update count returned
+I |B              
+-----
+1 |int            
+2 |int            
+3 |int            
+7 |int            
+4 |4              
+5 |ir2            
+6 |'012345678     
+CALL IR2(2, 'no way')
+EXPECTED SQL Exception: (38000) The exception 'SQL Exception: The statement was aborted because it would have caused a duplicate key value in a unique or primary key constraint or unique index identified by 'xxxxGENERATED-IDxxxx' defined on 'T1'.' was thrown while evaluating an expression. SQLSTATE: 23505: The statement was aborted because it would have caused a duplicate key value in a unique or primary key constraint or unique index identified by 'xxxxGENERATED-IDxxxx' defined on 'T1'.
+CALL IR2(?, 'no way')
+EXPECTED SQL Exception: (07000) At least one parameter to the current statement is uninitialized.
+CALL IR2(2, ?)
+EXPECTED SQL Exception: (07000) At least one parameter to the current statement is uninitialized.
+dynamicResultSets - parameter style JAVA
+create procedure DRS(p1 int) parameter style JAVA READS SQL DATA dynamic result sets -1 language java external name 'org.apache.derbyTesting.functionTests.util.ProcedureTest.selectRows'
+EXPECTED SQL Exception: (42X01) Syntax error: Encountered "-" at line 1, column 86.
+DEFINED PROCEDURES FOR DRS
+  APP.DRS AS org.apache.derbyTesting.functionTests.util.ProcedureTest.selectRows(IN P1 INTEGER) LANGUAGE JAVA PARAMETER STYLE JAVA READS SQL DATA DYNAMIC RESULT SETS 1
+DATABASE METATDATA PROCEDURES FOR DRS
+  APP.DRS AS org.apache.derbyTesting.functionTests.util.ProcedureTest.selectRows type procedureNoResult
+    procedureColumnIn P1 INTEGER
+-----
+CALL DRS()
+EXPECTED SQL Exception: (42Y03) 'DRS' is not recognized as a function or procedure.
+CALL DRS(?,?)
+EXPECTED SQL Exception: (42Y03) 'DRS' is not recognized as a function or procedure.
+I |B              
+-----
+3 |int            
+DEFINED PROCEDURES FOR DRS2
+  APP.DRS2 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.selectRows(IN P1 INTEGER,IN P2 INTEGER) LANGUAGE JAVA PARAMETER STYLE JAVA READS SQL DATA DYNAMIC RESULT SETS 2
+DATABASE METATDATA PROCEDURES FOR DRS2
+  APP.DRS2 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.selectRows type procedureNoResult
+    procedureColumnIn P1 INTEGER
+    procedureColumnIn P2 INTEGER
+-----
+I |B              
+-----
+2 |int            
+I |B              
+-----
+6 |'012345678     
+7 |int            
+I |B              
+-----
+2 |int            
+I |B              
+-----
+2 |int            
+I |B              
+-----
+I |B              
+-----
+2 |int            
+I |B              
+-----
+6 |'012345678     
+7 |int            
+CALL IRDRS(?)
+EXPECTED SQL Exception: (42X50) No method was found to be able to match method call org.apache.derbyTesting.functionTests.util.ProcedureTest.missingDynamicParameter(int, java.sql.ResultSet[]), even tried all combinations of object and primitive types and any possible type conversion for any parameters the method call may have.  It may be that the method exists, but it is not public and/or static, or that the parameter types are not method invocation convertible.
+CALL rsi(?)
+EXPECTED SQL Exception: (42X50) No method was found to be able to match method call org.apache.derbyTesting.functionTests.util.ProcedureTest.badDynamicParameter(int, java.sql.ResultSet[]), even tried all combinations of object and primitive types and any possible type conversion for any parameters the method call may have.  It may be that the method exists, but it is not public and/or static, or that the parameter types are not method invocation convertible.
+no dynamic result sets
+No ResultSet or update count returned
+Testing too many result sets
+... too many result sets
+I |B              
+-----
+2 |int            
+... one additional closed result set
+I |B              
+-----
+2 |int            
+Stored Procedure w/ CLOB in result set.
+C                             
+-----
+yayorsomething                
+yayorsomething2               
+1          
+-----
+2          
+C                             
+-----
+yayorsomething                
+yayorsomething2               
+Stored Procedure w/ BLOB in result set.
+B                                                           
+-----
+003100300031003000310030003000300031003100300031            
+003100300031003000310030003000300031003100300031            
+parameterTypes
+DEFINED PROCEDURES FOR PT1
+  APP.PT1 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.parameter1(IN A INTEGER,IN B CHAR(10),IN C VARCHAR(20)) LANGUAGE JAVA PARAMETER STYLE JAVA MODIFIES SQL DATA DYNAMIC RESULT SETS 1
+DATABASE METATDATA PROCEDURES FOR PT1
+  APP.PT1 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.parameter1 type procedureNoResult
+    procedureColumnIn A INTEGER
+    procedureColumnIn B CHAR
+    procedureColumnIn C VARCHAR
+-----
+A |B |3 |C |5          
+-----
+20 |abc |10 |efgh |4          
+A |B |3 |C |5          
+-----
+30 |abc |10 |efgh |6          
+A |B |3 |C |5          
+-----
+40 |abc |10 |efgh |20         
+A |B |3 |C |5          
+-----
+50 |0123456789 |10 |efgh |6          
+DEFINED PROCEDURES FOR PT2
+  APP.PT2 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.parameter2(IN A INTEGER,IN B DECIMAL(4,0),IN C DECIMAL(7,3)) LANGUAGE JAVA PARAMETER STYLE JAVA MODIFIES SQL DATA DYNAMIC RESULT SETS 1
+DATABASE METATDATA PROCEDURES FOR PT2
+  APP.PT2 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.parameter2 type procedureNoResult
+    procedureColumnIn A INTEGER
+    procedureColumnIn B DECIMAL
+    procedureColumnIn C DECIMAL
+-----
+A |B |C                   
+-----
+60 |34 |54.100              
+A |B |C                   
+-----
+70 |831 |45.700              
+EXPECTED SQL Exception: BigDecimal conversion exception [ibm][db2][jcc][converters] Overflow occurred during numeric data type conversion of "10243".. See attached Throwable.
+A |B |C                   
+-----
+80 |993 |1234.567            
+DEFINED PROCEDURES FOR PTSMALLINT%
+  APP.PTSMALLINT2 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.pSMALLINT(IN P_IN SMALLINT,INOUT P_INOUT SMALLINT,OUT P_OUT SMALLINT) LANGUAGE JAVA PARAMETER STYLE JAVA NO SQL
+DATABASE METATDATA PROCEDURES FOR PTSMALLINT%
+  APP.PTSMALLINT2 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.pSMALLINT type procedureNoResult
+    procedureColumnIn P_IN SMALLINT
+    procedureColumnInOut P_INOUT SMALLINT
+    procedureColumnOut P_OUT SMALLINT
+-----
+EXPECTED SQL Exception: (39004) A NULL value cannot be passed to a method which takes a parameter of primitive type 'short'.
+EXPECTED SQL Exception: (39004) A NULL value cannot be passed to a method which takes a parameter of primitive type 'short'.
+p_inout 9 p_out 6
+p_inout 9 null?false p_out 6 null?false
+p_inout 9 null?false p_out 6 null?false
+outparams
+DEFINED PROCEDURES FOR OP1
+  APP.OP1 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.outparams1(OUT A INTEGER,IN B INTEGER) LANGUAGE JAVA PARAMETER STYLE JAVA MODIFIES SQL DATA
+DATABASE METATDATA PROCEDURES FOR OP1
+  APP.OP1 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.outparams1 type procedureNoResult
+    procedureColumnOut A INTEGER
+    procedureColumnIn B INTEGER
+-----
+No ResultSet or update count returned
+OP1 14 null ? false
+DEFINED PROCEDURES FOR OP2
+  APP.OP2 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.inoutparams2(INOUT A INTEGER,IN B INTEGER) LANGUAGE JAVA PARAMETER STYLE JAVA MODIFIES SQL DATA
+DATABASE METATDATA PROCEDURES FOR OP2
+  APP.OP2 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.inoutparams2 type procedureNoResult
+    procedureColumnInOut A INTEGER
+    procedureColumnIn B INTEGER
+-----
+No ResultSet or update count returned
+OP2 17 null ? false
+DEFINED PROCEDURES FOR OP3
+  APP.OP3 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.inoutparams3(INOUT A CHAR(10),IN B INTEGER) LANGUAGE JAVA PARAMETER STYLE JAVA MODIFIES SQL DATA
+DATABASE METATDATA PROCEDURES FOR OP3
+  APP.OP3 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.inoutparams3 type procedureNoResult
+    procedureColumnInOut A CHAR
+    procedureColumnIn B INTEGER
+-----
+No ResultSet or update count returned
+OP3 >nad       < null ? false
+DEFINED PROCEDURES FOR OP4
+  APP.OP4 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.inoutparams4(OUT A DECIMAL(4,2),IN B VARCHAR(255)) LANGUAGE JAVA PARAMETER STYLE JAVA MODIFIES SQL DATA
+DATABASE METATDATA PROCEDURES FOR OP4
+  APP.OP4 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.inoutparams4 type procedureNoResult
+    procedureColumnOut A DECIMAL
+    procedureColumnIn B VARCHAR
+-----
+No ResultSet or update count returned
+OP4 null >null< null ? true
+No ResultSet or update count returned
+OP4 14 >31.00< null ? false
+No ResultSet or update count returned
+OP4 11.3 >28.30< null ? false
+No ResultSet or update count returned
+OP4 39.345 >56.34< null ? false
+EXPECTED SQL Exception: The resulting value is outside the range for the data type DECIMAL/NUMERIC(4,2).
+No ResultSet or update count returned
+OP4 49.345 >66.34< null ? false
+EXPECTED SQL Exception: Invalid argument: parameter index 2 is not an OUT or INOUT parameter.
+EXPECTED SQL Exception: (<NULL>) Invalid operation: parameter 1 not set or registered
+DEFINED PROCEDURES FOR OP4INOUT
+  APP.OP4INOUT AS org.apache.derbyTesting.functionTests.util.ProcedureTest.inoutparams4(INOUT A DECIMAL(4,2),IN B VARCHAR(255)) LANGUAGE JAVA PARAMETER STYLE JAVA MODIFIES SQL DATA
+DATABASE METATDATA PROCEDURES FOR OP4INOUT
+  APP.OP4INOUT AS org.apache.derbyTesting.functionTests.util.ProcedureTest.inoutparams4 type procedureNoResult
+    procedureColumnInOut A DECIMAL
+    procedureColumnIn B VARCHAR
+-----
+No ResultSet or update count returned
+OP4INOUT null >null< null ? true
+No ResultSet or update count returned
+OP4INOUT null(2) >null< null ? true
+No ResultSet or update count returned
+OP4INOUT 14+23.5 >37.50< null ? false
+No ResultSet or update count returned
+OP4INOUT 9+23.505 >32.50< null ? false
+EXPECTED SQL Exception: The resulting value is outside the range for the data type DECIMAL/NUMERIC(4,2).
+EXPECTED SQL Exception: BigDecimal conversion exception [ibm][db2][jcc][converters] Overflow occurred during numeric data type conversion of "102.33".. See attached Throwable.
+EXPECTED SQL Exception: (<NULL>) Invalid operation: parameter 1 not set or registered
+SQL Control
+CREATE PROCEDURE SQLC.SQLCONTROL1_0 (OUT E1 VARCHAR(128), OUT E2 VARCHAR(128), OUT E3 VARCHAR(128), OUT E4 VARCHAR(128), OUT E5 VARCHAR(128), OUT E6 VARCHAR(128), OUT E7 VARCHAR(128))  PARAMETER STYLE JAVA LANGUAGE JAVA EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl'
+CREATE PROCEDURE SQLC.SQLCONTROL2_0 (OUT E1 VARCHAR(128), OUT E2 VARCHAR(128), OUT E3 VARCHAR(128), OUT E4 VARCHAR(128), OUT E5 VARCHAR(128), OUT E6 VARCHAR(128), OUT E7 VARCHAR(128))  PARAMETER STYLE JAVA LANGUAGE JAVA EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl2'
+CREATE PROCEDURE SQLC.SQLCONTROL3_0 (OUT E1 VARCHAR(128), OUT E2 VARCHAR(128), OUT E3 VARCHAR(128), OUT E4 VARCHAR(128), OUT E5 VARCHAR(128), OUT E6 VARCHAR(128), OUT E7 VARCHAR(128))  PARAMETER STYLE JAVA LANGUAGE JAVA EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl3'
+CREATE PROCEDURE SQLC.SQLCONTROL4_0 (IN SQLC INTEGER, OUT E1 VARCHAR(128), OUT E2 VARCHAR(128), OUT E3 VARCHAR(128), OUT E4 VARCHAR(128), OUT E5 VARCHAR(128), OUT E6 VARCHAR(128), OUT E7 VARCHAR(128), OUT E8 VARCHAR(128))  PARAMETER STYLE JAVA LANGUAGE JAVA EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl4'
+CREATE PROCEDURE SQLC.SQLCONTROL1_1 (OUT E1 VARCHAR(128), OUT E2 VARCHAR(128), OUT E3 VARCHAR(128), OUT E4 VARCHAR(128), OUT E5 VARCHAR(128), OUT E6 VARCHAR(128), OUT E7 VARCHAR(128)) NO SQL PARAMETER STYLE JAVA LANGUAGE JAVA EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl'
+CREATE PROCEDURE SQLC.SQLCONTROL2_1 (OUT E1 VARCHAR(128), OUT E2 VARCHAR(128), OUT E3 VARCHAR(128), OUT E4 VARCHAR(128), OUT E5 VARCHAR(128), OUT E6 VARCHAR(128), OUT E7 VARCHAR(128)) NO SQL PARAMETER STYLE JAVA LANGUAGE JAVA EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl2'
+CREATE PROCEDURE SQLC.SQLCONTROL3_1 (OUT E1 VARCHAR(128), OUT E2 VARCHAR(128), OUT E3 VARCHAR(128), OUT E4 VARCHAR(128), OUT E5 VARCHAR(128), OUT E6 VARCHAR(128), OUT E7 VARCHAR(128)) NO SQL PARAMETER STYLE JAVA LANGUAGE JAVA EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl3'
+CREATE PROCEDURE SQLC.SQLCONTROL4_1 (IN SQLC INTEGER, OUT E1 VARCHAR(128), OUT E2 VARCHAR(128), OUT E3 VARCHAR(128), OUT E4 VARCHAR(128), OUT E5 VARCHAR(128), OUT E6 VARCHAR(128), OUT E7 VARCHAR(128), OUT E8 VARCHAR(128)) NO SQL PARAMETER STYLE JAVA LANGUAGE JAVA EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl4'
+CREATE PROCEDURE SQLC.SQLCONTROL1_2 (OUT E1 VARCHAR(128), OUT E2 VARCHAR(128), OUT E3 VARCHAR(128), OUT E4 VARCHAR(128), OUT E5 VARCHAR(128), OUT E6 VARCHAR(128), OUT E7 VARCHAR(128)) CONTAINS SQL PARAMETER STYLE JAVA LANGUAGE JAVA EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl'
+CREATE PROCEDURE SQLC.SQLCONTROL2_2 (OUT E1 VARCHAR(128), OUT E2 VARCHAR(128), OUT E3 VARCHAR(128), OUT E4 VARCHAR(128), OUT E5 VARCHAR(128), OUT E6 VARCHAR(128), OUT E7 VARCHAR(128)) CONTAINS SQL PARAMETER STYLE JAVA LANGUAGE JAVA EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl2'
+CREATE PROCEDURE SQLC.SQLCONTROL3_2 (OUT E1 VARCHAR(128), OUT E2 VARCHAR(128), OUT E3 VARCHAR(128), OUT E4 VARCHAR(128), OUT E5 VARCHAR(128), OUT E6 VARCHAR(128), OUT E7 VARCHAR(128)) CONTAINS SQL PARAMETER STYLE JAVA LANGUAGE JAVA EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl3'
+CREATE PROCEDURE SQLC.SQLCONTROL4_2 (IN SQLC INTEGER, OUT E1 VARCHAR(128), OUT E2 VARCHAR(128), OUT E3 VARCHAR(128), OUT E4 VARCHAR(128), OUT E5 VARCHAR(128), OUT E6 VARCHAR(128), OUT E7 VARCHAR(128), OUT E8 VARCHAR(128)) CONTAINS SQL PARAMETER STYLE JAVA LANGUAGE JAVA EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl4'
+CREATE PROCEDURE SQLC.SQLCONTROL1_3 (OUT E1 VARCHAR(128), OUT E2 VARCHAR(128), OUT E3 VARCHAR(128), OUT E4 VARCHAR(128), OUT E5 VARCHAR(128), OUT E6 VARCHAR(128), OUT E7 VARCHAR(128)) READS SQL DATA PARAMETER STYLE JAVA LANGUAGE JAVA EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl'
+CREATE PROCEDURE SQLC.SQLCONTROL2_3 (OUT E1 VARCHAR(128), OUT E2 VARCHAR(128), OUT E3 VARCHAR(128), OUT E4 VARCHAR(128), OUT E5 VARCHAR(128), OUT E6 VARCHAR(128), OUT E7 VARCHAR(128)) READS SQL DATA PARAMETER STYLE JAVA LANGUAGE JAVA EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl2'
+CREATE PROCEDURE SQLC.SQLCONTROL3_3 (OUT E1 VARCHAR(128), OUT E2 VARCHAR(128), OUT E3 VARCHAR(128), OUT E4 VARCHAR(128), OUT E5 VARCHAR(128), OUT E6 VARCHAR(128), OUT E7 VARCHAR(128)) READS SQL DATA PARAMETER STYLE JAVA LANGUAGE JAVA EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl3'
+CREATE PROCEDURE SQLC.SQLCONTROL4_3 (IN SQLC INTEGER, OUT E1 VARCHAR(128), OUT E2 VARCHAR(128), OUT E3 VARCHAR(128), OUT E4 VARCHAR(128), OUT E5 VARCHAR(128), OUT E6 VARCHAR(128), OUT E7 VARCHAR(128), OUT E8 VARCHAR(128)) READS SQL DATA PARAMETER STYLE JAVA LANGUAGE JAVA EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl4'
+CREATE PROCEDURE SQLC.SQLCONTROL1_4 (OUT E1 VARCHAR(128), OUT E2 VARCHAR(128), OUT E3 VARCHAR(128), OUT E4 VARCHAR(128), OUT E5 VARCHAR(128), OUT E6 VARCHAR(128), OUT E7 VARCHAR(128)) MODIFIES SQL DATA PARAMETER STYLE JAVA LANGUAGE JAVA EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl'
+CREATE PROCEDURE SQLC.SQLCONTROL2_4 (OUT E1 VARCHAR(128), OUT E2 VARCHAR(128), OUT E3 VARCHAR(128), OUT E4 VARCHAR(128), OUT E5 VARCHAR(128), OUT E6 VARCHAR(128), OUT E7 VARCHAR(128)) MODIFIES SQL DATA PARAMETER STYLE JAVA LANGUAGE JAVA EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl2'
+CREATE PROCEDURE SQLC.SQLCONTROL3_4 (OUT E1 VARCHAR(128), OUT E2 VARCHAR(128), OUT E3 VARCHAR(128), OUT E4 VARCHAR(128), OUT E5 VARCHAR(128), OUT E6 VARCHAR(128), OUT E7 VARCHAR(128)) MODIFIES SQL DATA PARAMETER STYLE JAVA LANGUAGE JAVA EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl3'
+CREATE PROCEDURE SQLC.SQLCONTROL4_4 (IN SQLC INTEGER, OUT E1 VARCHAR(128), OUT E2 VARCHAR(128), OUT E3 VARCHAR(128), OUT E4 VARCHAR(128), OUT E5 VARCHAR(128), OUT E6 VARCHAR(128), OUT E7 VARCHAR(128), OUT E8 VARCHAR(128)) MODIFIES SQL DATA PARAMETER STYLE JAVA LANGUAGE JAVA EXTERNAL NAME 'org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl4'
+DEFINED PROCEDURES FOR SQLCONTROL1_%
+  SQLC.SQLCONTROL1_0 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl(OUT E1 VARCHAR(128),OUT E2 VARCHAR(128),OUT E3 VARCHAR(128),OUT E4 VARCHAR(128),OUT E5 VARCHAR(128),OUT E6 VARCHAR(128),OUT E7 VARCHAR(128)) LANGUAGE JAVA PARAMETER STYLE JAVA MODIFIES SQL DATA
+  SQLC.SQLCONTROL1_1 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl(OUT E1 VARCHAR(128),OUT E2 VARCHAR(128),OUT E3 VARCHAR(128),OUT E4 VARCHAR(128),OUT E5 VARCHAR(128),OUT E6 VARCHAR(128),OUT E7 VARCHAR(128)) LANGUAGE JAVA PARAMETER STYLE JAVA NO SQL
+  SQLC.SQLCONTROL1_2 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl(OUT E1 VARCHAR(128),OUT E2 VARCHAR(128),OUT E3 VARCHAR(128),OUT E4 VARCHAR(128),OUT E5 VARCHAR(128),OUT E6 VARCHAR(128),OUT E7 VARCHAR(128)) LANGUAGE JAVA PARAMETER STYLE JAVA CONTAINS SQL
+  SQLC.SQLCONTROL1_3 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl(OUT E1 VARCHAR(128),OUT E2 VARCHAR(128),OUT E3 VARCHAR(128),OUT E4 VARCHAR(128),OUT E5 VARCHAR(128),OUT E6 VARCHAR(128),OUT E7 VARCHAR(128)) LANGUAGE JAVA PARAMETER STYLE JAVA READS SQL DATA
+  SQLC.SQLCONTROL1_4 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl(OUT E1 VARCHAR(128),OUT E2 VARCHAR(128),OUT E3 VARCHAR(128),OUT E4 VARCHAR(128),OUT E5 VARCHAR(128),OUT E6 VARCHAR(128),OUT E7 VARCHAR(128)) LANGUAGE JAVA PARAMETER STYLE JAVA MODIFIES SQL DATA
+DATABASE METATDATA PROCEDURES FOR SQLCONTROL1_%
+  SQLC.SQLCONTROL1_0 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl type procedureNoResult
+    procedureColumnOut E1 VARCHAR
+    procedureColumnOut E2 VARCHAR
+    procedureColumnOut E3 VARCHAR
+    procedureColumnOut E4 VARCHAR
+    procedureColumnOut E5 VARCHAR
+    procedureColumnOut E6 VARCHAR
+    procedureColumnOut E7 VARCHAR
+  SQLC.SQLCONTROL1_1 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl type procedureNoResult
+    procedureColumnOut E1 VARCHAR
+    procedureColumnOut E2 VARCHAR
+    procedureColumnOut E3 VARCHAR
+    procedureColumnOut E4 VARCHAR
+    procedureColumnOut E5 VARCHAR
+    procedureColumnOut E6 VARCHAR
+    procedureColumnOut E7 VARCHAR
+  SQLC.SQLCONTROL1_2 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl type procedureNoResult
+    procedureColumnOut E1 VARCHAR
+    procedureColumnOut E2 VARCHAR
+    procedureColumnOut E3 VARCHAR
+    procedureColumnOut E4 VARCHAR
+    procedureColumnOut E5 VARCHAR
+    procedureColumnOut E6 VARCHAR
+    procedureColumnOut E7 VARCHAR
+  SQLC.SQLCONTROL1_3 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl type procedureNoResult
+    procedureColumnOut E1 VARCHAR
+    procedureColumnOut E2 VARCHAR
+    procedureColumnOut E3 VARCHAR
+    procedureColumnOut E4 VARCHAR
+    procedureColumnOut E5 VARCHAR
+    procedureColumnOut E6 VARCHAR
+    procedureColumnOut E7 VARCHAR
+  SQLC.SQLCONTROL1_4 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl type procedureNoResult
+    procedureColumnOut E1 VARCHAR
+    procedureColumnOut E2 VARCHAR
+    procedureColumnOut E3 VARCHAR
+    procedureColumnOut E4 VARCHAR
+    procedureColumnOut E5 VARCHAR
+    procedureColumnOut E6 VARCHAR
+    procedureColumnOut E7 VARCHAR
+-----
+DEFINED PROCEDURES FOR SQLCONTROL2_%
+  SQLC.SQLCONTROL2_0 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl2(OUT E1 VARCHAR(128),OUT E2 VARCHAR(128),OUT E3 VARCHAR(128),OUT E4 VARCHAR(128),OUT E5 VARCHAR(128),OUT E6 VARCHAR(128),OUT E7 VARCHAR(128)) LANGUAGE JAVA PARAMETER STYLE JAVA MODIFIES SQL DATA
+  SQLC.SQLCONTROL2_1 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl2(OUT E1 VARCHAR(128),OUT E2 VARCHAR(128),OUT E3 VARCHAR(128),OUT E4 VARCHAR(128),OUT E5 VARCHAR(128),OUT E6 VARCHAR(128),OUT E7 VARCHAR(128)) LANGUAGE JAVA PARAMETER STYLE JAVA NO SQL
+  SQLC.SQLCONTROL2_2 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl2(OUT E1 VARCHAR(128),OUT E2 VARCHAR(128),OUT E3 VARCHAR(128),OUT E4 VARCHAR(128),OUT E5 VARCHAR(128),OUT E6 VARCHAR(128),OUT E7 VARCHAR(128)) LANGUAGE JAVA PARAMETER STYLE JAVA CONTAINS SQL
+  SQLC.SQLCONTROL2_3 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl2(OUT E1 VARCHAR(128),OUT E2 VARCHAR(128),OUT E3 VARCHAR(128),OUT E4 VARCHAR(128),OUT E5 VARCHAR(128),OUT E6 VARCHAR(128),OUT E7 VARCHAR(128)) LANGUAGE JAVA PARAMETER STYLE JAVA READS SQL DATA
+  SQLC.SQLCONTROL2_4 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl2(OUT E1 VARCHAR(128),OUT E2 VARCHAR(128),OUT E3 VARCHAR(128),OUT E4 VARCHAR(128),OUT E5 VARCHAR(128),OUT E6 VARCHAR(128),OUT E7 VARCHAR(128)) LANGUAGE JAVA PARAMETER STYLE JAVA MODIFIES SQL DATA
+DATABASE METATDATA PROCEDURES FOR SQLCONTROL2_%
+  SQLC.SQLCONTROL2_0 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl2 type procedureNoResult
+    procedureColumnOut E1 VARCHAR
+    procedureColumnOut E2 VARCHAR
+    procedureColumnOut E3 VARCHAR
+    procedureColumnOut E4 VARCHAR
+    procedureColumnOut E5 VARCHAR
+    procedureColumnOut E6 VARCHAR
+    procedureColumnOut E7 VARCHAR
+  SQLC.SQLCONTROL2_1 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl2 type procedureNoResult
+    procedureColumnOut E1 VARCHAR
+    procedureColumnOut E2 VARCHAR
+    procedureColumnOut E3 VARCHAR
+    procedureColumnOut E4 VARCHAR
+    procedureColumnOut E5 VARCHAR
+    procedureColumnOut E6 VARCHAR
+    procedureColumnOut E7 VARCHAR
+  SQLC.SQLCONTROL2_2 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl2 type procedureNoResult
+    procedureColumnOut E1 VARCHAR
+    procedureColumnOut E2 VARCHAR
+    procedureColumnOut E3 VARCHAR
+    procedureColumnOut E4 VARCHAR
+    procedureColumnOut E5 VARCHAR
+    procedureColumnOut E6 VARCHAR
+    procedureColumnOut E7 VARCHAR
+  SQLC.SQLCONTROL2_3 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl2 type procedureNoResult
+    procedureColumnOut E1 VARCHAR
+    procedureColumnOut E2 VARCHAR
+    procedureColumnOut E3 VARCHAR
+    procedureColumnOut E4 VARCHAR
+    procedureColumnOut E5 VARCHAR
+    procedureColumnOut E6 VARCHAR
+    procedureColumnOut E7 VARCHAR
+  SQLC.SQLCONTROL2_4 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl2 type procedureNoResult
+    procedureColumnOut E1 VARCHAR
+    procedureColumnOut E2 VARCHAR
+    procedureColumnOut E3 VARCHAR
+    procedureColumnOut E4 VARCHAR
+    procedureColumnOut E5 VARCHAR
+    procedureColumnOut E6 VARCHAR
+    procedureColumnOut E7 VARCHAR
+-----
+DEFINED PROCEDURES FOR SQLCONTROL3_%
+  SQLC.SQLCONTROL3_0 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl3(OUT E1 VARCHAR(128),OUT E2 VARCHAR(128),OUT E3 VARCHAR(128),OUT E4 VARCHAR(128),OUT E5 VARCHAR(128),OUT E6 VARCHAR(128),OUT E7 VARCHAR(128)) LANGUAGE JAVA PARAMETER STYLE JAVA MODIFIES SQL DATA
+  SQLC.SQLCONTROL3_1 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl3(OUT E1 VARCHAR(128),OUT E2 VARCHAR(128),OUT E3 VARCHAR(128),OUT E4 VARCHAR(128),OUT E5 VARCHAR(128),OUT E6 VARCHAR(128),OUT E7 VARCHAR(128)) LANGUAGE JAVA PARAMETER STYLE JAVA NO SQL
+  SQLC.SQLCONTROL3_2 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl3(OUT E1 VARCHAR(128),OUT E2 VARCHAR(128),OUT E3 VARCHAR(128),OUT E4 VARCHAR(128),OUT E5 VARCHAR(128),OUT E6 VARCHAR(128),OUT E7 VARCHAR(128)) LANGUAGE JAVA PARAMETER STYLE JAVA CONTAINS SQL
+  SQLC.SQLCONTROL3_3 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl3(OUT E1 VARCHAR(128),OUT E2 VARCHAR(128),OUT E3 VARCHAR(128),OUT E4 VARCHAR(128),OUT E5 VARCHAR(128),OUT E6 VARCHAR(128),OUT E7 VARCHAR(128)) LANGUAGE JAVA PARAMETER STYLE JAVA READS SQL DATA
+  SQLC.SQLCONTROL3_4 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl3(OUT E1 VARCHAR(128),OUT E2 VARCHAR(128),OUT E3 VARCHAR(128),OUT E4 VARCHAR(128),OUT E5 VARCHAR(128),OUT E6 VARCHAR(128),OUT E7 VARCHAR(128)) LANGUAGE JAVA PARAMETER STYLE JAVA MODIFIES SQL DATA
+DATABASE METATDATA PROCEDURES FOR SQLCONTROL3_%
+  SQLC.SQLCONTROL3_0 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl3 type procedureNoResult
+    procedureColumnOut E1 VARCHAR
+    procedureColumnOut E2 VARCHAR
+    procedureColumnOut E3 VARCHAR
+    procedureColumnOut E4 VARCHAR
+    procedureColumnOut E5 VARCHAR
+    procedureColumnOut E6 VARCHAR
+    procedureColumnOut E7 VARCHAR
+  SQLC.SQLCONTROL3_1 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl3 type procedureNoResult
+    procedureColumnOut E1 VARCHAR
+    procedureColumnOut E2 VARCHAR
+    procedureColumnOut E3 VARCHAR
+    procedureColumnOut E4 VARCHAR
+    procedureColumnOut E5 VARCHAR
+    procedureColumnOut E6 VARCHAR
+    procedureColumnOut E7 VARCHAR
+  SQLC.SQLCONTROL3_2 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl3 type procedureNoResult
+    procedureColumnOut E1 VARCHAR
+    procedureColumnOut E2 VARCHAR
+    procedureColumnOut E3 VARCHAR
+    procedureColumnOut E4 VARCHAR
+    procedureColumnOut E5 VARCHAR
+    procedureColumnOut E6 VARCHAR
+    procedureColumnOut E7 VARCHAR
+  SQLC.SQLCONTROL3_3 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl3 type procedureNoResult
+    procedureColumnOut E1 VARCHAR
+    procedureColumnOut E2 VARCHAR
+    procedureColumnOut E3 VARCHAR
+    procedureColumnOut E4 VARCHAR
+    procedureColumnOut E5 VARCHAR
+    procedureColumnOut E6 VARCHAR
+    procedureColumnOut E7 VARCHAR
+  SQLC.SQLCONTROL3_4 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl3 type procedureNoResult
+    procedureColumnOut E1 VARCHAR
+    procedureColumnOut E2 VARCHAR
+    procedureColumnOut E3 VARCHAR
+    procedureColumnOut E4 VARCHAR
+    procedureColumnOut E5 VARCHAR
+    procedureColumnOut E6 VARCHAR
+    procedureColumnOut E7 VARCHAR
+-----
+DEFINED PROCEDURES FOR SQLCONTROL4_%
+  SQLC.SQLCONTROL4_0 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl4(IN SQLC INTEGER,OUT E1 VARCHAR(128),OUT E2 VARCHAR(128),OUT E3 VARCHAR(128),OUT E4 VARCHAR(128),OUT E5 VARCHAR(128),OUT E6 VARCHAR(128),OUT E7 VARCHAR(128),OUT E8 VARCHAR(128)) LANGUAGE JAVA PARAMETER STYLE JAVA MODIFIES SQL DATA
+  SQLC.SQLCONTROL4_1 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl4(IN SQLC INTEGER,OUT E1 VARCHAR(128),OUT E2 VARCHAR(128),OUT E3 VARCHAR(128),OUT E4 VARCHAR(128),OUT E5 VARCHAR(128),OUT E6 VARCHAR(128),OUT E7 VARCHAR(128),OUT E8 VARCHAR(128)) LANGUAGE JAVA PARAMETER STYLE JAVA NO SQL
+  SQLC.SQLCONTROL4_2 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl4(IN SQLC INTEGER,OUT E1 VARCHAR(128),OUT E2 VARCHAR(128),OUT E3 VARCHAR(128),OUT E4 VARCHAR(128),OUT E5 VARCHAR(128),OUT E6 VARCHAR(128),OUT E7 VARCHAR(128),OUT E8 VARCHAR(128)) LANGUAGE JAVA PARAMETER STYLE JAVA CONTAINS SQL
+  SQLC.SQLCONTROL4_3 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl4(IN SQLC INTEGER,OUT E1 VARCHAR(128),OUT E2 VARCHAR(128),OUT E3 VARCHAR(128),OUT E4 VARCHAR(128),OUT E5 VARCHAR(128),OUT E6 VARCHAR(128),OUT E7 VARCHAR(128),OUT E8 VARCHAR(128)) LANGUAGE JAVA PARAMETER STYLE JAVA READS SQL DATA
+  SQLC.SQLCONTROL4_4 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl4(IN SQLC INTEGER,OUT E1 VARCHAR(128),OUT E2 VARCHAR(128),OUT E3 VARCHAR(128),OUT E4 VARCHAR(128),OUT E5 VARCHAR(128),OUT E6 VARCHAR(128),OUT E7 VARCHAR(128),OUT E8 VARCHAR(128)) LANGUAGE JAVA PARAMETER STYLE JAVA MODIFIES SQL DATA
+DATABASE METATDATA PROCEDURES FOR SQLCONTROL4_%
+  SQLC.SQLCONTROL4_0 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl4 type procedureNoResult
+    procedureColumnIn SQLC INTEGER
+    procedureColumnOut E1 VARCHAR
+    procedureColumnOut E2 VARCHAR
+    procedureColumnOut E3 VARCHAR
+    procedureColumnOut E4 VARCHAR
+    procedureColumnOut E5 VARCHAR
+    procedureColumnOut E6 VARCHAR
+    procedureColumnOut E7 VARCHAR
+    procedureColumnOut E8 VARCHAR
+  SQLC.SQLCONTROL4_1 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl4 type procedureNoResult
+    procedureColumnIn SQLC INTEGER
+    procedureColumnOut E1 VARCHAR
+    procedureColumnOut E2 VARCHAR
+    procedureColumnOut E3 VARCHAR
+    procedureColumnOut E4 VARCHAR
+    procedureColumnOut E5 VARCHAR
+    procedureColumnOut E6 VARCHAR
+    procedureColumnOut E7 VARCHAR
+    procedureColumnOut E8 VARCHAR
+  SQLC.SQLCONTROL4_2 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl4 type procedureNoResult
+    procedureColumnIn SQLC INTEGER
+    procedureColumnOut E1 VARCHAR
+    procedureColumnOut E2 VARCHAR
+    procedureColumnOut E3 VARCHAR
+    procedureColumnOut E4 VARCHAR
+    procedureColumnOut E5 VARCHAR
+    procedureColumnOut E6 VARCHAR
+    procedureColumnOut E7 VARCHAR
+    procedureColumnOut E8 VARCHAR
+  SQLC.SQLCONTROL4_3 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl4 type procedureNoResult
+    procedureColumnIn SQLC INTEGER
+    procedureColumnOut E1 VARCHAR
+    procedureColumnOut E2 VARCHAR
+    procedureColumnOut E3 VARCHAR
+    procedureColumnOut E4 VARCHAR
+    procedureColumnOut E5 VARCHAR
+    procedureColumnOut E6 VARCHAR
+    procedureColumnOut E7 VARCHAR
+    procedureColumnOut E8 VARCHAR
+  SQLC.SQLCONTROL4_4 AS org.apache.derbyTesting.functionTests.util.ProcedureTest.sqlControl4 type procedureNoResult
+    procedureColumnIn SQLC INTEGER
+    procedureColumnOut E1 VARCHAR
+    procedureColumnOut E2 VARCHAR
+    procedureColumnOut E3 VARCHAR
+    procedureColumnOut E4 VARCHAR
+    procedureColumnOut E5 VARCHAR
+    procedureColumnOut E6 VARCHAR
+    procedureColumnOut E7 VARCHAR
+    procedureColumnOut E8 VARCHAR
+-----
+** SQL ** DEFAULT (MODIFIES SQL DATA)
+    CREATE TABLE SQ-UPDATE 0-EXECUTE OK
+    ALTER TABLE SQL-UPDATE 0-EXECUTE OK
+    INSERT INTO SQL-UPDATE 1-EXECUTE OK
+    UPDATE SQLC.SQL-UPDATE 2-EXECUTE OK
+    SELECT * FROM S- ROW(15)- ROW(12)-EXECUTE OK
+    DELETE FROM SQL-UPDATE 2-EXECUTE OK
+    DROP TABLE SQLC-UPDATE 0-EXECUTE OK
+    CREATE VIEW SQL-42X05
+    DROP VIEW SQLCO-X0X05
+    LOCK TABLE SQLC-42X05
+    VALUES 1,2,3- ROW(1)- ROW(2)- ROW(3)-EXECUTE OK
+    SET SCHEMA SQLC-UPDATE 0-EXECUTE OK
+    CREATE SCHEMA S-UPDATE 0-EXECUTE OK
+    DROP SCHEMA SQL-UPDATE 0-EXECUTE OK
+    IBM CS FEATURE
+    IBM CS FEATURE
+    SET ISOLATION C-UPDATE 0-EXECUTE OK
+    SET RUNTIMESTAT-42X01
+    SET STATISTICS -42X01
+    VALUES 1- ROW(1)-EXECUTE OK
+    VALUES 1- ROW(1)-EXECUTE OK
+** SQL ** NO SQL
+    CREATE TABLE SQ-38001
+    ALTER TABLE SQL-42Y55
+    INSERT INTO SQL-42X05
+    UPDATE SQLC.SQL-42X05
+    SELECT * FROM S-42X05
+    DELETE FROM SQL-42X05
+    DROP TABLE SQLC-42Y55
+    CREATE VIEW SQL-42X05
+    DROP VIEW SQLCO-38001
+    LOCK TABLE SQLC-42X05
+    VALUES 1,2,3-38001
+    SET SCHEMA SQLC-38001
+    CREATE SCHEMA S-38001
+    DROP SCHEMA SQL-38001
+    IBM CS FEATURE
+    IBM CS FEATURE
+    SET ISOLATION C-38001
+    SET RUNTIMESTAT-42X01
+    SET STATISTICS -42X01
+    VALUES 1-38001
+    VALUES 1-38001
+** SQL ** CONTAINS SQL
+    CREATE TABLE SQ-38002
+    ALTER TABLE SQL-42Y55
+    INSERT INTO SQL-42X05
+    UPDATE SQLC.SQL-42X05
+    SELECT * FROM S-42X05
+    DELETE FROM SQL-42X05
+    DROP TABLE SQLC-42Y55
+    CREATE VIEW SQL-42X05
+    DROP VIEW SQLCO-38002
+    LOCK TABLE SQLC-42X05
+    VALUES 1,2,3-38004
+    SET SCHEMA SQLC-UPDATE 0-EXECUTE OK
+    CREATE SCHEMA S-38002
+    DROP SCHEMA SQL-38002
+    IBM CS FEATURE
+    IBM CS FEATURE
+    SET ISOLATION C-UPDATE 0-EXECUTE OK
+    SET RUNTIMESTAT-42X01
+    SET STATISTICS -42X01
+    VALUES 1-38004
+    VALUES 1-38004
+** SQL ** READS SQL DATA
+    CREATE TABLE SQ-38002
+    ALTER TABLE SQL-42Y55
+    INSERT INTO SQL-42X05
+    UPDATE SQLC.SQL-42X05
+    SELECT * FROM S-42X05
+    DELETE FROM SQL-42X05
+    DROP TABLE SQLC-42Y55
+    CREATE VIEW SQL-42X05
+    DROP VIEW SQLCO-38002
+    LOCK TABLE SQLC-42X05
+    VALUES 1,2,3- ROW(1)- ROW(2)- ROW(3)-EXECUTE OK
+    SET SCHEMA SQLC-UPDATE 0-EXECUTE OK
+    CREATE SCHEMA S-38002
+    DROP SCHEMA SQL-38002
+    IBM CS FEATURE
+    IBM CS FEATURE
+    SET ISOLATION C-UPDATE 0-EXECUTE OK
+    SET RUNTIMESTAT-42X01
+    SET STATISTICS -42X01
+    VALUES 1- ROW(1)-EXECUTE OK
+    VALUES 1- ROW(1)-EXECUTE OK
+** SQL ** MODIFIES SQL DATA
+    CREATE TABLE SQ-UPDATE 0-EXECUTE OK
+    ALTER TABLE SQL-42Y55
+    INSERT INTO SQL-42X05
+    UPDATE SQLC.SQL-42X05
+    SELECT * FROM S-42X05
+    DELETE FROM SQL-42X05
+    DROP TABLE SQLC-42Y55
+    CREATE VIEW SQL-42X05
+    DROP VIEW SQLCO-X0X05
+    LOCK TABLE SQLC-42X05
+    VALUES 1,2,3- ROW(1)- ROW(2)- ROW(3)-EXECUTE OK
+    SET SCHEMA SQLC-UPDATE 0-EXECUTE OK
+    CREATE SCHEMA S-UPDATE 0-EXECUTE OK
+    DROP SCHEMA SQL-UPDATE 0-EXECUTE OK
+    IBM CS FEATURE
+    IBM CS FEATURE
+    SET ISOLATION C-UPDATE 0-EXECUTE OK
+    SET RUNTIMESTAT-42X01
+    SET STATISTICS -42X01
+    VALUES 1- ROW(1)-EXECUTE OK
+    VALUES 1- ROW(1)-EXECUTE OK
+CALL ** DEFAULT (MODIFIES SQL DATA)
+    CALLLING DEFAULT (MODIFIES SQL DATA)
+         CALL SQLC.SQLCONTROL2_0 (?, ?, ?, ?, ?, ?, ?) 
+         CREATE VIEW SQL-UPDATE 0-EXECUTE OK
+         DROP VIEW SQLCO-UPDATE 0-EXECUTE OK
+         LOCK TABLE SQLC-UPDATE 0-EXECUTE OK
+         VALUES 1,2,3- ROW(1)- ROW(2)- ROW(3)-EXECUTE OK
+         SET SCHEMA SQLC-UPDATE 0-EXECUTE OK
+         CREATE SCHEMA S-UPDATE 0-EXECUTE OK
+         DROP SCHEMA SQL-UPDATE 0-EXECUTE OK
+    CALLLING NO SQL
+         CALL SQLC.SQLCONTROL2_1 (?, ?, ?, ?, ?, ?, ?) 
+         CREATE VIEW SQL-38001
+         DROP VIEW SQLCO-38001
+         LOCK TABLE SQLC-38001
+         VALUES 1,2,3-38001
+         SET SCHEMA SQLC-38001
+         CREATE SCHEMA S-38001
+         DROP SCHEMA SQL-38001
+    CALLLING CONTAINS SQL
+         CALL SQLC.SQLCONTROL2_2 (?, ?, ?, ?, ?, ?, ?) 
+         CREATE VIEW SQL-38002
+         DROP VIEW SQLCO-38002
+         LOCK TABLE SQLC-UPDATE 0-EXECUTE OK
+         VALUES 1,2,3-38004
+         SET SCHEMA SQLC-UPDATE 0-EXECUTE OK
+         CREATE SCHEMA S-38002
+         DROP SCHEMA SQL-38002
+    CALLLING READS SQL DATA
+         CALL SQLC.SQLCONTROL2_3 (?, ?, ?, ?, ?, ?, ?) 
+         CREATE VIEW SQL-38002
+         DROP VIEW SQLCO-38002
+         LOCK TABLE SQLC-UPDATE 0-EXECUTE OK
+         VALUES 1,2,3- ROW(1)- ROW(2)- ROW(3)-EXECUTE OK
+         SET SCHEMA SQLC-UPDATE 0-EXECUTE OK
+         CREATE SCHEMA S-38002
+         DROP SCHEMA SQL-38002
+    CALLLING MODIFIES SQL DATA
+         CALL SQLC.SQLCONTROL2_4 (?, ?, ?, ?, ?, ?, ?) 
+         CREATE VIEW SQL-UPDATE 0-EXECUTE OK
+         DROP VIEW SQLCO-UPDATE 0-EXECUTE OK
+         LOCK TABLE SQLC-UPDATE 0-EXECUTE OK
+         VALUES 1,2,3- ROW(1)- ROW(2)- ROW(3)-EXECUTE OK
+         SET SCHEMA SQLC-UPDATE 0-EXECUTE OK
+         CREATE SCHEMA S-UPDATE 0-EXECUTE OK
+         DROP SCHEMA SQL-UPDATE 0-EXECUTE OK
+CALL ** NO SQL
+    CALLLING DEFAULT (MODIFIES SQL DATA)
+         CALL SQLC.SQLCONTROL2_0 (?, ?, ?, ?, ?, ?, ?) 
+         STATE-38001
+    CALLLING NO SQL
+         CALL SQLC.SQLCONTROL2_1 (?, ?, ?, ?, ?, ?, ?) 
+         STATE-38001
+    CALLLING CONTAINS SQL
+         CALL SQLC.SQLCONTROL2_2 (?, ?, ?, ?, ?, ?, ?) 
+         STATE-38001
+    CALLLING READS SQL DATA
+         CALL SQLC.SQLCONTROL2_3 (?, ?, ?, ?, ?, ?, ?) 
+         STATE-38001
+    CALLLING MODIFIES SQL DATA
+         CALL SQLC.SQLCONTROL2_4 (?, ?, ?, ?, ?, ?, ?) 
+         STATE-38001
+CALL ** CONTAINS SQL
+    CALLLING DEFAULT (MODIFIES SQL DATA)
+         CALL SQLC.SQLCONTROL2_0 (?, ?, ?, ?, ?, ?, ?) 
+         STATE-38002
+    CALLLING NO SQL
+         CALL SQLC.SQLCONTROL2_1 (?, ?, ?, ?, ?, ?, ?) 
+         CREATE VIEW SQL-38001
+         DROP VIEW SQLCO-38001
+         LOCK TABLE SQLC-38001
+         VALUES 1,2,3-38001
+         SET SCHEMA SQLC-38001
+         CREATE SCHEMA S-38001
+         DROP SCHEMA SQL-38001
+    CALLLING CONTAINS SQL
+         CALL SQLC.SQLCONTROL2_2 (?, ?, ?, ?, ?, ?, ?) 
+         CREATE VIEW SQL-38002
+         DROP VIEW SQLCO-38002
+         LOCK TABLE SQLC-UPDATE 0-EXECUTE OK
+         VALUES 1,2,3-38004
+         SET SCHEMA SQLC-UPDATE 0-EXECUTE OK
+         CREATE SCHEMA S-38002
+         DROP SCHEMA SQL-38002
+    CALLLING READS SQL DATA
+         CALL SQLC.SQLCONTROL2_3 (?, ?, ?, ?, ?, ?, ?) 
+         STATE-38004
+    CALLLING MODIFIES SQL DATA
+         CALL SQLC.SQLCONTROL2_4 (?, ?, ?, ?, ?, ?, ?) 
+         STATE-38002
+CALL ** READS SQL DATA
+    CALLLING DEFAULT (MODIFIES SQL DATA)
+         CALL SQLC.SQLCONTROL2_0 (?, ?, ?, ?, ?, ?, ?) 
+         STATE-38002
+    CALLLING NO SQL
+         CALL SQLC.SQLCONTROL2_1 (?, ?, ?, ?, ?, ?, ?) 
+         CREATE VIEW SQL-38001
+         DROP VIEW SQLCO-38001
+         LOCK TABLE SQLC-38001
+         VALUES 1,2,3-38001
+         SET SCHEMA SQLC-38001
+         CREATE SCHEMA S-38001
+         DROP SCHEMA SQL-38001
+    CALLLING CONTAINS SQL
+         CALL SQLC.SQLCONTROL2_2 (?, ?, ?, ?, ?, ?, ?) 
+         CREATE VIEW SQL-38002
+         DROP VIEW SQLCO-38002
+         LOCK TABLE SQLC-UPDATE 0-EXECUTE OK
+         VALUES 1,2,3-38004
+         SET SCHEMA SQLC-UPDATE 0-EXECUTE OK
+         CREATE SCHEMA S-38002
+         DROP SCHEMA SQL-38002
+    CALLLING READS SQL DATA
+         CALL SQLC.SQLCONTROL2_3 (?, ?, ?, ?, ?, ?, ?) 
+         CREATE VIEW SQL-38002
+         DROP VIEW SQLCO-38002
+         LOCK TABLE SQLC-UPDATE 0-EXECUTE OK
+         VALUES 1,2,3- ROW(1)- ROW(2)- ROW(3)-EXECUTE OK
+         SET SCHEMA SQLC-UPDATE 0-EXECUTE OK
+         CREATE SCHEMA S-38002
+         DROP SCHEMA SQL-38002
+    CALLLING MODIFIES SQL DATA
+         CALL SQLC.SQLCONTROL2_4 (?, ?, ?, ?, ?, ?, ?) 
+         STATE-38002
+CALL ** MODIFIES SQL DATA
+    CALLLING DEFAULT (MODIFIES SQL DATA)
+         CALL SQLC.SQLCONTROL2_0 (?, ?, ?, ?, ?, ?, ?) 
+         CREATE VIEW SQL-UPDATE 0-EXECUTE OK
+         DROP VIEW SQLCO-UPDATE 0-EXECUTE OK
+         LOCK TABLE SQLC-UPDATE 0-EXECUTE OK
+         VALUES 1,2,3- ROW(1)- ROW(2)- ROW(3)-EXECUTE OK
+         SET SCHEMA SQLC-UPDATE 0-EXECUTE OK
+         CREATE SCHEMA S-UPDATE 0-EXECUTE OK
+         DROP SCHEMA SQL-UPDATE 0-EXECUTE OK
+    CALLLING NO SQL
+         CALL SQLC.SQLCONTROL2_1 (?, ?, ?, ?, ?, ?, ?) 
+         CREATE VIEW SQL-38001
+         DROP VIEW SQLCO-38001
+         LOCK TABLE SQLC-38001
+         VALUES 1,2,3-38001
+         SET SCHEMA SQLC-38001
+         CREATE SCHEMA S-38001
+         DROP SCHEMA SQL-38001
+    CALLLING CONTAINS SQL
+         CALL SQLC.SQLCONTROL2_2 (?, ?, ?, ?, ?, ?, ?) 
+         CREATE VIEW SQL-38002
+         DROP VIEW SQLCO-38002
+         LOCK TABLE SQLC-UPDATE 0-EXECUTE OK
+         VALUES 1,2,3-38004
+         SET SCHEMA SQLC-UPDATE 0-EXECUTE OK
+         CREATE SCHEMA S-38002
+         DROP SCHEMA SQL-38002
+    CALLLING READS SQL DATA
+         CALL SQLC.SQLCONTROL2_3 (?, ?, ?, ?, ?, ?, ?) 
+         CREATE VIEW SQL-38002
+         DROP VIEW SQLCO-38002
+         LOCK TABLE SQLC-UPDATE 0-EXECUTE OK
+         VALUES 1,2,3- ROW(1)- ROW(2)- ROW(3)-EXECUTE OK
+         SET SCHEMA SQLC-UPDATE 0-EXECUTE OK
+         CREATE SCHEMA S-38002
+         DROP SCHEMA SQL-38002
+    CALLLING MODIFIES SQL DATA
+         CALL SQLC.SQLCONTROL2_4 (?, ?, ?, ?, ?, ?, ?) 
+         CREATE VIEW SQL-UPDATE 0-EXECUTE OK
+         DROP VIEW SQLCO-UPDATE 0-EXECUTE OK
+         LOCK TABLE SQLC-UPDATE 0-EXECUTE OK
+         VALUES 1,2,3- ROW(1)- ROW(2)- ROW(3)-EXECUTE OK
+         SET SCHEMA SQLC-UPDATE 0-EXECUTE OK
+         CREATE SCHEMA S-UPDATE 0-EXECUTE OK
+         DROP SCHEMA SQL-UPDATE 0-EXECUTE OK
+CALL SQLCONTROL3_0 (?, ?, ?, ?, ?, ?, ?)
+EXPECTED SQL Exception: (07004) Parameter 1 is an OUT procedure parameter and must be registered with CallableStatement.registerOutParameter before execution.
+literals
+DEFINED PROCEDURES FOR TY_%
+  LITT.TY_BIGINT AS org.apache.derbyTesting.functionTests.util.ProcedureTest.literalTest(IN P1 BIGINT,OUT P2 VARCHAR(256)) LANGUAGE JAVA PARAMETER STYLE JAVA NO SQL
+  LITT.TY_CHAR AS org.apache.derbyTesting.functionTests.util.ProcedureTest.literalTest(IN P1 CHAR(10),OUT P2 VARCHAR(256)) LANGUAGE JAVA PARAMETER STYLE JAVA NO SQL
+  LITT.TY_DECIMAL AS org.apache.derbyTesting.functionTests.util.ProcedureTest.literalTest(IN P1 DECIMAL(5,2),OUT P2 VARCHAR(256)) LANGUAGE JAVA PARAMETER STYLE JAVA NO SQL
+  LITT.TY_DOUBLE AS org.apache.derbyTesting.functionTests.util.ProcedureTest.literalTest(IN P1 DOUBLE,OUT P2 VARCHAR(256)) LANGUAGE JAVA PARAMETER STYLE JAVA NO SQL
+  LITT.TY_INTEGER AS org.apache.derbyTesting.functionTests.util.ProcedureTest.literalTest(IN P1 INTEGER,OUT P2 VARCHAR(256)) LANGUAGE JAVA PARAMETER STYLE JAVA NO SQL
+  LITT.TY_REAL AS org.apache.derbyTesting.functionTests.util.ProcedureTest.literalTest(IN P1 REAL,OUT P2 VARCHAR(256)) LANGUAGE JAVA PARAMETER STYLE JAVA NO SQL
+  LITT.TY_SMALLINT AS org.apache.derbyTesting.functionTests.util.ProcedureTest.literalTest(IN P1 SMALLINT,OUT P2 VARCHAR(256)) LANGUAGE JAVA PARAMETER STYLE JAVA NO SQL
+  LITT.TY_VARCHAR AS org.apache.derbyTesting.functionTests.util.ProcedureTest.literalTest(IN P1 VARCHAR(10),OUT P2 VARCHAR(256)) LANGUAGE JAVA PARAMETER STYLE JAVA NO SQL
+DATABASE METATDATA PROCEDURES FOR TY_%
+  LITT.TY_BIGINT AS org.apache.derbyTesting.functionTests.util.ProcedureTest.literalTest type procedureNoResult
+    procedureColumnIn P1 BIGINT
+    procedureColumnOut P2 VARCHAR
+  LITT.TY_CHAR AS org.apache.derbyTesting.functionTests.util.ProcedureTest.literalTest type procedureNoResult
+    procedureColumnIn P1 CHAR
+    procedureColumnOut P2 VARCHAR
+  LITT.TY_DECIMAL AS org.apache.derbyTesting.functionTests.util.ProcedureTest.literalTest type procedureNoResult
+    procedureColumnIn P1 DECIMAL
+    procedureColumnOut P2 VARCHAR
+  LITT.TY_DOUBLE AS org.apache.derbyTesting.functionTests.util.ProcedureTest.literalTest type procedureNoResult
+    procedureColumnIn P1 DOUBLE
+    procedureColumnOut P2 VARCHAR
+  LITT.TY_INTEGER AS org.apache.derbyTesting.functionTests.util.ProcedureTest.literalTest type procedureNoResult
+    procedureColumnIn P1 INTEGER
+    procedureColumnOut P2 VARCHAR
+  LITT.TY_REAL AS org.apache.derbyTesting.functionTests.util.ProcedureTest.literalTest type procedureNoResult
+    procedureColumnIn P1 REAL
+    procedureColumnOut P2 VARCHAR
+  LITT.TY_SMALLINT AS org.apache.derbyTesting.functionTests.util.ProcedureTest.literalTest type procedureNoResult
+    procedureColumnIn P1 SMALLINT
+    procedureColumnOut P2 VARCHAR
+  LITT.TY_VARCHAR AS org.apache.derbyTesting.functionTests.util.ProcedureTest.literalTest type procedureNoResult
+    procedureColumnIn P1 VARCHAR
+    procedureColumnOut P2 VARCHAR
+-----
+CALL LITT.TY_SMALLINT (null, ?) (39004) A NULL value cannot be passed to a method which takes a parameter of primitive type 'short'.
+CALL LITT.TY_INTEGER (null, ?) (39004) A NULL value cannot be passed to a method which takes a parameter of primitive type 'int'.
+CALL LITT.TY_BIGINT (null, ?) (39004) A NULL value cannot be passed to a method which takes a parameter of primitive type 'long'.
+CALL LITT.TY_REAL (null, ?) (39004) A NULL value cannot be passed to a method which takes a parameter of primitive type 'float'.
+CALL LITT.TY_DOUBLE (null, ?) (39004) A NULL value cannot be passed to a method which takes a parameter of primitive type 'double'.
+CALL LITT.TY_DECIMAL (null, ?)=>NULL<
+CALL LITT.TY_CHAR (null, ?)=>NULL<
+CALL LITT.TY_VARCHAR (null, ?)=>NULL<
+CALL LITT.TY_SMALLINT (12, ?)=>12<
+CALL LITT.TY_INTEGER (12, ?)=>12<
+CALL LITT.TY_BIGINT (12, ?)=>12<
+CALL LITT.TY_REAL (12, ?)=>12.0<
+CALL LITT.TY_DOUBLE (12, ?)=>12.0<
+CALL LITT.TY_DECIMAL (12, ?)=>12.00<
+CALL LITT.TY_CHAR (12, ?) (42821) Columns of type 'CHAR' cannot hold values of type 'INTEGER'. 
+CALL LITT.TY_VARCHAR (12, ?) (42821) Columns of type 'VARCHAR' cannot hold values of type 'INTEGER'. 
+CALL LITT.TY_SMALLINT (23.43e1, ?)=>234<
+CALL LITT.TY_INTEGER (23.43e1, ?)=>234<
+CALL LITT.TY_BIGINT (23.43e1, ?)=>234<
+CALL LITT.TY_REAL (23.43e1, ?)=>234.3<
+CALL LITT.TY_DOUBLE (23.43e1, ?)=>234.3<
+CALL LITT.TY_DECIMAL (23.43e1, ?)=>234.30<
+CALL LITT.TY_CHAR (23.43e1, ?) (42821) Columns of type 'CHAR' cannot hold values of type 'DOUBLE'. 
+CALL LITT.TY_VARCHAR (23.43e1, ?) (42821) Columns of type 'VARCHAR' cannot hold values of type 'DOUBLE'. 
+CALL LITT.TY_SMALLINT (176.3, ?)=>176<
+CALL LITT.TY_INTEGER (176.3, ?)=>176<
+CALL LITT.TY_BIGINT (176.3, ?)=>176<
+CALL LITT.TY_REAL (176.3, ?)=>176.3<
+CALL LITT.TY_DOUBLE (176.3, ?)=>176.3<
+CALL LITT.TY_DECIMAL (176.3, ?)=>176.30<
+CALL LITT.TY_CHAR (176.3, ?) (42821) Columns of type 'CHAR' cannot hold values of type 'DECIMAL'. 
+CALL LITT.TY_VARCHAR (176.3, ?) (42821) Columns of type 'VARCHAR' cannot hold values of type 'DECIMAL'. 
+CALL LITT.TY_SMALLINT ('12.34', ?) (42821) Columns of type 'SMALLINT' cannot hold values of type 'CHAR'. 
+CALL LITT.TY_INTEGER ('12.34', ?) (42821) Columns of type 'INTEGER' cannot hold values of type 'CHAR'. 
+CALL LITT.TY_BIGINT ('12.34', ?) (42821) Columns of type 'BIGINT' cannot hold values of type 'CHAR'. 
+CALL LITT.TY_REAL ('12.34', ?) (42821) Columns of type 'REAL' cannot hold values of type 'CHAR'. 
+CALL LITT.TY_DOUBLE ('12.34', ?) (42821) Columns of type 'DOUBLE' cannot hold values of type 'CHAR'. 
+CALL LITT.TY_DECIMAL ('12.34', ?) (42821) Columns of type 'DECIMAL' cannot hold values of type 'CHAR'. 
+CALL LITT.TY_CHAR ('12.34', ?)=>12.34     <
+CALL LITT.TY_VARCHAR ('12.34', ?)=>12.34<

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/resultset.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/resultset.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/resultset.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,1014 @@
+Test resultset starting
+getColumnCount(): 16
+isAutoIncrement(1): false
+isCaseSensitive(1): false
+isSearchable(1): true
+isCurrency(1): false
+isNullable(1): 1
+isSigned(1): true
+getColumnDisplaySize(1): 11
+getColumnLabel(1): I
+getColumnName(1): I
+getTableName(1): T
+getSchemaName(1): 
+getCatalogName(1): 
+getColumnType(1): 4
+getPrecision(1): 10
+getScale(1): 0
+getColumnTypeName(1): INTEGER
+isReadOnly(1): true
+isDefinitelyWritable(1): false
+isAutoIncrement(2): false
+isCaseSensitive(2): false
+isSearchable(2): true
+isCurrency(2): false
+isNullable(2): 1
+isSigned(2): true
+getColumnDisplaySize(2): 6
+getColumnLabel(2): S
+getColumnName(2): S
+getTableName(2): T
+getSchemaName(2): 
+getCatalogName(2): 
+getColumnType(2): 5
+getPrecision(2): 5
+getScale(2): 0
+getColumnTypeName(2): SMALLINT
+isReadOnly(2): true
+isDefinitelyWritable(2): false
+isAutoIncrement(3): false
+isCaseSensitive(3): false
+isSearchable(3): true
+isCurrency(3): false
+isNullable(3): 1
+isSigned(3): true
+getColumnDisplaySize(3): 13
+getColumnLabel(3): R
+getColumnName(3): R
+getTableName(3): T
+getSchemaName(3): 
+getCatalogName(3): 
+getColumnType(3): 7
+getPrecision(3): 7
+getScale(3): 0
+getColumnTypeName(3): REAL
+isReadOnly(3): true
+isDefinitelyWritable(3): false
+isAutoIncrement(4): false
+isCaseSensitive(4): false
+isSearchable(4): true
+isCurrency(4): false
+isNullable(4): 1
+isSigned(4): true
+getColumnDisplaySize(4): 22
+getColumnLabel(4): D
+getColumnName(4): D
+getTableName(4): T
+getSchemaName(4): 
+getCatalogName(4): 
+getColumnType(4): 8
+getPrecision(4): 15
+getScale(4): 0
+getColumnTypeName(4): DOUBLE
+isReadOnly(4): true
+isDefinitelyWritable(4): false
+isAutoIncrement(5): false
+isCaseSensitive(5): false
+isSearchable(5): true
+isCurrency(5): false
+isNullable(5): 1
+isSigned(5): false
+getColumnDisplaySize(5): 10
+getColumnLabel(5): DT
+getColumnName(5): DT
+getTableName(5): T
+getSchemaName(5): 
+getCatalogName(5): 
+getColumnType(5): 91
+getPrecision(5): 10
+getScale(5): 0
+getColumnTypeName(5): DATE
+isReadOnly(5): true
+isDefinitelyWritable(5): false
+isAutoIncrement(6): false
+isCaseSensitive(6): false
+isSearchable(6): true
+isCurrency(6): false
+isNullable(6): 1
+isSigned(6): false
+getColumnDisplaySize(6): 8
+getColumnLabel(6): T
+getColumnName(6): T
+getTableName(6): T
+getSchemaName(6): 
+getCatalogName(6): 
+getColumnType(6): 92
+getPrecision(6): 8
+getScale(6): 0
+getColumnTypeName(6): TIME
+isReadOnly(6): true
+isDefinitelyWritable(6): false
+isAutoIncrement(7): false
+isCaseSensitive(7): false
+isSearchable(7): true
+isCurrency(7): false
+isNullable(7): 1
+isSigned(7): false
+getColumnDisplaySize(7): 26
+getColumnLabel(7): TS
+getColumnName(7): TS
+getTableName(7): T
+getSchemaName(7): 
+getCatalogName(7): 
+getColumnType(7): 93
+getPrecision(7): 26
+getScale(7): 6
+getColumnTypeName(7): TIMESTAMP
+isReadOnly(7): true
+isDefinitelyWritable(7): false
+isAutoIncrement(8): false
+isCaseSensitive(8): true
+isSearchable(8): true
+isCurrency(8): false
+isNullable(8): 1
+isSigned(8): false
+getColumnDisplaySize(8): 10
+getColumnLabel(8): C
+getColumnName(8): C
+getTableName(8): T
+getSchemaName(8): 
+getCatalogName(8): 
+getColumnType(8): 1
+getPrecision(8): 10
+getScale(8): 0
+getColumnTypeName(8): CHAR
+isReadOnly(8): true
+isDefinitelyWritable(8): false
+isAutoIncrement(9): false
+isCaseSensitive(9): true
+isSearchable(9): true
+isCurrency(9): false
+isNullable(9): 0
+isSigned(9): false
+getColumnDisplaySize(9): 40
+getColumnLabel(9): V
+getColumnName(9): V
+getTableName(9): T
+getSchemaName(9): 
+getCatalogName(9): 
+getColumnType(9): 12
+getPrecision(9): 40
+getScale(9): 0
+getColumnTypeName(9): VARCHAR
+isReadOnly(9): true
+isDefinitelyWritable(9): false
+isAutoIncrement(10): false
+isCaseSensitive(10): false
+isSearchable(10): true
+isCurrency(10): false
+isNullable(10): 1
+isSigned(10): true
+getColumnDisplaySize(10): 12
+getColumnLabel(10): DC
+getColumnName(10): DC
+getTableName(10): T
+getSchemaName(10): 
+getCatalogName(10): 
+getColumnType(10): 3
+getPrecision(10): 10
+getScale(10): 2
+getColumnTypeName(10): DECIMAL
+isReadOnly(10): true
+isDefinitelyWritable(10): false
+isAutoIncrement(11): false
+isCaseSensitive(11): false
+isSearchable(11): true
+isCurrency(11): false
+isNullable(11): 1
+isSigned(11): true
+getColumnDisplaySize(11): 20
+getColumnLabel(11): BI
+getColumnName(11): BI
+getTableName(11): T
+getSchemaName(11): 
+getCatalogName(11): 
+getColumnType(11): -5
+getPrecision(11): 19
+getScale(11): 0
+getColumnTypeName(11): BIGINT
+isReadOnly(11): true
+isDefinitelyWritable(11): false
+isAutoIncrement(12): false
+isCaseSensitive(12): false
+isSearchable(12): true
+isCurrency(12): false
+isNullable(12): 1
+isSigned(12): false
+getColumnDisplaySize(12): 20
+getColumnLabel(12): CBD
+getColumnName(12): CBD
+getTableName(12): T
+getSchemaName(12): 
+getCatalogName(12): 
+getColumnType(12): -2
+getPrecision(12): 10
+getScale(12): 0
+getColumnTypeName(12): CHAR FOR BIT DATA
+isReadOnly(12): true
+isDefinitelyWritable(12): false
+isAutoIncrement(13): false
+isCaseSensitive(13): false
+isSearchable(13): true
+isCurrency(13): false
+isNullable(13): 1
+isSigned(13): false
+getColumnDisplaySize(13): 20
+getColumnLabel(13): VBD
+getColumnName(13): VBD
+getTableName(13): T
+getSchemaName(13): 
+getCatalogName(13): 
+getColumnType(13): -3
+getPrecision(13): 10
+getScale(13): 0
+getColumnTypeName(13): VARCHAR FOR BIT DATA
+isReadOnly(13): true
+isDefinitelyWritable(13): false
+isAutoIncrement(14): false
+isCaseSensitive(14): false
+isSearchable(14): true
+isCurrency(14): false
+isNullable(14): 1
+isSigned(14): false
+getColumnDisplaySize(14): 65400
+getColumnLabel(14): LVBD
+getColumnName(14): LVBD
+getTableName(14): T
+getSchemaName(14): 
+getCatalogName(14): 
+getColumnType(14): -4
+getPrecision(14): 32700
+getScale(14): 0
+getColumnTypeName(14): LONG VARCHAR FOR BIT DATA
+isReadOnly(14): true
+isDefinitelyWritable(14): false
+isAutoIncrement(15): false
+isCaseSensitive(15): true
+isSearchable(15): true
+isCurrency(15): false
+isNullable(15): 1
+isSigned(15): false
+getColumnDisplaySize(15): 2147483647
+getColumnLabel(15): CL
+getColumnName(15): CL
+getTableName(15): T
+getSchemaName(15): 
+getCatalogName(15): 
+getColumnType(15): 2005
+getPrecision(15): 2147483647
+getScale(15): 0
+getColumnTypeName(15): CLOB
+isReadOnly(15): true
+isDefinitelyWritable(15): false
+isAutoIncrement(16): false
+isCaseSensitive(16): false
+isSearchable(16): true
+isCurrency(16): false
+isNullable(16): 1
+isSigned(16): false
+getColumnDisplaySize(16): -2147483648
+getColumnLabel(16): BL
+getColumnName(16): BL
+getTableName(16): T
+getSchemaName(16): 
+getCatalogName(16): 
+getColumnType(16): 2004
+getPrecision(16): 1073741824
+getScale(16): 0
+getColumnTypeName(16): BLOB
+isReadOnly(16): true
+isDefinitelyWritable(16): false
+getBigDecimal(1,1): 1.0
+beetle 5328 - JCC returns incorrect scale for getBigDecimal(String,int)
+getBigDecimal(i,1): 1.0
+getBoolean(1): true
+getBoolean(i): true
+getByte(1): 1
+getByte(i): 1
+getBytes(1) got exception 
+Data Conversion SQLException
+getBytes(i) got exception 
+Data Conversion SQLException
+getDate(1) got exception 
+Data Conversion SQLException
+getDate(i) got exception 
+Data Conversion SQLException
+getDouble(1): 1.0
+getDouble(i): 1.0
+getFloat(1): 1.0
+getFloat(i): 1.0
+getInt(1): 1
+getInt(i): 1
+getLong(1): 1
+getLong(i): 1
+getObject(1): 1
+getObject(i): 1
+getShort(1): 1
+getShort(i): 1
+getString(1): 1
+getString(i): 1
+getTime(1) got exception 
+Data Conversion SQLException
+getTime(i) got exception 
+Data Conversion SQLException
+getTimestamp(1) got exception 
+Data Conversion SQLException
+getTimestamp(i) got exception 
+Data Conversion SQLException
+getBigDecimal(2,1): 2.0
+beetle 5328 - JCC returns incorrect scale for getBigDecimal(String,int)
+getBigDecimal(s,1): 2.0
+getBoolean(2): true
+getBoolean(s): true
+getByte(2): 2
+getByte(s): 2
+getBytes(2) got exception 
+Data Conversion SQLException
+getBytes(s) got exception 
+Data Conversion SQLException
+getDate(2) got exception 
+Data Conversion SQLException
+getDate(s) got exception 
+Data Conversion SQLException
+getDouble(2): 2.0
+getDouble(s): 2.0
+getFloat(2): 2.0
+getFloat(s): 2.0
+getInt(2): 2
+getInt(s): 2
+getLong(2): 2
+getLong(s): 2
+getObject(2): 2
+getObject(s): 2
+getShort(2): 2
+getShort(s): 2
+getString(2): 2
+getString(s): 2
+getTime(2) got exception 
+Data Conversion SQLException
+getTime(s) got exception 
+Data Conversion SQLException
+getTimestamp(2) got exception 
+Data Conversion SQLException
+getTimestamp(s) got exception 
+Data Conversion SQLException
+getBigDecimal(3,1): 3.3
+beetle 5328 - JCC returns incorrect scale for getBigDecimal(String,int)
+getBigDecimal(r,1): 3.3
+getBoolean(3): true
+getBoolean(r): true
+getByte(3): 3
+getByte(r): 3
+getBytes(3) got exception 
+Data Conversion SQLException
+getBytes(r) got exception 
+Data Conversion SQLException
+getDate(3) got exception 
+Data Conversion SQLException
+getDate(r) got exception 
+Data Conversion SQLException
+getDouble(3): 3.299999952316284
+getDouble(r): 3.299999952316284
+getFloat(3): 3.3
+getFloat(r): 3.3
+getInt(3): 3
+getInt(r): 3
+getLong(3): 3
+getLong(r): 3
+getObject(3): 3.3
+getObject(r): 3.3
+getShort(3): 3
+getShort(r): 3
+getString(3): 3.3
+getString(r): 3.3
+getTime(3) got exception 
+Data Conversion SQLException
+getTime(r) got exception 
+Data Conversion SQLException
+getTimestamp(3) got exception 
+Data Conversion SQLException
+getTimestamp(r) got exception 
+Data Conversion SQLException
+getBigDecimal(4,1): 4.4
+beetle 5328 - JCC returns incorrect scale for getBigDecimal(String,int)
+getBigDecimal(d,1): 4.4
+getBoolean(4): true
+getBoolean(d): true
+getByte(4): 4
+getByte(d): 4
+getBytes(4) got exception 
+Data Conversion SQLException
+getBytes(d) got exception 
+Data Conversion SQLException
+getDate(4) got exception 
+Data Conversion SQLException
+getDate(d) got exception 
+Data Conversion SQLException
+getDouble(4): 4.4
+getDouble(d): 4.4
+getFloat(4): 4.4
+getFloat(d): 4.4
+getInt(4): 4
+getInt(d): 4
+getLong(4): 4
+getLong(d): 4
+getObject(4): 4.4
+getObject(d): 4.4
+getShort(4): 4
+getShort(d): 4
+getString(4): 4.4
+getString(d): 4.4
+getTime(4) got exception 
+Data Conversion SQLException
+getTime(d) got exception 
+Data Conversion SQLException
+getTimestamp(4) got exception 
+Data Conversion SQLException
+getTimestamp(d) got exception 
+Data Conversion SQLException
+getBigDecimal(5,1) got exception 
+Data Conversion SQLException
+beetle 5328 - JCC returns incorrect scale for getBigDecimal(String,int)
+getBigDecimal(dt,1) got exception 
+Data Conversion SQLException
+getBoolean(5) got exception 
+Data Conversion SQLException
+getBoolean(dt) got exception 
+Data Conversion SQLException
+getByte(5) got exception 
+Data Conversion SQLException
+getByte(dt) got exception 
+Data Conversion SQLException
+getBytes(5) got exception 
+Data Conversion SQLException
+getBytes(dt) got exception 
+Data Conversion SQLException
+getDate(5): 1990-05-05
+getDate(dt): 1990-05-05
+getDouble(5) got exception 
+Data Conversion SQLException
+getDouble(dt) got exception 
+Data Conversion SQLException
+getFloat(5) got exception 
+Data Conversion SQLException
+getFloat(dt) got exception 
+Data Conversion SQLException
+getInt(5) got exception 
+Data Conversion SQLException
+getInt(dt) got exception 
+Data Conversion SQLException
+getLong(5) got exception 
+Data Conversion SQLException
+getLong(dt) got exception 
+Data Conversion SQLException
+getObject(5): 1990-05-05
+getObject(dt): 1990-05-05
+getShort(5) got exception 
+Data Conversion SQLException
+getShort(dt) got exception 
+Data Conversion SQLException
+getString(5): 1990-05-05
+getString(dt): 1990-05-05
+getTime(5) got exception 
+Data Conversion SQLException
+getTime(dt) got exception 
+Data Conversion SQLException
+getTimestamp(5): xxxxxxFILTERED-TIMESTAMPxxxxx
+getTimestamp(dt): xxxxxxFILTERED-TIMESTAMPxxxxx
+getBigDecimal(6,1) got exception 
+Data Conversion SQLException
+beetle 5328 - JCC returns incorrect scale for getBigDecimal(String,int)
+getBigDecimal(t,1) got exception 
+Data Conversion SQLException
+getBoolean(6) got exception 
+Data Conversion SQLException
+getBoolean(t) got exception 
+Data Conversion SQLException
+getByte(6) got exception 
+Data Conversion SQLException
+getByte(t) got exception 
+Data Conversion SQLException
+getBytes(6) got exception 
+Data Conversion SQLException
+getBytes(t) got exception 
+Data Conversion SQLException
+getDate(6) got exception 
+Data Conversion SQLException
+getDate(t) got exception 
+Data Conversion SQLException
+getDouble(6) got exception 
+Data Conversion SQLException
+getDouble(t) got exception 
+Data Conversion SQLException
+getFloat(6) got exception 
+Data Conversion SQLException
+getFloat(t) got exception 
+Data Conversion SQLException
+getInt(6) got exception 
+Data Conversion SQLException
+getInt(t) got exception 
+Data Conversion SQLException
+getLong(6) got exception 
+Data Conversion SQLException
+getLong(t) got exception 
+Data Conversion SQLException
+getObject(6): 12:06:06
+getObject(t): 12:06:06
+getShort(6) got exception 
+Data Conversion SQLException
+getShort(t) got exception 
+Data Conversion SQLException
+getString(6): 12:06:06
+getString(t): 12:06:06
+getTime(6): 12:06:06
+getTime(t): 12:06:06
+getTimestamp(6): xxxxxxFILTERED-TIMESTAMPxxxxx
+getTimestamp(t): xxxxxxFILTERED-TIMESTAMPxxxxx
+getBigDecimal(7,1) got exception 
+Data Conversion SQLException
+beetle 5328 - JCC returns incorrect scale for getBigDecimal(String,int)
+getBigDecimal(ts,1) got exception 
+Data Conversion SQLException
+getBoolean(7) got exception 
+Data Conversion SQLException
+getBoolean(ts) got exception 
+Data Conversion SQLException
+getByte(7) got exception 
+Data Conversion SQLException
+getByte(ts) got exception 
+Data Conversion SQLException
+getBytes(7) got exception 
+Data Conversion SQLException
+getBytes(ts) got exception 
+Data Conversion SQLException
+getDate(7): 1990-07-07
+getDate(ts): 1990-07-07
+getDouble(7) got exception 
+Data Conversion SQLException
+getDouble(ts) got exception 
+Data Conversion SQLException
+getFloat(7) got exception 
+Data Conversion SQLException
+getFloat(ts) got exception 
+Data Conversion SQLException
+getInt(7) got exception 
+Data Conversion SQLException
+getInt(ts) got exception 
+Data Conversion SQLException
+getLong(7) got exception 
+Data Conversion SQLException
+getLong(ts) got exception 
+Data Conversion SQLException
+getObject(7): xxxxxxFILTERED-TIMESTAMPxxxxx
+getObject(ts): xxxxxxFILTERED-TIMESTAMPxxxxx
+getShort(7) got exception 
+Data Conversion SQLException
+getShort(ts) got exception 
+Data Conversion SQLException
+getString(7): xxxxxxFILTERED-TIMESTAMPxxxxx
+getString(ts): xxxxxxFILTERED-TIMESTAMPxxxxx
+getTime(7): 07:07:07
+getTime(ts): 07:07:07
+getTimestamp(7): xxxxxxFILTERED-TIMESTAMPxxxxx
+getTimestamp(ts): xxxxxxFILTERED-TIMESTAMPxxxxx
+getBigDecimal(8,1) got exception 
+Data Conversion SQLException
+beetle 5328 - JCC returns incorrect scale for getBigDecimal(String,int)
+getBigDecimal(c,1) got exception 
+Data Conversion SQLException
+getBoolean(8): true
+getBoolean(c): true
+getByte(8) got exception 
+Data Conversion SQLException
+getByte(c) got exception 
+Data Conversion SQLException
+getBytes(8) got exception 
+Data Conversion SQLException
+getBytes(c) got exception 
+Data Conversion SQLException
+getDate(8) got exception 
+Data Conversion SQLException
+getDate(c) got exception 
+Data Conversion SQLException
+getDouble(8) got exception 
+Data Conversion SQLException
+getDouble(c) got exception 
+Data Conversion SQLException
+getFloat(8) got exception 
+Data Conversion SQLException
+getFloat(c) got exception 
+Data Conversion SQLException
+getInt(8) got exception 
+Data Conversion SQLException
+getInt(c) got exception 
+Data Conversion SQLException
+getLong(8) got exception 
+Data Conversion SQLException
+getLong(c) got exception 
+Data Conversion SQLException
+getObject(8): eight     
+getObject(c): eight     
+getShort(8) got exception 
+Data Conversion SQLException
+getShort(c) got exception 
+Data Conversion SQLException
+getString(8): eight     
+getString(c): eight     
+getTime(8) got exception 
+Data Conversion SQLException
+getTime(c) got exception 
+Data Conversion SQLException
+getTimestamp(8) got exception 
+Data Conversion SQLException
+getTimestamp(c) got exception 
+Data Conversion SQLException
+getBigDecimal(9,1) got exception 
+Data Conversion SQLException
+beetle 5328 - JCC returns incorrect scale for getBigDecimal(String,int)
+getBigDecimal(v,1) got exception 
+Data Conversion SQLException
+getBoolean(9): true
+getBoolean(v): true
+getByte(9) got exception 
+Data Conversion SQLException
+getByte(v) got exception 
+Data Conversion SQLException
+getBytes(9) got exception 
+Data Conversion SQLException
+getBytes(v) got exception 
+Data Conversion SQLException
+getDate(9) got exception 
+Data Conversion SQLException
+getDate(v) got exception 
+Data Conversion SQLException
+getDouble(9) got exception 
+Data Conversion SQLException
+getDouble(v) got exception 
+Data Conversion SQLException
+getFloat(9) got exception 
+Data Conversion SQLException
+getFloat(v) got exception 
+Data Conversion SQLException
+getInt(9) got exception 
+Data Conversion SQLException
+getInt(v) got exception 
+Data Conversion SQLException
+getLong(9) got exception 
+Data Conversion SQLException
+getLong(v) got exception 
+Data Conversion SQLException
+getObject(9): nine
+getObject(v): nine
+getShort(9) got exception 
+Data Conversion SQLException
+getShort(v) got exception 
+Data Conversion SQLException
+getString(9): nine
+getString(v): nine
+getTime(9) got exception 
+Data Conversion SQLException
+getTime(v) got exception 
+Data Conversion SQLException
+getTimestamp(9) got exception 
+Data Conversion SQLException
+getTimestamp(v) got exception 
+Data Conversion SQLException
+getBigDecimal(10,1): 10.1
+beetle 5328 - JCC returns incorrect scale for getBigDecimal(String,int)
+getBigDecimal(dc,1): 10.1
+getBoolean(10): true
+getBoolean(dc): true
+getByte(10): 10
+getByte(dc): 10
+getBytes(10) got exception 
+Data Conversion SQLException
+getBytes(dc) got exception 
+Data Conversion SQLException
+getDate(10) got exception 
+Data Conversion SQLException
+getDate(dc) got exception 
+Data Conversion SQLException
+getDouble(10): 10.1
+getDouble(dc): 10.1
+getFloat(10): 10.1
+getFloat(dc): 10.1
+getInt(10): 10
+getInt(dc): 10
+getLong(10): 10
+getLong(dc): 10
+getObject(10): 10.10
+getObject(dc): 10.10
+getShort(10): 10
+getShort(dc): 10
+getString(10): 10.10
+getString(dc): 10.10
+getTime(10) got exception 
+Data Conversion SQLException
+getTime(dc) got exception 
+Data Conversion SQLException
+getTimestamp(10) got exception 
+Data Conversion SQLException
+getTimestamp(dc) got exception 
+Data Conversion SQLException
+getBigDecimal(11,1): 11.0
+beetle 5328 - JCC returns incorrect scale for getBigDecimal(String,int)
+getBigDecimal(bi,1): 11.0
+getBoolean(11): true
+getBoolean(bi): true
+getByte(11): 11
+getByte(bi): 11
+getBytes(11) got exception 
+Data Conversion SQLException
+getBytes(bi) got exception 
+Data Conversion SQLException
+getDate(11) got exception 
+Data Conversion SQLException
+getDate(bi) got exception 
+Data Conversion SQLException
+getDouble(11): 11.0
+getDouble(bi): 11.0
+getFloat(11): 11.0
+getFloat(bi): 11.0
+getInt(11): 11
+getInt(bi): 11
+getLong(11): 11
+getLong(bi): 11
+getObject(11): 11
+getObject(bi): 11
+getShort(11): 11
+getShort(bi): 11
+getString(11): 11
+getString(bi): 11
+getTime(11) got exception 
+Data Conversion SQLException
+getTime(bi) got exception 
+Data Conversion SQLException
+getTimestamp(11) got exception 
+Data Conversion SQLException
+getTimestamp(bi) got exception 
+Data Conversion SQLException
+getBigDecimal(12,1) got exception 
+Data Conversion SQLException
+beetle 5328 - JCC returns incorrect scale for getBigDecimal(String,int)
+getBigDecimal(cbd,1) got exception 
+Data Conversion SQLException
+getBoolean(12) got exception 
+Data Conversion SQLException
+getBoolean(cbd) got exception 
+Data Conversion SQLException
+getByte(12) got exception 
+Data Conversion SQLException
+getByte(cbd) got exception 
+Data Conversion SQLException
+getBytes(12): 0x007400770065006C0076
+getBytes(cbd): 0x007400770065006C0076
+getDate(12) got exception 
+Data Conversion SQLException
+getDate(cbd) got exception 
+Data Conversion SQLException
+getDouble(12) got exception 
+Data Conversion SQLException
+getDouble(cbd) got exception 
+Data Conversion SQLException
+getFloat(12) got exception 
+Data Conversion SQLException
+getFloat(cbd) got exception 
+Data Conversion SQLException
+getInt(12) got exception 
+Data Conversion SQLException
+getInt(cbd) got exception 
+Data Conversion SQLException
+getLong(12) got exception 
+Data Conversion SQLException
+getLong(cbd) got exception 
+Data Conversion SQLException
+getObject(12) is ok
+getObject(cbd) is ok 
+getShort(12) got exception 
+Data Conversion SQLException
+getShort(cbd) got exception 
+Data Conversion SQLException
+getString(12): 007400770065006c0076
+getString(cbd): 007400770065006c0076
+getTime(12) got exception 
+Data Conversion SQLException
+getTime(cbd) got exception 
+Data Conversion SQLException
+getTimestamp(12) got exception 
+Data Conversion SQLException
+getTimestamp(cbd) got exception 
+Data Conversion SQLException
+getBigDecimal(13,1) got exception 
+Data Conversion SQLException
+beetle 5328 - JCC returns incorrect scale for getBigDecimal(String,int)
+getBigDecimal(vbd,1) got exception 
+Data Conversion SQLException
+getBoolean(13) got exception 
+Data Conversion SQLException
+getBoolean(vbd) got exception 
+Data Conversion SQLException
+getByte(13) got exception 
+Data Conversion SQLException
+getByte(vbd) got exception 
+Data Conversion SQLException
+getBytes(13): 0x0033007400650065006E
+getBytes(vbd): 0x0033007400650065006E
+getDate(13) got exception 
+Data Conversion SQLException
+getDate(vbd) got exception 
+Data Conversion SQLException
+getDouble(13) got exception 
+Data Conversion SQLException
+getDouble(vbd) got exception 
+Data Conversion SQLException
+getFloat(13) got exception 
+Data Conversion SQLException
+getFloat(vbd) got exception 
+Data Conversion SQLException
+getInt(13) got exception 
+Data Conversion SQLException
+getInt(vbd) got exception 
+Data Conversion SQLException
+getLong(13) got exception 
+Data Conversion SQLException
+getLong(vbd) got exception 
+Data Conversion SQLException
+getObject(13) is ok
+getObject(vbd) is ok 
+getShort(13) got exception 
+Data Conversion SQLException
+getShort(vbd) got exception 
+Data Conversion SQLException
+getString(13): 0033007400650065006e
+getString(vbd): 0033007400650065006e
+getTime(13) got exception 
+Data Conversion SQLException
+getTime(vbd) got exception 
+Data Conversion SQLException
+getTimestamp(13) got exception 
+Data Conversion SQLException
+getTimestamp(vbd) got exception 
+Data Conversion SQLException
+getBigDecimal(14,1) got exception 
+Data Conversion SQLException
+beetle 5328 - JCC returns incorrect scale for getBigDecimal(String,int)
+getBigDecimal(lvbd,1) got exception 
+Data Conversion SQLException
+getBoolean(14) got exception 
+Data Conversion SQLException
+getBoolean(lvbd) got exception 
+Data Conversion SQLException
+getByte(14) got exception 
+Data Conversion SQLException
+getByte(lvbd) got exception 
+Data Conversion SQLException
+getBytes(14): 0x0034007400650065006E
+getBytes(lvbd): 0x0034007400650065006E
+getDate(14) got exception 
+Data Conversion SQLException
+getDate(lvbd) got exception 
+Data Conversion SQLException
+getDouble(14) got exception 
+Data Conversion SQLException
+getDouble(lvbd) got exception 
+Data Conversion SQLException
+getFloat(14) got exception 
+Data Conversion SQLException
+getFloat(lvbd) got exception 
+Data Conversion SQLException
+getInt(14) got exception 
+Data Conversion SQLException
+getInt(lvbd) got exception 
+Data Conversion SQLException
+getLong(14) got exception 
+Data Conversion SQLException
+getLong(lvbd) got exception 
+Data Conversion SQLException
+getObject(14) is ok
+getObject(lvbd) is ok 
+getShort(14) got exception 
+Data Conversion SQLException
+getShort(lvbd) got exception 
+Data Conversion SQLException
+getString(14): 0034007400650065006e
+getString(lvbd): 0034007400650065006e
+getTime(14) got exception 
+Data Conversion SQLException
+getTime(lvbd) got exception 
+Data Conversion SQLException
+getTimestamp(14) got exception 
+Data Conversion SQLException
+getTimestamp(lvbd) got exception 
+Data Conversion SQLException
+getBigDecimal(15,1): null
+beetle 5328 - JCC returns incorrect scale for getBigDecimal(String,int)
+getBigDecimal(cl,1): null
+getBoolean(15): false
+getBoolean(cl): false
+getByte(15): 0
+getByte(cl): 0
+getBytes(15): null
+getBytes(cl): null
+getDate(15): null
+getDate(cl): null
+getDouble(15): 0.0
+getDouble(cl): 0.0
+getFloat(15): 0.0
+getFloat(cl): 0.0
+getInt(15): 0
+getInt(cl): 0
+getLong(15): 0
+getLong(cl): 0
+getObject(15) is ok
+getObject(cl) is ok 
+getShort(15): 0
+getShort(cl): 0
+getString(15): null
+getString(cl): null
+getTime(15): null
+getTime(cl): null
+getTimestamp(15): null
+getTimestamp(cl): null
+getBigDecimal(16,1): null
+beetle 5328 - JCC returns incorrect scale for getBigDecimal(String,int)
+getBigDecimal(bl,1): null
+getBoolean(16): false
+getBoolean(bl): false
+getByte(16): 0
+getByte(bl): 0
+getBytes(16): null
+getBytes(bl): null
+getDate(16): null
+getDate(bl): null
+getDouble(16): 0.0
+getDouble(bl): 0.0
+getFloat(16): 0.0
+getFloat(bl): 0.0
+getInt(16): 0
+getInt(bl): 0
+getLong(16): 0
+getLong(bl): 0
+getObject(16) is ok
+getObject(bl) is ok 
+getShort(16): 0
+getShort(bl): 0
+getString(16): null
+getString(bl): null
+getTime(16): null
+getTime(bl): null
+getTimestamp(16): null
+getTimestamp(bl): null
+rs.next() on closed result set got exception 
+Result Set Closed Exception
+just auto commit
+  bug4810 1, 1
+  bug4810 1, 2
+  LOCK TABLE
+Locks are held
+  bug4810 1, 3
+  LOCK TABLE
+Locks are held
+  LOCK TABLE
+commit with auto commit
+  bug4810 1, 1
+  bug4810 1, 2
+commit
+  LOCK TABLE
+Result Set Closed Exception
+  LOCK TABLE
+  LOCK TABLE
+rollback with auto commit
+  bug4810 1, 1
+  bug4810 1, 2
+rollback
+  LOCK TABLE
+Result Set Closed Exception
+  LOCK TABLE
+  LOCK TABLE
+START testMutableValues
+CHECKING on getXXX()
+ROW 1
+ROW 2
+ROW 3
+OK EQUALITY OBJECT RETURNED column 4 existing 1
+OK EQUALITY OBJECT RETURNED column 5 existing 1
+OK EQUALITY OBJECT RETURNED column 6 existing 1
+CHECKING on getObject()
+ROW 1
+ROW 2
+ROW 3
+OK EQUALITY OBJECT RETURNED column 4 existing 1
+OK EQUALITY OBJECT RETURNED column 5 existing 1
+OK EQUALITY OBJECT RETURNED column 6 existing 1
+COMPLETE testMutableValues
+Test resultset finished

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/savepointJdbc30.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/savepointJdbc30.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/savepointJdbc30.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,75 @@
+Test savepointJdbc30 starting
+Tests common to DRDA and embedded Cloudscape
+Test1 - no unnamed savepoints allowed if autocommit is true
+Expected Exception is Cannot set savepoint when in auto-commit mode.
+Test1a - no named savepoints allowed if autocommit is true
+Expected Exception is Cannot set savepoint when in auto-commit mode.
+Test2 - Release and reuse a savepoint name
+Test3 - null name not allowed for named savepoints
+Expected Exception is Named savepoint needs a none-null name.
+Test4 - Verify names/ids of named/unnamed savepoints
+Expected Exception is This is an un-named savepoint.
+Expected Exception is This is a named savepoint.
+Test5a - create two savepoints in two different transactions and release the first one in the subsequent transaction
+Expected Exception is SAVEPOINT, s1 does not  exist or is not active in the current transaction.
+Test5b - create two savepoints in two different transactions and rollback the first one in the subsequent transaction
+Expected Exception is SAVEPOINT, s1 does not  exist or is not active in the current transaction.
+Test6a - create a savepoint, release it, create another with same name and release the first one
+Expected Exception is SAVEPOINT, s1 does not  exist or is not active in the current transaction.
+Test6b - create a savepoint, release it, create another with same name and rollback the first one
+Expected Exception is SAVEPOINT, s1 does not  exist or is not active in the current transaction.
+Test6c - Try to use a savepoint from another connection for release
+Expected Exception is Cannot release a savepoint that was not created by this connection.
+Test7a - swap savepoints across connections with release
+Expected Exception is Cannot release a savepoint that was not created by this connection.
+Test7b - swap savepoints across connections with rollback
+Expected Exception is Rollback to a savepoint not created by this connection.
+Test 9 test savepoint name
+Test 10 test savepoint name case sensitivity
+Test 11 rolling back a savepoint multiple times - should work
+Test 12 releasing a savepoint multiple times - should not work
+Expected Exception is SAVEPOINT, MyName does not  exist or is not active in the current transaction.
+Test 13 shouldn't be able to use a savepoint from earlier transaction after setting autocommit on and off
+Expected Exception is SAVEPOINT, MyName does not  exist or is not active in the current transaction.
+Test 14 A non-user initiated transaction rollback should release the internal savepoint array
+Expected Exception is A lock could not be obtained within the time requested
+Expected Exception is SAVEPOINT, MyName does not  exist or is not active in the current transaction.
+Test 15 check savepoints in batch
+Test 16 grammar check for savepoint sq1
+Expected Exception is Syntax error: MISSING ON ROLLBACK RETAIN CURSORS.
+Expected Exception is Multiple or conflicting keywords involving the 'ON ROLLBACK RETAIN CURSORS' clause are present.
+Expected Exception is Multiple or conflicting keywords involving the 'ON ROLLBACK RETAIN LOCKS' clause are present.
+Expected Exception is Multiple or conflicting keywords involving the 'UNIQUE' clause are present.
+Test 17 No nested savepoints allowed when using SQL to set savepoints.
+Test 17a Test with UNIQUE clause.
+Expected Exception is The maximum number of savepoints has been reached. 
+Test 17b Test without UNIQUE clause.
+Since no nesting is allowed, skipping UNIQUE still gives error for trying to define another savepoint
+Expected Exception is The maximum number of savepoints has been reached. 
+Test 18 No nested SQL savepoints allowed inside JDBC savepoint.
+Following SQL savepoint will fail because we are trying to nest it inside JDBC savepoint
+Expected Exception is The maximum number of savepoints has been reached. 
+Test 19 No nested SQL savepoints allowed inside SQL savepoint.
+Following SQL savepoint will fail because we are trying to nest it inside SQL savepoint
+Expected Exception is The maximum number of savepoints has been reached. 
+Test 20 Rollback of SQL savepoint works same as rollback of JDBC savepoint.
+Test 21 After releasing the SQL savepoint, rollback the transaction and should see everything undone.
+Test 22 Should not be able to create a SQL savepoint starting with name SYS
+Expected Exception is An object cannot be created with the schema name 'SYS'.
+Test 23 Should be able to use non-reserved keywords savepoint and release as identifiers
+Create table with savepoint and release as identifiers
+Create a savepoint with name savepoint
+Release the savepoint with name savepoint
+Create a savepoint with name release
+Rollback to the savepoint with name release
+Release the savepoint with name release
+Test 24 Savepoint name can't exceed 128 characters
+Expected Exception is The name 'MyName1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890' is too long. The maximum length is '128'.
+Test 25 Should not be able to create a SQL savepoint starting with name SYS through jdbc
+Expected Exception is An object cannot be created with the schema name 'SYS'.
+Test 26a rollback of null savepoint
+Expected Exception is Cannot rollback to a null savepoint.
+Test 26b release  of null savepoint
+Expected Exception is Cannot release a null savepoint.
+Next try non-DRDA tests
+Test savepointJdbc30 finished

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/scrollCursors1.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/scrollCursors1.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/scrollCursors1.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,649 @@
+ij> -- create some tables
+create table t1(c50 char(50), i int);
+0 rows inserted/updated/deleted
+ij> create table t2(c50 char(50), i int);
+0 rows inserted/updated/deleted
+ij> -- populate tables
+insert into t1 values ('b', 2), ('c', 3), ('d', 4), ('e', 5),
+		      ('f', 6), ('g', 7), ('h', 8), ('i', 9),
+		      ('j', 10), ('k', 11), ('l', 12), ('m', 13);
+12 rows inserted/updated/deleted
+ij> autocommit off;
+ij> -- negative
+----- position on forward only cursor
+get cursor c1 as 'select i from t1';
+ij> getcurrentrownumber c1;
+IJ ERROR: GETCURRENTROWNUMBER is not allowed on a forward only cursor.
+ij> first c1;
+IJ ERROR: FIRST is not allowed on a forward only cursor.
+ij> last c1;
+IJ ERROR: LAST is not allowed on a forward only cursor.
+ij> previous c1;
+IJ ERROR: PREVIOUS is not allowed on a forward only cursor.
+ij> next c1;
+I          
+-----
+2          
+ij> before first c1;
+IJ ERROR: BEFORE FIRST is not allowed on a forward only cursor.
+ij> after last c1;
+IJ ERROR: AFTER LAST is not allowed on a forward only cursor.
+ij> absolute 1 c1;
+IJ ERROR: ABSOLUTE is not allowed on a forward only cursor.
+ij> relative 1 c1;
+IJ ERROR: RELATIVE is not allowed on a forward only cursor.
+ij> close c1;
+ij> get scroll insensitive cursor c1 as 'select * from t1';
+ij> -- 0 is invalid value for absolute
+absolute 0 c1;
+IJ ERROR: 0 is an invalid value for ABSOLUTE <integer> <cursorname>
+ij> close c1;
+ij> get scroll insensitive cursor c1 as 'select * from t1';
+ij> -- relative is invalid when not positioned on a row
+relative 0 c1;
+ERROR (no SQLState): Cursor is Not on a Valid Row
+ij> close c1;
+ij> get scroll insensitive cursor c1 as 'select * from t1';
+ij> -- relative is invalid when not positioned on a row
+relative 2 c1;
+ERROR (no SQLState): Cursor is Not on a Valid Row
+ij> close c1;
+ij> -- positive
+----- test positioning
+get scroll insensitive cursor c1 as 'select * from t1';
+ij> -- 2
+first c1;
+C50 |I          
+-----
+b |2          
+ij> getcurrentrownumber c1;
+1
+ij> -- 3
+next c1;
+C50 |I          
+-----
+c |3          
+ij> getcurrentrownumber c1;
+2
+ij> -- 2
+first c1;
+C50 |I          
+-----
+b |2          
+ij> getcurrentrownumber c1;
+1
+ij> -- 3
+next c1;
+C50 |I          
+-----
+c |3          
+ij> getcurrentrownumber c1;
+2
+ij> -- 4
+next c1;
+C50 |I          
+-----
+d |4          
+ij> getcurrentrownumber c1;
+3
+ij> -- 2
+first c1;
+C50 |I          
+-----
+b |2          
+ij> getcurrentrownumber c1;
+1
+ij> -- 3
+next c1;
+C50 |I          
+-----
+c |3          
+ij> getcurrentrownumber c1;
+2
+ij> -- null
+after last c1;
+No current row
+ij> getcurrentrownumber c1;
+0
+ij> -- beetle 5509
+----- null
+next c1;
+No current row
+ij> -- beetle 5509
+getcurrentrownumber c1;
+0
+ij> -- beetle 5509
+----- 13
+previous c1;
+C50 |I          
+-----
+m |13         
+ij> -- beetle 5509
+getcurrentrownumber c1;
+12
+ij> -- beetle 5509
+----- 12
+previous c1;
+C50 |I          
+-----
+l |12         
+ij> -- beetle 5509
+getcurrentrownumber c1;
+11
+ij> -- 13
+last c1;
+C50 |I          
+-----
+m |13         
+ij> getcurrentrownumber c1;
+12
+ij> -- null
+before first c1;
+No current row
+ij> getcurrentrownumber c1;
+0
+ij> -- 2
+next c1;
+C50 |I          
+-----
+b |2          
+ij> getcurrentrownumber c1;
+1
+ij> -- 13
+absolute 12 c1;
+C50 |I          
+-----
+m |13         
+ij> getcurrentrownumber c1;
+12
+ij> -- 3
+absolute -11 c1;
+C50 |I          
+-----
+c |3          
+ij> getcurrentrownumber c1;
+2
+ij> -- null
+absolute 13 c1;
+No current row
+ij> getcurrentrownumber c1;
+0
+ij> -- null
+absolute -13 c1;
+No current row
+ij> getcurrentrownumber c1;
+0
+ij> -- absolute -1 should be last row
+absolute -1 c1;
+C50 |I          
+-----
+m |13         
+ij> getcurrentrownumber c1;
+12
+ij> close c1;
+ij> -- do last first
+get scroll insensitive cursor c1 as 'select * from t1';
+ij> -- 13
+last c1;
+C50 |I          
+-----
+m |13         
+ij> getcurrentrownumber c1;
+12
+ij> -- null
+next c1;
+No current row
+ij> getcurrentrownumber c1;
+0
+ij> -- 13
+last c1;
+C50 |I          
+-----
+m |13         
+ij> getcurrentrownumber c1;
+12
+ij> -- 12
+previous c1;
+C50 |I          
+-----
+l |12         
+ij> getcurrentrownumber c1;
+11
+ij> -- 2
+first c1;
+C50 |I          
+-----
+b |2          
+ij> getcurrentrownumber c1;
+1
+ij> -- null
+previous c1;
+No current row
+ij> getcurrentrownumber c1;
+0
+ij> -- 2
+next c1;
+C50 |I          
+-----
+b |2          
+ij> getcurrentrownumber c1;
+1
+ij> close c1;
+ij> -- do after last first
+get scroll insensitive cursor c1 as 'select * from t1';
+ij> -- null
+after last c1;
+No current row
+ij> -- 13
+previous c1;
+C50 |I          
+-----
+m |13         
+ij> -- 12
+previous c1;
+C50 |I          
+-----
+l |12         
+ij> close c1;
+ij> -- go to next to last row, then do next
+get scroll insensitive cursor c1 as 'select * from t1 where i >= 11';
+ij> -- 11
+next c1;
+C50 |I          
+-----
+k |11         
+ij> getcurrentrownumber c1;
+1
+ij> -- 12
+next c1;
+C50 |I          
+-----
+l |12         
+ij> getcurrentrownumber c1;
+2
+ij> -- 13
+last c1;
+C50 |I          
+-----
+m |13         
+ij> getcurrentrownumber c1;
+3
+ij> -- 12
+previous c1;
+C50 |I          
+-----
+l |12         
+ij> getcurrentrownumber c1;
+2
+ij> -- null
+after last c1;
+No current row
+ij> getcurrentrownumber c1;
+0
+ij> -- 13
+previous c1;
+C50 |I          
+-----
+m |13         
+ij> close c1;
+ij> -- start at after last
+get scroll insensitive cursor c1 as 'select * from t1 where i >= 11';
+ij> -- null
+after last c1;
+No current row
+ij> getcurrentrownumber c1;
+0
+ij> -- 13
+previous c1;
+C50 |I          
+-----
+m |13         
+ij> getcurrentrownumber c1;
+3
+ij> close c1;
+ij> -- use absolute to get rows before
+----- scan would get to them
+get scroll insensitive cursor c1 as 'select i from t1';
+ij> -- 6
+absolute 5 c1;
+I          
+-----
+6          
+ij> getcurrentrownumber c1;
+5
+ij> -- 9
+absolute -5 c1;
+I          
+-----
+9          
+ij> getcurrentrownumber c1;
+8
+ij> -- 6
+absolute 5 c1;
+I          
+-----
+6          
+ij> getcurrentrownumber c1;
+5
+ij> close c1;
+ij> get scroll insensitive cursor c1 as 'select i from t1';
+ij> -- null
+absolute 13 c1;
+No current row
+ij> getcurrentrownumber c1;
+0
+ij> -- 13
+previous c1;
+I          
+-----
+13         
+ij> getcurrentrownumber c1;
+12
+ij> close c1;
+ij> get scroll insensitive cursor c1 as 'select i from t1';
+ij> -- null
+absolute -13 c1;
+No current row
+ij> getcurrentrownumber c1;
+0
+ij> -- 2
+next c1;
+I          
+-----
+2          
+ij> getcurrentrownumber c1;
+1
+ij> close c1;
+ij> -- test relative implementation
+get scroll insensitive cursor c1 as 'select i from t1';
+ij> -- 2
+first c1;
+I          
+-----
+2          
+ij> getcurrentrownumber c1;
+1
+ij> -- 13
+relative 11 c1;
+I          
+-----
+13         
+ij> getcurrentrownumber c1;
+12
+ij> -- null
+relative 1 c1;
+No current row
+ij> getcurrentrownumber c1;
+0
+ij> -- 13
+last c1;
+I          
+-----
+13         
+ij> getcurrentrownumber c1;
+12
+ij> -- 2
+relative -11 c1;
+I          
+-----
+2          
+ij> getcurrentrownumber c1;
+1
+ij> close c1;
+ij> -- scroll sensitive cursor becomes scroll insensitive
+commit;
+ij> get scroll sensitive cursor c1 as 'select i from t1';
+ij> first c1;
+I          
+-----
+2          
+ij> next c1;
+I          
+-----
+3          
+ij> update t1 set i = 666 where i = 2;
+1 row inserted/updated/deleted
+ij> first c1;
+I          
+-----
+2          
+ij> rollback;
+ij> -- verify that statement cache works
+----- correctly with scroll and forward only
+----- cursors on same query text
+get scroll insensitive cursor c1 as 'select i from t1';
+ij> get cursor c2 as 'select i from t1';
+ij> first c1;
+I          
+-----
+2          
+ij> next c2;
+I          
+-----
+2          
+ij> first c2;
+IJ ERROR: FIRST is not allowed on a forward only cursor.
+ij> close c1;
+ij> close c2;
+ij> -- first, last, etc. on empty result set
+get scroll insensitive cursor c1 as 'select i from t1 where 1=0';
+ij> first c1;
+No current row
+ij> getcurrentrownumber c1;
+0
+ij> previous c1;
+No current row
+ij> getcurrentrownumber c1;
+0
+ij> next c1;
+No current row
+ij> getcurrentrownumber c1;
+0
+ij> last c1;
+No current row
+ij> getcurrentrownumber c1;
+0
+ij> next c1;
+No current row
+ij> getcurrentrownumber c1;
+0
+ij> previous c1;
+No current row
+ij> getcurrentrownumber c1;
+0
+ij> absolute 1 c1;
+No current row
+ij> getcurrentrownumber c1;
+0
+ij> absolute -1 c1;
+No current row
+ij> getcurrentrownumber c1;
+0
+ij> close c1;
+ij> get scroll insensitive cursor c1 as 'select i from t1 where 1=0';
+ij> after last c1;
+No current row
+ij> getcurrentrownumber c1;
+0
+ij> previous c1;
+No current row
+ij> getcurrentrownumber c1;
+0
+ij> before first c1;
+No current row
+ij> getcurrentrownumber c1;
+0
+ij> next c1;
+No current row
+ij> getcurrentrownumber c1;
+0
+ij> close c1;
+ij> get scroll insensitive cursor c1 as 'select i from t1 where 1=0';
+ij> absolute 1 c1;
+No current row
+ij> absolute -1 c1;
+No current row
+ij> close c1;
+ij> get scroll insensitive cursor c1 as 'select i from t1 where 1=0';
+ij> absolute -1 c1;
+No current row
+ij> absolute 1 c1;
+No current row
+ij> close c1;
+ij> autocommit on;
+ij> get scroll insensitive with hold cursor c1 as 'select i from t1 where 1=0';
+ij> first c1;
+No current row
+ij> first c1;
+No current row
+ij> last c1;
+No current row
+ij> last c1;
+No current row
+ij> absolute 1 c1;
+No current row
+ij> absolute -1 c1;
+No current row
+ij> before first c1;
+No current row
+ij> after last c1;
+No current row
+ij> previous c1;
+No current row
+ij> next c1;
+No current row
+ij> -- beetle 5510
+next c1;
+No current row
+ij> close c1;
+ij> -- cursor on a sort
+get scroll insensitive cursor c1 as 'select * from t1 order by i desc';
+ij> -- 2
+last c1;
+C50 |I          
+-----
+b |2          
+ij> -- 13
+first c1;
+C50 |I          
+-----
+m |13         
+ij> -- 2
+relative 11 c1;
+C50 |I          
+-----
+b |2          
+ij> -- 3
+previous c1;
+C50 |I          
+-----
+c |3          
+ij> close c1;
+ij> -- RTS
+call SYSCS_UTIL.SYSCS_SET_RUNTIMESTATISTICS(1);
+Statement executed.
+ij> maximumdisplaywidth 2000;
+ij> get scroll insensitive cursor c1 as 'select * from t1';
+ij> last c1;
+C50 |I          
+-----
+m |13         
+ij> first c1;
+C50 |I          
+-----
+b |2          
+ij> next c1;
+C50 |I          
+-----
+c |3          
+ij> close c1;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C3
+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: 
+Scroll Insensitive ResultSet:
+Number of opens = 1
+Rows seen = 11
+Number of reads from hash table = 15
+Number of writes to hash table = 12
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+Source result set:
+	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 = 12
+	Rows filtered = 0
+	Fetch Size = 16
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+		next time in milliseconds/row = 0
+	scan information: 
+		Bit set of columns fetched=All
+		Number of columns fetched=2
+		Number of pages visited=1
+		Number of rows qualified=12
+		Number of rows visited=12
+		Scan type=heap
+		start position: 
+null		stop position: 
+null		qualifiers:
+None
+ij> get scroll insensitive cursor c1 as 'select * from t1';
+ij> close c1;
+ij> -- for following set of tests, setting the holdability over commit to false for this connection since that is what we want to test below
+----- Using this rather than passing with nohold to cursor statement because this test also runs in jdk13 and lower and there is no way to
+----- set the holdability using jdbc api in those jdks (unless trying that through a jdbc program where one can use reflection to set holdability
+----- in jdk131)
+NoholdForConnection;
+ij> -- beetle 4551 - insensitive cursor uses estimated row count which might be
+----- pessimistic and will get out of memory error
+create table big(a int generated always as identity (start with 1, increment by 1));
+0 rows inserted/updated/deleted
+ij> insert into big values(default);
+1 row inserted/updated/deleted
+ij> insert into big values(default);
+1 row inserted/updated/deleted
+ij> insert into big values(default);
+1 row inserted/updated/deleted
+ij> insert into big values(default);
+1 row inserted/updated/deleted
+ij> insert into big values(default);
+1 row inserted/updated/deleted
+ij> insert into big values(default);
+1 row inserted/updated/deleted
+ij> insert into big values(default);
+1 row inserted/updated/deleted
+ij> insert into big values(default);
+1 row inserted/updated/deleted
+ij> insert into big values(default);
+1 row inserted/updated/deleted
+ij> insert into big values(default);
+1 row inserted/updated/deleted
+ij> get scroll insensitive cursor s1 as
+'select * from big b1 left outer join  big b2 on b1.a = b2.a left outer join  big b3 on b2.a = b3.a left outer join big b4 on b3.a = b4.a left outer join (big b5 left outer join (big b6 left outer join (big b7 left outer join big b8 on b7.a = b8.a) on b6.a=b7.a) on b5.a = b6.a) on b4.a = b5.a';
+ij> -- clean up
+drop table t1;
+0 rows inserted/updated/deleted
+ij> drop table t2;
+0 rows inserted/updated/deleted
+ij> drop table big;
+0 rows inserted/updated/deleted
+ij> 

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/secureUsers.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/secureUsers.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/secureUsers.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,205 @@
+ij> --
+----- Specifically test SECURE users and various authentication
+----- service/scheme configuration for different databases.
+-----
+----- Configure the 6 different databases with for each
+----- of them, a different authentication scheme.
+-----
+----- 'wombat'				- default DERBY scheme &
+-----						  users known at system level.
+-----						  Some authorization restriction.
+----- 'guestSchemeDB'		- No authentication
+----- 'derbySchemeDB'	- BUILTIN authentication
+-----						  & some db authorization restriction.
+----- 'simpleSchemeDB'		- BUILTIN authentication and
+-----						  some db authorization restriction.
+-----                        (was the old Cloudscape 1.5 simple scheme)
+-----
+----- let's create all the dbs and configure them.
+----- we will authenticate using a default system user that we
+----- have configured.
+----- A typical bad guy who cannot access any database but guest
+----- is Jamie.
+-----
+-----
+----- 'guestSchemeDB' database authentication/authorization config
+-----
+connect 'guestSchemeDB;create=true;user=system;password=manager';
+ij(CONNECTION1)> -- override requireAuthentication to be turned OFF at the database level
+autocommit off;
+ij(CONNECTION1)> prepare p1 as 'CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(?,?)';
+ij(CONNECTION1)> execute p1 using 'values(''derby.connection.requireAuthentication'', ''false'')';
+Statement executed.
+ij(CONNECTION1)> commit;
+ij(CONNECTION1)> autocommit on;
+ij(CONNECTION1)> --
+----- 'derbySchemeDB' database authentication/authorization config
+-----
+connect 'derbySchemeDB;create=true;user=system;password=manager';
+ij(CONNECTION2)> autocommit off;
+ij(CONNECTION2)> prepare p2 as 'CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(?,?)';
+ij(CONNECTION2)> execute p2 using 'values(''derby.authentication.provider'', ''BUILTIN'')';
+Statement executed.
+ij(CONNECTION2)> -- let's define users in this database (other than the ones
+----- known at the system level. This is for the test
+----- These 3 users will only be known in this database
+execute p2 using 'values(''derby.user.martin'', ''obfuscateIt'')';
+Statement executed.
+ij(CONNECTION2)> execute p2 using 'values(''derby.user.dan'', ''makeItFaster'')';
+Statement executed.
+ij(CONNECTION2)> execute p2 using 'values(''derby.user.mamta'', ''ieScape'')';
+Statement executed.
+ij(CONNECTION2)> execute p2 using 'values(''derby.database.propertiesOnly'', ''true'')';
+Statement executed.
+ij(CONNECTION2)> commit;
+ij(CONNECTION2)> autocommit on;
+ij(CONNECTION2)> --
+----- 'simpleSchemeDB' database authentication/authorization config
+-----
+connect 'simpleSchemeDB;create=true;user=system;password=manager';
+ij(CONNECTION3)> autocommit off;
+ij(CONNECTION3)> prepare p5 as 'CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(?,?)';
+ij(CONNECTION3)> execute p5 using 'values(''derby.authentication.provider'', ''BUILTIN'')';
+Statement executed.
+ij(CONNECTION3)> --
+-----  only allow these 3 users
+execute p5 using 'values(''derby.database.fullAccessUsers'', ''system,jeff,howardR'')';
+Statement executed.
+ij(CONNECTION3)> execute p5 using 'values(''derby.database.readOnlyAccessUsers'', ''francois'')';
+Statement executed.
+ij(CONNECTION3)> -- no access to Jamie only as he's a well known hooligan
+execute p5 using 'values(''derby.database.defaultConnectionMode'', ''noAccess'')';
+Statement executed.
+ij(CONNECTION3)> commit;
+ij(CONNECTION3)> autocommit on;
+ij(CONNECTION3)> --
+----- Shutdown the system for database properties to take effect
+-----
+disconnect all;
+ij> connect 'wombat;user=system;password=manager;shutdown=true';
+ERROR 08006: wombat08006.DDatabase 'wombat' shutdown.((server log XXX)
+ij> connect 'guestSchemeDB;user=system;password=manager;shutdown=true';
+ERROR 08006: guestSchemeDB08006.DDatabase 'guestSchemeDB' shutdown.((server log XXX)
+ij> connect 'derbySchemeDB;user=system;password=manager;shutdown=true';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij> connect 'simpleSchemeDB;user=system;password=manager;shutdown=true';
+ERROR 08006: simpleSchemeDB08006.DDatabase 'simpleSchemeDB' shutdown.((server log XXX)
+ij> disconnect all;
+ij> -- shuting down the system causes IJ to loose the protocol, therefore
+----- we'd be doomed :(
+#connect ';shutdown=true;user=system;password=manager';
+IJ ERROR: Unable to establish connection
+ij> -- 1) Valid authentication & authorization requests/ops
+----- 
+connect 'wombat;create=true;user=kreg;password=IwasBornReady';
+ij> connect 'wombat;user=jeff;password=homeRun';
+ij(CONNECTION1)> connect 'wombat;user=howardR;password=takeItEasy';
+ij(CONNECTION2)> connect 'wombat;user=francois;password=paceesalute';
+ij(CONNECTION3)> -- Invalid ones:
+connect 'wombat;user=Jamie;password=theHooligan';
+ij(CONNECTION4)> show connections;
+CONNECTION0 - 	jdbc:derby:net://localhost:1527/wombat;create=true;user=kreg;password=IwasBornReady
+CONNECTION1 - 	jdbc:derby:net://localhost:1527/wombat;user=jeff;password=homeRun
+CONNECTION2 - 	jdbc:derby:net://localhost:1527/wombat;user=howardR;password=takeItEasy
+CONNECTION3 - 	jdbc:derby:net://localhost:1527/wombat;user=francois;password=paceesalute
+CONNECTION4* - 	jdbc:derby:net://localhost:1527/wombat;user=Jamie;password=theHooligan
+* = current connection
+ij(CONNECTION4)> connect 'guestSchemeDB;user=kreg;password=IwasBornReady';
+ij(CONNECTION5)> connect 'guestSchemeDB;user=jeff;password=homeRun';
+ij(CONNECTION6)> connect 'guestSchemeDB;user=howardR;password=takeItEasy';
+ij(CONNECTION7)> connect 'guestSchemeDB;user=francois;password=paceesalute';
+ij(CONNECTION8)> -- Invalid ones:
+connect 'guestSchemeDB;user=Jamie;password=theHooligan';
+ij(CONNECTION9)> show connections;
+CONNECTION0 - 	jdbc:derby:net://localhost:1527/wombat;create=true;user=kreg;password=IwasBornReady
+CONNECTION1 - 	jdbc:derby:net://localhost:1527/wombat;user=jeff;password=homeRun
+CONNECTION2 - 	jdbc:derby:net://localhost:1527/wombat;user=howardR;password=takeItEasy
+CONNECTION3 - 	jdbc:derby:net://localhost:1527/wombat;user=francois;password=paceesalute
+CONNECTION4 - 	jdbc:derby:net://localhost:1527/wombat;user=Jamie;password=theHooligan
+CONNECTION5 - 	jdbc:derby:net://localhost:1527/guestSchemeDB;user=kreg;password=IwasBornReady
+CONNECTION6 - 	jdbc:derby:net://localhost:1527/guestSchemeDB;user=jeff;password=homeRun
+CONNECTION7 - 	jdbc:derby:net://localhost:1527/guestSchemeDB;user=howardR;password=takeItEasy
+CONNECTION8 - 	jdbc:derby:net://localhost:1527/guestSchemeDB;user=francois;password=paceesalute
+CONNECTION9* - 	jdbc:derby:net://localhost:1527/guestSchemeDB;user=Jamie;password=theHooligan
+* = current connection
+ij(CONNECTION9)> connect 'derbySchemeDB;user=mamta;password=ieScape';
+ij(CONNECTION10)> connect 'derbySchemeDB;user=dan;password=makeItFaster';
+ij(CONNECTION11)> connect 'derbySchemeDB;user=martin;password=obfuscateIt';
+ij(CONNECTION12)> -- Invalid ones:
+connect 'derbySchemeDB;user=Jamie;password=theHooligan';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION12)> connect 'derbySchemeDB;user=francois;password=paceesalute';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION12)> show connections;
+CONNECTION0 - 	jdbc:derby:net://localhost:1527/wombat;create=true;user=kreg;password=IwasBornReady
+CONNECTION1 - 	jdbc:derby:net://localhost:1527/wombat;user=jeff;password=homeRun
+CONNECTION10 - 	jdbc:derby:net://localhost:1527/derbySchemeDB;user=mamta;password=ieScape
+CONNECTION11 - 	jdbc:derby:net://localhost:1527/derbySchemeDB;user=dan;password=makeItFaster
+CONNECTION12* - 	jdbc:derby:net://localhost:1527/derbySchemeDB;user=martin;password=obfuscateIt
+CONNECTION2 - 	jdbc:derby:net://localhost:1527/wombat;user=howardR;password=takeItEasy
+CONNECTION3 - 	jdbc:derby:net://localhost:1527/wombat;user=francois;password=paceesalute
+CONNECTION4 - 	jdbc:derby:net://localhost:1527/wombat;user=Jamie;password=theHooligan
+CONNECTION5 - 	jdbc:derby:net://localhost:1527/guestSchemeDB;user=kreg;password=IwasBornReady
+CONNECTION6 - 	jdbc:derby:net://localhost:1527/guestSchemeDB;user=jeff;password=homeRun
+CONNECTION7 - 	jdbc:derby:net://localhost:1527/guestSchemeDB;user=howardR;password=takeItEasy
+CONNECTION8 - 	jdbc:derby:net://localhost:1527/guestSchemeDB;user=francois;password=paceesalute
+CONNECTION9 - 	jdbc:derby:net://localhost:1527/guestSchemeDB;user=Jamie;password=theHooligan
+* = current connection
+ij(CONNECTION12)> connect 'simpleSchemeDB;user=jeff;password=homeRun';
+ij(CONNECTION13)> connect 'simpleSchemeDB;user=howardR;password=takeItEasy';
+ij(CONNECTION14)> connect 'simpleSchemeDB;user=francois;password=paceesalute';
+ij(CONNECTION15)> -- Read-only user
+create table t1 (c1 int);
+ERROR 25503: DDL is not permitted for a read-only connection, user or database.
+ij(CONNECTION15)> -- Invalid ones:
+connect 'simpleSchemeDB;user=Jamie;password=theHooligan';
+ERROR 04501: 04501.CDatabase connection refused.((server log XXX)
+ij(CONNECTION15)> connect 'simpleSchemeDB;user=dan;password=makeItFaster';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION15)> connect 'simpleSchemeDB;user=francois;password=corsica';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION15)> show connections;
+CONNECTION0 - 	jdbc:derby:net://localhost:1527/wombat;create=true;user=kreg;password=IwasBornReady
+CONNECTION1 - 	jdbc:derby:net://localhost:1527/wombat;user=jeff;password=homeRun
+CONNECTION10 - 	jdbc:derby:net://localhost:1527/derbySchemeDB;user=mamta;password=ieScape
+CONNECTION11 - 	jdbc:derby:net://localhost:1527/derbySchemeDB;user=dan;password=makeItFaster
+CONNECTION12 - 	jdbc:derby:net://localhost:1527/derbySchemeDB;user=martin;password=obfuscateIt
+CONNECTION13 - 	jdbc:derby:net://localhost:1527/simpleSchemeDB;user=jeff;password=homeRun
+CONNECTION14 - 	jdbc:derby:net://localhost:1527/simpleSchemeDB;user=howardR;password=takeItEasy
+CONNECTION15* - 	jdbc:derby:net://localhost:1527/simpleSchemeDB;user=francois;password=paceesalute
+CONNECTION2 - 	jdbc:derby:net://localhost:1527/wombat;user=howardR;password=takeItEasy
+CONNECTION3 - 	jdbc:derby:net://localhost:1527/wombat;user=francois;password=paceesalute
+CONNECTION4 - 	jdbc:derby:net://localhost:1527/wombat;user=Jamie;password=theHooligan
+CONNECTION5 - 	jdbc:derby:net://localhost:1527/guestSchemeDB;user=kreg;password=IwasBornReady
+CONNECTION6 - 	jdbc:derby:net://localhost:1527/guestSchemeDB;user=jeff;password=homeRun
+CONNECTION7 - 	jdbc:derby:net://localhost:1527/guestSchemeDB;user=howardR;password=takeItEasy
+CONNECTION8 - 	jdbc:derby:net://localhost:1527/guestSchemeDB;user=francois;password=paceesalute
+CONNECTION9 - 	jdbc:derby:net://localhost:1527/guestSchemeDB;user=Jamie;password=theHooligan
+* = current connection
+ij(CONNECTION15)> disconnect all;
+ij> show connections;
+No connections available.
+ij> -- Database shutdown - check user - should fail
+connect 'derbySchemeDB;shutdown=true';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij> show connections;
+No connections available.
+ij> -- Database shutdown - check user - should succeed
+connect 'wombat;user=jeff;password=homeRun;shutdown=true';
+ERROR 08006: wombat08006.DDatabase 'wombat' shutdown.((server log XXX)
+ij> connect 'guestSchemeDB;user=kreg;password=IwasBornReady;shutdown=true';
+ERROR 08006: guestSchemeDB08006.DDatabase 'guestSchemeDB' shutdown.((server log XXX)
+ij> connect 'derbySchemeDB;user=mamta;password=ieScape;shutdown=true';
+ERROR 08006: derbySchemeDB08006.DDatabase 'derbySchemeDB' shutdown.((server log XXX)
+ij> connect 'simpleSchemeDB;user=jeff;password=homeRun;shutdown=true';
+ERROR 08006: simpleSchemeDB08006.DDatabase 'simpleSchemeDB' shutdown.((server log XXX)
+ij> show connections;
+No connections available.
+ij> -- Derby system shutdown - check user - should fail
+connect ';user=jamie;password=LetMeIn;shutdown=true';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij> disconnect all;
+ij> -- Derby system shutdown - check user - should succeed
+connect ';user=system;password=manager;shutdown=true';
+ERROR XJ015: XJ015.MDerby system shutdown.((server log XXX)
+ij> 

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/secureUsers1.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/secureUsers1.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/secureUsers1.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,41 @@
+ij> --
+----- Negative test for SECURE users. This tries to authenticate against an LDAP
+----- server on a machine which is not accessible/doesn't exist.
+-----
+----- 'ldapSchemeDB'		- LDAP authentication (on NT thru LDAP)
+----- let's create the db and configure it.
+----- we will authenticate using a default system user that we have configured.
+-----
+----- 'ldapSchemeDB' database authentication/authorization config
+-----
+connect 'ldapSchemeDB;create=true;user=system;password=manager';
+ij(CONNECTION1)> autocommit off;
+ij(CONNECTION1)> prepare p1 as 'CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(?,?)';
+ij(CONNECTION1)> execute p1 using 'values(''derby.authentication.provider'', ''LDAP'')';
+Statement executed.
+ij(CONNECTION1)> -- there is no such machine as noSuchMachine and so the authentication will fail
+execute p1 using 'values(''derby.authentication.server'', ''noSuchMachine:389'')';
+Statement executed.
+ij(CONNECTION1)> execute p1 using 'values(''derby.authentication.ldap.searchBase'', ''o=opensource.apache.com'')';
+Statement executed.
+ij(CONNECTION1)> -- this is the default search filter
+execute p1 using 'values(''derby.authentication.ldap.searchFilter'', ''(&(objectClass=inetOrgPerson)(uid=%USERNAME%))'')';
+Statement executed.
+ij(CONNECTION1)> commit;
+ij(CONNECTION1)> autocommit on;
+ij(CONNECTION1)> --
+----- Shutdown the system for database properties to take effect
+-----
+disconnect all;
+ij> connect 'ldapSchemeDB;user=system;password=manager;shutdown=true';
+ERROR 08006: ldapSchemeDB08006.DDatabase 'ldapSchemeDB' shutdown.((server log XXX)
+ij> disconnect all;
+ij> connect 'ldapSchemeDB;user=mamta;password=yeeHaLdap';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij> show connections;
+No connections available.
+ij> disconnect all;
+ij> -- Derby system shutdown - check user - should succeed
+connect ';user=system;password=manager;shutdown=true';
+ERROR XJ015: XJ015.MDerby system shutdown.((server log XXX)
+ij> 

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/secureUsersldap.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/secureUsersldap.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/secureUsersldap.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,223 @@
+ij> --
+----- Specifically test SECURE users with ldap 
+----- Configure the ldap databases, plus some for reference
+-----
+----- 'derbySchemeDB'	- BUILTIN authentication
+-----						  & some db authorization restriction.
+----- 'ldapSchemeDB'		- LDAP authentication
+-----						  (or NT thru LDAP)
+----- 'ldapSchemeDBJN'	- LDAP setting url through java.naming.*
+-----						  some db authorization restriction.
+-----
+----- let's create all the dbs and configure them.
+----- we will authenticate using a default system user that we
+----- have configured.
+----- A typical bad guy who cannot access any database but guest
+----- is Jamie.
+-----
+-----
+----- 'derbySchemeDB' database authentication/authorization config
+-----
+connect 'derbySchemeDB;create=true;user=system;password=manager';
+ij(CONNECTION1)> autocommit off;
+ij(CONNECTION1)> prepare p2 as 'CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(?,?)';
+ij(CONNECTION1)> execute p2 using 'values(''derby.authentication.provider'', ''BUILTIN'')';
+Statement executed.
+ij(CONNECTION1)> -- let's define users in this database (other than the ones
+----- known at the system level. This is for the test
+----- These 3 users will only be known in this database
+execute p2 using 'values(''derby.user.martin'', ''obfuscateIt'')';
+Statement executed.
+ij(CONNECTION1)> execute p2 using 'values(''derby.user.dan'', ''makeItFaster'')';
+Statement executed.
+ij(CONNECTION1)> execute p2 using 'values(''derby.user.mamta'', ''ieScape'')';
+Statement executed.
+ij(CONNECTION1)> execute p2 using 'values(''derby.database.propertiesOnly'', ''true'')';
+Statement executed.
+ij(CONNECTION1)> commit;
+ij(CONNECTION1)> autocommit on;
+ij(CONNECTION1)> --
+----- 'ldapSchemeDB' database authentication/authorization config
+-----
+connect 'ldapSchemeDB;create=true;user=system;password=manager';
+ij(CONNECTION2)> autocommit off;
+ij(CONNECTION2)> prepare p3 as 'CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(?,?)';
+ij(CONNECTION2)> execute p3 using 'values(''derby.authentication.provider'', ''LDAP'')';
+Statement executed.
+ij(CONNECTION2)> execute p3 using 'values(''derby.authentication.server'', ''thehost.opensource.apache.com:389'')';
+Statement executed.
+ij(CONNECTION2)> execute p3 using 'values(''derby.authentication.ldap.searchBase'', ''o=opensource.apache.com'')';
+Statement executed.
+ij(CONNECTION2)> -- this is the default search filter
+execute p3 using 'values(''derby.authentication.ldap.searchFilter'', ''(&(objectClass=inetOrgPerson)(uid=%USERNAME%))'')';
+Statement executed.
+ij(CONNECTION2)> commit;
+ij(CONNECTION2)> autocommit on;
+ij(CONNECTION2)> connect 'ldapSchemeDBJN;create=true;user=system;password=manager';
+ij(CONNECTION3)> autocommit off;
+ij(CONNECTION3)> prepare p3 as 'CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(?,?)';
+ij(CONNECTION3)> execute p3 using 'values(''derby.authentication.provider'', ''LDAP'')';
+Statement executed.
+ij(CONNECTION3)> execute p3 using 'values(''java.naming.provider.url'', ''ldap://thehost.opensource.apache.com:389'')';
+Statement executed.
+ij(CONNECTION3)> execute p3 using 'values(''derby.authentication.ldap.searchBase'', ''o=opensource.apache.com'')';
+Statement executed.
+ij(CONNECTION3)> -- this is the default search filter
+execute p3 using 'values(''derby.authentication.ldap.searchFilter'', ''(&(objectClass=inetOrgPerson)(uid=%USERNAME%))'')';
+Statement executed.
+ij(CONNECTION3)> commit;
+ij(CONNECTION3)> autocommit on;
+ij(CONNECTION3)> disconnect;
+ij> --
+----- Shutdown the system for database properties to take effect
+-----
+disconnect all;
+ij> connect 'derbySchemeDB;user=system;password=manager;shutdown=true';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij> connect 'ldapSchemeDB;user=system;password=manager;shutdown=true';
+ERROR 08006: ldapSchemeDB08006.DDatabase 'ldapSchemeDB' shutdown.((server log XXX)
+ij> connect 'ldapSchemeDBJN;user=system;password=manager;shutdown=true';
+ERROR 08006: ldapSchemeDBJN08006.DDatabase 'ldapSchemeDBJN' shutdown.((server log XXX)
+ij> disconnect all;
+ij> -- shuting down the system causes IJ to loose the protocol, therefore
+----- we'd be doomed :(
+#connect ';shutdown=true;user=system;password=manager';
+IJ ERROR: Unable to establish connection
+ij> -- 1) Valid authentication & authorization requests/ops
+connect 'derbySchemeDB;user=mamta;password=ieScape';
+ij> connect 'derbySchemeDB;user=dan;password=makeItFaster';
+ij(CONNECTION1)> connect 'derbySchemeDB;user=martin;password=obfuscateIt';
+ij(CONNECTION2)> -- Invalid ones:
+connect 'derbySchemeDB;user=Jamie;password=theHooligan';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION2)> connect 'derbySchemeDB;user=francois;password=paceesalute';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION2)> show connections;
+CONNECTION0 - 	jdbc:derby:net://localhost:1527/derbySchemeDB;user=mamta;password=ieScape
+CONNECTION1 - 	jdbc:derby:net://localhost:1527/derbySchemeDB;user=dan;password=makeItFaster
+CONNECTION2* - 	jdbc:derby:net://localhost:1527/derbySchemeDB;user=martin;password=obfuscateIt
+* = current connection
+ij(CONNECTION2)> --
+----- 1rst test phase for LDAP
+----- We look-up the user DN and authenticate to LDAP with passed-in
+----- credentials
+connect 'ldapSchemeDB;user=mamta;password=yeeHaLdap';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION2)> connect 'ldapSchemeDB;user=francois;password=corsica';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION2)> -- Invalid ones:
+connect 'ldapSchemeDB;user=Jamie;password=theHooligan';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION2)> connect 'ldapSchemeDB;user=dan;password=makeItFaster';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION2)> -- wrong ldap password
+connect 'ldapSchemeDB;user=francois;password=paceesalute';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION2)> show connections;
+CONNECTION0 - 	jdbc:derby:net://localhost:1527/derbySchemeDB;user=mamta;password=ieScape
+CONNECTION1 - 	jdbc:derby:net://localhost:1527/derbySchemeDB;user=dan;password=makeItFaster
+CONNECTION2* - 	jdbc:derby:net://localhost:1527/derbySchemeDB;user=martin;password=obfuscateIt
+* = current connection
+ij(CONNECTION2)> --
+----- 2nd test phases for LDAP - Cache the User DN locally
+----- to avoid the initial look-up
+-----
+connect 'ldapSchemeDB;user=francois;password=corsica';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION2)> autocommit off;
+ij(CONNECTION2)> prepare p5 as 'CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(?,?)';
+ij(CONNECTION2)> execute p5 using 'values(''derby.authentication.ldap.searchFilter'', ''derby.user'')';
+Statement executed.
+ij(CONNECTION2)> -- set the users DN locally now
+execute p5 using 'values(''derby.user.mamta'', ''uid=mamta,ou=People,o=opensource.apache.com'')';
+Statement executed.
+ij(CONNECTION2)> execute p5 using 'values(''derby.user.francois'', ''uid=francois,ou=People,o=opensource.apache.com'')';
+Statement executed.
+ij(CONNECTION2)> show connections;
+CONNECTION0 - 	jdbc:derby:net://localhost:1527/derbySchemeDB;user=mamta;password=ieScape
+CONNECTION1 - 	jdbc:derby:net://localhost:1527/derbySchemeDB;user=dan;password=makeItFaster
+CONNECTION2* - 	jdbc:derby:net://localhost:1527/derbySchemeDB;user=martin;password=obfuscateIt
+* = current connection
+ij(CONNECTION2)> commit;
+ij(CONNECTION2)> autocommit on;
+ij(CONNECTION2)> -- restart ldapSchemeDB for properties to take effect & reconnect to test
+connect 'ldapSchemeDB;user=francois;password=corsica;shutdown=true';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION2)> -- re-test
+connect 'ldapSchemeDB;user=mamta;password=yeeHaLdap';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION2)> connect 'ldapSchemeDB;user=francois;password=corsica';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION2)> -- 2a) Some users with no local DN: rachael, kathy
+-----     as no local DN cached, look-up will be performed with
+-----     default search filter.
+-----
+connect 'ldapSchemeDB;user=kathy;password=kathyS';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION2)> connect 'ldapSchemeDB;user=rachael;password=rachaelF';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION2)> show connections;
+CONNECTION0 - 	jdbc:derby:net://localhost:1527/derbySchemeDB;user=mamta;password=ieScape
+CONNECTION1 - 	jdbc:derby:net://localhost:1527/derbySchemeDB;user=dan;password=makeItFaster
+CONNECTION2* - 	jdbc:derby:net://localhost:1527/derbySchemeDB;user=martin;password=obfuscateIt
+* = current connection
+ij(CONNECTION2)> -- Invalid ones:
+connect 'ldapSchemeDB;user=Jamie;password=theHooligan';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION2)> connect 'ldapSchemeDB;user=dan;password=makeItFaster';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION2)> -- wrong ldap password
+connect 'ldapSchemeDB;user=francois;password=paceesalute';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION2)> show connections;
+CONNECTION0 - 	jdbc:derby:net://localhost:1527/derbySchemeDB;user=mamta;password=ieScape
+CONNECTION1 - 	jdbc:derby:net://localhost:1527/derbySchemeDB;user=dan;password=makeItFaster
+CONNECTION2* - 	jdbc:derby:net://localhost:1527/derbySchemeDB;user=martin;password=obfuscateIt
+* = current connection
+ij(CONNECTION2)> -- Database shutdown - check user - should fail
+connect 'derbySchemeDB;shutdown=true';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION2)> connect 'ldapSchemeDB;user=jamie;password=LetMeIn;shutdown=true';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION2)> show connections;
+CONNECTION0 - 	jdbc:derby:net://localhost:1527/derbySchemeDB;user=mamta;password=ieScape
+CONNECTION1 - 	jdbc:derby:net://localhost:1527/derbySchemeDB;user=dan;password=makeItFaster
+CONNECTION2* - 	jdbc:derby:net://localhost:1527/derbySchemeDB;user=martin;password=obfuscateIt
+* = current connection
+ij(CONNECTION2)> -- Database shutdown - check user - should succeed
+connect 'derbySchemeDB;user=mamta;password=ieScape;shutdown=true';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION2)> connect 'ldapSchemeDB;user=mamta;password=yeeHaLdap;shutdown=true';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION2)> show connections;
+CONNECTION0 - 	jdbc:derby:net://localhost:1527/derbySchemeDB;user=mamta;password=ieScape
+CONNECTION1 - 	jdbc:derby:net://localhost:1527/derbySchemeDB;user=dan;password=makeItFaster
+CONNECTION2* - 	jdbc:derby:net://localhost:1527/derbySchemeDB;user=martin;password=obfuscateIt
+* = current connection
+ij(CONNECTION2)> -- Derby system shutdown - check user - should fail
+connect ';user=jamie;password=LetMeIn;shutdown=true';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION2)> disconnect all;
+ij> --
+----- 1rst test phase for LDAP
+----- We look-up the user DN and authenticate to LDAP with passed-in
+----- credentials
+connect 'ldapSchemeDBJN;user=mamta;password=yeeHaLdap';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij> connect 'ldapSchemeDBJN;user=francois;password=corsica';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij> -- Invalid ones:
+connect 'ldapSchemeDBJN;user=Jamie;password=theHooligan';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij> connect 'ldapSchemeDBJN;user=dan;password=makeItFaster';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij> -- wrong ldap password
+connect 'ldapSchemeDBJN;user=francois;password=paceesalute';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij> show connections;
+No connections available.
+ij> disconnect all;
+ij> -- Derby system shutdown - check user - should succeed
+connect ';user=system;password=manager;shutdown=true';
+ERROR XJ015: XJ015.MDerby system shutdown.((server log XXX)
+ij> 

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/supersimple.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/supersimple.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/supersimple.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,179 @@
+ij> -- by default, holdability of ResultSet objects created using this Connection object is true. Following will set it to false for this connection.
+NoHoldForConnection;
+ij> create table a (a int);
+0 rows inserted/updated/deleted
+ij> insert into a values (1);
+1 row inserted/updated/deleted
+ij> select * from a;
+A          
+-----
+1          
+ij> drop table a;
+0 rows inserted/updated/deleted
+ij> create table b (si smallint,i int, bi bigint, r real, f float, d double precision, n5_2 numeric(5,2), dec10_3 decimal(10,3), ch20 char(20),vc varchar(20), lvc long varchar, blobCol blob(1000),  clobCol clob(1000));
+0 rows inserted/updated/deleted
+ij> insert into b values(2,3,4,5.3,5.3,5.3,31.13,123456.123, 'one','one','one',cast(X'01ABCD' as blob(1000)),'one');
+1 row inserted/updated/deleted
+ij> insert into b values(-32768,-2147483648, -9223372036854775808 ,1.2E-37, 2.225E-307, +2.225E-307,-56.12, -123456.123,'one','one','one', cast(X'01ABCD' as blob(1000)),'one');
+1 row inserted/updated/deleted
+ij> insert into b values(null,null,null,null,null,null,null,null,null,null,null,null,null);
+1 row inserted/updated/deleted
+ij> insert into b values(32767,2147483647, 9223372036854775807 ,1.4 , 3.4028235E38 ,3.4028235E38  ,999.99, 9999999.999,'one','one','one',cast(X'01ABCD' as blob(1000)), 'one');
+1 row inserted/updated/deleted
+ij> select * from b;
+SI |I |BI |R |F |D |N5_2 |DEC10_3 |CH20 |VC |LVC |BLOBCOL |CLOBCOL                                                                                                                         
+-----
+2 |3 |4 |5.3 |5.3 |5.3 |31.13 |123456.123 |one |one |one |01abcd |one                                                                                                                             
+-----32768 |-2147483648 |-9223372036854775808 |1.2E-37 |2.225E-307 |2.225E-307 |-56.12 |-123456.123 |one |one |one |01abcd |one                                                                                                                             
+NULL |NULL |NULL |NULL |NULL |NULL |NULL |NULL |NULL |NULL |NULL |NULL |NULL                                                                                                                            
+32767 |2147483647 |9223372036854775807 |1.4 |3.4028235E38 |3.4028235E38 |999.99 |9999999.999 |one |one |one |01abcd |one                                                                                                                             
+ij> drop table b;
+0 rows inserted/updated/deleted
+ij> create table c (si smallint not null,i int not null , bi bigint not null, r real not null, f float not null, d double precision not null, n5_2 numeric(5,2) not null , dec10_3 decimal(10,3) not null, ch20 char(20) not null ,vc varchar(20) not null, lvc long varchar not null,  blobCol blob(1000) not null,  clobCol clob(1000) not null);
+0 rows inserted/updated/deleted
+ij> insert into c values(2,3,4,5.3,5.3,5.3,31.13,123456.123, 'one','one','one', cast(X'01ABCD' as blob(1000)), 'one');
+1 row inserted/updated/deleted
+ij> insert into c values(-32768,-2147483648, -9223372036854775808 ,1.2E-37, 2.225E-307, +2.225E-307,-56.12, -123456.123,'one','one','one', cast(X'01ABCD' as blob(1000)),'one');
+1 row inserted/updated/deleted
+ij> select * from c;
+SI |I |BI |R |F |D |N5_2 |DEC10_3 |CH20 |VC |LVC |BLOBCOL |CLOBCOL                                                                                                                         
+-----
+2 |3 |4 |5.3 |5.3 |5.3 |31.13 |123456.123 |one |one |one |01abcd |one                                                                                                                             
+-----32768 |-2147483648 |-9223372036854775808 |1.2E-37 |2.225E-307 |2.225E-307 |-56.12 |-123456.123 |one |one |one |01abcd |one                                                                                                                             
+ij> values(10);
+1          
+-----
+10         
+ij> values('hello');
+1    
+-----
+hello
+ij> values(1.2);
+1   
+-----
+1.2 
+ij> drop table c;
+0 rows inserted/updated/deleted
+ij> -- bug 4430 aliasinfo nullability problem
+select aliasinfo from sys.sysaliases where aliasinfo is null;
+ALIASINFO                                                                                                                       
+-----
+ij> -- test commit and rollback
+autocommit off;
+ij> create table a(a int);
+0 rows inserted/updated/deleted
+ij> insert into a values (1);
+1 row inserted/updated/deleted
+ij> select * from a;
+A          
+-----
+1          
+ij> commit;
+ij> drop table a;
+0 rows inserted/updated/deleted
+ij> rollback;
+ij> select * from a;
+A          
+-----
+1          
+ij> drop table a;
+0 rows inserted/updated/deleted
+ij> commit;
+ij> autocommit on;
+ij> maximumdisplaywidth 5000;
+ij> --test 84 columns
+ values(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 
+11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
+21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
+51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
+61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+81, 82, 83, 84);
+1 |2 |3 |4 |5 |6 |7 |8 |9 |10 |11 |12 |13 |14 |15 |16 |17 |18 |19 |20 |21 |22 |23 |24 |25 |26 |27 |28 |29 |30 |31 |32 |33 |34 |35 |36 |37 |38 |39 |40 |41 |42 |43 |44 |45 |46 |47 |48 |49 |50 |51 |52 |53 |54 |55 |56 |57 |58 |59 |60 |61 |62 |63 |64 |65 |66 |67 |68 |69 |70 |71 |72 |73 |74 |75 |76 |77 |78 |79 |80 |81 |82 |83 |84         
+-----
+1 |2 |3 |4 |5 |6 |7 |8 |9 |10 |11 |12 |13 |14 |15 |16 |17 |18 |19 |20 |21 |22 |23 |24 |25 |26 |27 |28 |29 |30 |31 |32 |33 |34 |35 |36 |37 |38 |39 |40 |41 |42 |43 |44 |45 |46 |47 |48 |49 |50 |51 |52 |53 |54 |55 |56 |57 |58 |59 |60 |61 |62 |63 |64 |65 |66 |67 |68 |69 |70 |71 |72 |73 |74 |75 |76 |77 |78 |79 |80 |81 |82 |83 |84         
+ij> values(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 
+11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
+21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
+51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
+61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
+91, 92, 93, 94, 95, 96, 97, 98, 99, 100);
+1 |2 |3 |4 |5 |6 |7 |8 |9 |10 |11 |12 |13 |14 |15 |16 |17 |18 |19 |20 |21 |22 |23 |24 |25 |26 |27 |28 |29 |30 |31 |32 |33 |34 |35 |36 |37 |38 |39 |40 |41 |42 |43 |44 |45 |46 |47 |48 |49 |50 |51 |52 |53 |54 |55 |56 |57 |58 |59 |60 |61 |62 |63 |64 |65 |66 |67 |68 |69 |70 |71 |72 |73 |74 |75 |76 |77 |78 |79 |80 |81 |82 |83 |84 |85 |86  
+-----
+1 |2 |3 |4 |5 |6 |7 |8 |9 |10 |11 |12 |13 |14 |15 |16 |17 |18 |19 |20 |21 |22 |23 |24 |25 |26 |27 |28 |29 |30 |31 |32 |33 |34 |35 |36 |37 |38 |39 |40 |41 |42 |43 |44 |45 |46 |47 |48 |49 |50 |51 |52 |53 |54 |55 |56 |57 |58 |59 |60 |61 |62 |63 |64 |65 |66 |67 |68 |69 |70 |71 |72 |73 |74 |75 |76 |77 |78 |79 |80 |81 |82 |83 |84 |85 |86 |87 |88 |89 |90 |91 |92 |93 |94 |95 |96 |97 |98 |99 |100        
+ij> -- test SQL Error with non-string arguments
+----- Make sure connection still ok (Bug 4657)
+create table a (a int);
+0 rows inserted/updated/deleted
+ij> insert into a values(2342323423) ;
+ERROR 22003: The resulting value is outside the range for the data type INTEGER.
+ij> insert into a values(1);
+1 row inserted/updated/deleted
+ij> select * from a;
+A          
+-----
+1          
+ij> drop table a;
+0 rows inserted/updated/deleted
+ij> -- Bug 4694 Test automatic rollback with close of connection
+----- in ij
+autocommit off;
+ij> create table a (a int);
+0 rows inserted/updated/deleted
+ij> -- Bug 4758 - Store error does not return properly to client
+autocommit off;
+ij> create table t (i int);
+0 rows inserted/updated/deleted
+ij> insert into t values(1);
+1 row inserted/updated/deleted
+ij> commit;
+ij> insert into t values(2);
+1 row inserted/updated/deleted
+ij> connect 'wombat';
+ij(CONNECTION1)> -- by default, holdability of ResultSet objects created using this Connection object is true. Following will set it to false for this connection.
+NoHoldForConnection;
+ij(CONNECTION1)> prepare s1 as 'select * from t';
+ij(CONNECTION1)> execute s1;
+I          
+-----
+ERROR 40XL1: A lock could not be obtained within the time requested
+ij(CONNECTION1)> execute s1;
+I          
+-----
+ERROR 40XL1: A lock could not be obtained within the time requested
+ij(CONNECTION1)> -- Bug 5967 - Selecting from 2 lob columns w/ the first one having data of length 0
+create table t1 (c1 clob(10), c2 clob(10));
+0 rows inserted/updated/deleted
+ij(CONNECTION1)> insert into t1 values ('', 'some clob');
+1 row inserted/updated/deleted
+ij(CONNECTION1)> select * from t1;
+C1 |C2        
+-----
+ |some clob 
+ij(CONNECTION1)> select c2 from t1;
+C2        
+-----
+some clob 
+ij(CONNECTION1)> insert into t1 values ('', '');
+1 row inserted/updated/deleted
+ij(CONNECTION1)> insert into t1 values ('some clob', '');
+1 row inserted/updated/deleted
+ij(CONNECTION1)> select * from t1;
+C1 |C2        
+-----
+ |some clob 
+ |          
+some clob |          
+ij(CONNECTION1)> select c2 from t1;
+C2        
+-----
+some clob 
+ij(CONNECTION1)> drop table t1;
+0 rows inserted/updated/deleted
+ij(CONNECTION1)> 

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/svn-commit.tmp
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/svn-commit.tmp?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/svn-commit.tmp	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,8 @@
+
+--This line, and those below, will be ignored--
+
+AM   csPrepStmt.out
+M    metadata.out
+AM   prepstmt.out
+MM   resultset.out
+AM   testij.out

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/sysinfo.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/sysinfo.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/sysinfo.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,56 @@
+Testing Sysinfo
+org.apache.derby.drda.NetworkServerControl sysinfo 
+----- Derby Network Server Information --------
+----- listing properties --
+derby.drda.maxThreads=0
+derby.drda.keepAlive=true
+derby.drda.minThreads=0
+derby.drda.portNumber=1527
+derby.drda.logConnections=false
+derby.drda.timeSlice=0
+derby.drda.startNetworkServer=false
+derby.drda.host=localhost
+derby.drda.traceAll=false
+----- Derby Information --------
+-----
+----- Locale Information -----------------
+Current Locale :  [English/United States [en_US]]
+Found support for locale: [de_DE]
+Found support for locale: [es]
+Found support for locale: [fr]
+Found support for locale: [it]
+Found support for locale: [ja_JP]
+Found support for locale: [ko_KR]
+Found support for locale: [pt_BR]
+Found support for locale: [zh_CN]
+Found support for locale: [zh_TW]
+-----
+End test
+Testing Sysinfo (locale)
+-----Duser.language=err -Duser.country=DE org.apache.derby.drda.NetworkServerControl sysinfo 
+----- Derby Network Server Information --------
+----- listing properties --
+derby.drda.maxThreads=0
+derby.drda.keepAlive=true
+derby.drda.minThreads=0
+derby.drda.portNumber=1527
+derby.drda.logConnections=false
+derby.drda.timeSlice=0
+derby.drda.startNetworkServer=false
+derby.drda.host=localhost
+derby.drda.traceAll=false
+----- Derby Information --------
+-----
+----- Locale Information -----------------
+Current Locale :  [English/United States [en_US]]
+Found support for locale: [de_DE]
+Found support for locale: [es]
+Found support for locale: [fr]
+Found support for locale: [it]
+Found support for locale: [ja_JP]
+Found support for locale: [ko_KR]
+Found support for locale: [pt_BR]
+Found support for locale: [zh_CN]
+Found support for locale: [zh_TW]
+-----
+End test (locale)

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/testij.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/testij.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/testij.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,38 @@
+Testing various ij connections and comments in front of selects
+org.apache.derby.tools.ij extin/testclientij.sql 
+ij> driver 'org.apache.derby.jdbc.ClientDriver';
+ij> --Bug 4632  Make the db italian to make sure string selects  are working
+connect 'jdbc:derby://localhost:1527/wombat;create=true;territory=it:retrieveMessagesFromServerOnGetMessage=true;' USER 'dbadmin' PASSWORD 'dbadmin';
+ij> connect 'jdbc:derby://localhost:1527/wombat' USER 'dbadmin' PASSWORD 'dbadbmin';
+ij(CONNECTION1)> -- this is a comment, a comment in front of a select should not cause an error
+select * from sys.systables where 1=0;
+TABLEID |TABLENAME |& |SCHEMAID |&
+-----
+0 rows selected
+ij(CONNECTION1)> -- this is a comment, a comment in front of a values clauses should not cause an error
+values(1);
+1          
+-----
+1          
+1 row selected
+ij(CONNECTION1)> -- Try some URL attributes
+disconnect all;
+ij> connect 'jdbc:derby://localhost:1527/junk;create=true:retrieveMessagesFromServerOnGetMessage=true;' USER 'dbadmin' PASSWORD 'dbadbmin';
+ij> select * from APP.notthere;
+ERROR 42X05: Table 'APP.NOTTHERE' does not exist.
+ij> -- examples from the docs
+connect 'jdbc:derby://localhost:1527/wombat;create=true:user=judy;password=judy;retrieveMessagesFromServerOnGetMessage=true;';
+ij(CONNECTION1)> connect 'jdbc:derby://localhost:1527/"./wombat":user=judy;password=judy;retrieveMessagesFromServerOnGetMessage=true;';
+ij(CONNECTION2)> connect 'jdbc:derby://localhost:1527/toursDB:retrieveMessagesFromServerOnGetMessage=true;';
+ERROR (no SQLState): null userid not supported
+ij(CONNECTION2)> connect 'jdbc:derby://localhost:1527/toursDB:retrieveMessagesFromServerOnGetMessage=true;' USER 'dbadmin' PASSWORD 'dbadbmin';
+ERROR 08004: The application server rejected establishment of the connection.  An attempt was made to access a database, toursDB, which was not found.
+ij(CONNECTION2)> connect 'jdbc:derby://localhost:1527/wombat' USER 'APP' PASSWORD 'APP';
+ij(CONNECTION3)> connect  'jdbc:derby://localhost:1527/my-db-name;create=true:user=usr;password=pwd;retrieveMessagesFromServerOnGetMessage=true;';
+ij(CONNECTION4)> connect 'jdbc:derby://localhost:1527/my-db-name;upgrade=true:user=usr;password=pwd;retrieveMessagesFromServerOnGetMessage=true;';
+ij(CONNECTION5)> connect 'jdbc:derby://localhost:1527/my-db-name;shutdown=true:user=usr;password=pwd;'
+----- Quoted db and attributes
+connect 'jdbc:derby://localhost:1527/"./my-dbname;create=true":user=usr;password=pwd;';
+ERROR 08006: DB2 SQL error: SQLCODE: -1, SQLSTATE: 08006, SQLERRMC: my-db-name08006.DDatabase 'my-db-name' shutdown.((server log XXX)
+ij(CONNECTION5)> connect 'jdbc:derby://localhost:1527/"./my-dbname;create=true":user=usr;password=pwd;retrieveMessagesFromServerOnGetMessage=true;';
+ij(CONNECTION6)> 

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/users.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/users.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/users.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,153 @@
+ij> --
+connect 'wombat;create=true;user=dan;password=MakeItFaster';
+ij(CONNECTION1)> autocommit off;
+ij(CONNECTION1)> prepare p1 as 'CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(?,?)';
+ij(CONNECTION1)> execute p1 using 'values(''derby.database.defaultConnectionMode'', ''noAccess'')';
+Statement executed.
+ij(CONNECTION1)> execute p1 using 'values(''derby.database.fullAccessUsers'', ''francois,jeff,howardR,ames,kreg'')';
+Statement executed.
+ij(CONNECTION1)> remove p1;
+ij(CONNECTION1)> commit;
+ij(CONNECTION1)> autocommit on;
+ij(CONNECTION1)> disconnect;
+ij> connect 'wombat;shutdown=true;user=francois;password=paceesalute';
+ERROR 08006: wombat08006.DDatabase 'wombat' shutdown.((server log XXX)
+ij> connect 'myDB;create=true;user=dan;password=MakeItFaster';
+ij(CONNECTION1)> autocommit off;
+ij(CONNECTION1)> prepare p2 as 'CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(?,?)';
+ij(CONNECTION1)> execute p2 using 'values(''derby.database.defaultConnectionMode'', ''noAccess'')';
+Statement executed.
+ij(CONNECTION1)> execute p2 using 'values(''derby.database.fullAccessUsers'', ''jerry,kreg,dan,jamie,ames,francois'')';
+Statement executed.
+ij(CONNECTION1)> remove p2;
+ij(CONNECTION1)> commit;
+ij(CONNECTION1)> autocommit on;
+ij(CONNECTION1)> disconnect;
+ij> connect 'myDB;shutdown=true;user=dan;password=MakeItFaster';
+ERROR 08006: myDB08006.DDatabase 'myDB' shutdown.((server log XXX)
+ij> -- beetle 5468
+disconnect all;
+ij> -- Specifically test JBMS users.
+-----
+----- check allowed users in wombat db.
+connect 'wombat;user=kreg;password=visualWhat?';
+ij> connect 'wombat;user=jeff;password=HomeRun61';
+ij(CONNECTION1)> connect 'wombat;user=ames;password=AnyVolunteer?';
+ij(CONNECTION2)> connect 'wombat;user=howardR;password=IamBetterAtTennis';
+ij(CONNECTION3)> connect 'wombat;user=francois;password=paceesalute';
+ij(CONNECTION4)> show connections;
+CONNECTION0 - 	jdbc:derby:net://localhost:1527/wombat;user=kreg;password=visualWhat?
+CONNECTION1 - 	jdbc:derby:net://localhost:1527/wombat;user=jeff;password=HomeRun61
+CONNECTION2 - 	jdbc:derby:net://localhost:1527/wombat;user=ames;password=AnyVolunteer?
+CONNECTION3 - 	jdbc:derby:net://localhost:1527/wombat;user=howardR;password=IamBetterAtTennis
+CONNECTION4* - 	jdbc:derby:net://localhost:1527/wombat;user=francois;password=paceesalute
+* = current connection
+ij(CONNECTION4)> disconnect all;
+ij> -- check allowed users in myDB db.
+----- also check USER flavors
+connect 'myDB;user=jerry;password=SacreBleu';
+ij> create table APP.t1(c1 char(30) check (UPPER(c1) <> 'JAMIE'));
+0 rows inserted/updated/deleted
+ij> insert into APP.t1 values CURRENT_USER;
+1 row inserted/updated/deleted
+ij> connect 'myDB;user=kreg;password=visualWhat?';
+ij(CONNECTION1)> insert into APP.t1 values USER;
+1 row inserted/updated/deleted
+ij(CONNECTION1)> connect 'myDB;user=ames;password=AnyVolunteer?';
+ij(CONNECTION2)> insert into APP.t1 values SESSION_USER;
+1 row inserted/updated/deleted
+ij(CONNECTION2)> connect 'myDB;user=dan;password=MakeItFaster';
+ij(CONNECTION3)> select * from APP.t1;
+C1                            
+-----
+JERRY                         
+KREG                          
+AMES                          
+ij(CONNECTION3)> update APP.t1 set c1 = {fn user() };
+3 rows inserted/updated/deleted
+ij(CONNECTION3)> select * from APP.t1;
+C1                            
+-----
+DAN                           
+DAN                           
+DAN                           
+ij(CONNECTION3)> connect 'myDB;user=francois;password=paceesalute';
+ij(CONNECTION4)> update APP.t1 set c1 = USER;
+3 rows inserted/updated/deleted
+ij(CONNECTION4)> connect 'myDB;user=jamie;password=MrNamePlates';
+ij(CONNECTION5)> select * from APP.t1;
+C1                            
+-----
+FRANCOIS                      
+FRANCOIS                      
+FRANCOIS                      
+ij(CONNECTION5)> update APP.t1 set c1 = USER;
+ERROR 23513: The check constraint 'xxxxGENERATED-IDxxxx' was violated while performing an INSERT or UPDATE on table 'APP.T1'.
+ij(CONNECTION5)> show connections;
+CONNECTION0 - 	jdbc:derby:net://localhost:1527/myDB;user=jerry;password=SacreBleu
+CONNECTION1 - 	jdbc:derby:net://localhost:1527/myDB;user=kreg;password=visualWhat?
+CONNECTION2 - 	jdbc:derby:net://localhost:1527/myDB;user=ames;password=AnyVolunteer?
+CONNECTION3 - 	jdbc:derby:net://localhost:1527/myDB;user=dan;password=MakeItFaster
+CONNECTION4 - 	jdbc:derby:net://localhost:1527/myDB;user=francois;password=paceesalute
+CONNECTION5* - 	jdbc:derby:net://localhost:1527/myDB;user=jamie;password=MrNamePlates
+* = current connection
+ij(CONNECTION5)> disconnect all;
+ij> --
+----- some negative cases
+-----
+----- Invalid login's
+connect 'wombat';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij> connect 'wombat;user=badUser1;password=YeeHa!';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij> connect 'wombat;user=badUser2;password=YeeHa!';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij> connect 'myDB;user=dan;password=MakeItSlower';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij> connect 'myDB;user=jamie;password=LetMeIn';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij> connect 'wombat;user=francois;password=Corsica';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij> -- Invalid database users
+connect 'myDB;user=howardR;password=IamBetterAtTennis';
+ERROR 04501: 04501.CDatabase connection refused.((server log XXX)
+ij> connect 'wombat;user=jerry;password=SacreBleu';
+ERROR 04501: 04501.CDatabase connection refused.((server log XXX)
+ij> connect 'wombat;user=jamie;password=MrNamePlates';
+ERROR 04501: 04501.CDatabase connection refused.((server log XXX)
+ij> show connections;
+No connections available.
+ij> connect 'wombat;user=francois;password=paceesalute';
+ij> connect 'myDB;user=jerry;password=SacreBleu';
+ij(CONNECTION1)> -- Database shutdown - check user - should fail
+connect 'myDB;shutdown=true';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION1)> connect 'myDB;user=jamie;password=LetMeIn;shutdown=true';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION1)> connect 'wombat;user=jerry;password=SacreBleu;shutdown=true';
+ERROR 04501: 04501.CDatabase connection refused.((server log XXX)
+ij(CONNECTION1)> show connections;
+CONNECTION0 - 	jdbc:derby:net://localhost:1527/wombat;user=francois;password=paceesalute
+CONNECTION1* - 	jdbc:derby:net://localhost:1527/myDB;user=jerry;password=SacreBleu
+* = current connection
+ij(CONNECTION1)> -- Database shutdown - check user - should succeed
+----- beetle 5367
+connect 'wombat;user=francois;password=paceesalute;shutdown=true';
+ERROR 08006: wombat08006.DDatabase 'wombat' shutdown.((server log XXX)
+ij(CONNECTION1)> connect 'myDB;user=jerry;password=SacreBleu;shutdown=true';
+ERROR 08006: myDB08006.DDatabase 'myDB' shutdown.((server log XXX)
+ij(CONNECTION1)> show connections;
+CONNECTION0 - 	jdbc:derby:net://localhost:1527/wombat;user=francois;password=paceesalute
+CONNECTION1* - 	jdbc:derby:net://localhost:1527/myDB;user=jerry;password=SacreBleu
+* = current connection
+ij(CONNECTION1)> -- JBMS System shutdown - check user - should fail
+connect ';user=jamie;password=LetMeIn;shutdown=true';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION1)> disconnect all;
+ij> -- JBMS System shutdown - check user - should succeed
+connect ';user=francois;password=paceesalute;shutdown=true';
+ERROR XJ015: XJ015.MDerby system shutdown.((server log XXX)
+ij> -- beetle 5390
+----- the server does not shut down properly in network server
+;
+ij> 

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/users2.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/users2.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/users2.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,241 @@
+ij> --
+----- Specifically test Derby users using DERBY scheme
+----- and by only looking at database properties for authentication
+----- The only user at the system level is system/manager
+-----
+----- check allowed users in wombat db.
+----- initial connection in sysprop was:
+----- connect 'wombat;create=true;user=system;password=manager';
+-----
+----- Default to: derby.authentication.provider=BUILTIN
+-----
+autocommit off;
+ij> prepare p1 as 'CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(?,?)';
+ij> execute p1 using 'values(''derby.connection.requireAuthentication'', ''true'')';
+Statement executed.
+ij> commit;
+ij> remove p1;
+ij> autocommit on;
+ij> disconnect all;
+ij> connect 'wombat;shutdown=true;user=system;password=manager';
+ERROR 08006: wombat08006.DDatabase 'wombat' shutdown.((server log XXX)
+ij> -- beetle 5468
+disconnect all;
+ij> connect 'wombat;user=system;password=manager';
+ij> --
+----- set authentication config for 'wombat' database
+-----
+autocommit off;
+ij> prepare p2 as 'CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(?,?)';
+ij> execute p2 using 'values(''derby.user.kreg'', ''visualWhat?'')';
+Statement executed.
+ij> execute p2 using 'values(''derby.user.jeff'', ''HomeRun61'')';
+Statement executed.
+ij> execute p2 using 'values(''derby.user.ames'', ''AnyVolunteer?'')';
+Statement executed.
+ij> execute p2 using 'values(''derby.user.jamie'', ''MrNamePlates'')';
+Statement executed.
+ij> execute p2 using 'values(''derby.user.howardR'', ''IamBetterAtTennis'')';
+Statement executed.
+ij> execute p2 using 'values(''derby.user.francois'', ''paceesalute'')';
+Statement executed.
+ij> execute p2 using 'values(''derby.database.fullAccessUsers'', ''jeff,howardR,ames,francois,kreg'')';
+Statement executed.
+ij> execute p2 using 'values(''derby.database.readOnlyAccessUsers'', ''jamie'')';
+Statement executed.
+ij> execute p2 using 'values(''derby.database.defaultConnectionMode'', ''noAccess'')';
+Statement executed.
+ij> execute p2 using 'values(''derby.database.propertiesOnly'', ''true'')';
+Statement executed.
+ij> commit;
+ij> autocommit on;
+ij> -- Check that the passwords are encrypted
+----- values getDatabaseProperty('derby.user.francois');
+----- values getDatabaseProperty('derby.user.ames');
+----- values getDatabaseProperty('derby.user.kreg');
+----- values getDatabaseProperty('derby.user.jeff');
+----- values getDatabaseProperty('derby.user.howardR');
+----- values getDatabaseProperty('derby.user.jamie');
+connect 'wombat;user=kreg;password=visualWhat?';
+ij(CONNECTION1)> connect 'wombat;user=jeff;password=HomeRun61';
+ij(CONNECTION2)> connect 'wombat;user=ames;password=AnyVolunteer?';
+ij(CONNECTION3)> connect 'wombat;user=howardR;password=IamBetterAtTennis';
+ij(CONNECTION4)> -- should succeed
+create table APP.t1(c1 char(30));
+0 rows inserted/updated/deleted
+ij(CONNECTION4)> insert into APP.t1 values CURRENT_USER;
+1 row inserted/updated/deleted
+ij(CONNECTION4)> connect 'wombat;user=jamie;password=MrNamePlates';
+ij(CONNECTION5)> -- should fail as readOnly user
+insert into APP.t1 values CURRENT_USER;
+ERROR 25502: An SQL data change is not permitted for a read-only connection, user or database.
+ij(CONNECTION5)> create table APP.t2(c1 char(30));
+ERROR 25503: DDL is not permitted for a read-only connection, user or database.
+ij(CONNECTION5)> show connections;
+CONNECTION0 - 	jdbc:derby:net://localhost:1527/wombat;user=system;password=manager
+CONNECTION1 - 	jdbc:derby:net://localhost:1527/wombat;user=kreg;password=visualWhat?
+CONNECTION2 - 	jdbc:derby:net://localhost:1527/wombat;user=jeff;password=HomeRun61
+CONNECTION3 - 	jdbc:derby:net://localhost:1527/wombat;user=ames;password=AnyVolunteer?
+CONNECTION4 - 	jdbc:derby:net://localhost:1527/wombat;user=howardR;password=IamBetterAtTennis
+CONNECTION5* - 	jdbc:derby:net://localhost:1527/wombat;user=jamie;password=MrNamePlates
+* = current connection
+ij(CONNECTION5)> disconnect all;
+ij> -- check allowed users in myDB db.
+-----
+connect 'myDB;create=true;user=system;password=manager';
+ij> autocommit off;
+ij> prepare p3 as 'CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(?,?)';
+ij> execute p3 using 'values(''derby.connection.requireAuthentication'', ''true'')';
+Statement executed.
+ij> remove p3;
+ij> autocommit on;
+ij> disconnect all;
+ij> connect 'myDB;shutdown=true;user=system;password=manager';
+ERROR 08006: myDB08006.DDatabase 'myDB' shutdown.((server log XXX)
+ij> -- beetle 5468
+disconnect all;
+ij> connect 'myDB;user=system;password=manager';
+ij> --
+----- set authentication config for 'myDB' database
+-----
+autocommit off;
+ij> prepare p4 as 'CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(?,?)';
+ij> execute p4 using 'values(''derby.user.kreg'', ''visualWhat?'')';
+Statement executed.
+ij> execute p4 using 'values(''derby.user.dan'', ''MakeItFaster'')';
+Statement executed.
+ij> execute p4 using 'values(''derby.user.ames'', ''AnyVolunteer?'')';
+Statement executed.
+ij> execute p4 using 'values(''derby.user.jerry'', ''SacreBleu'')';
+Statement executed.
+ij> execute p4 using 'values(''derby.user.jamie'', ''MrNamePlates'')';
+Statement executed.
+ij> execute p4 using 'values(''derby.user.francois'', ''paceesalute'')';
+Statement executed.
+ij> execute p4 using 'values(''derby.database.fullAccessUsers'', ''jerry,dan,kreg,ames,francois,jamie'')';
+Statement executed.
+ij> execute p4 using 'values(''derby.database.defaultConnectionMode'', ''noAccess'')';
+Statement executed.
+ij> execute p4 using 'values(''derby.database.propertiesOnly'', ''true'')';
+Statement executed.
+ij> commit;
+ij> autocommit on;
+ij> -- Check that the passwords are encrypted
+----- values getDatabaseProperty('derby.user.francois');
+----- values getDatabaseProperty('derby.user.ames');
+----- values getDatabaseProperty('derby.user.kreg');
+----- values getDatabaseProperty('derby.user.dan');
+----- values getDatabaseProperty('derby.user.jerry');
+----- values getDatabaseProperty('derby.user.jamie');
+-----
+----- also check USER flavors
+-----
+connect 'myDB;user=jerry;password=SacreBleu';
+ij(CONNECTION1)> create table APP.t1(c1 char(30) check (UPPER(c1) <> 'JAMIE'));
+0 rows inserted/updated/deleted
+ij(CONNECTION1)> insert into APP.t1 values CURRENT_USER;
+1 row inserted/updated/deleted
+ij(CONNECTION1)> connect 'myDB;user=kreg;password=visualWhat?';
+ij(CONNECTION2)> insert into APP.t1 values USER;
+1 row inserted/updated/deleted
+ij(CONNECTION2)> connect 'myDB;user=ames;password=AnyVolunteer?';
+ij(CONNECTION3)> insert into APP.t1 values SESSION_USER;
+1 row inserted/updated/deleted
+ij(CONNECTION3)> connect 'myDB;user=dan;password=MakeItFaster';
+ij(CONNECTION4)> select * from APP.t1;
+C1                            
+-----
+JERRY                         
+KREG                          
+AMES                          
+ij(CONNECTION4)> update APP.t1 set c1 = USER;
+3 rows inserted/updated/deleted
+ij(CONNECTION4)> select * from APP.t1;
+C1                            
+-----
+DAN                           
+DAN                           
+DAN                           
+ij(CONNECTION4)> connect 'myDB;user=francois;password=paceesalute';
+ij(CONNECTION5)> update APP.t1 set c1 = USER;
+3 rows inserted/updated/deleted
+ij(CONNECTION5)> connect 'myDB;user=jamie;password=MrNamePlates';
+ij(CONNECTION6)> select * from APP.t1;
+C1                            
+-----
+FRANCOIS                      
+FRANCOIS                      
+FRANCOIS                      
+ij(CONNECTION6)> update APP.t1 set c1 = USER;
+ERROR 23513: The check constraint 'xxxxGENERATED-IDxxxx' was violated while performing an INSERT or UPDATE on table 'APP.T1'.
+ij(CONNECTION6)> show connections;
+CONNECTION0 - 	jdbc:derby:net://localhost:1527/myDB;user=system;password=manager
+CONNECTION1 - 	jdbc:derby:net://localhost:1527/myDB;user=jerry;password=SacreBleu
+CONNECTION2 - 	jdbc:derby:net://localhost:1527/myDB;user=kreg;password=visualWhat?
+CONNECTION3 - 	jdbc:derby:net://localhost:1527/myDB;user=ames;password=AnyVolunteer?
+CONNECTION4 - 	jdbc:derby:net://localhost:1527/myDB;user=dan;password=MakeItFaster
+CONNECTION5 - 	jdbc:derby:net://localhost:1527/myDB;user=francois;password=paceesalute
+CONNECTION6* - 	jdbc:derby:net://localhost:1527/myDB;user=jamie;password=MrNamePlates
+* = current connection
+ij(CONNECTION6)> disconnect all;
+ij> --
+----- some negative cases
+-----
+----- Invalid login's
+connect 'wombat';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij> connect 'wombat;user=badUser1;password=YeeHa!';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij> connect 'wombat;user=badUser2;password=YeeHa!';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij> connect 'myDB;user=dan;password=MakeItSlower';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij> connect 'myDB;user=jamie;password=LetMeIn';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij> connect 'wombat;user=francois;password=Corsica';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij> -- Invalid database users
+connect 'myDB;user=howardR;password=IamBetterAtTennis';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij> connect 'wombat;user=jerry;password=SacreBleu';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij> connect 'wombat;user=jamie;password=MrNamePlates';
+ij> show connections;
+CONNECTION0* - 	jdbc:derby:net://localhost:1527/wombat;user=jamie;password=MrNamePlates
+* = current connection
+ij> connect 'wombat;user=francois;password=paceesalute';
+ij(CONNECTION1)> connect 'myDB;user=jerry;password=SacreBleu';
+ij(CONNECTION2)> -- Database shutdown - check user - should fail
+connect 'myDB;shutdown=true';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION2)> connect 'myDB;user=jamie;password=LetMeIn;shutdown=true';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION2)> connect 'wombat;user=jerry;password=SacreBleu;shutdown=true';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij(CONNECTION2)> show connections;
+CONNECTION0 - 	jdbc:derby:net://localhost:1527/wombat;user=jamie;password=MrNamePlates
+CONNECTION1 - 	jdbc:derby:net://localhost:1527/wombat;user=francois;password=paceesalute
+CONNECTION2* - 	jdbc:derby:net://localhost:1527/myDB;user=jerry;password=SacreBleu
+* = current connection
+ij(CONNECTION2)> disconnect all;
+ij> show connections;
+No connections available.
+ij> -- Database shutdown - check user - should succeed
+connect 'wombat;user=francois;password=paceesalute;shutdown=true';
+ERROR 08006: wombat08006.DDatabase 'wombat' shutdown.((server log XXX)
+ij> -- beetle 5468
+disconnect all;
+ij> connect 'myDB;user=jerry;password=SacreBleu;shutdown=true';
+ERROR 08006: myDB08006.DDatabase 'myDB' shutdown.((server log XXX)
+ij> -- beetle 5468
+disconnect all;
+ij> -- there should be no connections left here
+show connections;
+No connections available.
+ij> -- JBMS System shutdown - check user - should fail
+connect ';user=jamie;password=LetMeIn;shutdown=true';
+ERROR (no SQLState): Connection authorization failure occurred.  Reason: userid invalid.
+ij> -- JBMS System shutdown - check user - should succeed
+connect ';user=system;password=manager;shutdown=true';
+ERROR XJ015: XJ015.MDerby system shutdown.((server log XXX)
+ij> 

Added: incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/wisconsin.out
Url: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/wisconsin.out?view=auto&rev=125449
==============================================================================
--- (empty file)
+++ incubator/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/wisconsin.out	Mon Jan 17 16:45:05 2005
@@ -0,0 +1,30664 @@
+ij> -- This test is an adaptation of the Wisconsin benchmark, as documented in
+----- The Benchmark Handbook, Second Edition (edited by Jim Gray).  The structure
+----- of the tables and the data in the tables are taken from there.
+-----
+----- The original benchmark talks about clustered and non-clustered
+----- indexes - as far as I can tell, this really means indexes where the
+----- row ordering is or is not the same as in the base table.  It does
+----- not mean special types of indexes.  I am putting in queries that
+----- use both ordered and unordered indexes, despite the fact that
+----- our optimizer does not currently distinguish these cases.
+-----
+----- Another difference is that the original Wisconsin benchmark is a performance
+----- test, while this test is only intended to ensure that the optimizer comes
+----- up with the right query plan.  Therefore, this test doesn't include those
+----- parts of the Wisconsin benchmark where the optimizer has no choice of
+----- access path (e.g. single-table query with no indexes), nor does it include
+----- the projection and update queries.
+-----
+----- This test only does the first variation of each query, since that is
+----- all that is documented in The Benchmark Handbook (it wouldn't be a true
+----- academic reference text if everything were spelled out).
+-----
+----- After the original Wisconsin queries are a bunch of queries that use the
+----- Wisconsin schema but that were written at Cloudscape specifically for
+----- testing our optimizer.
+autocommit off;
+ij> set isolation serializable;
+0 rows inserted/updated/deleted
+ij> -- the method refers to a method in performance suite that takes a Connection.
+-----create function WISCInsert(rowcount int, tableName varchar(20)) returns int language java parameter style java external name 'org.apache.derbyTesting.functionTests.tests.lang.WiscVTI';
+CREATE PROCEDURE WISCINSERT(rowcount int, tableName varchar(20)) LANGUAGE JAVA PARAMETER STYLE JAVA EXTERNAL NAME 'org.apache.derbyTesting.functionTests.tests.lang.WiscVTI.WISCInsertWOConnection';
+0 rows inserted/updated/deleted
+ij> create table TENKTUP1 (
+		unique1 int not null,
+		unique2 int not null,
+		two int,
+		four int,
+		ten int,
+		twenty int,
+		onePercent int,
+		tenPercent int,
+		twentyPercent int,
+		fiftyPercent int,
+		unique3 int,
+		evenOnePercent int,
+		oddOnePercent int,
+		stringu1 char(52) not null,
+		stringu2 char(52) not null,
+		string4 char(52)
+	);
+0 rows inserted/updated/deleted
+ij> --insert 10000 rows into TENKTUP1 
+call WISCINSERT( 10000, 'TENKTUP1');
+Statement executed.
+ij> create unique index TK1UNIQUE1 on TENKTUP1(unique1);
+0 rows inserted/updated/deleted
+ij> create unique index TK1UNIQUE2 on TENKTUP1(unique2);
+0 rows inserted/updated/deleted
+ij> create index TK1TWO on TENKTUP1(two);
+0 rows inserted/updated/deleted
+ij> create index TK1FOUR on TENKTUP1(four);
+0 rows inserted/updated/deleted
+ij> create index TK1TEN on TENKTUP1(ten);
+0 rows inserted/updated/deleted
+ij> create index TK1TWENTY on TENKTUP1(twenty);
+0 rows inserted/updated/deleted
+ij> create index TK1ONEPERCENT on TENKTUP1(onePercent);
+0 rows inserted/updated/deleted
+ij> create index TK1TWENTYPERCENT on TENKTUP1(twentyPercent);
+0 rows inserted/updated/deleted
+ij> create index TK1EVENONEPERCENT on TENKTUP1(evenOnePercent);
+0 rows inserted/updated/deleted
+ij> create index TK1ODDONEPERCENT on TENKTUP1(oddOnePercent);
+0 rows inserted/updated/deleted
+ij> create unique index TK1STRINGU1 on TENKTUP1(stringu1);
+0 rows inserted/updated/deleted
+ij> create unique index TK1STRINGU2 on TENKTUP1(stringu2);
+0 rows inserted/updated/deleted
+ij> create index TK1STRING4 on TENKTUP1(string4);
+0 rows inserted/updated/deleted
+ij> create table TENKTUP2 (
+		unique1 int not null,
+		unique2 int not null,
+		two int,
+		four int,
+		ten int,
+		twenty int,
+		onePercent int,
+		tenPercent int,
+		twentyPercent int,
+		fiftyPercent int,
+		unique3 int,
+		evenOnePercent int,
+		oddOnePercent int,
+		stringu1 char(52),
+		stringu2 char(52),
+		string4 char(52)
+	);
+0 rows inserted/updated/deleted
+ij> -- insert 10000 rows into TENKTUP2
+call WISCInsert( 10000, 'TENKTUP2');
+Statement executed.
+ij> create unique index TK2UNIQUE1 on TENKTUP2(unique1);
+0 rows inserted/updated/deleted
+ij> create unique index TK2UNIQUE2 on TENKTUP2(unique2);
+0 rows inserted/updated/deleted
+ij> create table ONEKTUP (
+		unique1 int not null,
+		unique2 int not null,
+		two int,
+		four int,
+		ten int,
+		twenty int,
+		onePercent int,
+		tenPercent int,
+		twentyPercent int,
+		fiftyPercent int,
+		unique3 int,
+		evenOnePercent int,
+		oddOnePercent int,
+		stringu1 char(52),
+		stringu2 char(52),
+		string4 char(52)
+	);
+0 rows inserted/updated/deleted
+ij> -- insert 1000 rows into ONEKTUP
+call WISCInsert( 1000, 'ONEKTUP');
+Statement executed.
+ij> create unique index ONEKUNIQUE1 on ONEKTUP(unique1);
+0 rows inserted/updated/deleted
+ij> create unique index ONEKUNIQUE2 on ONEKTUP(unique2);
+0 rows inserted/updated/deleted
+ij> create table BPRIME (
+		unique1 int,
+		unique2 int,
+		two int,
+		four int,
+		ten int,
+		twenty int,
+		onePercent int,
+		tenPercent int,
+		twentyPercent int,
+		fiftyPercent int,
+		unique3 int,
+		evenOnePercent int,
+		oddOnePercent int,
+		stringu1 char(52),
+		stringu2 char(52),
+		string4 char(52)
+	);
+0 rows inserted/updated/deleted
+ij> insert into BPRIME
+select * from TENKTUP2
+where TENKTUP2.unique2 < 1000;
+1000 rows inserted/updated/deleted
+ij> commit;
+ij> call SYSCS_UTIL.SYSCS_SET_RUNTIMESTATISTICS(1);
+Statement executed.
+ij> maximumdisplaywidth 8000;
+ij> -- Wisconsin Query 3
+get cursor c as
+	'select * from TENKTUP1
+	where unique2 between 0 and 99';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where unique2 between 0 and 99
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1UNIQUE2 at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+		qualifiers:
+None
+ij> commit;
+ij> -- Wisconsin Query 4
+get cursor c as
+	'select * from TENKTUP1
+	where unique2 between 792 and 1791';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where unique2 between 792 and 1791
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1UNIQUE2 at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+		qualifiers:
+None
+ij> commit;
+ij> -- Wisconsin Query 5
+get cursor c as
+	'select * from TENKTUP1
+	where unique1 between 0 and 99';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where unique1 between 0 and 99
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1UNIQUE1 at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+		qualifiers:
+None
+ij> commit;
+ij> -- Wisconsin Query 6
+get cursor c as
+	'select * from TENKTUP1
+	where unique1 between 792 and 1791';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where unique1 between 792 and 1791
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1UNIQUE1 at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+		qualifiers:
+None
+ij> commit;
+ij> -- Wisconsin Query 7
+get cursor c as
+	'select *
+	from TENKTUP1
+	where unique2 = 2001';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select *
+	from TENKTUP1
+	where unique2 = 2001
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1UNIQUE2 at serializable isolation level using share row locking chosen by the optimizer
+	Number of opens = 1
+	Rows seen = 0
+	Rows filtered = 0
+	Fetch Size = 1
+		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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+		qualifiers:
+None
+ij> commit;
+ij> -- Wisconsin Query 12
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where (TENKTUP1.unique2 = TENKTUP2.unique2)
+	and (TENKTUP2.unique2 < 1000)';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where (TENKTUP1.unique2 = TENKTUP2.unique2)
+	and (TENKTUP2.unique2 < 1000)
+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: 
+Hash Exists Join ResultSet:
+Number of opens = 1
+Rows seen from the left = 1
+Rows seen from the right = 0
+Rows filtered = 0
+Rows returned = 0
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+Left result set:
+	Index Row to Base Row ResultSet for TENKTUP1:
+	Number of opens = 1
+	Rows seen = 1
+	Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+		Index Scan ResultSet for TENKTUP1 using index TK1UNIQUE2 at serializable isolation level using share row locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=2
+			Number of deleted rows visited=0
+			Number of pages visited=2
+			Number of rows qualified=16
+			Number of rows visited=16
+			Scan type=btree
+			Tree height=2
+			start position: 
+	None
+			stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+			qualifiers:
+None
+Right result set:
+	Index Row to Base Row ResultSet for TENKTUP2:
+	Number of opens = 1
+	Rows seen = 0
+	Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+		Hash Scan ResultSet for TENKTUP2 using index TK2UNIQUE2 at serializable isolation level using share row locking: 
+		Number of opens = 1
+		Hash table size = 1000
+		Hash key is column number 0
+		Rows seen = 0
+		Rows filtered = 0
+			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 deleted rows visited=0
+			Number of pages visited=7
+			Number of rows qualified=1000
+			Number of rows visited=1001
+			Scan type=btree
+			Tree height=2
+			start position: 
+	None
+			stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+			scan qualifiers:
+None
+			next qualifiers:
+Column[0][0] Id: 0
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Wisconsin Query 13
+get cursor c as
+	'select * from TENKTUP1, BPRIME
+	where (TENKTUP1.unique2 = BPRIME.UNIQUE2)';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, BPRIME
+	where (TENKTUP1.unique2 = BPRIME.UNIQUE2)
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Exists Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Table Scan ResultSet for BPRIME at serializable isolation level using share table locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=16
+			Number of pages visited=2
+			Number of rows qualified=16
+			Number of rows visited=16
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1UNIQUE2 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 0
+			Rows filtered = 0
+			Fetch Size = 1
+				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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Wisconsin query 14
+----- NOTE: This could benefit from transitive closure, which our optimizer
+----- doesn't do (yet).
+----- Note that after fix for optimizer bug 5868, in runtime statistics info, we will see 2 qualifiers for table TENKTUP2. This is because as fix for
+----- bug 5868, while getting rid of a redundant predicate which is a start and/or stop AND a qualifier, we mark the predicate we are going to keep 
+----- as start and/or stop AND as a qualifier. Prior to fix of bug 5868, we were disregarding the qualifier flag on the redundant predicate if it 
+----- was a start and/or stop predicate too.
+get cursor c as
+	'select * from ONEKTUP, TENKTUP1, TENKTUP2
+	where (ONEKTUP.unique2 = TENKTUP1.unique2)
+	and (TENKTUP1.unique2 = TENKTUP2.unique2)
+	and (TENKTUP1.unique2 < 1000)';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from ONEKTUP, TENKTUP1, TENKTUP2
+	where (ONEKTUP.unique2 = TENKTUP1.unique2)
+	and (TENKTUP1.unique2 = TENKTUP2.unique2)
+	and (TENKTUP1.unique2 < 1000)
+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: 
+Nested Loop Exists Join ResultSet:
+Number of opens = 1
+Rows seen from the left = 1
+Rows seen from the right = 0
+Rows filtered = 0
+Rows returned = 0
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+Left result set:
+	Nested Loop Exists Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 1
+	Rows filtered = 0
+	Rows returned = 1
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Table Scan ResultSet for ONEKTUP at serializable isolation level using share table locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=16
+			Number of pages visited=2
+			Number of rows qualified=16
+			Number of rows visited=16
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			qualifiers:
+Column[0][0] Id: 1
+Operator: <
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1UNIQUE2 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 1
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=1
+				Number of rows visited=1
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+Column[0][0] Id: 0
+Operator: <
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+Right result set:
+	Index Row to Base Row ResultSet for TENKTUP2:
+	Number of opens = 1
+	Rows seen = 0
+	Columns accessed from heap = {0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+		Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE2 at serializable isolation level using share row locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 0
+		Rows filtered = 0
+		Fetch Size = 1
+			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 deleted rows visited=0
+			Number of pages visited=0
+			Number of rows qualified=0
+			Number of rows visited=0
+			Scan type=btree
+			Tree height=2
+			start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+			stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+			qualifiers:
+Column[0][0] Id: 0
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+Column[0][1] Id: 0
+Operator: <
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Wisconsin Query 15
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where (TENKTUP1.unique1 = TENKTUP2.unique1)
+	and (TENKTUP1.unique1 < 1000)';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where (TENKTUP1.unique1 = TENKTUP2.unique1)
+	and (TENKTUP1.unique1 < 1000)
+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: 
+Hash Exists Join ResultSet:
+Number of opens = 1
+Rows seen from the left = 1
+Rows seen from the right = 0
+Rows filtered = 0
+Rows returned = 0
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+Left result set:
+	Index Row to Base Row ResultSet for TENKTUP1:
+	Number of opens = 1
+	Rows seen = 1
+	Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+		Index Scan ResultSet for TENKTUP1 using index TK1UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=2
+			Number of deleted rows visited=0
+			Number of pages visited=2
+			Number of rows qualified=16
+			Number of rows visited=16
+			Scan type=btree
+			Tree height=2
+			start position: 
+	None
+			stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+			qualifiers:
+None
+Right result set:
+	Index Row to Base Row ResultSet for TENKTUP2:
+	Number of opens = 1
+	Rows seen = 0
+	Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+		Hash Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking: 
+		Number of opens = 1
+		Hash table size = 1000
+		Hash key is column number 0
+		Rows seen = 0
+		Rows filtered = 0
+			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 deleted rows visited=0
+			Number of pages visited=7
+			Number of rows qualified=1000
+			Number of rows visited=1001
+			Scan type=btree
+			Tree height=2
+			start position: 
+	None
+			stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+			scan qualifiers:
+None
+			next qualifiers:
+Column[0][0] Id: 0
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Wisconsin Query 16
+get cursor c as
+	'select * from TENKTUP1, BPRIME
+	where (TENKTUP1.unique1 = BPRIME.unique1)';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, BPRIME
+	where (TENKTUP1.unique1 = BPRIME.unique1)
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Exists Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Table Scan ResultSet for BPRIME at serializable isolation level using share table locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=16
+			Number of pages visited=2
+			Number of rows qualified=16
+			Number of rows visited=16
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 0
+			Rows filtered = 0
+			Fetch Size = 1
+				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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Wisconsin Query 17
+----- NOTE: This could benefit from transitive closure, which our optimizer
+----- doesn't do (yet).
+----- Note that after fix for optimizer bug 5868, in runtime statistics info, we will see 2 qualifiers for table TENKTUP2. This is because as fix for
+----- bug 5868, while getting rid of a redundant predicate which is a start and/or stop AND a qualifier, we mark the predicate we are going to keep 
+----- as start and/or stop AND as a qualifier. Prior to fix of bug 5868, we were disregarding the qualifier flag on the redundant predicate if it 
+----- was a start and/or stop predicate too.
+get cursor c as
+	'select * from ONEKTUP, TENKTUP1, TENKTUP2
+	where (ONEKTUP.unique1 = TENKTUP1.unique1)
+	and (TENKTUP1.unique1 = TENKTUP2.unique1)
+	and (TENKTUP1.unique1 < 1000)';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from ONEKTUP, TENKTUP1, TENKTUP2
+	where (ONEKTUP.unique1 = TENKTUP1.unique1)
+	and (TENKTUP1.unique1 = TENKTUP2.unique1)
+	and (TENKTUP1.unique1 < 1000)
+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: 
+Nested Loop Exists Join ResultSet:
+Number of opens = 1
+Rows seen from the left = 1
+Rows seen from the right = 0
+Rows filtered = 0
+Rows returned = 0
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+Left result set:
+	Nested Loop Exists Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 1
+	Rows filtered = 0
+	Rows returned = 1
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Table Scan ResultSet for ONEKTUP at serializable isolation level using share table locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=16
+			Number of pages visited=2
+			Number of rows qualified=16
+			Number of rows visited=16
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			qualifiers:
+Column[0][0] Id: 0
+Operator: <
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 1
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=1
+				Number of rows visited=1
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+Column[0][0] Id: 0
+Operator: <
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+Right result set:
+	Index Row to Base Row ResultSet for TENKTUP2:
+	Number of opens = 1
+	Rows seen = 0
+	Columns accessed from heap = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+		Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 0
+		Rows filtered = 0
+		Fetch Size = 1
+			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 deleted rows visited=0
+			Number of pages visited=0
+			Number of rows qualified=0
+			Number of rows visited=0
+			Scan type=btree
+			Tree height=2
+			start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+			stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+			qualifiers:
+Column[0][0] Id: 0
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+Column[0][1] Id: 0
+Operator: <
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- This is the end of the Wisconsin queries.  Now do some queries that are
+----- not part of the original Wisconsin benchmark, using the Wisconsin schema.
+----- Single-table queries using index on column 'two'
+----- 50% selectivity index that doesn't cover query - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where two = 0';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where two = 0
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1TWO at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		qualifiers:
+None
+ij> commit;
+ij> -- 50% selectivity index with 0 matching rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where two = 3';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where two = 3
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1TWO at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		qualifiers:
+None
+ij> commit;
+ij> -- matches 100% of rows - should do table scan
+get cursor c as
+	'select * from TENKTUP1
+	where two >= 0';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where two >= 0
+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 TENKTUP1 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=16
+	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:
+Column[0][0] Id: 2
+Operator: <
+Ordered nulls: false
+Unknown return value: true
+Negate comparison result: true
+ij> commit;
+ij> -- matches 0 rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where two > 1';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where two > 1
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1TWO at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	None
+		qualifiers:
+None
+ij> commit;
+ij> -- 50% selectivity index that covers query - should do index scan
+get cursor c as
+	'select two from TENKTUP1
+	where two = 1';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select two from TENKTUP1
+	where two = 1
+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: 
+Index Scan ResultSet for TENKTUP1 using index TK1TWO at serializable 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={0}
+	Number of columns fetched=1
+	Number of deleted rows visited=0
+	Number of pages visited=0
+	Number of rows qualified=0
+	Number of rows visited=0
+	Scan type=btree
+	Tree height=2
+	start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+	stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+	qualifiers:
+None
+ij> commit;
+ij> -- Single-table queries using index on column 'four'
+----- 25% selectivity index that doesn't cover query - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where four = 0';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where four = 0
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1FOUR at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		qualifiers:
+None
+ij> commit;
+ij> -- 25% selectivity index with 0 matching rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where four = 4';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where four = 4
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1FOUR at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		qualifiers:
+None
+ij> commit;
+ij> -- matches 75% of rows - should do table scan
+get cursor c as
+	'select * from TENKTUP1
+	where four >= 1';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where four >= 1
+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 TENKTUP1 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=16
+	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:
+Column[0][0] Id: 3
+Operator: <
+Ordered nulls: false
+Unknown return value: true
+Negate comparison result: true
+ij> commit;
+ij> -- matches 0 rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where four > 3';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where four > 3
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1FOUR at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	None
+		qualifiers:
+None
+ij> commit;
+ij> -- 25% selectivity index that covers query - should do index scan
+get cursor c as
+	'select four from TENKTUP1
+	where four = 2';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select four from TENKTUP1
+	where four = 2
+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: 
+Index Scan ResultSet for TENKTUP1 using index TK1FOUR at serializable 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={0}
+	Number of columns fetched=1
+	Number of deleted rows visited=0
+	Number of pages visited=0
+	Number of rows qualified=0
+	Number of rows visited=0
+	Scan type=btree
+	Tree height=2
+	start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+	stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+	qualifiers:
+None
+ij> commit;
+ij> -- Single-table queries using index on column 'twentyPercent'
+----- 20% selectivity index that doesn't cover query - should use index
+get cursor c as
+	'select * from TENKTUP1
+	where twentyPercent = 2';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where twentyPercent = 2
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1TWENTYPERCENT at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		qualifiers:
+None
+ij> commit;
+ij> -- 20% selectivity index with 0 matching rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where twentyPercent = 5';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where twentyPercent = 5
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1TWENTYPERCENT at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		qualifiers:
+None
+ij> commit;
+ij> -- matches 60% of rows - should do table scan
+get cursor c as
+	'select * from TENKTUP1
+	where twentyPercent > 1';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where twentyPercent > 1
+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 TENKTUP1 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=16
+	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:
+Column[0][0] Id: 8
+Operator: <=
+Ordered nulls: false
+Unknown return value: true
+Negate comparison result: true
+ij> commit;
+ij> -- matches 0 rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where twentyPercent > 4';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where twentyPercent > 4
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1TWENTYPERCENT at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	None
+		qualifiers:
+None
+ij> commit;
+ij> -- 20% selectivity index that covers query - should do index scan
+get cursor c as
+	'select twentyPercent from TENKTUP1
+	where twentyPercent = 3';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select twentyPercent from TENKTUP1
+	where twentyPercent = 3
+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: 
+Index Scan ResultSet for TENKTUP1 using index TK1TWENTYPERCENT at serializable 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={0}
+	Number of columns fetched=1
+	Number of deleted rows visited=0
+	Number of pages visited=0
+	Number of rows qualified=0
+	Number of rows visited=0
+	Scan type=btree
+	Tree height=2
+	start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+	stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+	qualifiers:
+None
+ij> commit;
+ij> -- Single-table queries using index on column 'ten'
+----- 10% selectivity index that doesn't cover query - should use index
+get cursor c as
+	'select * from TENKTUP1
+	where ten = 5';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where ten = 5
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1TEN at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		qualifiers:
+None
+ij> commit;
+ij> -- 10% selectivity index with 0 matching rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where ten = 10';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where ten = 10
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1TEN at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		qualifiers:
+None
+ij> commit;
+ij> -- matches 50% of rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where ten <= 4';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where ten <= 4
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1TEN at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	None
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		qualifiers:
+None
+ij> commit;
+ij> -- matches 60% of rows - should do table scan
+get cursor c as
+	'select * from TENKTUP1
+	where ten <= 5';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where ten <= 5
+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 TENKTUP1 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=16
+	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:
+Column[0][0] Id: 4
+Operator: <=
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- matches 0 rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where ten > 100';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where ten > 100
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1TEN at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	None
+		qualifiers:
+None
+ij> commit;
+ij> -- 10% selectivity index that covers query - should do index scan
+get cursor c as
+	'select ten from TENKTUP1
+	where ten = 7';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select ten from TENKTUP1
+	where ten = 7
+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: 
+Index Scan ResultSet for TENKTUP1 using index TK1TEN at serializable 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={0}
+	Number of columns fetched=1
+	Number of deleted rows visited=0
+	Number of pages visited=0
+	Number of rows qualified=0
+	Number of rows visited=0
+	Scan type=btree
+	Tree height=2
+	start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+	stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+	qualifiers:
+None
+ij> commit;
+ij> -- Single-table queries using index on column 'twenty'
+----- 5% selectivity index that doesn't cover query - should use index
+get cursor c as
+	'select * from TENKTUP1
+	where twenty = 17';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where twenty = 17
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1TWENTY at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		qualifiers:
+None
+ij> commit;
+ij> -- 5% selectivity index with 0 matching rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where twenty = 20';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where twenty = 20
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1TWENTY at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		qualifiers:
+None
+ij> commit;
+ij> -- matches 50% of rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where twenty <= 9';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where twenty <= 9
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1TWENTY at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	None
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		qualifiers:
+None
+ij> commit;
+ij> -- matches 55% of rows - should do table scan
+get cursor c as
+	'select * from TENKTUP1
+	where twenty <= 10';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where twenty <= 10
+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 TENKTUP1 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=16
+	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:
+Column[0][0] Id: 5
+Operator: <=
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- matches 0 rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where twenty < 0';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where twenty < 0
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1TWENTY at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	None
+		stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		qualifiers:
+None
+ij> commit;
+ij> -- 5% selectivity index that covers query - should do index scan
+get cursor c as
+	'select twenty from TENKTUP1
+	where twenty = 19';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select twenty from TENKTUP1
+	where twenty = 19
+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: 
+Index Scan ResultSet for TENKTUP1 using index TK1TWENTY at serializable 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={0}
+	Number of columns fetched=1
+	Number of deleted rows visited=0
+	Number of pages visited=0
+	Number of rows qualified=0
+	Number of rows visited=0
+	Scan type=btree
+	Tree height=2
+	start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+	stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+	qualifiers:
+None
+ij> commit;
+ij> -- Single-table queries using index on column 'onePercent'
+----- 1% selectivity index that doesn't cover query - should use index
+get cursor c as
+	'select * from TENKTUP1
+	where onePercent = 63';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where onePercent = 63
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1ONEPERCENT at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		qualifiers:
+None
+ij> commit;
+ij> -- 1% selectivity index with 0 matching rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where onePercent = 100';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where onePercent = 100
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1ONEPERCENT at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		qualifiers:
+None
+ij> commit;
+ij> -- matches 50% of rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where onePercent > 49';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where onePercent > 49
+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 TENKTUP1 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=16
+	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:
+Column[0][0] Id: 6
+Operator: <=
+Ordered nulls: false
+Unknown return value: true
+Negate comparison result: true
+ij> commit;
+ij> -- matches 60% of rows - should do table scan
+get cursor c as
+	'select * from TENKTUP1
+	where onePercent > 40';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where onePercent > 40
+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 TENKTUP1 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=16
+	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:
+Column[0][0] Id: 6
+Operator: <=
+Ordered nulls: false
+Unknown return value: true
+Negate comparison result: true
+ij> commit;
+ij> -- matches 0 rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where onePercent > 101';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where onePercent > 101
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1ONEPERCENT at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	None
+		qualifiers:
+None
+ij> commit;
+ij> -- 1% selectivity index that covers query - should do index scan
+get cursor c as
+	'select onePercent from TENKTUP1
+	where onePercent = 0';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select onePercent from TENKTUP1
+	where onePercent = 0
+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: 
+Index Scan ResultSet for TENKTUP1 using index TK1ONEPERCENT at serializable 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={0}
+	Number of columns fetched=1
+	Number of deleted rows visited=0
+	Number of pages visited=0
+	Number of rows qualified=0
+	Number of rows visited=0
+	Scan type=btree
+	Tree height=2
+	start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+	stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+	qualifiers:
+None
+ij> commit;
+ij> -- Single-table queries using index on column 'evenOnePercent'
+----- 1% selectivity index that doesn't cover query - should use index
+get cursor c as
+	'select * from TENKTUP1
+	where evenOnePercent = 64';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where evenOnePercent = 64
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1EVENONEPERCENT at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		qualifiers:
+None
+ij> commit;
+ij> -- 1% selectivity index with 0 matching rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where evenOnePercent = 200';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where evenOnePercent = 200
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1EVENONEPERCENT at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		qualifiers:
+None
+ij> commit;
+ij> -- matches 50% of rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where evenOnePercent > 99';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where evenOnePercent > 99
+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 TENKTUP1 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=16
+	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:
+Column[0][0] Id: 11
+Operator: <=
+Ordered nulls: false
+Unknown return value: true
+Negate comparison result: true
+ij> commit;
+ij> -- matches 60% of rows - should do table scan
+get cursor c as
+	'select * from TENKTUP1
+	where evenOnePercent > 80';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where evenOnePercent > 80
+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 TENKTUP1 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=16
+	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:
+Column[0][0] Id: 11
+Operator: <=
+Ordered nulls: false
+Unknown return value: true
+Negate comparison result: true
+ij> commit;
+ij> -- matches 0 rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where evenOnePercent > 198';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where evenOnePercent > 198
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1EVENONEPERCENT at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	None
+		qualifiers:
+None
+ij> commit;
+ij> -- 1% selectivity index that covers query - should do index scan
+get cursor c as
+	'select evenOnePercent from TENKTUP1
+	where evenOnePercent = 0';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select evenOnePercent from TENKTUP1
+	where evenOnePercent = 0
+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: 
+Index Scan ResultSet for TENKTUP1 using index TK1EVENONEPERCENT at serializable 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={0}
+	Number of columns fetched=1
+	Number of deleted rows visited=0
+	Number of pages visited=0
+	Number of rows qualified=0
+	Number of rows visited=0
+	Scan type=btree
+	Tree height=2
+	start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+	stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+	qualifiers:
+None
+ij> commit;
+ij> -- Single-table queries using index on column 'oddOnePercent'
+----- 1% selectivity index that doesn't cover query - should use index
+get cursor c as
+	'select * from TENKTUP1
+	where oddOnePercent = 63';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where oddOnePercent = 63
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1ODDONEPERCENT at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		qualifiers:
+None
+ij> commit;
+ij> -- 1% selectivity index with 0 matching rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where oddOnePercent = 100';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where oddOnePercent = 100
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1ODDONEPERCENT at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		qualifiers:
+None
+ij> commit;
+ij> -- matches 40% of rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where oddOnePercent > 120';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where oddOnePercent > 120
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1ODDONEPERCENT at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	None
+		qualifiers:
+None
+ij> commit;
+ij> -- matches 60% of rows - should do table scan
+get cursor c as
+	'select * from TENKTUP1
+	where oddOnePercent > 80';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where oddOnePercent > 80
+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 TENKTUP1 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=16
+	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:
+Column[0][0] Id: 12
+Operator: <=
+Ordered nulls: false
+Unknown return value: true
+Negate comparison result: true
+ij> commit;
+ij> -- matches 0 rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where oddOnePercent > 199';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where oddOnePercent > 199
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1ODDONEPERCENT at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=2
+		start position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	None
+		qualifiers:
+None
+ij> commit;
+ij> -- 1% selectivity index that covers query - should do index scan
+get cursor c as
+	'select oddOnePercent from TENKTUP1
+	where oddOnePercent = 1';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select oddOnePercent from TENKTUP1
+	where oddOnePercent = 1
+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: 
+Index Scan ResultSet for TENKTUP1 using index TK1ODDONEPERCENT at serializable 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={0}
+	Number of columns fetched=1
+	Number of deleted rows visited=0
+	Number of pages visited=0
+	Number of rows qualified=0
+	Number of rows visited=0
+	Scan type=btree
+	Tree height=2
+	start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+	stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+	qualifiers:
+None
+ij> commit;
+ij> -- Single-table queries using index on column 'stringu1'
+----- unique index that doesn't cover query - should use index
+get cursor c as
+	'select * from TENKTUP1
+	where stringu1 = ''AAAAJKLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx''';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where stringu1 = 'AAAAJKLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1STRINGU1 at serializable isolation level using share row locking chosen by the optimizer
+	Number of opens = 1
+	Rows seen = 0
+	Rows filtered = 0
+	Fetch Size = 1
+		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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=3
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+		qualifiers:
+None
+ij> commit;
+ij> -- unique index with 0 matching rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where stringu1 = ''AAAAZZZxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx''';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where stringu1 = 'AAAAZZZxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1STRINGU1 at serializable isolation level using share row locking chosen by the optimizer
+	Number of opens = 1
+	Rows seen = 0
+	Rows filtered = 0
+	Fetch Size = 1
+		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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=3
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+		qualifiers:
+None
+ij> commit;
+ij> -- matches 50% of rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where stringu1 > ''AAAAHKHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx''';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where stringu1 > 'AAAAHKHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
+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 TENKTUP1 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=16
+	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:
+Column[0][0] Id: 13
+Operator: <=
+Ordered nulls: false
+Unknown return value: true
+Negate comparison result: true
+ij> commit;
+ij> -- matches 51% of rows - should do table scan
+get cursor c as
+	'select * from TENKTUP1
+	where stringu1 > ''AAAAHOCxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx''';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where stringu1 > 'AAAAHOCxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
+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 TENKTUP1 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=16
+	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:
+Column[0][0] Id: 13
+Operator: <=
+Ordered nulls: false
+Unknown return value: true
+Negate comparison result: true
+ij> commit;
+ij> -- matches 0 rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where stringu1 > ''AAAAOUPxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx''';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where stringu1 > 'AAAAOUPxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1STRINGU1 at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=3
+		start position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+		stop position: 
+	None
+		qualifiers:
+None
+ij> commit;
+ij> -- unique index that covers query - should do index scan
+get cursor c as
+	'select stringu1 from TENKTUP1
+	where stringu1 = ''AAAAAABxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx''';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select stringu1 from TENKTUP1
+	where stringu1 = 'AAAAAABxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
+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: 
+Index Scan ResultSet for TENKTUP1 using index TK1STRINGU1 at serializable isolation level using share row locking chosen by the optimizer
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+Fetch Size = 1
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+scan information: 
+	Bit set of columns fetched={0}
+	Number of columns fetched=1
+	Number of deleted rows visited=0
+	Number of pages visited=0
+	Number of rows qualified=0
+	Number of rows visited=0
+	Scan type=btree
+	Tree height=3
+	start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+	stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+	qualifiers:
+None
+ij> commit;
+ij> -- Single-table queries using index on column 'stringu2'
+----- unique index that doesn't cover query - should use index
+get cursor c as
+	'select * from TENKTUP1
+	where stringu2 = ''AAAAJKLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx''';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where stringu2 = 'AAAAJKLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1STRINGU2 at serializable isolation level using share row locking chosen by the optimizer
+	Number of opens = 1
+	Rows seen = 0
+	Rows filtered = 0
+	Fetch Size = 1
+		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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=3
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+		qualifiers:
+None
+ij> commit;
+ij> -- unique index with 0 matching rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where stringu2 = ''AAAAZZZxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx''';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where stringu2 = 'AAAAZZZxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1STRINGU2 at serializable isolation level using share row locking chosen by the optimizer
+	Number of opens = 1
+	Rows seen = 0
+	Rows filtered = 0
+	Fetch Size = 1
+		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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=3
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+		qualifiers:
+None
+ij> commit;
+ij> -- matches 50% of rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where stringu2 > ''AAAAHKHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx''';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where stringu2 > 'AAAAHKHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
+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 TENKTUP1 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=16
+	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:
+Column[0][0] Id: 14
+Operator: <=
+Ordered nulls: false
+Unknown return value: true
+Negate comparison result: true
+ij> commit;
+ij> -- matches 51% of rows - should do table scan
+get cursor c as
+	'select * from TENKTUP1
+	where stringu2 > ''AAAAHOCxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx''';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where stringu2 > 'AAAAHOCxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
+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 TENKTUP1 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=16
+	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:
+Column[0][0] Id: 14
+Operator: <=
+Ordered nulls: false
+Unknown return value: true
+Negate comparison result: true
+ij> commit;
+ij> -- matches 0 rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where stringu2 > ''AAAAOUPxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx''';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where stringu2 > 'AAAAOUPxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1STRINGU2 at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=3
+		start position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+		stop position: 
+	None
+		qualifiers:
+None
+ij> commit;
+ij> -- unique index that covers query - should do index scan
+get cursor c as
+	'select stringu2 from TENKTUP1
+	where stringu2 = ''AAAAAABxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx''';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select stringu2 from TENKTUP1
+	where stringu2 = 'AAAAAABxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
+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: 
+Index Scan ResultSet for TENKTUP1 using index TK1STRINGU2 at serializable isolation level using share row locking chosen by the optimizer
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+Fetch Size = 1
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+scan information: 
+	Bit set of columns fetched={0}
+	Number of columns fetched=1
+	Number of deleted rows visited=0
+	Number of pages visited=0
+	Number of rows qualified=0
+	Number of rows visited=0
+	Scan type=btree
+	Tree height=3
+	start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+	stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+	qualifiers:
+None
+ij> commit;
+ij> -- Single-table queries using index on column 'string4'
+----- 25% selectivity index that doesn't cover query - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where string4 = ''AAAAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx''';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where string4 = 'AAAAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1STRING4 at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=3
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		qualifiers:
+None
+ij> commit;
+ij> -- 25% selectivity index with 0 matching rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where string4 = ''EEEExxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx''';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where string4 = 'EEEExxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1STRING4 at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=3
+		start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		qualifiers:
+None
+ij> commit;
+ij> -- matches 50% of rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where string4 > ''HHHHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx''';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where string4 > 'HHHHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
+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 TENKTUP1 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=16
+	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:
+Column[0][0] Id: 15
+Operator: <=
+Ordered nulls: false
+Unknown return value: true
+Negate comparison result: true
+ij> commit;
+ij> -- matches 0 rows - should do index scan
+get cursor c as
+	'select * from TENKTUP1
+	where string4 > ''VVVVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx''';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1
+	where string4 > 'VVVVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
+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: 
+Index Row to Base Row ResultSet for TENKTUP1:
+Number of opens = 1
+Rows seen = 0
+Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	Index Scan ResultSet for TENKTUP1 using index TK1STRING4 at serializable 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 deleted rows visited=0
+		Number of pages visited=0
+		Number of rows qualified=0
+		Number of rows visited=0
+		Scan type=btree
+		Tree height=3
+		start position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+		stop position: 
+	None
+		qualifiers:
+None
+ij> commit;
+ij> -- 25% selectivity index that covers query - should do index scan
+get cursor c as
+	'select string4 from TENKTUP1
+	where string4 = ''OOOOxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx''';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select string4 from TENKTUP1
+	where string4 = 'OOOOxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
+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: 
+Index Scan ResultSet for TENKTUP1 using index TK1STRING4 at serializable 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={0}
+	Number of columns fetched=1
+	Number of deleted rows visited=0
+	Number of pages visited=0
+	Number of rows qualified=0
+	Number of rows visited=0
+	Scan type=btree
+	Tree height=3
+	start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+	stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+	qualifiers:
+None
+ij> commit;
+ij> -- Now test equijoins with different selectivities and different numbers
+----- of outer rows.  The approach taken is that different join columns are
+----- used, and that TENKTUP1 has indexes on all the joining columns, while
+----- TENKTUP2 does not.  We use the unique1 column of TENKTUP2 to select
+----- different numbers of rows.  The two tables will always appear in the
+----- FROM clause with TENKTUP1 first, and TENKTUP2 second - it is up to
+----- the optimizer to figure out which should come first in the join order.
+----- Joins on unique1
+----- Join on unique1, all rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.unique1 = TENKTUP2.unique1';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.unique1 = TENKTUP2.unique1
+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: 
+Nested Loop Exists Join ResultSet:
+Number of opens = 1
+Rows seen from the left = 1
+Rows seen from the right = 0
+Rows filtered = 0
+Rows returned = 0
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+Left result set:
+	Table Scan ResultSet for TENKTUP1 at serializable isolation level using share table locking chosen by the optimizer
+	Number of opens = 1
+	Rows seen = 1
+	Rows filtered = 0
+	Fetch Size = 16
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+		next time in milliseconds/row = 0
+	scan information: 
+		Bit set of columns fetched=All
+		Number of columns fetched=16
+		Number of pages visited=2
+		Number of rows qualified=16
+		Number of rows visited=16
+		Scan type=heap
+		start position: 
+null		stop position: 
+null		qualifiers:
+None
+Right result set:
+	Index Row to Base Row ResultSet for TENKTUP2:
+	Number of opens = 1
+	Rows seen = 0
+	Columns accessed from heap = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+		Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 0
+		Rows filtered = 0
+		Fetch Size = 1
+			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 deleted rows visited=0
+			Number of pages visited=0
+			Number of rows qualified=0
+			Number of rows visited=0
+			Scan type=btree
+			Tree height=2
+			start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+			stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+			qualifiers:
+None
+ij> commit;
+ij> -- Join on unique1, 60% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.unique1 = TENKTUP2.unique1
+	and TENKTUP2.unique1 < 6000';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.unique1 = TENKTUP2.unique1
+	and TENKTUP2.unique1 < 6000
+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: 
+Nested Loop Exists Join ResultSet:
+Number of opens = 1
+Rows seen from the left = 1
+Rows seen from the right = 0
+Rows filtered = 0
+Rows returned = 0
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+Left result set:
+	Table Scan ResultSet for TENKTUP1 at serializable isolation level using share table locking chosen by the optimizer
+	Number of opens = 1
+	Rows seen = 1
+	Rows filtered = 0
+	Fetch Size = 16
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+		next time in milliseconds/row = 0
+	scan information: 
+		Bit set of columns fetched=All
+		Number of columns fetched=16
+		Number of pages visited=3
+		Number of rows qualified=16
+		Number of rows visited=27
+		Scan type=heap
+		start position: 
+null		stop position: 
+null		qualifiers:
+Column[0][0] Id: 0
+Operator: <
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+Right result set:
+	Index Row to Base Row ResultSet for TENKTUP2:
+	Number of opens = 1
+	Rows seen = 0
+	Columns accessed from heap = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+		Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 0
+		Rows filtered = 0
+		Fetch Size = 1
+			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 deleted rows visited=0
+			Number of pages visited=0
+			Number of rows qualified=0
+			Number of rows visited=0
+			Scan type=btree
+			Tree height=2
+			start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+			stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+			qualifiers:
+Column[0][0] Id: 0
+Operator: <
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on unique1, 25% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.unique1 = TENKTUP2.unique1
+	and TENKTUP2.unique1 < 2500';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.unique1 = TENKTUP2.unique1
+	and TENKTUP2.unique1 < 2500
+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: 
+Hash Exists Join ResultSet:
+Number of opens = 1
+Rows seen from the left = 1
+Rows seen from the right = 0
+Rows filtered = 0
+Rows returned = 0
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+Left result set:
+	Index Row to Base Row ResultSet for TENKTUP1:
+	Number of opens = 1
+	Rows seen = 1
+	Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+		Index Scan ResultSet for TENKTUP1 using index TK1UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=2
+			Number of deleted rows visited=0
+			Number of pages visited=2
+			Number of rows qualified=16
+			Number of rows visited=16
+			Scan type=btree
+			Tree height=2
+			start position: 
+	None
+			stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+			qualifiers:
+None
+Right result set:
+	Index Row to Base Row ResultSet for TENKTUP2:
+	Number of opens = 1
+	Rows seen = 0
+	Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+		Hash Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking: 
+		Number of opens = 1
+		Hash table size = 2500
+		Hash key is column number 0
+		Rows seen = 0
+		Rows filtered = 0
+			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 deleted rows visited=0
+			Number of pages visited=15
+			Number of rows qualified=2500
+			Number of rows visited=2501
+			Scan type=btree
+			Tree height=2
+			start position: 
+	None
+			stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+			scan qualifiers:
+None
+			next qualifiers:
+Column[0][0] Id: 0
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on unique1, 10% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.unique1 = TENKTUP2.unique1
+	and TENKTUP2.unique1 < 1000';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.unique1 = TENKTUP2.unique1
+	and TENKTUP2.unique1 < 1000
+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: 
+Hash Exists Join ResultSet:
+Number of opens = 1
+Rows seen from the left = 1
+Rows seen from the right = 0
+Rows filtered = 0
+Rows returned = 0
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+Left result set:
+	Index Row to Base Row ResultSet for TENKTUP1:
+	Number of opens = 1
+	Rows seen = 1
+	Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+		Index Scan ResultSet for TENKTUP1 using index TK1UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=2
+			Number of deleted rows visited=0
+			Number of pages visited=2
+			Number of rows qualified=16
+			Number of rows visited=16
+			Scan type=btree
+			Tree height=2
+			start position: 
+	None
+			stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+			qualifiers:
+None
+Right result set:
+	Index Row to Base Row ResultSet for TENKTUP2:
+	Number of opens = 1
+	Rows seen = 0
+	Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+		Hash Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking: 
+		Number of opens = 1
+		Hash table size = 1000
+		Hash key is column number 0
+		Rows seen = 0
+		Rows filtered = 0
+			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 deleted rows visited=0
+			Number of pages visited=7
+			Number of rows qualified=1000
+			Number of rows visited=1001
+			Scan type=btree
+			Tree height=2
+			start position: 
+	None
+			stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+			scan qualifiers:
+None
+			next qualifiers:
+Column[0][0] Id: 0
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on unique1, 5% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.unique1 = TENKTUP2.unique1
+	and TENKTUP2.unique1 < 500';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.unique1 = TENKTUP2.unique1
+	and TENKTUP2.unique1 < 500
+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: 
+Hash Exists Join ResultSet:
+Number of opens = 1
+Rows seen from the left = 1
+Rows seen from the right = 0
+Rows filtered = 0
+Rows returned = 0
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+Left result set:
+	Index Row to Base Row ResultSet for TENKTUP1:
+	Number of opens = 1
+	Rows seen = 1
+	Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+		Index Scan ResultSet for TENKTUP1 using index TK1UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=2
+			Number of deleted rows visited=0
+			Number of pages visited=2
+			Number of rows qualified=16
+			Number of rows visited=16
+			Scan type=btree
+			Tree height=2
+			start position: 
+	None
+			stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+			qualifiers:
+None
+Right result set:
+	Index Row to Base Row ResultSet for TENKTUP2:
+	Number of opens = 1
+	Rows seen = 0
+	Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+		Hash Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking: 
+		Number of opens = 1
+		Hash table size = 500
+		Hash key is column number 0
+		Rows seen = 0
+		Rows filtered = 0
+			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 deleted rows visited=0
+			Number of pages visited=4
+			Number of rows qualified=500
+			Number of rows visited=501
+			Scan type=btree
+			Tree height=2
+			start position: 
+	None
+			stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+			scan qualifiers:
+None
+			next qualifiers:
+Column[0][0] Id: 0
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on unique1, 1% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.unique1 = TENKTUP2.unique1
+	and TENKTUP2.unique1 < 100';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.unique1 = TENKTUP2.unique1
+	and TENKTUP2.unique1 < 100
+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: 
+Hash Exists Join ResultSet:
+Number of opens = 1
+Rows seen from the left = 1
+Rows seen from the right = 0
+Rows filtered = 0
+Rows returned = 0
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+Left result set:
+	Index Row to Base Row ResultSet for TENKTUP1:
+	Number of opens = 1
+	Rows seen = 1
+	Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+		Index Scan ResultSet for TENKTUP1 using index TK1UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=2
+			Number of deleted rows visited=0
+			Number of pages visited=2
+			Number of rows qualified=16
+			Number of rows visited=16
+			Scan type=btree
+			Tree height=2
+			start position: 
+	None
+			stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+			qualifiers:
+None
+Right result set:
+	Index Row to Base Row ResultSet for TENKTUP2:
+	Number of opens = 1
+	Rows seen = 0
+	Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+		Hash Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking: 
+		Number of opens = 1
+		Hash table size = 100
+		Hash key is column number 0
+		Rows seen = 0
+		Rows filtered = 0
+			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 deleted rows visited=0
+			Number of pages visited=2
+			Number of rows qualified=100
+			Number of rows visited=101
+			Scan type=btree
+			Tree height=2
+			start position: 
+	None
+			stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+			scan qualifiers:
+None
+			next qualifiers:
+Column[0][0] Id: 0
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on unique1, 1 row in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.unique1 = TENKTUP2.unique1
+	and TENKTUP2.unique1 = 0';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.unique1 = TENKTUP2.unique1
+	and TENKTUP2.unique1 = 0
+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: 
+Nested Loop Exists Join ResultSet:
+Number of opens = 1
+Rows seen from the left = 1
+Rows seen from the right = 0
+Rows filtered = 0
+Rows returned = 0
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+Left result set:
+	Index Row to Base Row ResultSet for TENKTUP1:
+	Number of opens = 1
+	Rows seen = 1
+	Columns accessed from heap = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+		Index Scan ResultSet for TENKTUP1 using index TK1UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 1
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=2
+			Number of deleted rows visited=0
+			Number of pages visited=2
+			Number of rows qualified=1
+			Number of rows visited=1
+			Scan type=btree
+			Tree height=2
+			start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+			stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+			qualifiers:
+None
+Right result set:
+	Index Row to Base Row ResultSet for TENKTUP2:
+	Number of opens = 1
+	Rows seen = 0
+	Columns accessed from heap = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+		Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 0
+		Rows filtered = 0
+		Fetch Size = 1
+			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 deleted rows visited=0
+			Number of pages visited=0
+			Number of rows qualified=0
+			Number of rows visited=0
+			Scan type=btree
+			Tree height=2
+			start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+			stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+			qualifiers:
+None
+ij> commit;
+ij> -- Joins on two
+----- Join on two, all rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.two = TENKTUP2.two';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.two = TENKTUP2.two
+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: 
+Nested Loop Join ResultSet:
+Number of opens = 1
+Rows seen from the left = 1
+Rows seen from the right = 0
+Rows filtered = 0
+Rows returned = 0
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+Left result set:
+	Table Scan ResultSet for TENKTUP1 at serializable isolation level using share table locking chosen by the optimizer
+	Number of opens = 1
+	Rows seen = 1
+	Rows filtered = 0
+	Fetch Size = 16
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+		next time in milliseconds/row = 0
+	scan information: 
+		Bit set of columns fetched=All
+		Number of columns fetched=16
+		Number of pages visited=2
+		Number of rows qualified=16
+		Number of rows visited=16
+		Scan type=heap
+		start position: 
+null		stop position: 
+null		qualifiers:
+None
+Right result set:
+	Table Scan ResultSet for TENKTUP2 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=16
+		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:
+Column[0][0] Id: 2
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on two, 60% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.two = TENKTUP2.two
+	and TENKTUP2.unique1 < 6000';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.two = TENKTUP2.two
+	and TENKTUP2.unique1 < 6000
+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: 
+Project-Restrict ResultSet (4):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Table Scan ResultSet for TENKTUP2 at serializable isolation level using share table locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=16
+			Number of pages visited=3
+			Number of rows qualified=16
+			Number of rows visited=27
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			qualifiers:
+Column[0][0] Id: 0
+Operator: <
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+	Right result set:
+		Table Scan ResultSet for TENKTUP1 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=16
+			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:
+Column[0][0] Id: 2
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on two, 25% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.two = TENKTUP2.two
+	and TENKTUP2.unique1 < 2500';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.two = TENKTUP2.two
+	and TENKTUP2.unique1 < 2500
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Table Scan ResultSet for TENKTUP1 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=16
+			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:
+Column[0][0] Id: 2
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on two, 10% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.two = TENKTUP2.two
+	and TENKTUP2.unique1 < 1000';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.two = TENKTUP2.two
+	and TENKTUP2.unique1 < 1000
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Table Scan ResultSet for TENKTUP1 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=16
+			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:
+Column[0][0] Id: 2
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on two, 5% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.two = TENKTUP2.two
+	and TENKTUP2.unique1 < 500';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.two = TENKTUP2.two
+	and TENKTUP2.unique1 < 500
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Table Scan ResultSet for TENKTUP1 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=16
+			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:
+Column[0][0] Id: 2
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on two, 1% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.two = TENKTUP2.two
+	and TENKTUP2.unique1 < 100';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.two = TENKTUP2.two
+	and TENKTUP2.unique1 < 100
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Table Scan ResultSet for TENKTUP1 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=16
+			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:
+Column[0][0] Id: 2
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on two, 1 row in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.two = TENKTUP2.two
+	and TENKTUP2.unique1 = 0';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.two = TENKTUP2.two
+	and TENKTUP2.unique1 = 0
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 1
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=1
+				Number of rows visited=1
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Table Scan ResultSet for TENKTUP1 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=16
+			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:
+Column[0][0] Id: 2
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Joins on four
+----- Join on four, all rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.four = TENKTUP2.four';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.four = TENKTUP2.four
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Table Scan ResultSet for TENKTUP2 at serializable isolation level using share table locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=16
+			Number of pages visited=2
+			Number of rows qualified=16
+			Number of rows visited=16
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1FOUR at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on four, 60% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.four = TENKTUP2.four
+	and TENKTUP2.unique1 < 6000';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.four = TENKTUP2.four
+	and TENKTUP2.unique1 < 6000
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Table Scan ResultSet for TENKTUP2 at serializable isolation level using share table locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=16
+			Number of pages visited=3
+			Number of rows qualified=16
+			Number of rows visited=27
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			qualifiers:
+Column[0][0] Id: 0
+Operator: <
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1FOUR at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on four, 25% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.four = TENKTUP2.four
+	and TENKTUP2.unique1 < 2500';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.four = TENKTUP2.four
+	and TENKTUP2.unique1 < 2500
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1FOUR at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on four, 10% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.four = TENKTUP2.four
+	and TENKTUP2.unique1 < 1000';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.four = TENKTUP2.four
+	and TENKTUP2.unique1 < 1000
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1FOUR at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on four, 5% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.four = TENKTUP2.four
+	and TENKTUP2.unique1 < 500';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.four = TENKTUP2.four
+	and TENKTUP2.unique1 < 500
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1FOUR at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on four, 1% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.four = TENKTUP2.four
+	and TENKTUP2.unique1 < 100';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.four = TENKTUP2.four
+	and TENKTUP2.unique1 < 100
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1FOUR at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on four, 1 row in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.four = TENKTUP2.four
+	and TENKTUP2.unique1 = 0';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.four = TENKTUP2.four
+	and TENKTUP2.unique1 = 0
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 1
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=1
+				Number of rows visited=1
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1FOUR at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Joins on ten
+----- Join on ten, all rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.ten = TENKTUP2.ten';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.ten = TENKTUP2.ten
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Table Scan ResultSet for TENKTUP2 at serializable isolation level using share table locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=16
+			Number of pages visited=2
+			Number of rows qualified=16
+			Number of rows visited=16
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1TEN at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on ten, 60% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.ten = TENKTUP2.ten
+	and TENKTUP2.unique1 < 6000';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.ten = TENKTUP2.ten
+	and TENKTUP2.unique1 < 6000
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Table Scan ResultSet for TENKTUP2 at serializable isolation level using share table locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=16
+			Number of pages visited=3
+			Number of rows qualified=16
+			Number of rows visited=27
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			qualifiers:
+Column[0][0] Id: 0
+Operator: <
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1TEN at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on ten, 25% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.ten = TENKTUP2.ten
+	and TENKTUP2.unique1 < 2500';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.ten = TENKTUP2.ten
+	and TENKTUP2.unique1 < 2500
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1TEN at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on ten, 10% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.ten = TENKTUP2.ten
+	and TENKTUP2.unique1 < 1000';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.ten = TENKTUP2.ten
+	and TENKTUP2.unique1 < 1000
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1TEN at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on ten, 5% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.ten = TENKTUP2.ten
+	and TENKTUP2.unique1 < 500';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.ten = TENKTUP2.ten
+	and TENKTUP2.unique1 < 500
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1TEN at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on ten, 1% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.ten = TENKTUP2.ten
+	and TENKTUP2.unique1 < 100';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.ten = TENKTUP2.ten
+	and TENKTUP2.unique1 < 100
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1TEN at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on ten, 1 row in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.ten = TENKTUP2.ten
+	and TENKTUP2.unique1 = 0';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.ten = TENKTUP2.ten
+	and TENKTUP2.unique1 = 0
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 1
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=1
+				Number of rows visited=1
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1TEN at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Joins on twenty
+----- Join on twenty, all rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.twenty = TENKTUP2.twenty';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.twenty = TENKTUP2.twenty
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Table Scan ResultSet for TENKTUP2 at serializable isolation level using share table locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=16
+			Number of pages visited=2
+			Number of rows qualified=16
+			Number of rows visited=16
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1TWENTY at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on twenty, 60% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.twenty = TENKTUP2.twenty
+	and TENKTUP2.unique1 < 6000';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.twenty = TENKTUP2.twenty
+	and TENKTUP2.unique1 < 6000
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Table Scan ResultSet for TENKTUP2 at serializable isolation level using share table locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=16
+			Number of pages visited=3
+			Number of rows qualified=16
+			Number of rows visited=27
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			qualifiers:
+Column[0][0] Id: 0
+Operator: <
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1TWENTY at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on twenty, 25% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.twenty = TENKTUP2.twenty
+	and TENKTUP2.unique1 < 2500';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.twenty = TENKTUP2.twenty
+	and TENKTUP2.unique1 < 2500
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1TWENTY at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on twenty, 10% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.twenty = TENKTUP2.twenty
+	and TENKTUP2.unique1 < 1000';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.twenty = TENKTUP2.twenty
+	and TENKTUP2.unique1 < 1000
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1TWENTY at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on twenty, 5% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.twenty = TENKTUP2.twenty
+	and TENKTUP2.unique1 < 500';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.twenty = TENKTUP2.twenty
+	and TENKTUP2.unique1 < 500
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1TWENTY at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on twenty, 1% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.twenty = TENKTUP2.twenty
+	and TENKTUP2.unique1 < 100';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.twenty = TENKTUP2.twenty
+	and TENKTUP2.unique1 < 100
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1TWENTY at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on twenty, 1 row in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.twenty = TENKTUP2.twenty
+	and TENKTUP2.unique1 = 0';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.twenty = TENKTUP2.twenty
+	and TENKTUP2.unique1 = 0
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 1
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=1
+				Number of rows visited=1
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1TWENTY at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Joins on onePercent
+----- Join on onePercent, all rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.onePercent = TENKTUP2.onePercent';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.onePercent = TENKTUP2.onePercent
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Table Scan ResultSet for TENKTUP2 at serializable isolation level using share table locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=16
+			Number of pages visited=2
+			Number of rows qualified=16
+			Number of rows visited=16
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1ONEPERCENT at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on onePercent, 60% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.onePercent = TENKTUP2.onePercent
+	and TENKTUP2.unique1 < 6000';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.onePercent = TENKTUP2.onePercent
+	and TENKTUP2.unique1 < 6000
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Table Scan ResultSet for TENKTUP2 at serializable isolation level using share table locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=16
+			Number of pages visited=3
+			Number of rows qualified=16
+			Number of rows visited=27
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			qualifiers:
+Column[0][0] Id: 0
+Operator: <
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1ONEPERCENT at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on onePercent, 25% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.onePercent = TENKTUP2.onePercent
+	and TENKTUP2.unique1 < 2500';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.onePercent = TENKTUP2.onePercent
+	and TENKTUP2.unique1 < 2500
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1ONEPERCENT at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on onePercent, 10% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.onePercent = TENKTUP2.onePercent
+	and TENKTUP2.unique1 < 1000';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.onePercent = TENKTUP2.onePercent
+	and TENKTUP2.unique1 < 1000
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1ONEPERCENT at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on onePercent, 5% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.onePercent = TENKTUP2.onePercent
+	and TENKTUP2.unique1 < 500';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.onePercent = TENKTUP2.onePercent
+	and TENKTUP2.unique1 < 500
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1ONEPERCENT at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on onePercent, 1% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.onePercent = TENKTUP2.onePercent
+	and TENKTUP2.unique1 < 100';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.onePercent = TENKTUP2.onePercent
+	and TENKTUP2.unique1 < 100
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1ONEPERCENT at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on onePercent, 1 row in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.onePercent = TENKTUP2.onePercent
+	and TENKTUP2.unique1 = 0';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.onePercent = TENKTUP2.onePercent
+	and TENKTUP2.unique1 = 0
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 1
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=1
+				Number of rows visited=1
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1ONEPERCENT at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Joins on twentyPercent
+----- Join on twentyPercent, all rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.twentyPercent = TENKTUP2.twentyPercent';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.twentyPercent = TENKTUP2.twentyPercent
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Table Scan ResultSet for TENKTUP2 at serializable isolation level using share table locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=16
+			Number of pages visited=2
+			Number of rows qualified=16
+			Number of rows visited=16
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1TWENTYPERCENT at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on twentyPercent, 60% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.twentyPercent = TENKTUP2.twentyPercent
+	and TENKTUP2.unique1 < 6000';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.twentyPercent = TENKTUP2.twentyPercent
+	and TENKTUP2.unique1 < 6000
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Table Scan ResultSet for TENKTUP2 at serializable isolation level using share table locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=16
+			Number of pages visited=3
+			Number of rows qualified=16
+			Number of rows visited=27
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			qualifiers:
+Column[0][0] Id: 0
+Operator: <
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1TWENTYPERCENT at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on twentyPercent, 25% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.twentyPercent = TENKTUP2.twentyPercent
+	and TENKTUP2.unique1 < 2500';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.twentyPercent = TENKTUP2.twentyPercent
+	and TENKTUP2.unique1 < 2500
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1TWENTYPERCENT at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on twentyPercent, 10% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.twentyPercent = TENKTUP2.twentyPercent
+	and TENKTUP2.unique1 < 1000';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.twentyPercent = TENKTUP2.twentyPercent
+	and TENKTUP2.unique1 < 1000
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1TWENTYPERCENT at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on twentyPercent, 5% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.twentyPercent = TENKTUP2.twentyPercent
+	and TENKTUP2.unique1 < 500';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.twentyPercent = TENKTUP2.twentyPercent
+	and TENKTUP2.unique1 < 500
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1TWENTYPERCENT at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on twentyPercent, 1% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.twentyPercent = TENKTUP2.twentyPercent
+	and TENKTUP2.unique1 < 100';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.twentyPercent = TENKTUP2.twentyPercent
+	and TENKTUP2.unique1 < 100
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1TWENTYPERCENT at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on twentyPercent, 1 row in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.twentyPercent = TENKTUP2.twentyPercent
+	and TENKTUP2.unique1 = 0';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.twentyPercent = TENKTUP2.twentyPercent
+	and TENKTUP2.unique1 = 0
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 1
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=1
+				Number of rows visited=1
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1TWENTYPERCENT at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Joins on stringu1
+----- Join on stringu1, all rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.stringu1 = TENKTUP2.stringu1';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.stringu1 = TENKTUP2.stringu1
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Exists Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Table Scan ResultSet for TENKTUP2 at serializable isolation level using share table locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=16
+			Number of pages visited=2
+			Number of rows qualified=16
+			Number of rows visited=16
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1STRINGU1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 0
+			Rows filtered = 0
+			Fetch Size = 1
+				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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=3
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on stringu1, 60% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.stringu1 = TENKTUP2.stringu1
+	and TENKTUP2.unique1 < 6000';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.stringu1 = TENKTUP2.stringu1
+	and TENKTUP2.unique1 < 6000
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Exists Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Table Scan ResultSet for TENKTUP2 at serializable isolation level using share table locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=16
+			Number of pages visited=3
+			Number of rows qualified=16
+			Number of rows visited=27
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			qualifiers:
+Column[0][0] Id: 0
+Operator: <
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1STRINGU1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 0
+			Rows filtered = 0
+			Fetch Size = 1
+				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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=3
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on stringu1, 25% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.stringu1 = TENKTUP2.stringu1
+	and TENKTUP2.unique1 < 2500';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.stringu1 = TENKTUP2.stringu1
+	and TENKTUP2.unique1 < 2500
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Exists Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1STRINGU1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 0
+			Rows filtered = 0
+			Fetch Size = 1
+				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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=3
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on stringu1, 10% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.stringu1 = TENKTUP2.stringu1
+	and TENKTUP2.unique1 < 1000';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.stringu1 = TENKTUP2.stringu1
+	and TENKTUP2.unique1 < 1000
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Exists Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1STRINGU1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 0
+			Rows filtered = 0
+			Fetch Size = 1
+				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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=3
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on stringu1, 5% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.stringu1 = TENKTUP2.stringu1
+	and TENKTUP2.unique1 < 500';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.stringu1 = TENKTUP2.stringu1
+	and TENKTUP2.unique1 < 500
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Exists Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1STRINGU1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 0
+			Rows filtered = 0
+			Fetch Size = 1
+				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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=3
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on stringu1, 1% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.stringu1 = TENKTUP2.stringu1
+	and TENKTUP2.unique1 < 100';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.stringu1 = TENKTUP2.stringu1
+	and TENKTUP2.unique1 < 100
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Exists Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1STRINGU1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 0
+			Rows filtered = 0
+			Fetch Size = 1
+				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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=3
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on stringu1, 1 row in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.stringu1 = TENKTUP2.stringu1
+	and TENKTUP2.unique1 = 0';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.stringu1 = TENKTUP2.stringu1
+	and TENKTUP2.unique1 = 0
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Exists Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 1
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=1
+				Number of rows visited=1
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1STRINGU1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 0
+			Rows filtered = 0
+			Fetch Size = 1
+				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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=3
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Joins on string4
+----- Join on string4, all rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.string4 = TENKTUP2.string4';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.string4 = TENKTUP2.string4
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Table Scan ResultSet for TENKTUP2 at serializable isolation level using share table locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=16
+			Number of pages visited=2
+			Number of rows qualified=16
+			Number of rows visited=16
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1STRING4 at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=3
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on string4, 60% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.string4 = TENKTUP2.string4
+	and TENKTUP2.unique1 < 6000';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.string4 = TENKTUP2.string4
+	and TENKTUP2.unique1 < 6000
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Table Scan ResultSet for TENKTUP2 at serializable isolation level using share table locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=16
+			Number of pages visited=3
+			Number of rows qualified=16
+			Number of rows visited=27
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			qualifiers:
+Column[0][0] Id: 0
+Operator: <
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1STRING4 at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=3
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on string4, 25% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.string4 = TENKTUP2.string4
+	and TENKTUP2.unique1 < 2500';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.string4 = TENKTUP2.string4
+	and TENKTUP2.unique1 < 2500
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1STRING4 at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=3
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on string4, 10% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.string4 = TENKTUP2.string4
+	and TENKTUP2.unique1 < 1000';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.string4 = TENKTUP2.string4
+	and TENKTUP2.unique1 < 1000
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1STRING4 at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=3
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on string4, 5% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.string4 = TENKTUP2.string4
+	and TENKTUP2.unique1 < 500';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.string4 = TENKTUP2.string4
+	and TENKTUP2.unique1 < 500
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1STRING4 at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=3
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on string4, 1% of rows in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.string4 = TENKTUP2.string4
+	and TENKTUP2.unique1 < 100';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.string4 = TENKTUP2.string4
+	and TENKTUP2.unique1 < 100
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1STRING4 at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=3
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Join on string4, 1 row in TENKTUP2
+get cursor c as
+	'select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.string4 = TENKTUP2.string4
+	and TENKTUP2.unique1 = 0';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select * from TENKTUP1, TENKTUP2
+	where TENKTUP1.string4 = TENKTUP2.string4
+	and TENKTUP2.unique1 = 0
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 1
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=1
+				Number of rows visited=1
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1STRING4 at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=3
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Now do the same equijoin tests, but select only one column from TENKTUP1.
+----- This way, it can choose hash join where appropriate (it avoids it where
+----- it thinks the hash table will take too much memory).
+----- Joins on unique1
+----- Join on unique1, all rows in TENKTUP2
+get cursor c as
+	'select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.unique1 = TENKTUP2.unique1';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.unique1 = TENKTUP2.unique1
+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: 
+Project-Restrict ResultSet (4):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Hash Exists Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Table Scan ResultSet for TENKTUP2 at serializable isolation level using share table locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=16
+			Number of pages visited=2
+			Number of rows qualified=16
+			Number of rows visited=16
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			qualifiers:
+None
+	Right result set:
+		Hash Scan ResultSet for TENKTUP1 at serializable isolation level using share table locking: 
+		Number of opens = 1
+		Hash table size = 10000
+		Hash key is column number 0
+		Rows seen = 0
+		Rows filtered = 0
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+		scan information: 
+			Bit set of columns fetched={0, 1}
+			Number of columns fetched=2
+			Number of pages visited=770
+			Number of rows qualified=10000
+			Number of rows visited=10000
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			scan qualifiers:
+None
+			next qualifiers:
+Column[0][0] Id: 0
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on unique1, 60% of rows in TENKTUP2
+get cursor c as
+	'select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.unique1 = TENKTUP2.unique1
+	and TENKTUP2.unique1 < 6000';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.unique1 = TENKTUP2.unique1
+	and TENKTUP2.unique1 < 6000
+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: 
+Project-Restrict ResultSet (4):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Hash Exists Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Table Scan ResultSet for TENKTUP2 at serializable isolation level using share table locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=16
+			Number of pages visited=3
+			Number of rows qualified=16
+			Number of rows visited=27
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			qualifiers:
+Column[0][0] Id: 0
+Operator: <
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+	Right result set:
+		Hash Scan ResultSet for TENKTUP1 at serializable isolation level using share table locking: 
+		Number of opens = 1
+		Hash table size = 6000
+		Hash key is column number 0
+		Rows seen = 0
+		Rows filtered = 0
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+		scan information: 
+			Bit set of columns fetched={0, 1}
+			Number of columns fetched=2
+			Number of pages visited=770
+			Number of rows qualified=6000
+			Number of rows visited=10000
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			scan qualifiers:
+Column[0][0] Id: 0
+Operator: <
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+			next qualifiers:
+Column[0][0] Id: 0
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on unique1, 25% of rows in TENKTUP2
+get cursor c as
+	'select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.unique1 = TENKTUP2.unique1
+	and TENKTUP2.unique1 < 2500';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.unique1 = TENKTUP2.unique1
+	and TENKTUP2.unique1 < 2500
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Hash Exists Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Hash Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking: 
+			Number of opens = 1
+			Hash table size = 2500
+			Hash key is column number 0
+			Rows seen = 0
+			Rows filtered = 0
+				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 deleted rows visited=0
+				Number of pages visited=15
+				Number of rows qualified=2500
+				Number of rows visited=2501
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				scan qualifiers:
+None
+				next qualifiers:
+Column[0][0] Id: 0
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on unique1, 10% of rows in TENKTUP2
+get cursor c as
+	'select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.unique1 = TENKTUP2.unique1
+	and TENKTUP2.unique1 < 1000';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.unique1 = TENKTUP2.unique1
+	and TENKTUP2.unique1 < 1000
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Hash Exists Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Hash Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking: 
+			Number of opens = 1
+			Hash table size = 1000
+			Hash key is column number 0
+			Rows seen = 0
+			Rows filtered = 0
+				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 deleted rows visited=0
+				Number of pages visited=7
+				Number of rows qualified=1000
+				Number of rows visited=1001
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				scan qualifiers:
+None
+				next qualifiers:
+Column[0][0] Id: 0
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on unique1, 5% of rows in TENKTUP2
+get cursor c as
+	'select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.unique1 = TENKTUP2.unique1
+	and TENKTUP2.unique1 < 500';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.unique1 = TENKTUP2.unique1
+	and TENKTUP2.unique1 < 500
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Hash Exists Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Hash Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking: 
+			Number of opens = 1
+			Hash table size = 500
+			Hash key is column number 0
+			Rows seen = 0
+			Rows filtered = 0
+				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 deleted rows visited=0
+				Number of pages visited=4
+				Number of rows qualified=500
+				Number of rows visited=501
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				scan qualifiers:
+None
+				next qualifiers:
+Column[0][0] Id: 0
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on unique1, 1% of rows in TENKTUP2
+get cursor c as
+	'select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.unique1 = TENKTUP2.unique1
+	and TENKTUP2.unique1 < 100';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.unique1 = TENKTUP2.unique1
+	and TENKTUP2.unique1 < 100
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Hash Exists Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Hash Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking: 
+			Number of opens = 1
+			Hash table size = 100
+			Hash key is column number 0
+			Rows seen = 0
+			Rows filtered = 0
+				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 deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=100
+				Number of rows visited=101
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				scan qualifiers:
+None
+				next qualifiers:
+Column[0][0] Id: 0
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on unique1, 1 row in TENKTUP2
+get cursor c as
+	'select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.unique1 = TENKTUP2.unique1
+	and TENKTUP2.unique1 = 0';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.unique1 = TENKTUP2.unique1
+	and TENKTUP2.unique1 = 0
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Exists Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {1}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 1
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=1
+				Number of rows visited=1
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 0
+			Rows filtered = 0
+			Fetch Size = 1
+				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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+ij> commit;
+ij> -- Joins on two
+----- Join on two, all rows in TENKTUP2
+get cursor c as
+	'select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.two = TENKTUP2.two';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.two = TENKTUP2.two
+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: 
+Project-Restrict ResultSet (4):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Hash Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Table Scan ResultSet for TENKTUP2 at serializable isolation level using share table locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=16
+			Number of pages visited=2
+			Number of rows qualified=16
+			Number of rows visited=16
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			qualifiers:
+None
+	Right result set:
+		Hash Scan ResultSet for TENKTUP1 at serializable isolation level using share table locking: 
+		Number of opens = 1
+		Hash table size = 2
+		Hash key is column number 2
+		Rows seen = 0
+		Rows filtered = 0
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+		scan information: 
+			Bit set of columns fetched={1, 2}
+			Number of columns fetched=2
+			Number of pages visited=770
+			Number of rows qualified=10000
+			Number of rows visited=10000
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			scan qualifiers:
+None
+			next qualifiers:
+Column[0][0] Id: 2
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on two, 60% of rows in TENKTUP2
+get cursor c as
+	'select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.two = TENKTUP2.two
+	and TENKTUP2.unique1 < 6000';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.two = TENKTUP2.two
+	and TENKTUP2.unique1 < 6000
+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: 
+Project-Restrict ResultSet (4):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Hash Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Table Scan ResultSet for TENKTUP2 at serializable isolation level using share table locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=16
+			Number of pages visited=3
+			Number of rows qualified=16
+			Number of rows visited=27
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			qualifiers:
+Column[0][0] Id: 0
+Operator: <
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+	Right result set:
+		Hash Scan ResultSet for TENKTUP1 at serializable isolation level using share table locking: 
+		Number of opens = 1
+		Hash table size = 2
+		Hash key is column number 2
+		Rows seen = 0
+		Rows filtered = 0
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+		scan information: 
+			Bit set of columns fetched={1, 2}
+			Number of columns fetched=2
+			Number of pages visited=770
+			Number of rows qualified=10000
+			Number of rows visited=10000
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			scan qualifiers:
+None
+			next qualifiers:
+Column[0][0] Id: 2
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on two, 25% of rows in TENKTUP2
+get cursor c as
+	'select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.two = TENKTUP2.two
+	and TENKTUP2.unique1 < 2500';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.two = TENKTUP2.two
+	and TENKTUP2.unique1 < 2500
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Hash Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Hash Scan ResultSet for TENKTUP1 at serializable isolation level using share table locking: 
+		Number of opens = 1
+		Hash table size = 2
+		Hash key is column number 2
+		Rows seen = 0
+		Rows filtered = 0
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+		scan information: 
+			Bit set of columns fetched={1, 2}
+			Number of columns fetched=2
+			Number of pages visited=770
+			Number of rows qualified=10000
+			Number of rows visited=10000
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			scan qualifiers:
+None
+			next qualifiers:
+Column[0][0] Id: 2
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on two, 10% of rows in TENKTUP2
+get cursor c as
+	'select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.two = TENKTUP2.two
+	and TENKTUP2.unique1 < 1000';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.two = TENKTUP2.two
+	and TENKTUP2.unique1 < 1000
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Hash Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Hash Scan ResultSet for TENKTUP1 at serializable isolation level using share table locking: 
+		Number of opens = 1
+		Hash table size = 2
+		Hash key is column number 2
+		Rows seen = 0
+		Rows filtered = 0
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+		scan information: 
+			Bit set of columns fetched={1, 2}
+			Number of columns fetched=2
+			Number of pages visited=770
+			Number of rows qualified=10000
+			Number of rows visited=10000
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			scan qualifiers:
+None
+			next qualifiers:
+Column[0][0] Id: 2
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on two, 5% of rows in TENKTUP2
+get cursor c as
+	'select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.two = TENKTUP2.two
+	and TENKTUP2.unique1 < 500';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.two = TENKTUP2.two
+	and TENKTUP2.unique1 < 500
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Hash Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Hash Scan ResultSet for TENKTUP1 at serializable isolation level using share table locking: 
+		Number of opens = 1
+		Hash table size = 2
+		Hash key is column number 2
+		Rows seen = 0
+		Rows filtered = 0
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+		scan information: 
+			Bit set of columns fetched={1, 2}
+			Number of columns fetched=2
+			Number of pages visited=770
+			Number of rows qualified=10000
+			Number of rows visited=10000
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			scan qualifiers:
+None
+			next qualifiers:
+Column[0][0] Id: 2
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on two, 1% of rows in TENKTUP2
+get cursor c as
+	'select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.two = TENKTUP2.two
+	and TENKTUP2.unique1 < 100';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.two = TENKTUP2.two
+	and TENKTUP2.unique1 < 100
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Hash Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Hash Scan ResultSet for TENKTUP1 at serializable isolation level using share table locking: 
+		Number of opens = 1
+		Hash table size = 2
+		Hash key is column number 2
+		Rows seen = 0
+		Rows filtered = 0
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+		scan information: 
+			Bit set of columns fetched={1, 2}
+			Number of columns fetched=2
+			Number of pages visited=770
+			Number of rows qualified=10000
+			Number of rows visited=10000
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			scan qualifiers:
+None
+			next qualifiers:
+Column[0][0] Id: 2
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on two, 1 row in TENKTUP2
+get cursor c as
+	'select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.two = TENKTUP2.two
+	and TENKTUP2.unique1 = 0';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.two = TENKTUP2.two
+	and TENKTUP2.unique1 = 0
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 1
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=1
+				Number of rows visited=1
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Table Scan ResultSet for TENKTUP1 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={1, 2}
+			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:
+Column[0][0] Id: 2
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Joins on four
+----- Join on four, all rows in TENKTUP2
+get cursor c as
+	'select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.four = TENKTUP2.four';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.four = TENKTUP2.four
+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: 
+Project-Restrict ResultSet (4):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Hash Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Table Scan ResultSet for TENKTUP2 at serializable isolation level using share table locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=16
+			Number of pages visited=2
+			Number of rows qualified=16
+			Number of rows visited=16
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			qualifiers:
+None
+	Right result set:
+		Hash Scan ResultSet for TENKTUP1 at serializable isolation level using share table locking: 
+		Number of opens = 1
+		Hash table size = 4
+		Hash key is column number 3
+		Rows seen = 0
+		Rows filtered = 0
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+		scan information: 
+			Bit set of columns fetched={1, 3}
+			Number of columns fetched=2
+			Number of pages visited=770
+			Number of rows qualified=10000
+			Number of rows visited=10000
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			scan qualifiers:
+None
+			next qualifiers:
+Column[0][0] Id: 3
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on four, 60% of rows in TENKTUP2
+get cursor c as
+	'select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.four = TENKTUP2.four
+	and TENKTUP2.unique1 < 6000';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.four = TENKTUP2.four
+	and TENKTUP2.unique1 < 6000
+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: 
+Project-Restrict ResultSet (4):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Hash Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Table Scan ResultSet for TENKTUP2 at serializable isolation level using share table locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=16
+			Number of pages visited=3
+			Number of rows qualified=16
+			Number of rows visited=27
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			qualifiers:
+Column[0][0] Id: 0
+Operator: <
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+	Right result set:
+		Hash Scan ResultSet for TENKTUP1 at serializable isolation level using share table locking: 
+		Number of opens = 1
+		Hash table size = 4
+		Hash key is column number 3
+		Rows seen = 0
+		Rows filtered = 0
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+		scan information: 
+			Bit set of columns fetched={1, 3}
+			Number of columns fetched=2
+			Number of pages visited=770
+			Number of rows qualified=10000
+			Number of rows visited=10000
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			scan qualifiers:
+None
+			next qualifiers:
+Column[0][0] Id: 3
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on four, 25% of rows in TENKTUP2
+get cursor c as
+	'select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.four = TENKTUP2.four
+	and TENKTUP2.unique1 < 2500';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.four = TENKTUP2.four
+	and TENKTUP2.unique1 < 2500
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Hash Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Hash Scan ResultSet for TENKTUP1 at serializable isolation level using share table locking: 
+		Number of opens = 1
+		Hash table size = 4
+		Hash key is column number 3
+		Rows seen = 0
+		Rows filtered = 0
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+		scan information: 
+			Bit set of columns fetched={1, 3}
+			Number of columns fetched=2
+			Number of pages visited=770
+			Number of rows qualified=10000
+			Number of rows visited=10000
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			scan qualifiers:
+None
+			next qualifiers:
+Column[0][0] Id: 3
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on four, 10% of rows in TENKTUP2
+get cursor c as
+	'select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.four = TENKTUP2.four
+	and TENKTUP2.unique1 < 1000';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.four = TENKTUP2.four
+	and TENKTUP2.unique1 < 1000
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Hash Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Hash Scan ResultSet for TENKTUP1 at serializable isolation level using share table locking: 
+		Number of opens = 1
+		Hash table size = 4
+		Hash key is column number 3
+		Rows seen = 0
+		Rows filtered = 0
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+		scan information: 
+			Bit set of columns fetched={1, 3}
+			Number of columns fetched=2
+			Number of pages visited=770
+			Number of rows qualified=10000
+			Number of rows visited=10000
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			scan qualifiers:
+None
+			next qualifiers:
+Column[0][0] Id: 3
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on four, 5% of rows in TENKTUP2
+get cursor c as
+	'select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.four = TENKTUP2.four
+	and TENKTUP2.unique1 < 500';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.four = TENKTUP2.four
+	and TENKTUP2.unique1 < 500
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Hash Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Hash Scan ResultSet for TENKTUP1 at serializable isolation level using share table locking: 
+		Number of opens = 1
+		Hash table size = 4
+		Hash key is column number 3
+		Rows seen = 0
+		Rows filtered = 0
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+		scan information: 
+			Bit set of columns fetched={1, 3}
+			Number of columns fetched=2
+			Number of pages visited=770
+			Number of rows qualified=10000
+			Number of rows visited=10000
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			scan qualifiers:
+None
+			next qualifiers:
+Column[0][0] Id: 3
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on four, 1% of rows in TENKTUP2
+get cursor c as
+	'select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.four = TENKTUP2.four
+	and TENKTUP2.unique1 < 100';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.four = TENKTUP2.four
+	and TENKTUP2.unique1 < 100
+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: 
+Project-Restrict ResultSet (5):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Hash Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 16
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=16
+				Number of rows visited=16
+				Scan type=btree
+				Tree height=2
+				start position: 
+	None
+				stop position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Hash Scan ResultSet for TENKTUP1 at serializable isolation level using share table locking: 
+		Number of opens = 1
+		Hash table size = 4
+		Hash key is column number 3
+		Rows seen = 0
+		Rows filtered = 0
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+		scan information: 
+			Bit set of columns fetched={1, 3}
+			Number of columns fetched=2
+			Number of pages visited=770
+			Number of rows qualified=10000
+			Number of rows visited=10000
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			scan qualifiers:
+None
+			next qualifiers:
+Column[0][0] Id: 3
+Operator: =
+Ordered nulls: false
+Unknown return value: false
+Negate comparison result: false
+ij> commit;
+ij> -- Join on four, 1 row in TENKTUP2
+get cursor c as
+	'select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.four = TENKTUP2.four
+	and TENKTUP2.unique1 = 0';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.four = TENKTUP2.four
+	and TENKTUP2.unique1 = 0
+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: 
+Project-Restrict ResultSet (6):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Nested Loop Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Index Row to Base Row ResultSet for TENKTUP2:
+		Number of opens = 1
+		Rows seen = 1
+		Columns accessed from heap = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP2 using index TK2UNIQUE1 at serializable isolation level using share row locking chosen by the optimizer
+			Number of opens = 1
+			Rows seen = 1
+			Rows filtered = 0
+			Fetch Size = 1
+				constructor time (milliseconds) = 0
+				open time (milliseconds) = 0
+				next time (milliseconds) = 0
+				close time (milliseconds) = 0
+				next time in milliseconds/row = 0
+			scan information: 
+				Bit set of columns fetched=All
+				Number of columns fetched=2
+				Number of deleted rows visited=0
+				Number of pages visited=2
+				Number of rows qualified=1
+				Number of rows visited=1
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+0 
+				qualifiers:
+None
+	Right result set:
+		Index Row to Base Row ResultSet for TENKTUP1:
+		Number of opens = 1
+		Rows seen = 0
+		Columns accessed from heap = {1, 3}
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			Index Scan ResultSet for TENKTUP1 using index TK1FOUR at serializable 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 deleted rows visited=0
+				Number of pages visited=0
+				Number of rows qualified=0
+				Number of rows visited=0
+				Scan type=btree
+				Tree height=2
+				start position: 
+	>= on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				stop position: 
+	> on first 1 column(s).
+	Ordered null semantics on the following columns: 
+				qualifiers:
+None
+ij> commit;
+ij> -- Joins on ten
+----- Join on ten, all rows in TENKTUP2
+get cursor c as
+	'select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.ten = TENKTUP2.ten';
+ij> close c;
+ij> values SYSCS_UTIL.SYSCS_GET_RUNTIMESTATISTICS();
+1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
+-----
+Statement Name: 
+	SQL_CURSH200C1
+Statement Text: 
+	select TENKTUP1.unique2, TENKTUP2.* from TENKTUP1, TENKTUP2
+	where TENKTUP1.ten = TENKTUP2.ten
+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: 
+Project-Restrict ResultSet (4):
+Number of opens = 1
+Rows seen = 0
+Rows filtered = 0
+restriction = false
+projection = true
+	constructor time (milliseconds) = 0
+	open time (milliseconds) = 0
+	next time (milliseconds) = 0
+	close time (milliseconds) = 0
+	restriction time (milliseconds) = 0
+	projection time (milliseconds) = 0
+Source result set:
+	Hash Join ResultSet:
+	Number of opens = 1
+	Rows seen from the left = 1
+	Rows seen from the right = 0
+	Rows filtered = 0
+	Rows returned = 0
+		constructor time (milliseconds) = 0
+		open time (milliseconds) = 0
+		next time (milliseconds) = 0
+		close time (milliseconds) = 0
+	Left result set:
+		Table Scan ResultSet for TENKTUP2 at serializable isolation level using share table locking chosen by the optimizer
+		Number of opens = 1
+		Rows seen = 1
+		Rows filtered = 0
+		Fetch Size = 16
+			constructor time (milliseconds) = 0
+			open time (milliseconds) = 0
+			next time (milliseconds) = 0
+			close time (milliseconds) = 0
+			next time in milliseconds/row = 0
+		scan information: 
+			Bit set of columns fetched=All
+			Number of columns fetched=16
+			Number of pages visited=2
+			Number of rows qualified=16
+			Number of rows visited=16
+			Scan type=heap
+			start position: 
+null			stop position: 
+null			qualifiers:
+None
+	Right result set:
+		Hash Scan ResultSet for TENKTUP1 at serializable isolation level using share table locking: 
+		Nu