[ 
http://issues.apache.org/jira/browse/DERBY-947?page=comments#action_12369786 ] 

Francois Orsini commented on DERBY-947:
---------------------------------------

Knut, thanks for the review.

Good catch - I actually followed some logic which is there all accross the JDBC 
4 tests, such as:

        } catch(SQLException e) {
            if(SQLState.NOT_IMPLEMENTED.equals (e.getSQLState())) {
                System.out.println("Unexpected SQLException"+e);
            }        
        }

which is exposing the same issue...Also I believe the equal expression above 
should be reversed - it is evaluated to false right now everytime in both 
client and engine modes...I will fill in a separate JIRA for this (it is 
independent of the scope of the changes for this JIRA).

Interestingly enough, the SQL state on the client driver is not always being 
set - for instance, logic in
\trunk\java\client\org\apache\derby\client\am\Statement.java

do not set the sql state upon throwing new sql exceptions - hence the following 
logic below,
...
throw new SqlException(agent_.logWriter_, "Invalid maxFieldSize value: " + max);
... 

will yield to 'null' when retrieving the sql state of a raised exception via 
SQLException.getSQLState(), hence making it impossible to write a JDBC 
application which relies on sql state for the client/server mode - we don't 
have this problem with the embedded driver...This is already reported as part 
of JIRA-254 which is supposed to address this issue as well.

I have changed the code to use a sql exception util method in ExceptionUtil 
class from the shared package to extract the 5 chars sql state out of the 
message identifier (like embedded does and client should do) - interestingly 
enough the logic to extract the state our of the msg id is duplicated in 
trunk\java\engine\org\apache\derby\iapi\error\StandardException.java but it is 
a different problem and not in the scope of this JIRA.

> Miscellaneous PreparedStatement methods added by JDBC4
> ------------------------------------------------------
>
>          Key: DERBY-947
>          URL: http://issues.apache.org/jira/browse/DERBY-947
>      Project: Derby
>         Type: New Feature
>   Components: JDBC
>     Reporter: Rick Hillegas
>     Assignee: Francois Orsini
>      Fix For: 10.2.0.0
>  Attachments: DERBY-947-v1.diff, DERBY-947-v1.stat, DERBY-947-v2.stat
>
> As described in the JDBC 4 spec sections 13.2 and 3.1.
> This involves building support for JDBC4 methods added to PreparedStatement 
> and not addressed by other JIRAs: isPoolable() and setPoolable().

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to