You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Myrna van Lunteren (JIRA)" <ji...@apache.org> on 2007/11/11 18:14:50 UTC

[jira] Resolved: (DERBY-3182) fifth parameter (boolean isNullable) in DatabaseMetaData.getBestRowIdentifier(.....) has no effect

     [ https://issues.apache.org/jira/browse/DERBY-3182?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Myrna van Lunteren resolved DERBY-3182.
---------------------------------------

    Resolution: Invalid

I've marked this as invalid, and a test issue.
I adjusted the test comments, and modified the test case to verify that the result changes if the parameter is changed on a simple table like this:
st.execute("create table brit13 (i int not null, j int)");

and the test cases now are:
// result: column i, should've ignored null column
rs = dmd.getBestRowIdentifier(null,"APP","BRIT13",0,false);
[...verifyresults...]
// result: columns i, j
rs = dmd.getBestRowIdentifier(null,"APP","BRIT13",0,true);
[...verifyresults...]



> fifth parameter (boolean isNullable) in DatabaseMetaData.getBestRowIdentifier(.....)  has no effect
> ---------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-3182
>                 URL: https://issues.apache.org/jira/browse/DERBY-3182
>             Project: Derby
>          Issue Type: Bug
>          Components: Test
>    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, 10.3.1.4
>            Reporter: Myrna van Lunteren
>         Attachments: repro.java
>
>
> The fifth parameter in a call to DatabaseMetaData.getBestRowIdentifier(String catalog, String schema, String table, int scope, boolean nullable) is getting ignored.
> Thus, in the following situation:
>         s.execute("create table a (i int not null, j int not null, k int, unique (i,j))");
>         s.execute("insert into a values (1,1,1)");  
>         DatabaseMetaData dmd = conn.getMetaData(); 
> The call:
>             ResultSet rs = dmd.getBestRowIdentifier(null,"APP","A",0,true);
> gives the same results(columns i & j) as
>             ResultSet rs = dmd.getBestRowIdentifier(null,"APP","A",0,false);
> This has been documented as incorrect in the test bestrowidentifier.sql but I could not find any bug logged.
> The text in bestrowidentifier was:
> -- REMIND: we aren't handling nullOk flag correctly
> -- we just drop nullable cols, we should skip an answer
> -- that has nullable cols in it instead and look for another one.
> create table t13 (i int not null, j int not null, k int, unique (i,j));
> -- result: columns i, j (WRONG) 
> -- the correct answer is k: the non-null columns of the table
> execute bestrow using 'values(''APP'',''T13'',0,''false'')';

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