Array of compound not supported?

From: RW Shore <rws228(at)gmail(dot)com>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Array of compound not supported?
Date: 2011-02-19 23:02:23
Message-ID: AANLkTi=Lhdc6GvRZOZOkW4cxKdZtFjN2dmQrbWdJZiiA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

I have a compound type defined as

CREATE TYPE typedef.DECLASS_REASON_ENTRY AS (
ENTRY_REASON VARCHAR(80),
AUTHORIZING_USER VARCHAR(20)
)

and a table defined as

create table table102 (field1 typedef.declass_reason_entry[] )

The following statement works:

insert into table102(field1) values
('{"(\\"abcdef\\",\\"ghijkl\\")","(\\"abcdef\\",\\"ghijkl\\")"}')

Consider the following prepared statement:

insert into table102 (field1) values (?)

If I use setString() on this prepared statement, execution throws a variant
of illegal type (complains about the parameter being a char varying when it
wants something else). If I use setObject() and pass it a java.sql.Array
implementation that wraps this same string, I get a malformed array literal
error.Note that the same code works fine with arrays of all the built-in
types, including point. No matter what I do, I can't insert into the array
of compound from my app.

Anybody have any suggestions, or is array of compound simply not supported
via a prepared statement?

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Lukas Eder 2011-02-20 10:42:45 Re: Array of compound not supported?
Previous Message Radosław Smogura 2011-02-19 10:47:24 Re: PGXAConnection and autocommit problem