[
https://issues.apache.org/jira/browse/DERBY-4752?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12891355#action_12891355
]
Lily Wei commented on DERBY-4752:
---------------------------------
I am not totally understand the performance impact for this issue. However,
(280000-190000)/280000 is 32% slower. If we apply that to a big amount of
timestamp implementation store procedure. Will that be a slower scenario case?
> CheapDateFormatter returns incorrect and invalid date strings
> -------------------------------------------------------------
>
> Key: DERBY-4752
> URL: https://issues.apache.org/jira/browse/DERBY-4752
> Project: Derby
> Issue Type: Bug
> Components: Services
> Affects Versions: 10.7.0.0
> Reporter: Knut Anders Hatlen
> Assignee: Knut Anders Hatlen
> Priority: Minor
> Attachments: CheapFormatterPerfTest.java, derby-4752-1a.diff,
> derby-4752-1b.diff, derby-4752-1c.diff
>
>
> CheapDateFormatter has multiple problems. These are the ones I'm aware of:
> 1) On the boundary between non-leap years and leap years it will return first
> day of thirteenth month in previous year (for instance, 2011-13-01 instead of
> 2012-01-01)
> 2) It treats all years divisible by four as leap years. Those divisible by
> 100 and not by 400 are not leap years. It attempts to adjust for that (see
> the snippet below) but it always ends up setting leapYear=true if (year%4)==0.
> // It's a leap year if divisible by 4, unless divisible by 100,
> // unless divisible by 400.
> if ((year % 4L) == 0) {
> if ((year % 100L) == 0) {
> if ((year % 400L) == 0) {
> leapYear = true;
> }
> }
> leapYear = true;
> }
> 3) More leap year trouble. To find out which year it is, it calculates the
> number of four year periods that have elapsed since 1970-01-01. A four year
> period is considered 365*3+366 days. Although most four year periods are of
> that length, some are shorter, so we'll get one day off starting from year
> 2100, two days off from year 2200, and so on.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.