[
https://issues.apache.org/jira/browse/DDLUTILS-161?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12479308
]
Richard Bounds commented on DDLUTILS-161:
-----------------------------------------
I'm actually using Hibernate to access the database, but I think the attached
unit test reproduces the problem more simply with plain JDBC - it creates a
table, inserts a row with a blob, copies the blob to a new row, then deletes
the table. When the table has a column of type OID, everything seems fine. When
it is BYTEA I get the following exception:
org.postgresql.util.PSQLException: ERROR: column "photo" is of type bytea but
expression is of type integer
at
org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1525)
at
org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1309)
at
org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:188)
at
org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452)
at
org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:354)
at
org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:308)
at TestPostgresBlob.testBlob(TestPostgresBlob.java:69)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at junit.framework.TestCase.runTest(TestCase.java:164)
at junit.framework.TestCase.runBare(TestCase.java:130)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:120)
at junit.framework.TestSuite.runTest(TestSuite.java:230)
at junit.framework.TestSuite.run(TestSuite.java:225)
For some reason I can reproduce this with either set of Drivers - I guess
perhaps Hibernate is doing something to detect the V7 drivers.
> PostgreSQL Blob type mapping should be OID in v8
> ------------------------------------------------
>
> Key: DDLUTILS-161
> URL: https://issues.apache.org/jira/browse/DDLUTILS-161
> Project: DdlUtils
> Issue Type: Bug
> Components: Core - PostgreSql
> Environment: PostgreSQL 8.1.8 on Fedora core 6 (i386).
> Reporter: Richard Bounds
> Assigned To: Thomas Dudziak
>
> For PostgreSQL v8 JDBC drivers the blob type maps to OID, not BYTEA:
> from here: http://doc.postgresintl.com/jdbc/ch08.html
> "....To use the Large Object functionality you can use either the
> LargeObject class provided by the PostgreSQLâ„¢ JDBC driver, or by using the
> getBLOB() and setBLOB() methods...."
> When using PostgreSQL (v7 or v8) with the v7 JDBC drivers BYTEA works fine,
> but with the v8 drivers you get an error message:
> ERROR: column "binvalue" is of type bytea but expression is of type oid
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.