BLOB support is broken in the 7.2/7.3 JDBC driver, works in 7.1 driver
От | Marc Lavergne |
---|---|
Тема | BLOB support is broken in the 7.2/7.3 JDBC driver, works in 7.1 driver |
Дата | |
Msg-id | 3C6A11F1.2030008@richlava.com обсуждение исходный текст |
Список | pgsql-bugs |
(NOTE: This is a report ... my cut-and-paste went a little haywire on the last one.) BLOB support is broken in the 7.2/7.3 JDBC driver, works in 7.1 driver though. Basically, returns an error like the following on executeUpdate(): java.sql.SQLException: ERROR: oidin: error in "x": can't parse "x" Fails on any file. In this case, I created a 1 byte file with the character 'x' in it. I'm on Linux 2.4.16 using JDK 1.4.0 but it fails in 1.3.1 as well. Here's a quick reproducible test case: -- start -- package sample.java.jdbc; import java.sql.*; import java.io.*; import java.util.*; class testBlob { public static void main(String args[]) { new testBlob(); System.exit(0); } public testBlob() { System.out.println("Let's begin the test ..."); String v_username = "postgre"; String v_password = "postgre"; String v_database = "jdbc:postgresql://127.0.0.1/TEST"; PreparedStatement v_pstmt = null; try { DriverManager.registerDriver(new org.postgresql.Driver()); Connection v_conn = DriverManager.getConnection( v_database, v_username, v_password); v_conn.setAutoCommit(false); File v_file = new File("/home/postgre/something.jpg"); FileInputStream v_fis = new FileInputStream(v_file); v_pstmt = v_conn.prepareStatement( "insert into lob_test (id,data) values (?,?)"); v_pstmt.setInt(1,2); v_pstmt.setBinaryStream(2,v_fis,(int)v_file.length()); System.out.println("now you see me"); v_pstmt.executeUpdate(); System.out.println("now you don't"); v_conn.commit(); v_fis.close(); v_pstmt.close(); } catch (IOException e_io) { System.out.println(e_io); } catch (SQLException e_sql) { System.out.println(e_sql); } System.out.println("You'll only get here with the 7.1 driver!"); } } -- end -- 01010101010101010101010101010101010101010101010101 Marc P. Lavergne [wk:407-648-6996] Product Development richLAVA Corporation -- "Anyone who slaps a 'this page is best viewed with Browser X' label on a Web page appears to be yearning for the bad old days, before the Web, when you had very little chance of reading a document written on another computer, another word processor, or another network." -Tim Berners-Lee (Technology Review, July 1996) 01010101010101010101010101010101010101010101010101
В списке pgsql-bugs по дате отправления: