db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Saurabh Vyas (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-2287) JDBC meta data for precision and size is inconsistent and does not match JDBC specifications.
Date Fri, 09 Feb 2007 06:09:05 GMT

    [ https://issues.apache.org/jira/browse/DERBY-2287?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12471591

Saurabh Vyas commented on DERBY-2287:

I saw inconsistency for precision value in embedded & network mode also. Following are
my findings : 

 - JAVACLASSNAME which is mapped as LONGVARCHAR type.

 - for embedded mode the precision values is consistent from ResultSetMetaData & values
specified in metadata.properties file for LONGVARCHAR data type.

 - for network mode precision value is returned by gePrecision() method from ColumnMetaData.java,
and this sets the precision value for Char , BOLB & CLOB types are taken from 'sqlLength_'
 array & this array holds incorrect value. Thus the assert 'assertEquals("COLUMN_SIZE",
rsmdt.getPrecision(col), rs.getInt("COLUMN_SIZE")); ' fails only in network mode. 

Well now I am not sure why both modes handle getPrecision() method in different way ?

NOTE : Approximate Numeric i.e. Real & Float returns precision in DIGITS in network mode
& I had modified them also in my tests to return Binary Digits as precision & the
assert passes (as expected).

> JDBC meta data for precision and size is inconsistent and does not match JDBC specifications.
> ---------------------------------------------------------------------------------------------
>                 Key: DERBY-2287
>                 URL: https://issues.apache.org/jira/browse/DERBY-2287
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC, Network Client
>    Affects Versions:,,,,,,
>            Reporter: Daniel John Debrunner
>            Priority: Minor
> JDBC 4.0 has clarified the definitions of precision in the java doc for various methods
that return precision or size. The concept of precision and size seems to be the same, just
having different method or column names in various situations.
> Derby does not follow the JDBC 4 specifications consistently, for example -1 is sometimes
used to indicate not applicable, where JBDC 4 says NULL or 0. The precision of datetime columns
is defined to be non-zero but in some situations Derby returns 0.
> jdbcapi.DatabaseMetaDataTest can show some of these issues, the test of getColumns()
should compare the information in the COLUMN_SIZE column to the ResultSetMetaData getPrecision()
method for the same column. The comparisions are not made currently because the number of
mismatches is high. [this code is not yet committed].
> Existing application impact as Derby applications may have been relying on the old incorrect
& inconsistent behaviour.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message