JDBC - Numeric & Decimal handling in 6.5.3?
От | Dave Del Signore |
---|---|
Тема | JDBC - Numeric & Decimal handling in 6.5.3? |
Дата | |
Msg-id | 38AEEE13.777D7844@narnia.toledo.oh.us обсуждение исходный текст |
Список | pgsql-interfaces |
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
В списке pgsql-interfaces по дате отправления:
Следующее
От: Dave Del SignoreДата:
Сообщение: Re: [INTERFACES] JDBC - Numeric & Decimal handling in 6.5.3?