db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kristian Waagan (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DERBY-2646) Cleanup of Clob control/support structures
Date Thu, 24 May 2007 22:18:16 GMT

     [ https://issues.apache.org/jira/browse/DERBY-2646?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Kristian Waagan updated DERBY-2646:
-----------------------------------

    Attachment: derby-2646-02a-clob-reorg.diff
                derby-2646-02a-clob-reorg.diff

'derby-2646-02a-clob-reorg.diff' is a stab at reorganizing the upper level Clob code in the
embedded driver.
I have run suites.All without failures.

Please note that the patch, although operational, is preliminary. I'm sorry it became so big,
but I think it will be hard to split it up into smaller parts. I'm also very short on time,
but I still feel this is worth getting done for 10.3.
For now I'm primarily interested in design feedback, but other kinds of feedback (bugs, suggestions
etc) are welcome too.

Although I plan to address more cleanup and bugs in later patches, a few fixes were incorporated
into the 2a patch. For instance, ClobTest has 3 failures/errors when run against trunk, but
none when run with the patch.

Comments on the patch:
 a) EmbedClob now works against the new interface InternalClob
 
 b) There are two different kinds of internal Clob representations; StoreStreamClob (which
is read-only) and ClobStreamControl (which I might rename, name suggestions? TemporaryClob?).
If you fetch an existing Clob from the database, you start out with a StoreStreamClob. If
you modify it, the Clob content is copied into ClobStreamControl. The switch is done in EmbedClob.

 c) I need to look into exception handling. For various reasons it seems many methods must
throw SQLExceptions. StoreStreamControl tends to get StandardException from store, ClobStreamControl
tends to get StandardException/SQLException from LOBStreamControl. And of course IOException
is well represented.

 d) I need to look into/verify synchronization (on the connection child). Can anyone please
enlighten me on the importance of calling setupContextStack/restoreContextStack?

 e) All character positions in InternalClob are 1-based. Byte positions are 0-based.

 f) Positioning streams at character positions are done by reading the byte stream from position
0 and counting characters. This implies UTF-8 decoding. Changing this will not happen in this
patch/issue. Different improvements might be suitable for the store streams and the temporary
Clobs (i.e. caching positions or changing to UTF-16).


My apologies for bringing a rather big change to the community this close to the freeze date.
However, unless I get serious pushback, I will drive this forward to completion for 10.3.

> Cleanup of Clob control/support structures
> ------------------------------------------
>
>                 Key: DERBY-2646
>                 URL: https://issues.apache.org/jira/browse/DERBY-2646
>             Project: Derby
>          Issue Type: Sub-task
>          Components: JDBC
>    Affects Versions: 10.3.0.0
>            Reporter: Kristian Waagan
>         Assigned To: Kristian Waagan
>         Attachments: derby-2646-01a_trailing_space.diff, derby-2646-01a_trailing_space.stat,
derby-2646-02a-clob-reorg.diff, derby-2646-02a-clob-reorg.diff
>
>


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message