From: Dave Del Signore <dave@narnia.toledo.oh.us>
To: pgsql-interfaces@postgresql.org
Subject: JDBC - Numeric & Decimal handling in 6.5.3?
Date: Sat, 19 Feb 2000 14:25:08 -0500
Message-ID: <38AEEE13.777D7844@narnia.toledo.oh.us> (raw)
Hi,
I've noticed that the numeric/decimal handling in the stock 6.5.3 driver
is still not functional. Is work in progress on this one? I think I've
been able to patch the driver up to support these types. In addition,
I've fixed some other unimplemented functions. I also moved a few
functions from the ResultSetMetaData class to the Field class, as it
seemed the more appropriate place for them, and so that I might cache
some of the field's properties instead of doing lookups each time.
This is the first time I've ever posted a patch to a major project.
Please forgive me (and let me know) if I've committed any breaches of
etiquette, or done anything else improperly.
The patch is available at:
http://www.narnia.toledo.oh.us/downloads/jdbc.patch.gz.
The patch should be applied from the interfaces/jdbc directory.
Here's a list of the things I've done:
postgresql.jdbc[12].DatabaseMetaData.getColumns()
fixed Numeric Size and Decimal Digits handling
postgresql.jdbc[12].ResultSetMetaData.isCaseSensitive()
added handling to return appropriate values for numeric & decimal
types.
postgresql.jdbc[12].ResultSetMetaData.isSigned()
added handling to return appropriate values for numeric & decimal
types.
postgresql.jdbc[12].ResultSetMetaData.getPrecision()
now returns postgresql.Field.getPrecision()
postgresql.jdbc[12].ResultSetMetaData.getScale()
now returns postgresql.Field.getScale()
postgresql.jdbc[12].ResultSetMetaData.getTableName()
now returns postgresql.Field.getTableName()
postgresql.jdbc2.ResultSet.next()
sets this_row to null when we've moved past the last row
postgresql.jdbc2.ResultSet.afterLast()
sets this_row to null and current_row to 1 past the last row's index
postgresql.jdbc2.ResultSet.getBigDecimal(int column)
returns the appropriate value. Currently does not force the scale
to the value
specified by the row's metadata.
postgresql.jdbc2.ResultSet.getBigDecimal(String columnName)
returns postgresql.jdbc2.ResultSet.getBigDecimal(int column)
postgresql.jdbc2.ResultSet.isBeforeFirst()
postgresql.jdbc2.ResultSet.isFirst()
postgresql.jdbc2.ResultSet.isLast()
postgresql.jdbc2.ResultSet.isAfterLast()
returns the appropriate value, by comparing current_row to the size
of the row array
postgresql.Field.types[]
added numeric and decimal
postgresql.Field.typei[]
added java.sql.Types.NUMERIC and DECIMAL
postgresql.Field.typei[]
postgresql.Field.getDetails()
method to determine whether we've got the ResultSet's metadata
cached, and get it if not.
postgresql.Field.cacheDetails()
method to query the field's metadata and cache the results
postgresql.Field.getTableName()
returns the field's table name.
postgresql.Field.getAtttypmod()
return the field's (postgresql) atttypmod property
postgresql.Field.getScale()
from ResultSetMetaData: return the field's scale, with handling for
numerics & decimals
postgresql.Field.getPrecision()
from ResultSetMetaData: return the field's precision, with handling
for numerics & decimals
postgresql.ResultSet.getInt()
abstract class to allow compilation
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-interfaces@postgresql.org
Cc: dave@narnia.toledo.oh.us
Subject: Re: JDBC - Numeric & Decimal handling in 6.5.3?
In-Reply-To: <38AEEE13.777D7844@narnia.toledo.oh.us>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox