Thanks, Fernanda. I think this should probably be a new JIRA issue rather than a comment to DERBY-477, and then linked to DERBY-310

David

Fernanda Pizzorno (JIRA) wrote:

[ http://issues.apache.org/jira/browse/DERBY-477?page=comments#action_12318888 ]
Fernanda Pizzorno commented on DERBY-477:
-----------------------------------------

RecordSet#
relative(int rows) behaves different in embedded and client/server mode when 
the positioning before the first row or after the last row.

The embedded driver shows the behaviour described in the JDBC 3.0 specification, 
returning false and postitioning in either before first or after last. While the 
client/server driver returns true and incrementing/decrementing the current row by 
"rows" and not setting the position to either before first of after last.

I have run a test with a result set with 10 rows, where I positioned in row 5 
and moved +20 and - 20 using relative(int rows). With the embedded driver the 
method returned false, the current row was set to 0 and isAfterLast() and 
isBeforeFirst() returned true (for +20 and -20 respectively). With the 
client/server driver the method returned true, the current row was set to 25 
and -15 (for +20 and -20 respectively) and isAfterLast() and isBeforeFirst() 
returned false.

JDBC client and embedded drivers differ wrt API subset supported
----------------------------------------------------------------

        Key: DERBY-477
        URL: http://issues.apache.org/jira/browse/DERBY-477
    Project: Derby
       Type: Improvement
 Components: JDBC, Network Client, Network Server
   Versions: 10.1.1.0, 10.1.1.1, 10.2.0.0
   Reporter: Dag H. Wanvik
Attachments: api-diffs.txt

After having noticed some differences (mail url below) in Clob and
Blob support, I did a walkthough of both drivers of things marked as
"not implemented", "not supported", etc., to see how they align.
[http://mail-archives.apache.org/mod_mbox/db-derby-dev/200507.mbox/[EMAIL 
PROTECTED],
Below is a summary of my findings. I attach a file "api-diffs.txt"
which shows all "not implemented" methods in the interfaces I looked
at, also for those cases where the drivers are in agreement.
Caveat 1: This is all based on visual inspection of the code only.
Caveat 2: I mostly looked at the top-level API implementation code, so
there may be cases where the cut-off occurs at a lower level in the
code which I missed.
Caveat 3: The client uses lots of different strings to signal that a
method us not implemented; e.g. "Driver not capable", "Driver not
capable": X", "Driver no capable" (sic), "not supported by server",
"under construction", "JDBC 3 method called - not yet supported",
"jdbc 2 method not yet implemented", "X is not supported". I may have
missed some...
On each line I list the method with signature, and status for the
embedded driver and the client driver, in that order. I use "NI" to
mark not implemented, and a "+" to mark (apparently) implemented.
The next step should be to check the tests and the documentation, as
soon as we agree on how the harminization should be carried out.
                                                         Embedded Client
Resultset# getUnicodeStream(int columnIndex) NI +
getUnicodeStream(String columnName)                             NI   +
updateBlob(int columnIndex, Blob x)                             +   NI
updateBlob(String columnName, Blob x)                           +   NI
updateClob(int columnIndex, Clob x)                             +   NI
updateClob(String columnName, Clob x)                           +   NI
CallableStatement# getBlob(int i) NI + getBytes(int parameterIndex) NI + getClob(int i) NI + registerOutParameter(int paramIndex, int sqlType, String typeName) NI +²
²bug:does nothing!
Should be filed as separate bug?
Blob#
setBinaryStream(long pos) NI +¹ setBytes(long pos, byte[] bytes) NI + setBytes(long pos, byte[] bytes, int offset, int len) NI + truncate(long len) NI + ¹bug reported by Laurentz Albe
http://mail-archives.apache.org/mod_mbox/db-derby-dev/200507.mbox/[EMAIL 
PROTECTED]
Should be filed as separate bug?
Clob#
setAsciiStream(long pos) NI + setCharacterStream(long pos) NI + setString(long pos, String str) NI + setString(long pos, String str, int offset, int len) NI + truncate(long len) NI + PreparedStatement#
setNull(int paramIndex, int sqlType, String typeName)           NI   +³
setUnicodeStream(int parameterIndex, InputStream x, int length) NI   +
³bug: ignores typename
Should be filed as separate bug?
DatabaseMetaData#
getSuperTables(String catalog, String schemaPattern, String tableNamePattern) NI + getSuperTypes(String catalog, String schemaPattern, String typeNamePattern) NI +
locatorsUpdateCopy()                                            NI  +
getAttributes(String catalog, String schemaPattern, String typeNamePattern, String attributeNamePattern) NI +

begin:vcard
fn:David Van Couvering
n:Van Couvering;David
org:Sun Microsystems, Inc.;Database Technology Group
email;internet:[EMAIL PROTECTED]
title:Senior Staff Software Engineer
tel;work:510-550-6819
tel;cell:510-684-7281
x-mozilla-html:TRUE
version:2.1
end:vcard

Reply via email to