FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
IvorySQL/src/timezone/pgtz.h at master · IvorySQL/IvorySQL · GitHub
IvorySQL
IvorySQL
Repository navigation
Code
Issues
683
(683)
Pull requests
506
(506)
Discussions
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
IvorySQL
/
src
/
timezone
/
pgtz.h
Copy path
More file actions
More file actions
Latest commit
History
History
History
81 lines (68 loc) · 2.03 KB
Breadcrumbs
IvorySQL
/
src
/
timezone
/
pgtz.h
Copy path
File metadata and controls
81 lines (68 loc) · 2.03 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/*-------------------------------------------------------------------------
*
* pgtz.h
* Timezone Library Integration Functions
*
* Note: this file contains only definitions that are private to the
* timezone library. Public definitions are in pgtime.h.
*
* Portions Copyright (c) 1996-2026, PostgreSQL Global Development Group
*
* IDENTIFICATION
* src/timezone/pgtz.h
*
*-------------------------------------------------------------------------
*/
#ifndef
_PGTZ_H
#define
_PGTZ_H
#include
"pgtime.h"
#include
"tzfile.h"
#define
SMALLEST
(
a
,
b
) (((a) < (b)) ? (a) : (b))
#define
BIGGEST
(
a
,
b
) (((a) > (b)) ? (a) : (b))
struct
ttinfo
{
/* time type information */
int_fast32_t
tt_utoff
;
/* UT offset in seconds */
bool
tt_isdst
;
/* used to set tm_isdst */
int
tt_desigidx
;
/* abbreviation list index */
bool
tt_ttisstd
;
/* transition is std time */
bool
tt_ttisut
;
/* transition is UT */
};
struct
lsinfo
{
/* leap second information */
pg_time_t
ls_trans
;
/* transition time */
int_fast64_t
ls_corr
;
/* correction to apply */
};
struct
state
{
int
leapcnt
;
int
timecnt
;
int
typecnt
;
int
charcnt
;
bool
goback
;
bool
goahead
;
pg_time_t
ats
[
TZ_MAX_TIMES
];
unsigned
char
types
[
TZ_MAX_TIMES
];
struct
ttinfo
ttis
[
TZ_MAX_TYPES
];
char
chars
[
BIGGEST
(
BIGGEST
(
TZ_MAX_CHARS
+
1
,
4
/* sizeof gmt */
),
(
2
*
(
TZ_STRLEN_MAX
+
1
)))];
struct
lsinfo
lsis
[
TZ_MAX_LEAPS
];
/*
* The time type to use for early times or if no transitions. It is always
* zero for recent tzdb releases. It might be nonzero for data from tzdb
* 2018e or earlier.
*/
int
defaulttype
;
};
struct
pg_tz
{
/* TZname contains the canonically-cased name of the timezone */
char
TZname
[
TZ_STRLEN_MAX
+
1
];
struct
state
state
;
};
/* in pgtz.c */
extern
int
pg_open_tzfile
(
const
char
*
name
,
char
*
canonname
);
/* in localtime.c */
extern
int
tzload
(
const
char
*
name
,
char
*
canonname
,
struct
state
*
sp
,
bool
doextend
);
extern
bool
tzparse
(
const
char
*
name
,
struct
state
*
sp
,
bool
lastditch
);
#endif
/* _PGTZ_H */
Back
|
FazBrowse Home
|
New Git URL