Add scrollable, updatable, insensitive result sets
--------------------------------------------------
Key: DERBY-690
URL: http://issues.apache.org/jira/browse/DERBY-690
Project: Derby
Type: New Feature
Components: JDBC
Reporter: Dag H. Wanvik
Assignee: Dag H. Wanvik
Priority: Minor
Attachments: DERBY-690-v1.diff, DERBY-690-v1.stat, DERBY-690-v2.diff,
DERBY-690-v2.stat, SURChanges-v1.pdf, derby-690-v4.diff, derby-690-v4.stat,
derby-690-v5.diff, derby-690-v5.stat, derby-690-v6.diff, derby-690-v6.stat,
derby-690-v7.diff, derby-690-v7.stat, derby-690-v8.diff, derby-690-v8.stat,
sur-proposal.txt, writeup-v1.html, writeup-v2.html, writeup-v3.html,
writeup-v4.html
JDBC result sets are created with three properties: type, concurrency
and holdability. The type can be one of TYPE_FORWARD_ONLY,
TYPE_SCROLL_INSENSITIVE and TYPE_SCROLL_SENSITIVE. The concurrency can
be one of CONCUR_READ_ONLY and CONCUR_UPDATABLE. The holdability can
be one of HOLD_CURSORS_OVER_COMMIT and CLOSE_CURSORS_AT_COMMIT.
JDBC allows the full cross product of these. SQL 2003 prohibits the
combination {TYPE_SCROLL_INSENSITIVE, CONCUR_UPDATABLE}, but this
combination is supported by some vendors, notably Oracle.
Currently, Derby supports JDBC result sets in a limited
way. Holdability is supported. Furthermore, the following is
supported:
- forward-only, read-only
- forward-only, updatable (update, delete, but not insert)
Also, in the network driver, support for some data types
conversions is missing.
- scroll insensitive, read-only
We (Fernanda and Andreas will cooperate with me on this) propose a
plan to add support for the combination:
- scroll insensitive, updatable
for both the embedded driver and the network client driver.
As a part of this we would also like to add the missing insert
operation to the {forward-only, updatable} result sets (JIRA-100), and
remove the requirement for an explicit "FOR UPDATE" clause in the SQL
query to achieve updatability if CONCUR_UPDATABLE is specified
(JIRA-231).
The full proposal text is uploaded as an attachment, including a proposed
functional specification.
This JIRA will be used to track sub-issues for this effort. The sub-issues
will be linked back to this issue.