[ 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: 10.0.2.0, 10.0.2.1, 10.1.1.0, 10.1.2.1, 10.1.3.1, > 10.2.1.6, 10.2.2.0 > 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.