Thread: Re: Argentinian timezone change at the last moment. How to change pgsql tz db?

Re: Argentinian timezone change at the last moment. How to change pgsql tz db?

From
"Scott Marlowe"
Date:
Wow!  I just looked this up on the web, and all I can say is, this was
a really stupid idea on the part of the govt in Argentina.     It
takes more than a couple days to create new timezone files and deploy
them normally.

I've been reading up on zic and wondering if it's a reasonable thing
to try and update the pg tz db to include the new argentinian DST
change.  Where is the tz info stored in postgres?  In the catalog?
I'd be willing to take a whack at making a new tz file for argentina
if I knew where it was and how to change it.

(scuttles off to look at the 8.2.5 source)


Scott Marlowe wrote:
> I've been reading up on zic and wondering if it's a reasonable thing
> to try and update the pg tz db to include the new argentinian DST
> change.  Where is the tz info stored in postgres?  In the catalog?
>   
Typically in /usr/share/postgresql/timezone or maybe 
/usr/local/share/postgresql/timezone.

Joe


Re: Argentinian timezone change at the last moment. How to change pgsql tz db?

From
"Scott Marlowe"
Date:
On Jan 2, 2008 2:49 PM, Joe <dev@freedomcircle.net> wrote:
> Scott Marlowe wrote:
> > I've been reading up on zic and wondering if it's a reasonable thing
> > to try and update the pg tz db to include the new argentinian DST
> > change.  Where is the tz info stored in postgres?  In the catalog?
> >
> Typically in /usr/share/postgresql/timezone or maybe
> /usr/local/share/postgresql/timezone.

That doesn't get me what I need.  It lets me change the alias of
timezones, but not the start and stop of daylight savings time.  I
think for that I'd have to edit / replace the files in
postgresql-8.2.x/src/timezone/data/ and recompile to fix this.


"Scott Marlowe" <scott.marlowe@gmail.com> writes:
> That doesn't get me what I need.  It lets me change the alias of
> timezones, but not the start and stop of daylight savings time.  I
> think for that I'd have to edit / replace the files in
> postgresql-8.2.x/src/timezone/data/ and recompile to fix this.

Since the OP has apparently already managed to get updated tzdata files
installed on his system, he could just copy them into
/usr/share/postgresql/timezone --- anything using zic should be a
compatible file format.

The lack-of-ARST-on-input problem can be addressed by mucking with
/usr/share/postgresql/timezonesets/Default, if you're using 8.2.
In earlier versions the table is hardwired into datetime.c :-(
        regards, tom lane


Re: Argentinian timezone change at the last moment. How to change pgsql tz db?

From
"Fernando Hevia"
Date:

> Tom Lane wrote:
> 
> "Scott Marlowe" <scott.marlowe@gmail.com> writes:
> > That doesn't get me what I need.  It lets me change the alias of
> > timezones, but not the start and stop of daylight savings time.  I
> > think for that I'd have to edit / replace the files in
> > postgresql-8.2.x/src/timezone/data/ and recompile to fix this.
> 
> Since the OP has apparently already managed to get updated tzdata files
> installed on his system, he could just copy them into
> /usr/share/postgresql/timezone --- anything using zic should be a
> compatible file format.
> 
> The lack-of-ARST-on-input problem can be addressed by mucking with
> /usr/share/postgresql/timezonesets/Default, if you're using 8.2.
> In earlier versions the table is hardwired into datetime.c :-(
> 
>             regards, tom lane

Thanks Scott and Tom for your help on this.

After copying the updated tz file to /usr/share/postgresql/timezone Postgres
got aware of the time change.

Regarding the ARST recognition, I'm still on 8.1.9. :(
An upgrade seems urgent now.

Regards,
Fernando.



Re: Argentinian timezone change at the last moment. How to change pgsql tz db?

From
"Fernando Hevia"
Date:

> Tom Lane [mailto:tgl@sss.pgh.pa.us] wrote:
>
> Since the OP has apparently already managed to get updated tzdata files
> installed on his system, he could just copy them into
> /usr/share/postgresql/timezone --- anything using zic should be a
> compatible file format.
>
> The lack-of-ARST-on-input problem can be addressed by mucking with
> /usr/share/postgresql/timezonesets/Default, if you're using 8.2.
> In earlier versions the table is hardwired into datetime.c :-(
>

Summing up:

After installing the updated tzdata files in the server I had to copy the
America/Argentina/* files to /usr/share/postgresql/timezone in order to get
postgres determine the correct local time.

With 8.2.x the ARST abbreviation was recognized after including the
following line in /usr/share/postgresql/8.2/timezonesets/Default

ARST   -14400 D  # Argentina Summer Time

postgres=# select '01:13:16.426 ARST Wed Jan 2 2008'::timestamp with time
zone;
        timestamptz
----------------------------
 2008-01-02 01:13:16.426-02
(1 row)

I wonder if pg_timezone_names plays any role in the ARST issue. It does
contain the right data (appeared after copying tzdata into
/usr/share/postgresql/timezone and restarting server) but ARST wasn't
accepted till previous step was done.

postgres=# select * from pg_timezone_names where abbrev = 'ARST';
              name              | abbrev | utc_offset | is_dst
--------------------------------+--------+------------+--------
 localtime                      | ARST   | -02:00:00  | t
 America/Argentina/Rio_Gallegos | ARST   | -02:00:00  | t
 America/Argentina/Mendoza      | ARST   | -02:00:00  | t
 America/Argentina/La_Rioja     | ARST   | -02:00:00  | t
 America/Argentina/Buenos_Aires | ARST   | -02:00:00  | t
 America/Argentina/Cordoba      | ARST   | -02:00:00  | t
 America/Argentina/Catamarca    | ARST   | -02:00:00  | t
 America/Argentina/Ushuaia      | ARST   | -02:00:00  | t
 America/Argentina/Tucuman      | ARST   | -02:00:00  | t
 America/Argentina/Jujuy        | ARST   | -02:00:00  | t
 America/Argentina/San_Juan     | ARST   | -02:00:00  | t
(11 rows)


Thanks for all contributions.

Regards,
Fernando.




"Fernando Hevia" <fhevia@ip-tel.com.ar> writes:
> With 8.2.x the ARST abbreviation was recognized after including the
> following line in /usr/share/postgresql/8.2/timezonesets/Default

> ARST   -14400 D  # Argentina Summer Time

Um ... is that really offsetting in the correct direction?  What I put
into CVS was

ARST    -7200 D  # Argentina Summer Time

If that's wrong I need to know ...

> I wonder if pg_timezone_names plays any role in the ARST issue. It does
> contain the right data (appeared after copying tzdata into
> /usr/share/postgresql/timezone and restarting server) but ARST wasn't
> accepted till previous step was done.

Too tired to experiment, but you may need a "pg_ctl reload" or even a
restart to get PG to notice changes in your timezonesets file.

            regards, tom lane

Re: Argentinian timezone change at the last moment. How to change pgsql tz db?

From
"Fernando Hevia"
Date:

> Tom Lane [mailto:tgl@sss.pgh.pa.us] wrote:
>
> "Fernando Hevia" <fhevia@ip-tel.com.ar> writes:
> > With 8.2.x the ARST abbreviation was recognized after including the
> > following line in /usr/share/postgresql/8.2/timezonesets/Default
>
> > ARST   -14400 D  # Argentina Summer Time
>
> Um ... is that really offsetting in the correct direction?  What I put
> into CVS was
>
> ARST    -7200 D  # Argentina Summer Time
>
> If that's wrong I need to know ...
>

No, you are right: -7200 is the correct offset.

Regards,
Fernando.