db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel John Debrunner (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-2386) timestampdiff function fails when using SQL_TSI_FRAC_SECOND for datepart parameter, except for very small intervals
Date Thu, 08 Mar 2007 16:19:24 GMT

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

Daniel John Debrunner commented on DERBY-2386:
----------------------------------------------

I think the change to BIGINT is more involved than the patch. Doesn't some compile time code
have to change to indicate at bind time that this is returning a BIGINT?

This test can never be true:

if (ldiff > Long.MAX_VALUE || ldiff < Long.MIN_VALUE)

since ldiff was already a long it cannot be outside its own range.

FYI - the old check & code that was there:

		if (ldiff > Integer.MAX_VALUE || ldiff < Integer.MIN_VALUE)
			throw StandardException.newException(SQLState.LANG_OUTSIDE_RANGE_FOR_DATATYPE, "INTEGER");
        resultHolder.setValue( (int) ldiff);

is not required, it could be simply

          resultHolder.setValue(ldiff);


> timestampdiff function fails when using SQL_TSI_FRAC_SECOND for datepart parameter, except
for very small intervals
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-2386
>                 URL: https://issues.apache.org/jira/browse/DERBY-2386
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.2.2.0
>         Environment: SUSE Linux Enterprise Desktop 10
>            Reporter: Don Smith
>         Assigned To: Mayuresh Nirhali
>             Fix For: 10.2.2.1, 10.2.3.0, 10.3.0.0
>
>         Attachments: derby2386.diff
>
>
> Using the timestampdiff function produces and integer overflow except for very small
intervals. Error message is:
> [Error Code: -1, SQL State: 22003]  The resulting value is outside the range for the
data type INTEGER.
> I inserted the following row into my test table:
> insert into datetest (ID, 
> startdate, 
> enddate) values (
> 5, 
> '2006-11-20 04:20:00.0', 
> '2006-11-20 04:20:00.2');
> This test row works:
> select {fn timestampdiff(SQL_TSI_FRAC_SECOND, startdate, enddate)} as diff from datetest
where id = 5
> DIFF
> 200000000
> The value also looks too large, which could be exacerbating the problem.

-- 
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