Issue Details (XML | Word | Printable)

Key: JDBC-496
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Mark Rotteveel
Reporter: Mark Rotteveel
Votes: 0
Watchers: 0

If you were logged in you would be able to see more operations.
Jaybird JCA/JDBC Driver

DatabaseMetaData.getBestRowIdentifier handling of 'scope' is wrong

Created: 28/May/17 10:37 AM   Updated: 07/Oct/18 01:37 PM
Component/s: JDBC driver
Affects Version/s: Jaybird 2.2.13, Jaybird 3.0.0
Fix Version/s: Jaybird 4

 Description  « Hide
Currently, the implementation will use the provided scope as the scope of the returned row(s), instead of using it as a filtering condition.

Note that the JDBC apidoc is a bit unclear on how the scope-parameter should be used, but returning the rows with at least the provided scope (or broader) would be a good start.

 All   Comments   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Mark Rotteveel added a comment - 07/Oct/18 01:37 PM
The functionality seems to be derived from ODBC, where the expectation is indeed that the bestRowTemporary also considers the wider scopes of transaction and session, and bestRowTransaction also considers session.

Fixed implementation, reduced scope for RDB$DB_KEY to transaction in line with getRowIdLifeTime() (although the code itself is prepared for getRowIdLifeTime to also support ROWID_VALID_SESSION)