db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bryan Pendleton (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DERBY-3181) isNullable on ResultSetMetaData from DatabaseMetaData.getBestRowIdentifier values are opposite when there is no rows in ResultSet vs. when there is a row.
Date Tue, 24 May 2016 13:56:13 GMT

    [ https://issues.apache.org/jira/browse/DERBY-3181?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15298196#comment-15298196
] 

Bryan Pendleton commented on DERBY-3181:
----------------------------------------

It seems like we maybe don't need the "getBestRowIdentifierEmpty" query
in org.apache.derby.impl.jdbc.metadata.properties anymore? I think it was
only referenced by the call to getPreparedQuery() at line 2160 of
EmbedDatabaseMetaData.java, which now throws the exception instead.

I think that we could file a separate, new JIRA, which is linked to this bug,
and which states that we could remove that system query from metadata.properties.

Or, we could do that as part of this issue.

Which way would be better?

> isNullable on ResultSetMetaData from DatabaseMetaData.getBestRowIdentifier values are
opposite when there is no rows in ResultSet vs. when there is a row.
> ----------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-3181
>                 URL: https://issues.apache.org/jira/browse/DERBY-3181
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC
>    Affects Versions: 10.4.1.3
>            Reporter: Myrna van Lunteren
>            Assignee: Danoja Dias
>            Priority: Trivial
>              Labels: derby_triage10_5_2
>         Attachments: Derby-3181.diff, Derby3181.diff, repro.java, testChange.diff
>
>
> With code like the following: 
>            DatabaseMetaData dmd = conn.getMetaData(); 
>             ResultSet rs = dmd.getBestRowIdentifier(null,"APP","a",3,true);
>             ResultSetMetaData rsmd = rs.getMetaData(); 
>             int actualCols = rsmd.getColumnCount(); 
>             for (int i = 0; i < actualCols; i++) 
>             { 
>                  System.out.print("getColumnName: " + rsmd.getColumnName(i+1) + ", isNullable:
"); 
>                  System.out.println(rsmd.isNullable(i+1)); 
>             } 
> The printed values for isNullable returned are opposite of what they are when the getBestRowIdentifier
call looks like this:
>             ResultSet rs = dmd.getBestRowIdentifier(null,"APP","a",1,true);
> In the latter case, the values are:
> getColumnName: SCOPE, isNullable: 0
> getColumnName: COLUMN_NAME, isNullable: 1
> getColumnName: DATA_TYPE, isNullable: 0
> getColumnName: TYPE_NAME, isNullable: 1
> getColumnName: COLUMN_SIZE, isNullable: 0
> getColumnName: BUFFER_LENGTH, isNullable: 0
> getColumnName: DECIMAL_DIGITS, isNullable: 0
> getColumnName: PSEUDO_COLUMN, isNullable: 0
> In the first case, the values are:
> getColumnName: SCOPE, isNullable: 1
> getColumnName: COLUMN_NAME, isNullable: 0
> getColumnName: DATA_TYPE, isNullable: 1
> getColumnName: TYPE_NAME, isNullable: 1
> getColumnName: COLUMN_SIZE, isNullable: 1
> getColumnName: BUFFER_LENGTH, isNullable: 1
> getColumnName: DECIMAL_DIGITS, isNullable: 1
> getColumnName: PSEUDO_COLUMN, isNullable: 1
> The isNullable value should be stable. 
> It's probably worthwhile verifying what the value *should* be in the first place.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message