<div dir="ltr"><div><br></div><div>This seems to be a design decision, indeed. Our internal compiler generates explicit transition rules up to year 2040 for all time zones with open-ended rules. The code comment references original zic compiler and its old 2038 limit. I am checking internally if there is more to the current design.</div><div><br></div><div>Thanks,</div><div></div><div>Sergiusz</div><div><font size="1">(Oracle Database Development)</font></div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jan 24, 2019 at 11:54 PM Brian Inglis <<a href="mailto:Brian.Inglis@systematicsw.ab.ca">Brian.Inglis@systematicsw.ab.ca</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 2019-01-24 11:30, Paul Eggert wrote:<br>
> On 1/24/19 2:05 AM, Joachim Damm wrote:<br>
>> we found one issue in the Oracle database that DST calculation is wrong from<br>
>> 2040 and beyond.<br>
> <br>
> Which DST calculation, exactly, and what are the incorrect and correct values?<br>
> <br>
> Perhaps you're thinking about Brazil, Iran, or Morocco. In these countries DST<br>
> rules are so complex that they cannot be expressed in closed form in the tzdb<br>
> notation, so tzdb lists rules explicitly for each year. Eventually this list has<br>
> to stop, though, as the database and its maintainers' patience are finite. For<br>
> Brazil and Morocco the list of exact predictions stops after 2037; for Iran, 2087.<br>
> <br>
> Brazil and Morocco keep changing their DST rules, so any prediction past this<br>
> year (much less past 2037) is dubious anyway. In contrast, Iran's rules have<br>
> been stable since 2008, so I extended its exact prediction to 2087; there is<br>
> some technical confusion about how to interpret Iran's rules after that, and<br>
> even Iran is likely to change its rules before 2087.<br>
> <br>
> If there's a real need to predict past 2037, what is the need and how far does<br>
> it really go?<br>
<br>
Looks like tzdb supported 64 bit time_t from [19]95f, with updates in 2004h and<br>
 2006b, when support for 64 bit tzdata was added.<br>
Oracle is old so may only support 32 bit tzdata up to 2038 for compatibility: as<br>
with Java tzdb issues, they are due to Oracle design choices.<br>
<br>
-- <br>
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada<br>
<br>
This email may be disturbing to some readers as it contains<br>
too much technical detail. Reader discretion is advised.<br>
</blockquote></div>