You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
Submitted by: @asfernandes
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.
Commits: 471cc13
The text was updated successfully, but these errors were encountered: