[
https://issues.apache.org/jira/browse/DERBY-2307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12493167
]
A B commented on DERBY-2307:
----------------------------
Thanks for the reply, Dan.
So given that the expected (and currently returned) nullability values for
getTypeInfo() are listed in DatabaseMetaDataTest.java as:
boolean[] JDBC_COLUMN_NULLABILITY = {
false, false, true, true,
true, true, false, false,
false, true, false,
true, true,
true, true,
true, true,
true
};
would this mean that there are other columns with incorrect nullability, as
well? Not just columns 1, 7, and 9? More specifically, *none* of the
following columns have the words "may be null" next to them, but return "true"
for the nullability according to the above array:
3. PRECISION
10. UNSIGNED_ATTRIBUTE
12. AUTO_INCREMENT boolean => can it be used for an auto-increment value.
14. MINIMUM_SCALE short => minimum scale supported
15. MAXIMUM_SCALE short => maximum scale supported
16. SQL_DATA_TYPE int => unused
17. SQL_DATETIME_SUB int => unused
18. NUM_PREC_RADIX int => usually 2 or 10
So are all of these wrong, as well?
Note that the ODBC API does things in the opposite way: it specifies "NOT NULL"
where a column is not allowed to be null and then the assumption is that all
other columns *can* be null:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbcsqlgettypeinfo.asp
And based on that API all of the above would be correct, leaving only columns
1, 7, and 9 as the issues (which is what the summary for this Jira says).
That's convenient--but I've been told numerous times before that ODBC is not
JDBC, so they are not to be compared. In that case...am I right in thinking
that all of the above should be returning nullability "false", too?
In case you're wondering why I'm bring this up, it's because I was looking at
the patch for DERBY-2280 and noticed that Saurabh is seeing a test failure that
is related to this discussion. More specifically, the nullability for
AUTO_INCREMENT and UNSIGNED_ATTRIBUTE is changing as a result of his patch; but
I can't tell if the nullability of those columns is correct as it is ("true"),
or if Saurabh's patch is actually making them correct ("false")?
> DatabaseMetaData.getTypeInfo nullability is incorrect for columns 1,7 and 9
> ---------------------------------------------------------------------------
>
> Key: DERBY-2307
> URL: https://issues.apache.org/jira/browse/DERBY-2307
> Project: Derby
> Issue Type: Bug
> Components: JDBC, SQL
> 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.0.0
> Reporter: Daniel John Debrunner
> Priority: Minor
>
> Columns TYPE_NAME, NULLABLE, SEARCHABLE are returned as nullable but should
> not be. ODBC variant correctly makes these non-nullable.
> From a quick look at the metadata query this may in fact be a language issue.
> The query is based upon a VALUES clauses that has a list of literals that are
> not NULL in these columns. Thus one would expect the implied type definition
> to be not nullable. However some of the columns, e.g. 2 DATA_TYPE, have a
> similar list of non-NULL literals are do appear as non-NULLABLE with
> getTypeInfo. Not sure what leads to the different behaviour.
> Look for comments in DatabaseMetaDataTest.testGetTypeInfo() with this bug
> number for code t hat shows the issue.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.