Issue Details (XML | Word | Printable)

Key: OPENJPA-308
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Unassigned
Reporter: Patrick Linskey
Votes: 0
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
OpenJPA

Postgres: bytea vs. oid handling in PreparedStatement.setNull() calls

Created: 07/Aug/07 12:15 AM   Updated: 12/Apr/08 01:57 PM
Return to search
Component/s: jdbc
Affects Version/s: 0.9.0, 0.9.6, 0.9.7
Fix Version/s: 1.0.0

Time Tracking:
Not Specified

Environment: Postgres 8.1 driver, Postgres 8.2 database
Issue Links:
Cloners
 

Resolution Date: 07/Aug/07 04:55 PM


 Description  « Hide
I'm seeing the following error when running against Postgres. This is solved by intercepting the DBDictionary.setNull() call and replacing Types.BLOB with Types.BINARY.


Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: ERROR: column "image" is of type bytea but expression is of type oid {prepstmnt 33517025 INSERT INTO LAZ_Product (id, image, name, price) VALUES (?, ?, ?, ?) [params=(long) 1186442009345, (null) null, (String) Browser Spiffer-Upper, (float) 31.5]} [code=0, state=42804]
at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192)
at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$800(LoggingConnectionDecorator.java:57)
at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:858)
at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1363)
at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:95)
... 39 more

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Vincent ASTRUC added a comment - 20/Mar/08 09:01 PM
I have this error with version 1.0.2 and Postgre 8.2 :

org.apache.openjpa.lib.jdbc.ReportingSQLException: ERROR: column "administrateddata" is of type bytea but expression is of type oid {prepstmnt 25070683 INSERT INTO USERS (OID, ADMINISTRATEDDATA, CLASSIFICATION, LOGIN, MODIFICATIONDATETIME, PASSWORD, PREFERENCES, PREFERENCESDATETIME, ROLE, JDOCLASS, JDOVERSION) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [params=(long) 1002865354472414137, (null) null, (null) null, (String) test, (null) null, (null) null, (null) null, (null) null, (String) Default, (String) com.thalesgroup.isr.common.mdd.TypeUsersImpl, (int) 1]} [code=0, state=42804]
at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:191)
at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$800(LoggingConnectionDecorator.java:56)
at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:857)
at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1363)