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