mirror of https://github.com/postgres/postgres
parent
e9aec81792
commit
b9deede241
@ -1,99 +1,80 @@ |
|||||||
package org.postgresql.test.jdbc2; |
package org.postgresql.test.jdbc2; |
||||||
|
|
||||||
import org.postgresql.test.TestUtil; |
import org.postgresql.test.TestUtil; |
||||||
import junit.framework.TestCase; |
import junit.framework.TestCase; |
||||||
import java.io.*; |
import java.io.*; |
||||||
import java.sql.*; |
import java.sql.*; |
||||||
|
|
||||||
import java.io.ByteArrayInputStream; |
import java.io.ByteArrayInputStream; |
||||||
import java.io.InputStream; |
import java.io.InputStream; |
||||||
import java.sql.*; |
import java.util.Properties; |
||||||
|
import java.sql.*; |
||||||
/** |
|
||||||
* User: alexei |
/** |
||||||
* Date: 17-Dec-2003 |
* User: alexei |
||||||
* Time: 11:01:44 |
* Date: 17-Dec-2003 |
||||||
* @version $Id: OID74Test.java,v 1.2 2003/12/17 15:45:05 davec Exp $ |
* 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 class OID74Test extends TestCase |
||||||
private Connection con; |
{ |
||||||
|
|
||||||
|
public OID74Test( String name ) |
||||||
public OID74Test( String name ) |
{ |
||||||
{ |
super(name); |
||||||
super(name); |
} |
||||||
} |
public void setUp() throws Exception |
||||||
public void setUp() throws Exception |
{ |
||||||
{ |
} |
||||||
} |
public void tearDown() throws Exception |
||||||
public void tearDown() throws Exception |
{ |
||||||
{ |
} |
||||||
} |
public void testBinaryStream() throws SQLException |
||||||
public void testBinaryStream() |
{ |
||||||
{ |
//set up conection here
|
||||||
//set up conection here
|
Properties props = new Properties(); |
||||||
Connection c = null; |
props.setProperty("compatible","7.1"); |
||||||
|
Connection c = TestUtil.openDB(props); |
||||||
Statement st = null; |
c.setAutoCommit(false); |
||||||
try |
|
||||||
{ |
TestUtil.createTable(c,"temp","col oid"); |
||||||
c = DriverManager.getConnection("jdbc:postgresql://localhost/test?compatible=7.1&user=test"); |
|
||||||
c.setAutoCommit(false); |
Statement st = null; |
||||||
st = c.createStatement(); |
|
||||||
st.execute("CREATE temp TABLE temp (col oid)"); |
PreparedStatement pstmt = null; |
||||||
} |
try |
||||||
catch (SQLException e) |
{ |
||||||
{ |
|
||||||
//another issue: when connecting to 7.3 database and this exception occurs because the table already exists,
|
pstmt = c.prepareStatement("INSERT INTO temp VALUES (?)"); |
||||||
//st.setBinaryStream throws internal error in LargeObjectManager initialisation code
|
pstmt.setBinaryStream(1, new ByteArrayInputStream(new byte[]{1, 2, 3, 4, 5}), 5); |
||||||
fail("table creating error, probably already exists, code=" + e.getErrorCode()); |
assertTrue( (pstmt.executeUpdate() == 1) ); |
||||||
} |
pstmt.close(); |
||||||
finally |
|
||||||
{ |
pstmt = c.prepareStatement("SELECT col FROM temp LIMIT 1"); |
||||||
try{ if (st != null) st.close(); }catch(SQLException ex){}; |
ResultSet rs = pstmt.executeQuery(); |
||||||
} |
|
||||||
|
assertTrue("No results from query", rs.next() ); |
||||||
PreparedStatement pstmt = null; |
|
||||||
try |
InputStream in = rs.getBinaryStream(1); |
||||||
{ |
int data; |
||||||
|
int i = 1; |
||||||
pstmt = c.prepareStatement("INSERT INTO temp VALUES (?)"); |
while ((data = in.read()) != -1) |
||||||
//in case of 7.4 server, should block here
|
assertEquals(data,i++); |
||||||
pstmt.setBinaryStream(1, new ByteArrayInputStream(new byte[]{1, 2, 3, 4, 5}), 5); |
rs.close(); |
||||||
assertTrue( (pstmt.executeUpdate() == 1) ); |
pstmt.close(); |
||||||
pstmt.close(); |
c.createStatement().executeUpdate("DELETE FROM temp"); |
||||||
|
c.commit(); |
||||||
pstmt = c.prepareStatement("SELECT col FROM temp LIMIT 1"); |
} |
||||||
ResultSet rs = pstmt.executeQuery(); |
catch ( IOException ioex ) |
||||||
|
{ |
||||||
assertTrue("No results from query", rs.next() ); |
fail( ioex.getMessage() ); |
||||||
|
} |
||||||
//in case of 7.4 server, should block here
|
catch (SQLException ex) |
||||||
InputStream in = rs.getBinaryStream(1); |
{ |
||||||
int data; |
fail( ex.getMessage() ); |
||||||
while ((data = in.read()) != -1) |
} |
||||||
System.out.println(data); |
|
||||||
rs.close(); |
TestUtil.dropTable(c,"temp"); |
||||||
st.close(); |
TestUtil.closeDB(c); |
||||||
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){} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
|
Loading…
Reference in new issue