2014-02-19 19:01 GMT+01:00 Alvaro Herrera <alvhe...@2ndquadrant.com>:
> Pavel Stehule escribió: > > > > 7) Why do the functions accept only the timezone abbreviation, not the > > > full name? I find it rather confusing, because the 'timezone' option > > > uses the full name, and we're using this as the default. But doing > > > 'show timestamp' and using the returned value fails. Is it possible > > > to fix this somehow? > > > > A only abbreviation is allowed for timetz type. Timestamp can work with > > full time zone names. A rules (behave) should be same as input functions > > for types: timestamptz and timetz. > > > > postgres=# select '10:10:10 CET'::timetz; > > timetz > > ───────────── > > 10:10:10+01 > > (1 row) > > > > postgres=# select '10:10:10 Europe/Prague'::timetz; > > ERROR: invalid input syntax for type time with time zone: "10:10:10 > > Europe/Prague" > > LINE 1: select '10:10:10 Europe/Prague'::timetz; > > ^ > > > > This limit is due used routines limits. > > I think this is a strange limitation, and perhaps it should be fixed > rather than inflicting the limitation on the new function. > I though about it, and now I am thinking so timezone in format 'Europe/Prague' is together with time ambiguous We can do it, but we have to expect so calculation will be related to current date - and I am not sure if it is correct, because someone can write some like make_date(x,x,x) + make_timetz(..) - and result will be damaged. > > I tweaked your patch a bit, attached; other than defining what to do > about full TZ names in timetz, this seems ready to commit. > > -- > Álvaro Herrera http://www.2ndQuadrant.com/ > PostgreSQL Development, 24x7 Support, Training & Services >