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

Mayuresh Nirhali updated DERBY-2386:
------------------------------------

    Attachment: derby2386.diff

I concur. I think it will help if return value is BigInt.

I have created a patch with this change. Please note that Max/Min value check 
with changed type has been made only for FRAC_SECOND, MONTH and YEAR difference 
will be compared with Int max/min values only.

I have run derbyall and junit tests and no new failures have been found.

I think this patch is ready for commit.



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

Reply via email to