Index: src/interfaces/jdbc/org/postgresql/test/TestUtil.java =================================================================== RCS file: /projects/cvsroot/pgsql-server/src/interfaces/jdbc/org/postgresql/test/TestUtil.java,v retrieving revision 1.3.6.1 diff -c -r1.3.6.1 TestUtil.java *** src/interfaces/jdbc/org/postgresql/test/TestUtil.java 5 Dec 2003 21:06:12 -0000 1.3.6.1 --- src/interfaces/jdbc/org/postgresql/test/TestUtil.java 18 Dec 2003 00:04:11 -0000 *************** *** 2,7 **** --- 2,8 ---- import java.sql.*; import junit.framework.TestCase; + import java.util.Properties; /* * Utility class for JDBC tests *************** *** 61,70 **** */ public static java.sql.Connection openDB() { try { Class.forName("org.postgresql.Driver"); ! return java.sql.DriverManager.getConnection(getURL(), getUser(), getPassword()); } catch (ClassNotFoundException ex) { --- 62,82 ---- */ public static java.sql.Connection openDB() { + return openDB(new Properties()); + } + + /* + * Helper - opens a connection with the allowance for passing + * additional parameters, like "compatible". + */ + public static java.sql.Connection openDB(Properties props) + { + props.setProperty("user",getUser()); + props.setProperty("password",getPassword()); try { Class.forName("org.postgresql.Driver"); ! return java.sql.DriverManager.getConnection(getURL(), props); } catch (ClassNotFoundException ex) { Index: src/interfaces/jdbc/org/postgresql/test/jdbc2/OID74Test.java =================================================================== RCS file: /projects/cvsroot/pgsql-server/src/interfaces/jdbc/org/postgresql/test/jdbc2/OID74Test.java,v retrieving revision 1.2.2.1 diff -c -r1.2.2.1 OID74Test.java *** src/interfaces/jdbc/org/postgresql/test/jdbc2/OID74Test.java 17 Dec 2003 15:48:40 -0000 1.2.2.1 --- src/interfaces/jdbc/org/postgresql/test/jdbc2/OID74Test.java 18 Dec 2003 00:04:11 -0000 *************** *** 1,99 **** ! package org.postgresql.test.jdbc2; ! ! import org.postgresql.test.TestUtil; ! import junit.framework.TestCase; ! import java.io.*; ! import java.sql.*; ! ! import java.io.ByteArrayInputStream; ! import java.io.InputStream; ! import java.sql.*; ! ! /** ! * User: alexei ! * Date: 17-Dec-2003 ! * Time: 11:01:44 ! * @version $Id: OID74Test.java,v 1.2.2.1 2003/12/17 15:48:40 davec Exp $ ! */ ! public class OID74Test extends TestCase ! { ! private Connection con; ! ! ! public OID74Test( String name ) ! { ! super(name); ! } ! public void setUp() throws Exception ! { ! } ! public void tearDown() throws Exception ! { ! } ! public void testBinaryStream() ! { ! //set up conection here ! Connection c = null; ! ! Statement st = null; ! try ! { ! c = DriverManager.getConnection("jdbc:postgresql://localhost/test?compatible=7.1&user=test"); ! c.setAutoCommit(false); ! st = c.createStatement(); ! st.execute("CREATE temp TABLE temp (col oid)"); ! } ! catch (SQLException e) ! { ! //another issue: when connecting to 7.3 database and this exception occurs because the table already exists, ! //st.setBinaryStream throws internal error in LargeObjectManager initialisation code ! fail("table creating error, probably already exists, code=" + e.getErrorCode()); ! } ! finally ! { ! try{ if (st != null) st.close(); }catch(SQLException ex){}; ! } ! ! PreparedStatement pstmt = null; ! try ! { ! ! pstmt = c.prepareStatement("INSERT INTO temp VALUES (?)"); ! //in case of 7.4 server, should block here ! pstmt.setBinaryStream(1, new ByteArrayInputStream(new byte[]{1, 2, 3, 4, 5}), 5); ! assertTrue( (pstmt.executeUpdate() == 1) ); ! pstmt.close(); ! ! pstmt = c.prepareStatement("SELECT col FROM temp LIMIT 1"); ! ResultSet rs = pstmt.executeQuery(); ! ! assertTrue("No results from query", rs.next() ); ! ! //in case of 7.4 server, should block here ! InputStream in = rs.getBinaryStream(1); ! int data; ! while ((data = in.read()) != -1) ! System.out.println(data); ! rs.close(); ! st.close(); ! c.createStatement().executeUpdate("DELETE FROM temp"); ! c.commit(); ! } ! catch ( IOException ioex ) ! { ! fail( ioex.getMessage() ); ! } ! catch (SQLException ex) ! { ! fail( ex.getMessage() ); ! } ! finally ! { ! try ! { ! if ( c!=null) c.close(); ! } ! catch( SQLException e1){} ! } ! } ! } --- 1,81 ---- ! package org.postgresql.test.jdbc2; ! ! import org.postgresql.test.TestUtil; ! import junit.framework.TestCase; ! import java.io.*; ! import java.sql.*; ! ! import java.io.ByteArrayInputStream; ! import java.io.InputStream; ! import java.util.Properties; ! import java.sql.*; ! ! /** ! * User: alexei ! * Date: 17-Dec-2003 ! * Time: 11:01:44 ! * @version $Id: OID74Test.java,v 1.2.2.1 2003/12/17 15:48:40 davec Exp $ ! */ ! public class OID74Test extends TestCase ! { ! ! public OID74Test( String name ) ! { ! super(name); ! } ! public void setUp() throws Exception ! { ! } ! public void tearDown() throws Exception ! { ! } ! public void testBinaryStream() throws SQLException ! { ! //set up conection here ! Properties props = new Properties(); ! props.setProperty("compatible","7.1"); ! Connection c = TestUtil.openDB(props); ! c.setAutoCommit(false); ! ! TestUtil.createTable(c,"temp","col oid"); ! ! Statement st = null; ! ! PreparedStatement pstmt = null; ! try ! { ! ! pstmt = c.prepareStatement("INSERT INTO temp VALUES (?)"); ! pstmt.setBinaryStream(1, new ByteArrayInputStream(new byte[]{1, 2, 3, 4, 5}), 5); ! assertTrue( (pstmt.executeUpdate() == 1) ); ! pstmt.close(); ! ! pstmt = c.prepareStatement("SELECT col FROM temp LIMIT 1"); ! ResultSet rs = pstmt.executeQuery(); ! ! assertTrue("No results from query", rs.next() ); ! ! InputStream in = rs.getBinaryStream(1); ! int data; ! int i = 1; ! while ((data = in.read()) != -1) ! assertEquals(data,i++); ! rs.close(); ! pstmt.close(); ! c.createStatement().executeUpdate("DELETE FROM temp"); ! c.commit(); ! } ! catch ( IOException ioex ) ! { ! fail( ioex.getMessage() ); ! } ! catch (SQLException ex) ! { ! ex.printStackTrace(); ! fail( ex.getMessage() ); ! } ! ! TestUtil.dropTable(c,"temp"); ! TestUtil.closeDB(c); ! } ! }