mirror of https://github.com/postgres/postgres
parent
e9aec81792
commit
b9deede241
@ -1,99 +1,80 @@ |
||||
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 2003/12/17 15:45:05 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){} |
||||
} |
||||
} |
||||
} |
||||
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.3 2003/12/18 04:08:30 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) |
||||
{ |
||||
fail( ex.getMessage() ); |
||||
} |
||||
|
||||
TestUtil.dropTable(c,"temp"); |
||||
TestUtil.closeDB(c); |
||||
} |
||||
} |
||||
|
Loading…
Reference in new issue