[
https://issues.apache.org/jira/browse/DERBY-6968?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16195790#comment-16195790
]
Bryan Pendleton commented on DERBY-6968:
----------------------------------------
Our results aren't ordered at all? Or they are only partially ordered?
The spec says: "They are ordered by SCOPE."
https://docs.oracle.com/javase/7/docs/api/java/sql/DatabaseMetaData.html#getBestRowIdentifier(java.lang.String,%20java.lang.String,%20java.lang.String,%20int,%20boolean)
So if we aren't ordering our results by the SCOPE column, that certainly seems
incorrect.
Regarding your two suggestions, my instinct is to prefer improving the engine
implementation over improving the test. I can't immediately think of a downside
to making our implementation of getBestRowIdentifier deliver a tighter ordering
than it currently does.
That said, I've never used getBestRowIdentifier, and the JDBC spec itself
certainly doesn't provide much intuition about why I would want to, nor did I
find any useful examples in a few minutes of idle searching. What the heck is
this method used for, and why?
> Instability in DatabaseMetaDataTest.testGetBestRowIdentifier
> ------------------------------------------------------------
>
> Key: DERBY-6968
> URL: https://issues.apache.org/jira/browse/DERBY-6968
> Project: Derby
> Issue Type: Bug
> Components: JDBC, Test
> Affects Versions: 10.14.1.0
> Reporter: Rick Hillegas
> Attachments: 10.14.1.testResults.0-failures
>
>
> Ingo reports instabilities in his platform tests of the 10.14.1.0 release
> candidate. He sees intermittent failures in
> DatabaseMetaDataTest.testGetBestRowIdentifier and then subsequent failures
> due to poor test case isolation in that test. The test case fails because
> DatabaseMetaData.getBestRowIdentifier() sometimes returns rows in a different
> order than the test expects.
> The JDBC contract for that method does not specify an order for the returned
> rows. ORDER BY clauses appear on some but not all the catalog queries in
> metadata.properties which define the Derby result.
> I see two ways to address this issue:
> 1) The test could be fixed so that it hand-sorts the returned rows in order
> to guarantee deterministic results.
> 2) ORDER BY clauses could be added to all the implicated metadata queries.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)