Re: Again the JSCreator and Metadata issues - Mailing list pgsql-jdbc

From pedro farinha
Subject Re: Again the JSCreator and Metadata issues
Date
Msg-id 1132360517.3913.38.camel@localhost.localdomain
Whole thread Raw
In response to Re: Again the JSCreator and Metadata issues  (Kris Jurka <books@ejurka.com>)
List pgsql-jdbc
Hi Kris,
I have made a new post into the creator Feedback program, referring you're assumptions and solutions. Lets see if we can get any news from them before doing the changes, if any.
I haven't tried it yet but I will try to verify that the problem is really related with "variable size fields". If it is we can always say "in order to use creator you must not use variable size fields".
I will try to test with a table with all fields with fixed size, then with fields with variable size and see what I'll hit.
On my post to the feedback program I raised the question of int.MAX_VALUE and what would be the impact of it. I also suggested a "default value" which while not correct may not impact much into the real implementation and also the magic number "0". What does it mean when you have a column with size = 0? . As you can see I am not very familiar with DB structures at all, thus the probably stupid question, what is the size of a "blob" column ? can it be fixed?.

thanks for you're help.


On Fri, 2005-11-18 at 18:41, Kris Jurka wrote:
On Thu, 17 Nov 2005, pedro farinha wrote:

> I am testing the new JSC2 early access and I come across a old 
> problem....getResultMetaData null values (I think). In JSC 1 the driver 
> works fine but on this early access version it doesn't. I am posting 
> what I think is relevant of the trace. I am not sure if this is a issue 
> with the driver or the JSC it self so I am posting this into here as 
> well as into the EAfeedback program.
>
> java.lang.RuntimeException: java.sql.SQLException: Invalid column
> display size. Cannot be less than zero
> at
> com.sun.data.provider.impl.CachedRowSetDataProvider.getMetaData(CachedRowSetDataProvider.java:1299)

I believe you have a variable length field in your table.  Sun's 
CachedRowSet implementation examines the ResultSetMetaData and creates its 
own copy of it.  The postgresql JDBC driver returns -1 for 
ResultSetMetaData.getColumnDisplaySize() meaning unknown for variable 
length fields, like say a column of type "text".  Sun does not like this 
value and reports an error.  In the past we've tried to ask Sun for some 
advice in this area and got nothing in response.  Other than -1 the 
only other real defensible value for getColumnDisplaySize would 
probably be Integer.MAX_VALUE.  We've been concerned that GUIs would 
try to actually use this provided value and they would blow up, but 
the only complaints we've heard are from people disliking the -1 
value and this problem doesn't seem to be going away.

I suggest we try returning Integer.MAX_VALUE for a while and see what 
complaints we get.  Objections?

Kris Jurka

---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings

pgsql-jdbc by date:

Previous
From: Kris Jurka
Date:
Subject: Re: ResultSet.getObject returning PGobject
Next
From: Andres Olarte
Date:
Subject: Re: Deadlock problem