Derby
  1. Derby
  2. DERBY-1615

Rewrite the Clob implementation in the client driver

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Later
    • Affects Version/s: None
    • Fix Version/s: 11.0.0.0
    • Component/s: JDBC, Network Client
    • Labels:

      Description

      The implementation of java.sql.Clob in the client driver is cracking up, and should be rewritten.
      A number of bugs have been discovered, and the implementation has traces of old and/or deprecated features. Further, several mandatory methods (JDBC 3 & 4) have not yet been implemented and could benefit from a fresh start.
      I think maintainability for this piece of code has dropped to an unacceptable level.

      It seems the implementation is based on an assumption that no longer holds; that a Clob object used for input to the database is never passed to the user. The consequence of this, is that the internal state of the Clob object is not valid [at all times], which causes exceptions when the user invokes methods on it.

      A number of related Jira issues have been linked to this issue to aid the reimplementation process.

        Issue Links

          Activity

          Gavin made changes -
          Workflow jira [ 12377105 ] Default workflow, editable Closed status [ 12799571 ]
          Kristian Waagan made changes -
          Labels LOB
          Kathey Marsden made changes -
          Status Open [ 1 ] Closed [ 6 ]
          Fix Version/s 11.0.0.0 [ 12312083 ]
          Resolution Later [ 7 ]
          Hide
          Kathey Marsden added a comment -

          Thanks Kristian, that sounds good to me. Closing this issue as 'Later. I think I would prefer to close out these relatively vague major line items and open up incremental improvement suggestions as they come up or only reopen them if someone wants to actively work on them. I'd forgotten about Later as an option.

          BTW, even after the cleanup yesterday, we still have 1074 open issues. I think on my next pass (in a few months) I will make more aggressive use of 'Later', so we can trim it to a more manageable list.

          Show
          Kathey Marsden added a comment - Thanks Kristian, that sounds good to me. Closing this issue as 'Later. I think I would prefer to close out these relatively vague major line items and open up incremental improvement suggestions as they come up or only reopen them if someone wants to actively work on them. I'd forgotten about Later as an option. BTW, even after the cleanup yesterday, we still have 1074 open issues. I think on my next pass (in a few months) I will make more aggressive use of 'Later', so we can trim it to a more manageable list.
          Hide
          Kristian Waagan added a comment -

          No, the issue isn't complete. Most of the recent work has been in the core LOB implementation in the embedded driver. Some work has also been done on the client implementation.
          The question is more whether it will ever be fixed in the near future, or if we should resolve it as either "Later" or "Won't fix".

          Rewriting the Clob implementation in the client driver could very well boost maintainability in the long term and result in increased performance, but at the same time it is likely that new bugs will be introduced (despite our test suite). We may also need some substantial changes in the client/server communication. To me, it sounds like these changes should go into a new major version release (i.e. 11.0).

          If nobody objects, I'll set the affects version to 11.0, and resolve the issue as "Later".

          Show
          Kristian Waagan added a comment - No, the issue isn't complete. Most of the recent work has been in the core LOB implementation in the embedded driver. Some work has also been done on the client implementation. The question is more whether it will ever be fixed in the near future, or if we should resolve it as either "Later" or "Won't fix". Rewriting the Clob implementation in the client driver could very well boost maintainability in the long term and result in increased performance, but at the same time it is likely that new bugs will be introduced (despite our test suite). We may also need some substantial changes in the client/server communication. To me, it sounds like these changes should go into a new major version release (i.e. 11.0). If nobody objects, I'll set the affects version to 11.0, and resolve the issue as "Later".
          Hide
          Kathey Marsden added a comment -

          I know there has been a lot of work on lobs. Is this complete? All linked issues, except for DERBY-1599 have been closed. I think DERBY-1599 is a bug that can just stand on its own.

          Show
          Kathey Marsden added a comment - I know there has been a lot of work on lobs. Is this complete? All linked issues, except for DERBY-1599 have been closed. I think DERBY-1599 is a bug that can just stand on its own.
          Kristian Waagan made changes -
          Link This issue relates to DERBY-1341 [ DERBY-1341 ]
          Kristian Waagan made changes -
          Link This issue relates to DERBY-684 [ DERBY-684 ]
          Kristian Waagan made changes -
          Link This issue relates to DERBY-1516 [ DERBY-1516 ]
          Kristian Waagan made changes -
          Link This issue relates to DERBY-253 [ DERBY-253 ]
          Kristian Waagan made changes -
          Link This issue relates to DERBY-1286 [ DERBY-1286 ]
          Kristian Waagan made changes -
          Link This issue relates to DERBY-1599 [ DERBY-1599 ]
          Hide
          Kristian Waagan added a comment -

          Linked related issues. Please add more links if I have forgotten any, or new related issues are added.

          Show
          Kristian Waagan added a comment - Linked related issues. Please add more links if I have forgotten any, or new related issues are added.
          Kristian Waagan made changes -
          Field Original Value New Value
          Link This issue relates to DERBY-1417 [ DERBY-1417 ]
          Kristian Waagan created issue -

            People

            • Assignee:
              Unassigned
              Reporter:
              Kristian Waagan
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development