[tz] A simple solution to have zones merge into another zone
eggert at cs.ucla.edu
Mon Jun 14 20:28:13 UTC 2021
On 6/14/21 6:42 AM, Alois Treindl wrote:
> The reason is my experience with the Shanks database in its software
> version (not the book variant, which is nearly flat). > That one is full of jumps from one table to the other and back. It is
> extremely complicated to follow this as a human
I have never used Shanks's software and didn't know that it exposed its
tables to users.
And although Shanks's books typically use "follow" only at the end of a
time table, they sometimes use it earlier to good effect. For example,
the Shanks International Atlas (6th edition) has a table for Melbourne
which essentially says "use Sydney's table with these few exceptions",
and the exceptions are not all at the start which means the Melbourne
table has multiple "follow"s.
> Readability for humans has to be kept in mind.
Yes, but I expect that readability would be helped by having "follow"
within tables so long as it's done reasonably, as the Shanks book does
Part of the issue here is: what is the typical use case? For Shanks's
books, the main idea is to present the illusion of a complete set of
data for everywhere on the planet, and to make it easy to look up a
timestamp history from a location. These books were
automatically-generated from more-compact tables that are easier to
maintain but harder to read.
For tzdb, we don't present the illusion of a complete timezone history
for every location; instead the goal is merely to record histories since
1970. Also, the tzdb source consists of easier-to-maintain but
harder-to-read compact tables, with the idea that downstream software
like 'zdump' can make the tables easier to read as needed. So the goals
for tzdb's tables differ from the goals of Shanks's books.
In particular, a common scenario in tzdb is for two zones to split:
formerly they were identical before 1970, but now they're different. For
example, Pacific/Bougainville split from Pacific/Port_Moresby in 2014i.
If we had had "follow" back then, I would have wanted to use it to say
the equivalent of "Pacific/Bougainville is like Pacific/Port_Moresby
before 2014-12-28 02:00, and here's what it looks like afterwards". But
I couldn't do that if "follow" is only at the end.
Anyway, thanks for contributing the code to implement "follow" at the
end; it's provided food for thought and perhaps we can see our way to
implementing something along those lines. (Of course at first it would
be used only in vanguard format.)
More information about the tz