]> granicus.if.org Git - postgresql/blob - src/include/pgtime.h
Allow ALTER TABLE ... ALTER CONSTRAINT ... RENAME
[postgresql] / src / include / pgtime.h
1 /*-------------------------------------------------------------------------
2  *
3  * pgtime.h
4  *        PostgreSQL internal timezone library
5  *
6  * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
7  *
8  * IDENTIFICATION
9  *        $PostgreSQL: pgsql/src/include/pgtime.h,v 1.11 2005/10/15 02:49:41 momjian Exp $
10  *
11  *-------------------------------------------------------------------------
12  */
13 #ifndef _PGTIME_H
14 #define _PGTIME_H
15
16
17 /*
18  * The API of this library is generally similar to the corresponding
19  * C library functions, except that we use pg_time_t which (we hope) is
20  * 64 bits wide, and which is most definitely signed not unsigned.
21  */
22
23 typedef int64 pg_time_t;
24
25 struct pg_tm
26 {
27         int                     tm_sec;
28         int                     tm_min;
29         int                     tm_hour;
30         int                     tm_mday;
31         int                     tm_mon;                 /* origin 0, not 1 */
32         int                     tm_year;                /* relative to 1900 */
33         int                     tm_wday;
34         int                     tm_yday;
35         int                     tm_isdst;
36         long int        tm_gmtoff;
37         const char *tm_zone;
38 };
39
40 typedef struct pg_tz pg_tz;
41
42 extern struct pg_tm *pg_localtime(const pg_time_t *timep, const pg_tz *tz);
43 extern struct pg_tm *pg_gmtime(const pg_time_t *timep);
44 extern int pg_next_dst_boundary(const pg_time_t *timep,
45                                          long int *before_gmtoff,
46                                          int *before_isdst,
47                                          pg_time_t *boundary,
48                                          long int *after_gmtoff,
49                                          int *after_isdst,
50                                          const pg_tz *tz);
51 extern size_t pg_strftime(char *s, size_t max, const char *format,
52                         const struct pg_tm * tm);
53
54 extern void pg_timezone_initialize(void);
55 extern pg_tz *pg_tzset(const char *tzname);
56 extern bool tz_acceptable(pg_tz *tz);
57 extern const char *pg_get_timezone_name(pg_tz *tz);
58
59 extern pg_tz *global_timezone;
60
61 /* Maximum length of a timezone name (not including trailing null) */
62 #define TZ_STRLEN_MAX 255
63
64 #endif   /* _PGTIME_H */