Invalid timestamp errors with RDB$TIME_ZONE_UTIL.TRANSITIONS
------------------------------------------------------------

                 Key: CORE-6281
                 URL: http://tracker.firebirdsql.org/browse/CORE-6281
             Project: Firebird Core
          Issue Type: Bug
    Affects Versions: 4.0 Beta 1
            Reporter: Adriano dos Santos Fernandes


The way ticks are internaly calculated from timestamps causes problems with 
RDB$TIME_ZONE_UTIL.TRANSITIONS, as well possible (but unlikely) problems with 
timers.

Test case:
select * from RDB$TIME_ZONE_UTIL.TRANSITIONS('Asia/Calcutta', date 
'0001-01-01', date '9999-01-01');

The problem is that old timestamps ticks are negative and the time field is 
unsigned. When a negative field is used with % operator it produces negative 
result that is stored in time. In ExprNodes.cpp that is somewhat workarounded, 
but the code is also weird.

Timers are unlikely to be affected because from this moment to the future the 
current_timestamp is positive, but if clock is reverted it may be problematic.

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

        


Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to