[
https://issues.apache.org/jira/browse/DERBY-5533?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13169770#comment-13169770
]
Dag H. Wanvik commented on DERBY-5533:
--------------------------------------
Thanks, Rick. I decided to move them to ParameterMappingTest instead; only half
the new tests concern updatable result sets, after all.
Uploading patch derby-5533 with the tests and a fix which changes the class
LossOfPrecisionConversionException to OutsideRangeForDataTypeException,
wrapping 22003 and updates the usage sites, all of which are covered by the
tests I believe. I also removed the old error 22015.S.1, which was only used by
the client.
Note: whereas the old error message indicated the *value* that was out of range
for the conversion, the 22003 erro rmessage shows the target type XXX for
setXXX. However, for getXXX, the type given in the error message by the
embedded driver not the target Java type (e.g. short in getShort), but the
correspondig SQL type, i,e.. SMALLINT. I think this is the way it is because on
the server, the same conversion methods are also used in CAST, where the target
type is an SQL type, not a Java type. I chose to let the client use the same
type strings as embedded does. If we want to improve on this later, we can do
that for both drivers.
Running regressions, please review.
> Client differs from embedded when rs.updateInt overflows: 22015 vs 22003
> ------------------------------------------------------------------------
>
> Key: DERBY-5533
> URL: https://issues.apache.org/jira/browse/DERBY-5533
> Project: Derby
> Issue Type: Bug
> Components: JDBC, Network Client
> Reporter: Dag H. Wanvik
> Priority: Minor
> Attachments: derby-5533-repro.diff, derby-5533-test.diff
>
>
> stm.executeUpdate("create table t(i smallint)");
> stm.executeUpdate("insert into t values 1,2,3,4");
> ResultSet rs = stm.executeQuery("select i from t");
> rs.next();
> try {
> rs.updateInt(1, 100000);
> } catch (SQLException e) {
> // client: 22015 vs embedded 22003
> }
> According to the standard, 22015 should be used for INTERVALs ("interval
> field overflow"). 22003 seems more correct, the standard uses that for
> "numeric value out of range".
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira