PostgreSQL Source Code
git master
pg_locale_c.h
Go to the documentation of this file.
1
/*-----------------------------------------------------------------------
2
*
3
* PostgreSQL locale utilities
4
*
5
* src/include/utils/pg_locale_c.h
6
*
7
* Copyright (c) 2002-2025, PostgreSQL Global Development Group
8
*
9
*-----------------------------------------------------------------------
10
*/
11
12
#ifndef _PG_LOCALE_C_
13
#define _PG_LOCALE_C_
14
15
/*
16
* Hard-wired character properties for C locale
17
*/
18
19
#define PG_ISDIGIT 0x01
20
#define PG_ISALPHA 0x02
21
#define PG_ISALNUM (PG_ISDIGIT | PG_ISALPHA)
22
#define PG_ISUPPER 0x04
23
#define PG_ISLOWER 0x08
24
#define PG_ISGRAPH 0x10
25
#define PG_ISPRINT 0x20
26
#define PG_ISPUNCT 0x40
27
#define PG_ISSPACE 0x80
28
29
static
const
unsigned
char
pg_char_properties
[128] = {
30
/* NUL */
0,
31
/* ^A */
0,
32
/* ^B */
0,
33
/* ^C */
0,
34
/* ^D */
0,
35
/* ^E */
0,
36
/* ^F */
0,
37
/* ^G */
0,
38
/* ^H */
0,
39
/* ^I */
PG_ISSPACE
,
40
/* ^J */
PG_ISSPACE
,
41
/* ^K */
PG_ISSPACE
,
42
/* ^L */
PG_ISSPACE
,
43
/* ^M */
PG_ISSPACE
,
44
/* ^N */
0,
45
/* ^O */
0,
46
/* ^P */
0,
47
/* ^Q */
0,
48
/* ^R */
0,
49
/* ^S */
0,
50
/* ^T */
0,
51
/* ^U */
0,
52
/* ^V */
0,
53
/* ^W */
0,
54
/* ^X */
0,
55
/* ^Y */
0,
56
/* ^Z */
0,
57
/* ^[ */
0,
58
/* ^\ */
0,
59
/* ^] */
0,
60
/* ^^ */
0,
61
/* ^_ */
0,
62
/* */
PG_ISPRINT
|
PG_ISSPACE
,
63
/* ! */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
64
/* " */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
65
/* # */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
66
/* $ */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
67
/* % */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
68
/* & */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
69
/* ' */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
70
/* ( */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
71
/* ) */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
72
/* * */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
73
/* + */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
74
/* , */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
75
/* - */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
76
/* . */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
77
/* / */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
78
/* 0 */
PG_ISDIGIT
|
PG_ISGRAPH
|
PG_ISPRINT
,
79
/* 1 */
PG_ISDIGIT
|
PG_ISGRAPH
|
PG_ISPRINT
,
80
/* 2 */
PG_ISDIGIT
|
PG_ISGRAPH
|
PG_ISPRINT
,
81
/* 3 */
PG_ISDIGIT
|
PG_ISGRAPH
|
PG_ISPRINT
,
82
/* 4 */
PG_ISDIGIT
|
PG_ISGRAPH
|
PG_ISPRINT
,
83
/* 5 */
PG_ISDIGIT
|
PG_ISGRAPH
|
PG_ISPRINT
,
84
/* 6 */
PG_ISDIGIT
|
PG_ISGRAPH
|
PG_ISPRINT
,
85
/* 7 */
PG_ISDIGIT
|
PG_ISGRAPH
|
PG_ISPRINT
,
86
/* 8 */
PG_ISDIGIT
|
PG_ISGRAPH
|
PG_ISPRINT
,
87
/* 9 */
PG_ISDIGIT
|
PG_ISGRAPH
|
PG_ISPRINT
,
88
/* : */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
89
/* ; */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
90
/* < */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
91
/* = */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
92
/* > */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
93
/* ? */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
94
/* @ */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
95
/* A */
PG_ISALPHA
|
PG_ISUPPER
|
PG_ISGRAPH
|
PG_ISPRINT
,
96
/* B */
PG_ISALPHA
|
PG_ISUPPER
|
PG_ISGRAPH
|
PG_ISPRINT
,
97
/* C */
PG_ISALPHA
|
PG_ISUPPER
|
PG_ISGRAPH
|
PG_ISPRINT
,
98
/* D */
PG_ISALPHA
|
PG_ISUPPER
|
PG_ISGRAPH
|
PG_ISPRINT
,
99
/* E */
PG_ISALPHA
|
PG_ISUPPER
|
PG_ISGRAPH
|
PG_ISPRINT
,
100
/* F */
PG_ISALPHA
|
PG_ISUPPER
|
PG_ISGRAPH
|
PG_ISPRINT
,
101
/* G */
PG_ISALPHA
|
PG_ISUPPER
|
PG_ISGRAPH
|
PG_ISPRINT
,
102
/* H */
PG_ISALPHA
|
PG_ISUPPER
|
PG_ISGRAPH
|
PG_ISPRINT
,
103
/* I */
PG_ISALPHA
|
PG_ISUPPER
|
PG_ISGRAPH
|
PG_ISPRINT
,
104
/* J */
PG_ISALPHA
|
PG_ISUPPER
|
PG_ISGRAPH
|
PG_ISPRINT
,
105
/* K */
PG_ISALPHA
|
PG_ISUPPER
|
PG_ISGRAPH
|
PG_ISPRINT
,
106
/* L */
PG_ISALPHA
|
PG_ISUPPER
|
PG_ISGRAPH
|
PG_ISPRINT
,
107
/* M */
PG_ISALPHA
|
PG_ISUPPER
|
PG_ISGRAPH
|
PG_ISPRINT
,
108
/* N */
PG_ISALPHA
|
PG_ISUPPER
|
PG_ISGRAPH
|
PG_ISPRINT
,
109
/* O */
PG_ISALPHA
|
PG_ISUPPER
|
PG_ISGRAPH
|
PG_ISPRINT
,
110
/* P */
PG_ISALPHA
|
PG_ISUPPER
|
PG_ISGRAPH
|
PG_ISPRINT
,
111
/* Q */
PG_ISALPHA
|
PG_ISUPPER
|
PG_ISGRAPH
|
PG_ISPRINT
,
112
/* R */
PG_ISALPHA
|
PG_ISUPPER
|
PG_ISGRAPH
|
PG_ISPRINT
,
113
/* S */
PG_ISALPHA
|
PG_ISUPPER
|
PG_ISGRAPH
|
PG_ISPRINT
,
114
/* T */
PG_ISALPHA
|
PG_ISUPPER
|
PG_ISGRAPH
|
PG_ISPRINT
,
115
/* U */
PG_ISALPHA
|
PG_ISUPPER
|
PG_ISGRAPH
|
PG_ISPRINT
,
116
/* V */
PG_ISALPHA
|
PG_ISUPPER
|
PG_ISGRAPH
|
PG_ISPRINT
,
117
/* W */
PG_ISALPHA
|
PG_ISUPPER
|
PG_ISGRAPH
|
PG_ISPRINT
,
118
/* X */
PG_ISALPHA
|
PG_ISUPPER
|
PG_ISGRAPH
|
PG_ISPRINT
,
119
/* Y */
PG_ISALPHA
|
PG_ISUPPER
|
PG_ISGRAPH
|
PG_ISPRINT
,
120
/* Z */
PG_ISALPHA
|
PG_ISUPPER
|
PG_ISGRAPH
|
PG_ISPRINT
,
121
/* [ */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
122
/* \ */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
123
/* ] */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
124
/* ^ */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
125
/* _ */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
126
/* ` */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
127
/* a */
PG_ISALPHA
|
PG_ISLOWER
|
PG_ISGRAPH
|
PG_ISPRINT
,
128
/* b */
PG_ISALPHA
|
PG_ISLOWER
|
PG_ISGRAPH
|
PG_ISPRINT
,
129
/* c */
PG_ISALPHA
|
PG_ISLOWER
|
PG_ISGRAPH
|
PG_ISPRINT
,
130
/* d */
PG_ISALPHA
|
PG_ISLOWER
|
PG_ISGRAPH
|
PG_ISPRINT
,
131
/* e */
PG_ISALPHA
|
PG_ISLOWER
|
PG_ISGRAPH
|
PG_ISPRINT
,
132
/* f */
PG_ISALPHA
|
PG_ISLOWER
|
PG_ISGRAPH
|
PG_ISPRINT
,
133
/* g */
PG_ISALPHA
|
PG_ISLOWER
|
PG_ISGRAPH
|
PG_ISPRINT
,
134
/* h */
PG_ISALPHA
|
PG_ISLOWER
|
PG_ISGRAPH
|
PG_ISPRINT
,
135
/* i */
PG_ISALPHA
|
PG_ISLOWER
|
PG_ISGRAPH
|
PG_ISPRINT
,
136
/* j */
PG_ISALPHA
|
PG_ISLOWER
|
PG_ISGRAPH
|
PG_ISPRINT
,
137
/* k */
PG_ISALPHA
|
PG_ISLOWER
|
PG_ISGRAPH
|
PG_ISPRINT
,
138
/* l */
PG_ISALPHA
|
PG_ISLOWER
|
PG_ISGRAPH
|
PG_ISPRINT
,
139
/* m */
PG_ISALPHA
|
PG_ISLOWER
|
PG_ISGRAPH
|
PG_ISPRINT
,
140
/* n */
PG_ISALPHA
|
PG_ISLOWER
|
PG_ISGRAPH
|
PG_ISPRINT
,
141
/* o */
PG_ISALPHA
|
PG_ISLOWER
|
PG_ISGRAPH
|
PG_ISPRINT
,
142
/* p */
PG_ISALPHA
|
PG_ISLOWER
|
PG_ISGRAPH
|
PG_ISPRINT
,
143
/* q */
PG_ISALPHA
|
PG_ISLOWER
|
PG_ISGRAPH
|
PG_ISPRINT
,
144
/* r */
PG_ISALPHA
|
PG_ISLOWER
|
PG_ISGRAPH
|
PG_ISPRINT
,
145
/* s */
PG_ISALPHA
|
PG_ISLOWER
|
PG_ISGRAPH
|
PG_ISPRINT
,
146
/* t */
PG_ISALPHA
|
PG_ISLOWER
|
PG_ISGRAPH
|
PG_ISPRINT
,
147
/* u */
PG_ISALPHA
|
PG_ISLOWER
|
PG_ISGRAPH
|
PG_ISPRINT
,
148
/* v */
PG_ISALPHA
|
PG_ISLOWER
|
PG_ISGRAPH
|
PG_ISPRINT
,
149
/* w */
PG_ISALPHA
|
PG_ISLOWER
|
PG_ISGRAPH
|
PG_ISPRINT
,
150
/* x */
PG_ISALPHA
|
PG_ISLOWER
|
PG_ISGRAPH
|
PG_ISPRINT
,
151
/* y */
PG_ISALPHA
|
PG_ISLOWER
|
PG_ISGRAPH
|
PG_ISPRINT
,
152
/* z */
PG_ISALPHA
|
PG_ISLOWER
|
PG_ISGRAPH
|
PG_ISPRINT
,
153
/* { */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
154
/* | */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
155
/* } */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
156
/* ~ */
PG_ISGRAPH
|
PG_ISPRINT
|
PG_ISPUNCT
,
157
/* DEL */
0
158
};
159
160
#endif
/* _PG_LOCALE_C_ */
PG_ISLOWER
#define PG_ISLOWER
Definition:
pg_locale_c.h:23
PG_ISPRINT
#define PG_ISPRINT
Definition:
pg_locale_c.h:25
PG_ISALPHA
#define PG_ISALPHA
Definition:
pg_locale_c.h:20
PG_ISGRAPH
#define PG_ISGRAPH
Definition:
pg_locale_c.h:24
PG_ISPUNCT
#define PG_ISPUNCT
Definition:
pg_locale_c.h:26
PG_ISDIGIT
#define PG_ISDIGIT
Definition:
pg_locale_c.h:19
PG_ISUPPER
#define PG_ISUPPER
Definition:
pg_locale_c.h:22
PG_ISSPACE
#define PG_ISSPACE
Definition:
pg_locale_c.h:27
pg_char_properties
static const unsigned char pg_char_properties[128]
Definition:
pg_locale_c.h:29
src
include
utils
pg_locale_c.h
Generated on Mon Nov 24 2025 18:13:17 for PostgreSQL Source Code by
1.9.4