Add a few new time zones, and list every time zone mentioned in my
Linux box's time zone database. Do not allow 'current' as a date/time input value.
This commit is contained in:
parent
4bedbd061c
commit
90e757c17d
@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/datetime.c,v 1.79 2001/11/19 09:05:01 tgl Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/datetime.c,v 1.80 2001/11/21 05:58:51 thomas Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -73,16 +73,34 @@ static datetkn datetktbl[] = {
|
||||
/* text, token, lexval */
|
||||
{EARLY, RESERV, DTK_EARLY}, /* "-infinity" reserved for "early time" */
|
||||
{"acsst", DTZ, 63}, /* Cent. Australia */
|
||||
{"acst", TZ, 57}, /* Cent. Australia */
|
||||
{"acst", DTZ, NEG(24)}, /* Atlantic/Porto Acre */
|
||||
{"act", TZ, NEG(30)}, /* Atlantic/Porto Acre */
|
||||
{DA_D, ADBC, AD}, /* "ad" for years >= 0 */
|
||||
{"abstime", IGNORE, 0}, /* "abstime" for pre-v6.1 "Invalid
|
||||
* Abstime" */
|
||||
{"adt", DTZ, NEG(18)}, /* Atlantic Daylight Time */
|
||||
{"aesst", DTZ, 66}, /* E. Australia */
|
||||
{"aest", TZ, 60}, /* Australia Eastern Std Time */
|
||||
{"aft", TZ, 27}, /* Kabul */
|
||||
{"ahst", TZ, NEG(60)}, /* Alaska-Hawaii Std Time */
|
||||
{"akdt", DTZ, NEG(48)}, /* Alaska Daylight Time */
|
||||
{"akst", DTZ, NEG(54)}, /* Alaska Standard Time */
|
||||
{"allballs", RESERV, DTK_ZULU}, /* 00:00:00 */
|
||||
{"almt", TZ, 36}, /* Almaty Time */
|
||||
{"almst", TZ, 42}, /* Almaty Savings Time */
|
||||
{"am", AMPM, AM},
|
||||
#if 0
|
||||
{"amst", DTZ, 30}, /* Yerevan */
|
||||
{"amst", DTZ, NEG(18)}, /* Porto Velho */
|
||||
amt
|
||||
anast
|
||||
anat
|
||||
aqtst
|
||||
aqtt
|
||||
arst
|
||||
art
|
||||
ashst
|
||||
#endif
|
||||
{"apr", MONTH, 4},
|
||||
{"april", MONTH, 4},
|
||||
{"ast", TZ, NEG(24)}, /* Atlantic Std Time (Canada) */
|
||||
@ -91,55 +109,163 @@ static datetkn datetktbl[] = {
|
||||
{"august", MONTH, 8},
|
||||
{"awsst", DTZ, 54}, /* W. Australia */
|
||||
{"awst", TZ, 48}, /* W. Australia */
|
||||
{"awt", DTZ, NEG(18)},
|
||||
#if 0
|
||||
azost
|
||||
azot
|
||||
azst
|
||||
azt
|
||||
#endif
|
||||
{DB_C, ADBC, BC}, /* "bc" for years < 0 */
|
||||
{"bdst", TZ, 12}, /* British Double Summer Time */
|
||||
{"bdt", TZ, 36}, /* Dacca */
|
||||
#if 0
|
||||
bnt
|
||||
bort
|
||||
bortst
|
||||
bost
|
||||
bot
|
||||
brst
|
||||
brt
|
||||
#endif
|
||||
{"bst", TZ, 6}, /* British Summer Time */
|
||||
{"bt", TZ, 18}, /* Baghdad Time */
|
||||
#if 0
|
||||
btt
|
||||
#endif
|
||||
{"cadt", DTZ, 63}, /* Central Australian DST */
|
||||
{"cast", TZ, 57}, /* Central Australian ST */
|
||||
{"cat", TZ, NEG(60)}, /* Central Alaska Time */
|
||||
{"cct", TZ, 48}, /* China Coast */
|
||||
#if 0
|
||||
{"cct", TZ, 39}, /* Indian Cocos (Island) Time */
|
||||
#endif
|
||||
{"cdt", DTZ, NEG(30)}, /* Central Daylight Time */
|
||||
{"cest", DTZ, 12}, /* Central European Dayl.Time */
|
||||
{"cet", TZ, 6}, /* Central European Time */
|
||||
{"cetdst", DTZ, 12}, /* Central European Dayl.Time */
|
||||
#if 0
|
||||
chadt
|
||||
chast
|
||||
ckhst
|
||||
ckt
|
||||
clst
|
||||
clt
|
||||
cost
|
||||
cot
|
||||
#endif
|
||||
{"cst", TZ, NEG(36)}, /* Central Standard Time */
|
||||
#if 0
|
||||
cvst
|
||||
cvt
|
||||
#endif
|
||||
{"cxt", TZ, 42}, /* Indian Christmas (Island) Time */
|
||||
{DCURRENT, RESERV, DTK_CURRENT}, /* "current" is always now */
|
||||
{"d", UNITS, DAY}, /* "day of month" for ISO input */
|
||||
#if 0
|
||||
davt
|
||||
ddut
|
||||
#endif
|
||||
{"dec", MONTH, 12},
|
||||
{"december", MONTH, 12},
|
||||
{"dnt", TZ, 6}, /* Dansk Normal Tid */
|
||||
{"dow", RESERV, DTK_DOW}, /* day of week */
|
||||
{"doy", RESERV, DTK_DOY}, /* day of year */
|
||||
{"dst", DTZMOD, 6},
|
||||
{"east", TZ, 60}, /* East Australian Std Time */
|
||||
#if 0
|
||||
{"dusst", DTZ, 36}, /* Dushanbe Summer Time */
|
||||
{"easst", DTZ, NEG(30)}, /* Easter Island */
|
||||
{"east", TZ, NEG(36)}, /* Easter Island */
|
||||
#endif
|
||||
{"east", TZ, 24}, /* Indian Antananarivo Savings Time */
|
||||
{"eat", TZ, 18}, /* Indian Antananarivo Time */
|
||||
#if 0
|
||||
ect
|
||||
#endif
|
||||
{"edt", DTZ, NEG(24)}, /* Eastern Daylight Time */
|
||||
#if 0
|
||||
eest
|
||||
#endif
|
||||
{"eet", TZ, 12}, /* East. Europe, USSR Zone 1 */
|
||||
{"eetdst", DTZ, 18}, /* Eastern Europe */
|
||||
#if 0
|
||||
egst
|
||||
egt
|
||||
ehdt
|
||||
#endif
|
||||
{EPOCH, RESERV, DTK_EPOCH}, /* "epoch" reserved for system epoch time */
|
||||
{"est", TZ, NEG(30)}, /* Eastern Standard Time */
|
||||
{"feb", MONTH, 2},
|
||||
{"february", MONTH, 2},
|
||||
#if 0
|
||||
fjst
|
||||
fjt
|
||||
fkst
|
||||
fkt
|
||||
fnst
|
||||
fnt
|
||||
#endif
|
||||
{"fri", DOW, 5},
|
||||
{"friday", DOW, 5},
|
||||
{"fst", TZ, 6}, /* French Summer Time */
|
||||
{"fwt", DTZ, 12}, /* French Winter Time */
|
||||
#if 0
|
||||
galt
|
||||
gamt
|
||||
gest
|
||||
get
|
||||
gft
|
||||
ghst
|
||||
gilt
|
||||
#endif
|
||||
{"gmt", TZ, 0}, /* Greenwish Mean Time */
|
||||
{"gst", TZ, 60}, /* Guam Std Time, USSR Zone 9 */
|
||||
#if 0
|
||||
gyt
|
||||
#endif
|
||||
{"h", UNITS, HOUR}, /* "hour" */
|
||||
#if 0
|
||||
hadt
|
||||
hast
|
||||
#endif
|
||||
{"hdt", DTZ, NEG(54)}, /* Hawaii/Alaska */
|
||||
#if 0
|
||||
hkst
|
||||
hkt
|
||||
#endif
|
||||
{"hmt", DTZ, 18}, /* Hellas ? ? */
|
||||
#if 0
|
||||
hovst
|
||||
hovt
|
||||
#endif
|
||||
{"hst", TZ, NEG(60)}, /* Hawaii Std Time */
|
||||
#if 0
|
||||
hwt
|
||||
ict
|
||||
#endif
|
||||
{"idle", TZ, 72}, /* Intl. Date Line, East */
|
||||
{"idlw", TZ, NEG(72)}, /* Intl. Date Line, West */
|
||||
#if 0
|
||||
idt
|
||||
#endif
|
||||
{LATE, RESERV, DTK_LATE}, /* "infinity" reserved for "late time" */
|
||||
{INVALID, RESERV, DTK_INVALID},
|
||||
/* "invalid" reserved for invalid time */
|
||||
{INVALID, RESERV, DTK_INVALID}, /* "invalid" reserved for bad time */
|
||||
{"iot", TZ, 30}, /* Indian Chagos Time */
|
||||
#if 0
|
||||
irkst
|
||||
irkt
|
||||
irt
|
||||
isst
|
||||
#endif
|
||||
{"ist", TZ, 12}, /* Israel */
|
||||
{"it", TZ, 21}, /* Iran Time */
|
||||
{"j", UNITS, JULIAN},
|
||||
{"jan", MONTH, 1},
|
||||
{"january", MONTH, 1},
|
||||
#if 0
|
||||
javt
|
||||
jayt
|
||||
#endif
|
||||
{"jd", UNITS, JULIAN},
|
||||
{"jst", TZ, 54}, /* Japan Std Time,USSR Zone 8 */
|
||||
{"jt", TZ, 45}, /* Java Time */
|
||||
@ -147,11 +273,34 @@ static datetkn datetktbl[] = {
|
||||
{"julian", UNITS, JULIAN},
|
||||
{"jun", MONTH, 6},
|
||||
{"june", MONTH, 6},
|
||||
#if 0
|
||||
kdt
|
||||
kgst
|
||||
kgt
|
||||
kost
|
||||
krast
|
||||
krat
|
||||
#endif
|
||||
{"kst", TZ, 54}, /* Korea Standard Time */
|
||||
#if 0
|
||||
lhst
|
||||
#endif
|
||||
{"ligt", TZ, 60}, /* From Melbourne, Australia */
|
||||
#if 0
|
||||
lint
|
||||
lkt
|
||||
#endif
|
||||
{"m", UNITS, MONTH}, /* "month" for ISO input */
|
||||
#if 0
|
||||
magst
|
||||
magt
|
||||
#endif
|
||||
{"mar", MONTH, 3},
|
||||
{"march", MONTH, 3},
|
||||
#if 0
|
||||
mart
|
||||
#endif
|
||||
{"mawt", TZ, 36}, /* Mawson, Antarctica */
|
||||
{"may", MONTH, 5},
|
||||
{"mdt", DTZ, NEG(36)}, /* Mountain Daylight Time */
|
||||
{"mest", DTZ, 12}, /* Middle Europe Summer Time */
|
||||
@ -159,66 +308,183 @@ static datetkn datetktbl[] = {
|
||||
{"metdst", DTZ, 12}, /* Middle Europe Daylight Time */
|
||||
{"mewt", TZ, 6}, /* Middle Europe Winter Time */
|
||||
{"mez", TZ, 6}, /* Middle Europe Zone */
|
||||
{"mht", TZ, 72}, /* Kwajalein */
|
||||
{"mm", UNITS, MINUTE}, /* "minute" for ISO input */
|
||||
#if 0
|
||||
mmt
|
||||
#endif
|
||||
{"mon", DOW, 1},
|
||||
{"monday", DOW, 1},
|
||||
#if 0
|
||||
most
|
||||
mpt
|
||||
msd
|
||||
msk
|
||||
#endif
|
||||
{"mst", TZ, NEG(42)}, /* Mountain Standard Time */
|
||||
{"mt", TZ, 51}, /* Moluccas Time */
|
||||
{"mut", DTZ, 24}, /* Mauritius Island Time */
|
||||
{"mvt", DTZ, 30}, /* Maldives Island Time */
|
||||
#if 0
|
||||
myt
|
||||
ncst
|
||||
nct
|
||||
#endif
|
||||
{"ndt", DTZ, NEG(15)}, /* Nfld. Daylight Time */
|
||||
{"nft", TZ, NEG(21)}, /* Newfoundland Standard Time */
|
||||
{"nor", TZ, 6}, /* Norway Standard Time */
|
||||
{"nov", MONTH, 11},
|
||||
{"november", MONTH, 11},
|
||||
#if 0
|
||||
novst
|
||||
novt
|
||||
#endif
|
||||
{NOW, RESERV, DTK_NOW}, /* current transaction time */
|
||||
{"nst", TZ, NEG(21)}, /* Nfld. Standard Time */
|
||||
{"nt", TZ, NEG(66)}, /* Nome Time */
|
||||
#if 0
|
||||
nut
|
||||
#endif
|
||||
{"nzdt", DTZ, 78}, /* New Zealand Daylight Time */
|
||||
{"nzst", TZ, 72}, /* New Zealand Standard Time */
|
||||
{"nzt", TZ, 72}, /* New Zealand Time */
|
||||
{"oct", MONTH, 10},
|
||||
{"october", MONTH, 10},
|
||||
#if 0
|
||||
omsst
|
||||
omst
|
||||
#endif
|
||||
{"on", IGNORE, 0}, /* "on" (throwaway) */
|
||||
{"pdt", DTZ, NEG(42)}, /* Pacific Daylight Time */
|
||||
#if 0
|
||||
pest
|
||||
pet
|
||||
petst
|
||||
pett
|
||||
pgt
|
||||
phot
|
||||
phst
|
||||
pht
|
||||
pkt
|
||||
#endif
|
||||
{"pm", AMPM, PM},
|
||||
#if 0
|
||||
pmdt
|
||||
pmst
|
||||
pont
|
||||
#endif
|
||||
{"pst", TZ, NEG(48)}, /* Pacific Standard Time */
|
||||
#if 0
|
||||
pwt
|
||||
pyst
|
||||
pyt
|
||||
#endif
|
||||
{"ret", DTZ, 24}, /* Reunion Island Time */
|
||||
{"s", UNITS, SECOND}, /* "seconds" for ISO input */
|
||||
{"sadt", DTZ, 63}, /* S. Australian Dayl. Time */
|
||||
#if 0
|
||||
samst
|
||||
samt
|
||||
#endif
|
||||
{"sast", TZ, 57}, /* South Australian Std Time */
|
||||
{"sat", DOW, 6},
|
||||
{"saturday", DOW, 6},
|
||||
#if 0
|
||||
sbt
|
||||
#endif
|
||||
{"sct", DTZ, 24}, /* Mahe Island Time */
|
||||
{"sep", MONTH, 9},
|
||||
{"sept", MONTH, 9},
|
||||
{"september", MONTH, 9},
|
||||
{"set", TZ, NEG(6)}, /* Seychelles Time ?? */
|
||||
#if 0
|
||||
sgt
|
||||
#endif
|
||||
{"sst", DTZ, 12}, /* Swedish Summer Time */
|
||||
{"sun", DOW, 0},
|
||||
{"sunday", DOW, 0},
|
||||
{"swt", TZ, 6}, /* Swedish Winter Time */
|
||||
#if 0
|
||||
syot
|
||||
#endif
|
||||
{"t", DTK_ISO_TIME, 0}, /* Filler for ISO time fields */
|
||||
#if 0
|
||||
taht
|
||||
#endif
|
||||
{"tft", TZ, 30}, /* Kerguelen Time */
|
||||
{"thu", DOW, 4},
|
||||
{"thur", DOW, 4},
|
||||
{"thurs", DOW, 4},
|
||||
{"thursday", DOW, 4},
|
||||
#if 0
|
||||
tjt
|
||||
tkt
|
||||
tmt
|
||||
#endif
|
||||
{TODAY, RESERV, DTK_TODAY}, /* midnight */
|
||||
{TOMORROW, RESERV, DTK_TOMORROW}, /* tomorrow midnight */
|
||||
#if 0
|
||||
tost
|
||||
tot
|
||||
tpt
|
||||
trut
|
||||
#endif
|
||||
{"tue", DOW, 2},
|
||||
{"tues", DOW, 2},
|
||||
{"tuesday", DOW, 2},
|
||||
#if 0
|
||||
tvt
|
||||
uct
|
||||
ulast
|
||||
ulat
|
||||
#endif
|
||||
{"undefined", RESERV, DTK_INVALID}, /* pre-v6.1 invalid time */
|
||||
{"ut", TZ, 0},
|
||||
{"utc", TZ, 0},
|
||||
#if 0
|
||||
uyst
|
||||
uyt
|
||||
uzst
|
||||
uzt
|
||||
vet
|
||||
vlast
|
||||
vlat
|
||||
vust
|
||||
vut
|
||||
#endif
|
||||
{"wadt", DTZ, 48}, /* West Australian DST */
|
||||
#if 0
|
||||
wakt
|
||||
warst
|
||||
#endif
|
||||
{"wast", TZ, 42}, /* West Australian Std Time */
|
||||
{"wat", TZ, NEG(6)}, /* West Africa Time */
|
||||
{"wdt", DTZ, 54}, /* West Australian DST */
|
||||
{"wed", DOW, 3},
|
||||
{"wednesday", DOW, 3},
|
||||
{"weds", DOW, 3},
|
||||
#if 0
|
||||
west
|
||||
#endif
|
||||
{"wet", TZ, 0}, /* Western Europe */
|
||||
{"wetdst", DTZ, 6}, /* Western Europe */
|
||||
#if 0
|
||||
wft
|
||||
wgst
|
||||
wgt
|
||||
#endif
|
||||
{"wst", TZ, 48}, /* West Australian Std Time */
|
||||
{"y", UNITS, YEAR}, /* "year" for ISO input */
|
||||
#if 0
|
||||
yakst
|
||||
yakt
|
||||
yapt
|
||||
#endif
|
||||
{"ydt", DTZ, NEG(48)}, /* Yukon Daylight Time */
|
||||
#if 0
|
||||
yekst
|
||||
yekt
|
||||
#endif
|
||||
{YESTERDAY, RESERV, DTK_YESTERDAY}, /* yesterday midnight */
|
||||
{"yst", TZ, NEG(54)}, /* Yukon Standard Time */
|
||||
{"z", RESERV, DTK_ZULU}, /* 00:00:00 */
|
||||
@ -232,7 +498,9 @@ static unsigned int szdatetktbl = sizeof datetktbl / sizeof datetktbl[0];
|
||||
|
||||
/* Used for SET australian_timezones to override North American ones */
|
||||
static datetkn australian_datetktbl[] = {
|
||||
{"acst", TZ, 57}, /* Cent. Australia */
|
||||
{"cst", TZ, 63}, /* Australia Central Std Time */
|
||||
{"east", TZ, 60}, /* East Australian Std Time */
|
||||
{"est", TZ, 60}, /* Australia Eastern Std Time */
|
||||
{"sat", TZ, 57},
|
||||
};
|
||||
@ -798,6 +1066,10 @@ DecodeDateTime(char **field, int *ftype, int nf,
|
||||
switch (val)
|
||||
{
|
||||
case DTK_CURRENT:
|
||||
elog(ERROR, "'CURRENT' is no longer supported");
|
||||
return -1;
|
||||
break;
|
||||
|
||||
case DTK_NOW:
|
||||
tmask = (DTK_DATE_M | DTK_TIME_M | DTK_M(TZ));
|
||||
*dtype = DTK_DATE;
|
||||
@ -1174,6 +1446,11 @@ DecodeTimeOnly(char **field, int *ftype, int nf,
|
||||
case RESERV:
|
||||
switch (val)
|
||||
{
|
||||
case DTK_CURRENT:
|
||||
elog(ERROR, "'CURRENT' is no longer supported");
|
||||
return -1;
|
||||
break;
|
||||
|
||||
case DTK_NOW:
|
||||
tmask = DTK_TIME_M;
|
||||
*dtype = DTK_TIME;
|
||||
|
Loading…
Reference in New Issue
Block a user