/*
* Copyright (c) 2004, PostgreSQL Global Development Group
* See the LICENSE file in the project root for more information.
*/
package org.postgresql.test.jdbc3;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import org.postgresql.test.TestUtil;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ResultSetTest {
private Connection _conn;
@Before
public void setUp() throws Exception {
_conn = TestUtil.openDB();
Statement stmt = _conn.createStatement();
stmt.execute("CREATE TEMP TABLE hold(a int)");
stmt.execute("INSERT INTO hold VALUES (1)");
stmt.execute("INSERT INTO hold VALUES (2)");
stmt.close();
}
@After
public void tearDown() throws SQLException {
Statement stmt = _conn.createStatement();
stmt.execute("DROP TABLE hold");
stmt.close();
TestUtil.closeDB(_conn);
}
@Test
public void testHoldableResultSet() throws SQLException {
Statement stmt = _conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY,
ResultSet.HOLD_CURSORS_OVER_COMMIT);
_conn.setAutoCommit(false);
stmt.setFetchSize(1);
ResultSet rs = stmt.executeQuery("SELECT a FROM hold ORDER BY a");
assertTrue(rs.next());
assertEquals(1, rs.getInt(1));
_conn.commit();
assertTrue(rs.next());
assertEquals(2, rs.getInt(1));
assertTrue(!rs.next());
rs.close();
stmt.close();
}
}