Suppress "Factory" zone in pg_timezone_names view for tzdata >= 2016g.

IANA got rid of the really silly "abbreviation" and replaced it with one
that's only moderately silly.  But it's still pointless, so keep on not
showing it.
This commit is contained in:
Tom Lane 2016-10-19 18:11:49 -04:00
parent 22cf976351
commit bca6d8300b
1 changed files with 11 additions and 2 deletions

View File

@ -4763,8 +4763,17 @@ pg_timezone_names(PG_FUNCTION_ARGS)
&tzoff, &tm, &fsec, &tzn, tz) != 0)
continue; /* ignore if conversion fails */
/* Ignore zic's rather silly "Factory" time zone */
if (tzn && strcmp(tzn, "Local time zone must be set--see zic manual page") == 0)
/*
* Ignore zic's rather silly "Factory" time zone. The long string
* about "see zic manual page" is used in tzdata versions before
* 2016g; we can drop it someday when we're pretty sure no such data
* exists in the wild on platforms using --with-system-tzdata. In
* 2016g and later, the time zone abbreviation "-00" is used for
* "Factory" as well as some invalid cases, all of which we can
* reasonably omit from the pg_timezone_names view.
*/
if (tzn && (strcmp(tzn, "-00") == 0 ||
strcmp(tzn, "Local time zone must be set--see zic manual page") == 0))
continue;
/* Found a displayable zone */