db-ddlutils-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Richard Bounds (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DDLUTILS-161) PostgreSQL Blob type mapping should be OID in v8
Date Thu, 08 Mar 2007 13:36:24 GMT

    [ 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.


Mime
View raw message