Re: ResultSetMetaData + CachedResultSet bug

From: Kris Jurka <books(at)ejurka(dot)com>
To: Sergii Sinelnychenko <SSinelnychenko(at)bossdev(dot)com>
Cc: Postgres-JDBC <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: ResultSetMetaData + CachedResultSet bug
Date: 2006-06-29 23:47:02
Message-ID: Pine.BSO.4.63.0606291837350.28844@leary2.csoft.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

On Thu, 22 Jun 2006, Sergii Sinelnychenko wrote:

> Today I have found a strange bug in JDBC driver (I used the last version
> avilable - 8.2dev-503). The problem is with VARCHAR fields - driver returns
> "-1" on "getPrecision()" call. But class javax.sql.rowset.RowSetMetaDataImpl
> in its "setPrecision()" method requires values of 0 and more (javadoc sais
> "precision the total number of decimal digits; must be <code>0</code> or more
> ").
> I understand that in case of VARCHAR type we cannot speak about real number
> of decimal digits - but could just driver return 0 instead of -1?

That certainly looks like a reasonable thing to do for text types. The
one case that needs a little more thinking about is a numeric field that
has neither precision nor scale supplied. For this we currently return -1
for both precision and scale. The maximum precision of a numeric is 1000
digits, so we could divy it up evenly and make an unadorned numeric be
returned as numeric(1000,500), but that seems a little too much like just
making things up. Thoughts?

Kris Jurka

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Yukino Miyazawa 2006-06-30 00:47:14 Utilizing executeBatch() with stored procedures
Previous Message Kris Jurka 2006-06-29 23:31:37 Re: Italian translation update