Обсуждение: SQLException: Cannot be less than zero

Поиск
Список
Период
Сортировка

SQLException: Cannot be less than zero

От
Дата:
Hi,
  
I use PostgreSQL 8.0.3 and following associated drivers : 
  
postgresql-8.0-311.jdbc2.jar
postgresql-8.0-311.jdbc2ee.jar
postgresql-8.0-311.jdbc3.jar
 
I want to use CachedRowSetImpl to populate one row in the following table :
 
CREATE TABLE "Form2"
(
    form2member3 int4,
    form2member5 int8[],
)
WITHOUT OIDS;

The second column (an array of bigint)  seems to cause the following
exception when try to populate :
 
java.sql.SQLException: Invalid column display size. Cannot be less than zero
at javax.sql.rowset.RowSetMetaDataImpl.setColumnDisplaySize(RowSetMetaDataImpl.java:267)
at com.sun.rowset.CachedRowSetImpl.initMetaData(CachedRowSetImpl.java:679)
at com.sun.rowset.CachedRowSetImpl.populate(CachedRowSetImpl.java:597)
at com.sun.rowset.internal.CachedRowSetReader.readData(CachedRowSetReader.java:170)
at com.sun.rowset.CachedRowSetImpl.execute(CachedRowSetImpl.java:736)
at ...
at MainTester.main(MainTester.java:41)
  
 
After reading the only few related subjects, I can't find any
solution that I be able to use.
(Nebojsa Vasiljevic made a patch but didn't say how to do it ...)

Has someone yet met and solved this unexpected problem (even momently) ?
Otherwise, Is there another way to deal with variable-length lists  ?

Re: SQLException: Cannot be less than zero

От
Kris Jurka
Дата:

On Wed, 13 Jul 2005 xavier.marquis@cegetel.net wrote:

> I use PostgreSQL 8.0.3 and I want to use CachedRowSetImpl to populate
> one row in the following table :
>
> CREATE TABLE "Form2"
> (
>     form2member3 int4,
>     form2member5 int8[],
> )
>
> The second column (an array of bigint)  seems to cause the following
> exception when try to populate :
>
> java.sql.SQLException: Invalid column display size. Cannot be less than zero
> at javax.sql.rowset.RowSetMetaDataImpl.setColumnDisplaySize(RowSetMetaDataImpl.java:267)
>
> Has someone yet met and solved this unexpected problem (even momently) ?
> Otherwise, Is there another way to deal with variable-length lists  ?

This is a known problem with any variable length data.  The postgresql
JDBC driver returns -1 to indicate that the display size is unknown which
the RowSet implementation doesn't seem to like.  People have modified the
driver to return 0 in this situation and that allows the rowset to work,
but I don't think it's the right thing to do.  In the past someone from
Sun said they'd look into what we should be doing but they never got back
to us.

Kris Jurka