This patch is committed.
Satheesh
Sending
java\engine\org\apache\derby\impl\sql\execute\ScrollInsensitiveResultSet.java
Adding
java\testing\org\apache\derbyTesting\functionTests\master\testRelative.out
Sending
java\testing\org\apache\derbyTesting\functionTests\suites\jdbcapi.runall
Adding
java\testing\org\apache\derbyTesting\functionTests\tests\jdbcapi\testRelative.java
Transmitting file data ....
Committed revision 160247.
Shreyas Kaushik wrote:
> Did anyone get a chance to look at this and commit it?
>
> ~ Shreyas
>
> Shreyas Kaushik wrote:
>
>> Attached the latest patch. This addition to this patch from the old
>> one is that I have added the test
>> in the jdbcapi.runall file for it to run in both Embedded and Network
>> Server mode.
>>
>> ~ Shreyas
>>
>> Shreyas Kaushik wrote:
>>
>>> Hi Mamta,
>>>
>>> Thanks for all the info. This definitely gave more insight into this
>>> test framework.
>>> I recently submitted a patch for Derby-174 and Derby-175 for which I
>>> have just submitted a
>>> patch for for jdbcapi.runall file. After that gets in I will
>>> definitely add this one as well
>>> and submit all of it in a fresh patch. I am waiting for that to go
>>> in as there could be conflicts
>>> in the jdbcapi.runall file.
>>>
>>> ~ Shreyas
>>>
>>> Mamta Satoor wrote:
>>>
>>>> On Tue, 29 Mar 2005 22:45:24 +0530, Shreyas Kaushik
>>>> <[EMAIL PROTECTED]> wrote:
>>>>
>>>>
>>>>> Hi Mamta,
>>>>>
>>>>> Thanks for all the info.
>>>>> From this I see that adding it in jdbcapi will run in both
>>>>> embedded and
>>>>> netwrok server mode.
>>>>> Should I add some properties file specifically for my test?
>>>>> I'm sorry I ask this again, I'm not clear what changes I have to
>>>>> do to
>>>>> my patch ?
>>>>>
>>>>> ~ Shreyas
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Hi Shreyas,
>>>>
>>>> You will see that each of the directories under functionTests/tests
>>>> have their own default properties file. If a newly added test does not
>>>> have a test specific properties file, then the default properties file
>>>> gets picked up. For eg, test declareGlobalTempTableJavaJDBC30.java has
>>>> its own properties file because we do not want the test to be run with
>>>> some jdks and we speify that
>>>> declareGlobalTempTableJavaJDBC30_app.properties. Since the test you
>>>> are adding has no special requirements, you donot need a properties
>>>> file for it and harness will automatically use the default properties
>>>> file for your test.
>>>>
>>>> Feel free to ask more questions if you have any. Since I have been
>>>> working on this test harness for so long, I might not be visualizing
>>>> some questions that a new developer might have.
>>>>
>>>> thanks,
>>>> Mamta
>>>>
>>>>
>> ------------------------------------------------------------------------
>>
>> Index:
>> java/engine/org/apache/derby/impl/sql/execute/ScrollInsensitiveResultSet.java
>>
>> ===================================================================
>> ---
>> java/engine/org/apache/derby/impl/sql/execute/ScrollInsensitiveResultSet.java
>>
>> (revision 159474)
>> +++
>> java/engine/org/apache/derby/impl/sql/execute/ScrollInsensitiveResultSet.java
>>
>> (working copy)
>> @@ -750,6 +750,7 @@
>> else
>> {
>> afterLast = true;
>> + currentPosition = positionInSource + 1;
>> }
>> }
>>
>> Index:
>> java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/testRelative.java
>>
>> ===================================================================
>> ---
>> java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/testRelative.java
>>
>> (revision 0)
>> +++
>> java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/testRelative.java
>>
>> (revision 0)
>> @@ -0,0 +1,98 @@
>> +package org.apache.derbyTesting.functionTests.tests.jdbcapi;
>> +
>> +
>> +import java.sql.*;
>> +
>> +import org.apache.derby.tools.ij;
>> +import org.apache.derby.tools.JDBCDisplayUtil;
>> +
>> +public class testRelative {
>> + public static void main(String[] args) {
>> + test1(args); + }
>> + + public static void test1(String []args) {
>> + Connection con;
>> + ResultSet rs;
>> + PreparedStatement stmt = null;
>> + PreparedStatement pStmt = null;
>> + Statement stmt1 = null;
>> + String returnValue = null;
>> +
>> + System.out.println("Test testRelative starting");
>> +
>> + try
>> + {
>> + // use the ij utility to read the property
>> file and
>> + // make the initial connection.
>> + ij.getPropertyArg(args);
>> + con = ij.startJBMS();
>> +
>> +
>> con.setAutoCommit(false);
>> + + stmt =
>> con.prepareStatement("create table testRelative(name varchar(10), i
>> int)");
>> + stmt.executeUpdate();
>> + con.commit();
>> +
>> + pStmt = con.prepareStatement("insert into
>> testRelative values (?,?)");
>> +
>> + pStmt.setString(1,"work1");
>> + pStmt.setNull(2,1);
>> + pStmt.addBatch();
>> +
>> + pStmt.setString(1,"work2");
>> + pStmt.setNull(2,2);
>> + pStmt.addBatch();
>> +
>> + pStmt.setString(1,"work3");
>> + pStmt.setNull(2,3);
>> + pStmt.addBatch();
>> +
>> + pStmt.setString(1,"work4");
>> + pStmt.setNull(2,4);
>> + pStmt.addBatch();
>> +
>> +
>> + pStmt.executeBatch();
>> + con.commit();
>> +
>> + stmt1 =
>> con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
>>
>> + rs = stmt1.executeQuery("select * from
>> testRelative");
>> +
>> + rs.next(); // First Record
>> + returnValue = rs.getString("name");
>> + System.out.println("Value="+returnValue);
>> +
>> + rs.relative(2);
>> + System.out.println("isFirst=" + rs.isFirst() + "
>> isLast=" + rs.isLast() + " isAfterLast=" + rs.isAfterLast());
>> + returnValue = rs.getString("name");
>> + System.out.println("Value="+returnValue);
>> +
>> + rs.relative(-2);
>> + returnValue = rs.getString("name");
>> + System.out.println("Value="+returnValue);
>> +
>> + rs.relative(10);
>> + System.out.println("isFirst=" + rs.isFirst() + "
>> isLast=" + rs.isLast() + " isAfterLast=" + rs.isAfterLast());
>> +
>> + returnValue = rs.getString("name");
>> + System.out.println("Value="+returnValue);
>> +
>> + } catch(SQLException sqle) {
>> + dumpSQLExceptions(sqle);
>> + sqle.printStackTrace();
>> + } catch(Throwable e) {
>> + System.out.println("FAIL -- unexpected exception: "+e);
>> + e.printStackTrace();
>> +
>> + }
>> + }
>> + + static private void dumpSQLExceptions (SQLException se) {
>> + System.out.println("FAIL -- unexpected exception");
>> + while (se != null) {
>> +
>> System.out.println("SQLSTATE("+se.getSQLState()+"): "+se);
>> + se = se.getNextException();
>> + }
>> + }
>> +}
>> \ No newline at end of file
>> Index:
>> java/testing/org/apache/derbyTesting/functionTests/master/testRelative.out
>>
>> ===================================================================
>> ---
>> java/testing/org/apache/derbyTesting/functionTests/master/testRelative.out
>> (revision 0)
>> +++
>> java/testing/org/apache/derbyTesting/functionTests/master/testRelative.out
>> (revision 0)
>> @@ -0,0 +1,9 @@
>> +Test testRelative starting
>> +Value=work1
>> +isFirst=false isLast=false isAfterLast=false
>> +Value=work3
>> +Value=work1
>> +isFirst=false isLast=false isAfterLast=true
>> +FAIL -- unexpected exception
>> +SQLSTATE(24000): SQL Exception: Invalid cursor state - no current row.
>> +SQL Exception: Invalid cursor state - no current row.
>> Index:
>> java/testing/org/apache/derbyTesting/functionTests/suites/jdbcapi.runall
>> ===================================================================
>> ---
>> java/testing/org/apache/derbyTesting/functionTests/suites/jdbcapi.runall
>> (revision 159474)
>> +++
>> java/testing/org/apache/derbyTesting/functionTests/suites/jdbcapi.runall
>> (working copy)
>> @@ -14,4 +14,5 @@
>> jdbcapi/parameterMapping.java
>> jdbcapi/setTransactionIsolation.java
>> jdbcapi/prepStmtNull.java
>> +jdbcapi/testRelative.java
>>
>>
>>
>
>
>