You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "V.Narayanan (JIRA)" <ji...@apache.org> on 2007/02/06 06:30:05 UTC

[jira] Commented: (DERBY-2247) provide set methods for blob in embeded driver

    [ https://issues.apache.org/jira/browse/DERBY-2247?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12470452 ] 

V.Narayanan commented on DERBY-2247:
------------------------------------

Anurag's code looks very good. My comments are mostly nits.

java/engine/org/apache/derby/impl/jdbc/LOBStreamControl.java
------------------------------------------------------------

Pls mention reason for choosing buffer size as 4096, if there was a particular
reason for choosing this value. Otherwise pls mention that it was a random
value. 

init - line nos 72 and 74
----

Can the Monitor and the DataFactory be resused instead of doing a findService,
findServiceModule each time?

line no 77
----------
String str = df.getStorageFactory().getTempDir().getPath(); (str is not being
used anywhere)

line nos 171,196,229
--------------------

write methods

I notice that you have repeated the code snippet

		if (isBytes) {
            if (pos + 1 < MAX_BUF_SIZE) {
                byte [] bytes = {(byte) b};
                updateData(bytes, 0, 1, pos);
                return pos + 1;
            } else {
                init(dataBytes, pos);
            }
        }
        if (tmpFile.getFilePointer() != pos)
            tmpFile.seek(pos);
        tmpFile.write(b);
        return tmpFile.getFilePointer();

in all the three set methods. Is it possible that you can combine the code into one method that can
be called from all the three set methods?

java/engine/org/apache/derby/impl/jdbc/EmbedBlob.java
-------------------------------------------------------
can materialized can be initialized to false during declaration?
can control be initialized to null during declaration?
set methods
-----------
you check the following in the set methods

 if (pos - 1 > length())
	throw Util.generateCsSQLException(
		SQLState.BLOB_POSITION_TOO_LARGE, new Long(pos));
 if (pos < 1)
	throw Util.generateCsSQLException(
		SQLState.BLOB_BAD_POSITION, new Long(pos));

But would'nt isValidPostion(pos) in control.write take care of this and throw
appropriate exception? 

truncate
-------
can you move length checks inside truncate methods into control class similar to
pos checks?

Some general comments
---------------------
There are a few missing javadocs and some javadocs missing the @throws tags.


> provide set methods for blob in embeded driver
> ----------------------------------------------
>
>                 Key: DERBY-2247
>                 URL: https://issues.apache.org/jira/browse/DERBY-2247
>             Project: Derby
>          Issue Type: Sub-task
>          Components: JDBC
>         Environment: all
>            Reporter: Anurag Shekhar
>         Assigned To: Anurag Shekhar
>            Priority: Minor
>         Attachments: derby-2247.diff, derby-2247v2-using_StoreFactory.diff
>
>


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