Coverage Report

Created: 2026-09-28 06:55

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/postgres/src/include/mb/pg_wchar.h
Line
Count
Source
1
/*-------------------------------------------------------------------------
2
 *
3
 * pg_wchar.h
4
 *    multibyte-character support
5
 *
6
 * Portions Copyright (c) 1996-2026, PostgreSQL Global Development Group
7
 * Portions Copyright (c) 1994, Regents of the University of California
8
 *
9
 * src/include/mb/pg_wchar.h
10
 *
11
 *  NOTES
12
 *    This is used both by the backend and by frontends, but should not be
13
 *    included by libpq client programs.  In particular, a libpq client
14
 *    should not assume that the encoding IDs used by the version of libpq
15
 *    it's linked to match up with the IDs declared here.
16
 *    To help prevent mistakes, relevant functions that are exported by
17
 *    libpq have a physically different name when being referenced
18
 *    statically.
19
 *
20
 *-------------------------------------------------------------------------
21
 */
22
#ifndef PG_WCHAR_H
23
#define PG_WCHAR_H
24
25
/*
26
 * The pg_wchar type
27
 */
28
typedef unsigned int pg_wchar;
29
30
/*
31
 * Maximum byte length of multibyte characters in any backend encoding
32
 */
33
0
#define MAX_MULTIBYTE_CHAR_LEN  4
34
35
/*
36
 * various definitions for EUC
37
 */
38
0
#define SS2 0x8e        /* single shift 2 (JIS0201) */
39
0
#define SS3 0x8f        /* single shift 3 (JIS0212) */
40
41
/*
42
 * EUC_TW planes
43
 */
44
#define LC_CNS11643_1   0x95  /* CNS 11643-1992 Plane 1 */
45
#define LC_CNS11643_2   0x96  /* CNS 11643-1992 Plane 2 */
46
#define LC_CNS11643_3   0xf6  /* CNS 11643-1992 Plane 3 */
47
#define LC_CNS11643_4   0xf7  /* CNS 11643-1992 Plane 4 */
48
#define LC_CNS11643_5   0xf8  /* CNS 11643-1992 Plane 5 */
49
#define LC_CNS11643_6   0xf9  /* CNS 11643-1992 Plane 6 */
50
#define LC_CNS11643_7   0xfa  /* CNS 11643-1992 Plane 7 */
51
52
/*
53
 * SJIS validation macros
54
 */
55
0
#define ISSJISHEAD(c) (((c) >= 0x81 && (c) <= 0x9f) || ((c) >= 0xe0 && (c) <= 0xfc))
56
0
#define ISSJISTAIL(c) (((c) >= 0x40 && (c) <= 0x7e) || ((c) >= 0x80 && (c) <= 0xfc))
57
58
/*
59
 * PostgreSQL encoding identifiers
60
 *
61
 * WARNING: If you add some encoding don't forget to update
62
 *      the pg_enc2name_tbl[] array (in src/common/encnames.c),
63
 *      the pg_enc2gettext_tbl[] array (in src/common/encnames.c) and
64
 *      the pg_wchar_table[] array (in src/common/wchar.c) and to check
65
 *      PG_ENCODING_BE_LAST macro.
66
 *
67
 * PG_SQL_ASCII is default encoding and must be = 0.
68
 *
69
 * XXX  We must avoid renumbering any backend encoding until libpq's major
70
 * version number is increased beyond 5; it turns out that the backend
71
 * encoding IDs are effectively part of libpq's ABI as far as 8.2 initdb and
72
 * psql are concerned.
73
 */
74
typedef enum pg_enc
75
{
76
  PG_SQL_ASCII = 0,     /* SQL/ASCII */
77
  PG_EUC_JP,          /* EUC for Japanese */
78
  PG_EUC_CN,          /* EUC for Chinese */
79
  PG_EUC_KR,          /* EUC for Korean */
80
  PG_EUC_TW,          /* EUC for Taiwan */
81
  PG_EUC_JIS_2004,      /* EUC-JIS-2004 */
82
  PG_UTF8,          /* Unicode UTF8 */
83
  PG_UNUSED_1,        /* (Was Mule internal code) */
84
  PG_LATIN1,          /* ISO-8859-1 Latin 1 */
85
  PG_LATIN2,          /* ISO-8859-2 Latin 2 */
86
  PG_LATIN3,          /* ISO-8859-3 Latin 3 */
87
  PG_LATIN4,          /* ISO-8859-4 Latin 4 */
88
  PG_LATIN5,          /* ISO-8859-9 Latin 5 */
89
  PG_LATIN6,          /* ISO-8859-10 Latin6 */
90
  PG_LATIN7,          /* ISO-8859-13 Latin7 */
91
  PG_LATIN8,          /* ISO-8859-14 Latin8 */
92
  PG_LATIN9,          /* ISO-8859-15 Latin9 */
93
  PG_LATIN10,         /* ISO-8859-16 Latin10 */
94
  PG_WIN1256,         /* windows-1256 */
95
  PG_WIN1258,         /* Windows-1258 */
96
  PG_WIN866,          /* (MS-DOS CP866) */
97
  PG_WIN874,          /* windows-874 */
98
  PG_KOI8R,         /* KOI8-R */
99
  PG_WIN1251,         /* windows-1251 */
100
  PG_WIN1252,         /* windows-1252 */
101
  PG_ISO_8859_5,        /* ISO-8859-5 */
102
  PG_ISO_8859_6,        /* ISO-8859-6 */
103
  PG_ISO_8859_7,        /* ISO-8859-7 */
104
  PG_ISO_8859_8,        /* ISO-8859-8 */
105
  PG_WIN1250,         /* windows-1250 */
106
  PG_WIN1253,         /* windows-1253 */
107
  PG_WIN1254,         /* windows-1254 */
108
  PG_WIN1255,         /* windows-1255 */
109
  PG_WIN1257,         /* windows-1257 */
110
  PG_KOI8U,         /* KOI8-U */
111
  /* PG_ENCODING_BE_LAST points to the above entry */
112
113
  /* The following are for client encoding only */
114
  PG_SJIS,          /* Shift JIS (Windows-932) */
115
  PG_BIG5,          /* Big5 (Windows-950) */
116
  PG_GBK,           /* GBK (Windows-936) */
117
  PG_UHC,           /* UHC (Windows-949) */
118
  PG_GB18030,         /* GB18030 */
119
  PG_JOHAB,         /* EUC for Korean JOHAB */
120
  PG_SHIFT_JIS_2004,      /* Shift-JIS-2004 */
121
  _PG_LAST_ENCODING_      /* mark only */
122
123
} pg_enc;
124
125
5.77k
#define PG_ENCODING_BE_LAST PG_KOI8U
126
127
#define PG_UNUSED_ENCODING(_enc) \
128
2.69k
  ((_enc) == PG_UNUSED_1)
129
130
/*
131
 * Please use these tests before access to pg_enc2name_tbl[]
132
 * or to other places...
133
 */
134
#define PG_VALID_BE_ENCODING(_enc) \
135
0
    ((_enc) >= 0 && (_enc) <= PG_ENCODING_BE_LAST && !PG_UNUSED_ENCODING(_enc))
136
137
#define PG_ENCODING_IS_CLIENT_ONLY(_enc) \
138
2.88k
    ((_enc) > PG_ENCODING_BE_LAST && (_enc) < _PG_LAST_ENCODING_)
139
140
#define PG_VALID_ENCODING(_enc) \
141
2.69k
    ((_enc) >= 0 && (_enc) < _PG_LAST_ENCODING_ && !PG_UNUSED_ENCODING(_enc))
142
143
/* On FE are possible all encodings */
144
6
#define PG_VALID_FE_ENCODING(_enc)  PG_VALID_ENCODING(_enc)
145
146
/*
147
 * When converting strings between different encodings, we assume that space
148
 * for converted result is 4-to-1 growth in the worst case.  The rate for
149
 * currently supported encoding pairs are within 3 (SJIS JIS X0201 half width
150
 * kana -> UTF8 is the worst case).  So "4" should be enough for the moment.
151
 *
152
 * Note that this is not the same as the maximum character width in any
153
 * particular encoding.
154
 */
155
0
#define MAX_CONVERSION_GROWTH  4
156
157
/*
158
 * Maximum byte length of a string that's required in any encoding to convert
159
 * at least one character to any other encoding.  In other words, if you feed
160
 * MAX_CONVERSION_INPUT_LENGTH bytes to any encoding conversion function, it
161
 * is guaranteed to be able to convert something without needing more input
162
 * (assuming the input is valid).
163
 *
164
 * Currently, the maximum case is the conversion UTF8 -> SJIS JIS X0201 half
165
 * width kana, where a pair of UTF-8 characters is converted into a single
166
 * SHIFT_JIS_2004 character (the reverse of the worst case for
167
 * MAX_CONVERSION_GROWTH).  It needs 6 bytes of input.  In theory, a
168
 * user-defined conversion function might have more complicated cases, although
169
 * for the reverse mapping you would probably also need to bump up
170
 * MAX_CONVERSION_GROWTH.  But there is no need to be stingy here, so make it
171
 * generous.
172
 */
173
0
#define MAX_CONVERSION_INPUT_LENGTH 16
174
175
/*
176
 * Maximum byte length of the string equivalent to any one Unicode code point,
177
 * in any backend encoding.  The current value assumes that a 4-byte UTF-8
178
 * character might expand by MAX_CONVERSION_GROWTH, which is a huge
179
 * overestimate.  But in current usage we don't allocate large multiples of
180
 * this, so there's little point in being stingy.
181
 */
182
4.60M
#define MAX_UNICODE_EQUIVALENT_STRING 16
183
184
/*
185
 * Table for mapping an encoding number to official encoding name and
186
 * possibly other subsidiary data.  Be careful to check encoding number
187
 * before accessing a table entry!
188
 *
189
 * if (PG_VALID_ENCODING(encoding))
190
 *    pg_enc2name_tbl[ encoding ];
191
 */
192
typedef struct pg_enc2name
193
{
194
  const char *name;
195
  pg_enc    encoding;
196
#ifdef WIN32
197
  unsigned  codepage;   /* codepage for WIN32 */
198
#endif
199
} pg_enc2name;
200
201
extern PGDLLIMPORT const pg_enc2name pg_enc2name_tbl[];
202
203
/*
204
 * Encoding names for gettext
205
 */
206
extern PGDLLIMPORT const char *pg_enc2gettext_tbl[];
207
208
/*
209
 * pg_wchar stuff
210
 */
211
typedef int (*mb2wchar_with_len_converter) (const unsigned char *from,
212
                      pg_wchar *to,
213
                      int len);
214
215
typedef int (*wchar2mb_with_len_converter) (const pg_wchar *from,
216
                      unsigned char *to,
217
                      int len);
218
219
typedef int (*mblen_converter) (const unsigned char *mbstr);
220
221
typedef int (*mbdisplaylen_converter) (const unsigned char *mbstr);
222
223
typedef bool (*mbcharacter_incrementer) (unsigned char *mbstr, int len);
224
225
typedef int (*mbchar_verifier) (const unsigned char *mbstr, int len);
226
227
typedef int (*mbstr_verifier) (const unsigned char *mbstr, int len);
228
229
typedef struct
230
{
231
  mb2wchar_with_len_converter mb2wchar_with_len;  /* convert a multibyte
232
                           * string to a wchar */
233
  wchar2mb_with_len_converter wchar2mb_with_len;  /* convert a wchar string
234
                           * to a multibyte */
235
  mblen_converter mblen;    /* get byte length of a char */
236
  mbdisplaylen_converter dsplen;  /* get display width of a char */
237
  mbchar_verifier mbverifychar; /* verify multibyte character */
238
  mbstr_verifier mbverifystr; /* verify multibyte string */
239
  int     maxmblen;   /* max bytes for a char in this encoding */
240
} pg_wchar_tbl;
241
242
extern PGDLLIMPORT const pg_wchar_tbl pg_wchar_table[];
243
244
/*
245
 * Data structures for conversions between UTF-8 and other encodings
246
 * (UtfToLocal() and LocalToUtf()).  In these data structures, characters of
247
 * either encoding are represented by uint32 words; hence we can only support
248
 * characters up to 4 bytes long.  For example, the byte sequence 0xC2 0x89
249
 * would be represented by 0x0000C289, and 0xE8 0xA2 0xB4 by 0x00E8A2B4.
250
 *
251
 * There are three possible ways a character can be mapped:
252
 *
253
 * 1. Using a radix tree, from source to destination code.
254
 * 2. Using a sorted array of source -> destination code pairs. This
255
 *    method is used for "combining" characters. There are so few of
256
 *    them that building a radix tree would be wasteful.
257
 * 3. Using a conversion function.
258
 */
259
260
/*
261
 * Radix tree for character conversion.
262
 *
263
 * Logically, this is actually four different radix trees, for 1-byte,
264
 * 2-byte, 3-byte and 4-byte inputs. The 1-byte tree is a simple lookup
265
 * table from source to target code. The 2-byte tree consists of two levels:
266
 * one lookup table for the first byte, where the value in the lookup table
267
 * points to a lookup table for the second byte. And so on.
268
 *
269
 * Physically, all the trees are stored in one big array, in 'chars16' or
270
 * 'chars32', depending on the maximum value that needs to be represented. For
271
 * each level in each tree, we also store lower and upper bound of allowed
272
 * values - values outside those bounds are considered invalid, and are left
273
 * out of the tables.
274
 *
275
 * In the intermediate levels of the trees, the values stored are offsets
276
 * into the chars[16|32] array.
277
 *
278
 * In the beginning of the chars[16|32] array, there is always a number of
279
 * zeros, so that you safely follow an index from an intermediate table
280
 * without explicitly checking for a zero. Following a zero any number of
281
 * times will always bring you to the dummy, all-zeros table in the
282
 * beginning. This helps to shave some cycles when looking up values.
283
 */
284
typedef struct
285
{
286
  /*
287
   * Array containing all the values. Only one of chars16 or chars32 is
288
   * used, depending on how wide the values we need to represent are.
289
   */
290
  const uint16 *chars16;
291
  const uint32 *chars32;
292
293
  /* Radix tree for 1-byte inputs */
294
  uint32    b1root;     /* offset of table in the chars[16|32] array */
295
  uint8   b1_lower;   /* min allowed value for a single byte input */
296
  uint8   b1_upper;   /* max allowed value for a single byte input */
297
298
  /* Radix tree for 2-byte inputs */
299
  uint32    b2root;     /* offset of 1st byte's table */
300
  uint8   b2_1_lower;   /* min/max allowed value for 1st input byte */
301
  uint8   b2_1_upper;
302
  uint8   b2_2_lower;   /* min/max allowed value for 2nd input byte */
303
  uint8   b2_2_upper;
304
305
  /* Radix tree for 3-byte inputs */
306
  uint32    b3root;     /* offset of 1st byte's table */
307
  uint8   b3_1_lower;   /* min/max allowed value for 1st input byte */
308
  uint8   b3_1_upper;
309
  uint8   b3_2_lower;   /* min/max allowed value for 2nd input byte */
310
  uint8   b3_2_upper;
311
  uint8   b3_3_lower;   /* min/max allowed value for 3rd input byte */
312
  uint8   b3_3_upper;
313
314
  /* Radix tree for 4-byte inputs */
315
  uint32    b4root;     /* offset of 1st byte's table */
316
  uint8   b4_1_lower;   /* min/max allowed value for 1st input byte */
317
  uint8   b4_1_upper;
318
  uint8   b4_2_lower;   /* min/max allowed value for 2nd input byte */
319
  uint8   b4_2_upper;
320
  uint8   b4_3_lower;   /* min/max allowed value for 3rd input byte */
321
  uint8   b4_3_upper;
322
  uint8   b4_4_lower;   /* min/max allowed value for 4th input byte */
323
  uint8   b4_4_upper;
324
325
} pg_mb_radix_tree;
326
327
/*
328
 * UTF-8 to local code conversion map (for combined characters)
329
 */
330
typedef struct
331
{
332
  uint32    utf1;     /* UTF-8 code 1 */
333
  uint32    utf2;     /* UTF-8 code 2 */
334
  uint32    code;     /* local code */
335
} pg_utf_to_local_combined;
336
337
/*
338
 * local code to UTF-8 conversion map (for combined characters)
339
 */
340
typedef struct
341
{
342
  uint32    code;     /* local code */
343
  uint32    utf1;     /* UTF-8 code 1 */
344
  uint32    utf2;     /* UTF-8 code 2 */
345
} pg_local_to_utf_combined;
346
347
/*
348
 * callback function for algorithmic encoding conversions (in either direction)
349
 *
350
 * if function returns zero, it does not know how to convert the code
351
 */
352
typedef uint32 (*utf_local_conversion_func) (uint32 code);
353
354
/*
355
 * Support macro for encoding conversion functions to validate their
356
 * arguments.  (This could be made more compact if we included fmgr.h
357
 * here, but we don't want to do that because this header file is also
358
 * used by frontends.)
359
 */
360
#define CHECK_ENCODING_CONVERSION_ARGS(srcencoding,destencoding) \
361
  check_encoding_conversion_args(PG_GETARG_INT32(0), \
362
                   PG_GETARG_INT32(1), \
363
                   PG_GETARG_INT32(4), \
364
                   (srcencoding), \
365
                   (destencoding))
366
367
368
/*
369
 * Some handy functions for Unicode-specific tests.
370
 */
371
static inline bool
372
is_valid_unicode_codepoint(char32_t c)
373
33.6k
{
374
33.6k
  return (c > 0 && c <= 0x10FFFF);
375
33.6k
}
Unexecuted instantiation: json_parser_fuzzer.c:is_valid_unicode_codepoint
Unexecuted instantiation: fuzzer_initialize.c:is_valid_unicode_codepoint
Unexecuted instantiation: printsimple.c:is_valid_unicode_codepoint
Unexecuted instantiation: printtup.c:is_valid_unicode_codepoint
Unexecuted instantiation: hashfunc.c:is_valid_unicode_codepoint
Unexecuted instantiation: spgtextproc.c:is_valid_unicode_codepoint
Unexecuted instantiation: parallel.c:is_valid_unicode_codepoint
Unexecuted instantiation: namespace.c:is_valid_unicode_codepoint
Unexecuted instantiation: pg_collation.c:is_valid_unicode_codepoint
Unexecuted instantiation: pg_conversion.c:is_valid_unicode_codepoint
Unexecuted instantiation: pg_proc.c:is_valid_unicode_codepoint
Unexecuted instantiation: pg_type.c:is_valid_unicode_codepoint
Unexecuted instantiation: parse_node.c:is_valid_unicode_codepoint
parser.c:is_valid_unicode_codepoint
Line
Count
Source
373
1.64k
{
374
1.64k
  return (c > 0 && c <= 0x10FFFF);
375
1.64k
}
scan.c:is_valid_unicode_codepoint
Line
Count
Source
373
772
{
374
772
  return (c > 0 && c <= 0x10FFFF);
375
772
}
Unexecuted instantiation: scansup.c:is_valid_unicode_codepoint
Unexecuted instantiation: async.c:is_valid_unicode_codepoint
Unexecuted instantiation: collationcmds.c:is_valid_unicode_codepoint
Unexecuted instantiation: conversioncmds.c:is_valid_unicode_codepoint
Unexecuted instantiation: copy.c:is_valid_unicode_codepoint
Unexecuted instantiation: copyfrom.c:is_valid_unicode_codepoint
Unexecuted instantiation: copyfromparse.c:is_valid_unicode_codepoint
Unexecuted instantiation: copyto.c:is_valid_unicode_codepoint
Unexecuted instantiation: dbcommands.c:is_valid_unicode_codepoint
Unexecuted instantiation: explain.c:is_valid_unicode_codepoint
Unexecuted instantiation: explain_dr.c:is_valid_unicode_codepoint
Unexecuted instantiation: extension.c:is_valid_unicode_codepoint
Unexecuted instantiation: indexcmds.c:is_valid_unicode_codepoint
Unexecuted instantiation: repack.c:is_valid_unicode_codepoint
Unexecuted instantiation: repack_worker.c:is_valid_unicode_codepoint
Unexecuted instantiation: variable.c:is_valid_unicode_codepoint
Unexecuted instantiation: execMain.c:is_valid_unicode_codepoint
Unexecuted instantiation: execPartition.c:is_valid_unicode_codepoint
Unexecuted instantiation: execUtils.c:is_valid_unicode_codepoint
Unexecuted instantiation: auth-oauth.c:is_valid_unicode_codepoint
Unexecuted instantiation: auth-sasl.c:is_valid_unicode_codepoint
Unexecuted instantiation: auth-scram.c:is_valid_unicode_codepoint
Unexecuted instantiation: auth.c:is_valid_unicode_codepoint
Unexecuted instantiation: be-secure-common.c:is_valid_unicode_codepoint
Unexecuted instantiation: be-secure.c:is_valid_unicode_codepoint
Unexecuted instantiation: crypt.c:is_valid_unicode_codepoint
Unexecuted instantiation: hba.c:is_valid_unicode_codepoint
Unexecuted instantiation: pqcomm.c:is_valid_unicode_codepoint
Unexecuted instantiation: pqformat.c:is_valid_unicode_codepoint
Unexecuted instantiation: pqmq.c:is_valid_unicode_codepoint
Unexecuted instantiation: launch_backend.c:is_valid_unicode_codepoint
Unexecuted instantiation: postmaster.c:is_valid_unicode_codepoint
Unexecuted instantiation: regcomp.c:is_valid_unicode_codepoint
Unexecuted instantiation: regerror.c:is_valid_unicode_codepoint
Unexecuted instantiation: regexec.c:is_valid_unicode_codepoint
Unexecuted instantiation: regexport.c:is_valid_unicode_codepoint
Unexecuted instantiation: regfree.c:is_valid_unicode_codepoint
Unexecuted instantiation: regprefix.c:is_valid_unicode_codepoint
Unexecuted instantiation: applyparallelworker.c:is_valid_unicode_codepoint
Unexecuted instantiation: logicalfuncs.c:is_valid_unicode_codepoint
Unexecuted instantiation: proto.c:is_valid_unicode_codepoint
Unexecuted instantiation: worker.c:is_valid_unicode_codepoint
Unexecuted instantiation: walreceiver.c:is_valid_unicode_codepoint
Unexecuted instantiation: walsender.c:is_valid_unicode_codepoint
Unexecuted instantiation: backup_manifest.c:is_valid_unicode_codepoint
Unexecuted instantiation: basebackup_copy.c:is_valid_unicode_codepoint
Unexecuted instantiation: basebackup_incremental.c:is_valid_unicode_codepoint
Unexecuted instantiation: backend_startup.c:is_valid_unicode_codepoint
Unexecuted instantiation: dest.c:is_valid_unicode_codepoint
Unexecuted instantiation: fastpath.c:is_valid_unicode_codepoint
Unexecuted instantiation: postgres.c:is_valid_unicode_codepoint
Unexecuted instantiation: dict_ispell.c:is_valid_unicode_codepoint
Unexecuted instantiation: dict_synonym.c:is_valid_unicode_codepoint
Unexecuted instantiation: dict_thesaurus.c:is_valid_unicode_codepoint
Unexecuted instantiation: regis.c:is_valid_unicode_codepoint
Unexecuted instantiation: spell.c:is_valid_unicode_codepoint
Unexecuted instantiation: ts_locale.c:is_valid_unicode_codepoint
Unexecuted instantiation: ts_utils.c:is_valid_unicode_codepoint
Unexecuted instantiation: wparser_def.c:is_valid_unicode_codepoint
Unexecuted instantiation: backend_progress.c:is_valid_unicode_codepoint
Unexecuted instantiation: backend_status.c:is_valid_unicode_codepoint
Unexecuted instantiation: array_userfuncs.c:is_valid_unicode_codepoint
Unexecuted instantiation: arrayfuncs.c:is_valid_unicode_codepoint
Unexecuted instantiation: ascii.c:is_valid_unicode_codepoint
Unexecuted instantiation: bool.c:is_valid_unicode_codepoint
Unexecuted instantiation: bytea.c:is_valid_unicode_codepoint
Unexecuted instantiation: cash.c:is_valid_unicode_codepoint
Unexecuted instantiation: char.c:is_valid_unicode_codepoint
Unexecuted instantiation: date.c:is_valid_unicode_codepoint
Unexecuted instantiation: ddlutils.c:is_valid_unicode_codepoint
Unexecuted instantiation: encode.c:is_valid_unicode_codepoint
Unexecuted instantiation: enum.c:is_valid_unicode_codepoint
Unexecuted instantiation: float.c:is_valid_unicode_codepoint
Unexecuted instantiation: format_type.c:is_valid_unicode_codepoint
Unexecuted instantiation: formatting.c:is_valid_unicode_codepoint
Unexecuted instantiation: genfile.c:is_valid_unicode_codepoint
Unexecuted instantiation: geo_ops.c:is_valid_unicode_codepoint
Unexecuted instantiation: hbafuncs.c:is_valid_unicode_codepoint
Unexecuted instantiation: int.c:is_valid_unicode_codepoint
Unexecuted instantiation: int8.c:is_valid_unicode_codepoint
Unexecuted instantiation: json.c:is_valid_unicode_codepoint
Unexecuted instantiation: jsonb.c:is_valid_unicode_codepoint
Unexecuted instantiation: jsonfuncs.c:is_valid_unicode_codepoint
Unexecuted instantiation: jsonpath.c:is_valid_unicode_codepoint
Unexecuted instantiation: jsonpath_exec.c:is_valid_unicode_codepoint
Unexecuted instantiation: jsonpath_gram.c:is_valid_unicode_codepoint
Unexecuted instantiation: jsonpath_scan.c:is_valid_unicode_codepoint
Unexecuted instantiation: like.c:is_valid_unicode_codepoint
Unexecuted instantiation: like_support.c:is_valid_unicode_codepoint
Unexecuted instantiation: mac.c:is_valid_unicode_codepoint
Unexecuted instantiation: mac8.c:is_valid_unicode_codepoint
Unexecuted instantiation: mcxtfuncs.c:is_valid_unicode_codepoint
Unexecuted instantiation: multirangetypes.c:is_valid_unicode_codepoint
Unexecuted instantiation: name.c:is_valid_unicode_codepoint
Unexecuted instantiation: network.c:is_valid_unicode_codepoint
Unexecuted instantiation: numeric.c:is_valid_unicode_codepoint
Unexecuted instantiation: oid.c:is_valid_unicode_codepoint
Unexecuted instantiation: oid8.c:is_valid_unicode_codepoint
Unexecuted instantiation: oracle_compat.c:is_valid_unicode_codepoint
Unexecuted instantiation: pg_dependencies.c:is_valid_unicode_codepoint
Unexecuted instantiation: pg_locale.c:is_valid_unicode_codepoint
Unexecuted instantiation: pg_locale_builtin.c:is_valid_unicode_codepoint
Unexecuted instantiation: pg_locale_icu.c:is_valid_unicode_codepoint
Unexecuted instantiation: pg_locale_libc.c:is_valid_unicode_codepoint
Unexecuted instantiation: pg_lsn.c:is_valid_unicode_codepoint
Unexecuted instantiation: pg_ndistinct.c:is_valid_unicode_codepoint
Unexecuted instantiation: pseudotypes.c:is_valid_unicode_codepoint
Unexecuted instantiation: rangetypes.c:is_valid_unicode_codepoint
Unexecuted instantiation: regexp.c:is_valid_unicode_codepoint
Unexecuted instantiation: regproc.c:is_valid_unicode_codepoint
Unexecuted instantiation: rowtypes.c:is_valid_unicode_codepoint
Unexecuted instantiation: ruleutils.c:is_valid_unicode_codepoint
Unexecuted instantiation: selfuncs.c:is_valid_unicode_codepoint
Unexecuted instantiation: tid.c:is_valid_unicode_codepoint
Unexecuted instantiation: timestamp.c:is_valid_unicode_codepoint
Unexecuted instantiation: tsquery.c:is_valid_unicode_codepoint
Unexecuted instantiation: tsvector.c:is_valid_unicode_codepoint
Unexecuted instantiation: tsvector_op.c:is_valid_unicode_codepoint
Unexecuted instantiation: tsvector_parser.c:is_valid_unicode_codepoint
Unexecuted instantiation: uuid.c:is_valid_unicode_codepoint
Unexecuted instantiation: varbit.c:is_valid_unicode_codepoint
Unexecuted instantiation: varchar.c:is_valid_unicode_codepoint
Unexecuted instantiation: varlena.c:is_valid_unicode_codepoint
Unexecuted instantiation: xid.c:is_valid_unicode_codepoint
Unexecuted instantiation: xid8funcs.c:is_valid_unicode_codepoint
Unexecuted instantiation: xml.c:is_valid_unicode_codepoint
Unexecuted instantiation: csvlog.c:is_valid_unicode_codepoint
Unexecuted instantiation: elog.c:is_valid_unicode_codepoint
Unexecuted instantiation: jsonlog.c:is_valid_unicode_codepoint
Unexecuted instantiation: globals.c:is_valid_unicode_codepoint
Unexecuted instantiation: miscinit.c:is_valid_unicode_codepoint
Unexecuted instantiation: postinit.c:is_valid_unicode_codepoint
Unexecuted instantiation: conv.c:is_valid_unicode_codepoint
mbutils.c:is_valid_unicode_codepoint
Line
Count
Source
373
31.1k
{
374
31.1k
  return (c > 0 && c <= 0x10FFFF);
375
31.1k
}
Unexecuted instantiation: stringinfo_mb.c:is_valid_unicode_codepoint
Unexecuted instantiation: wstrcmp.c:is_valid_unicode_codepoint
Unexecuted instantiation: wstrncmp.c:is_valid_unicode_codepoint
Unexecuted instantiation: guc.c:is_valid_unicode_codepoint
Unexecuted instantiation: guc-file.c:is_valid_unicode_codepoint
Unexecuted instantiation: guc_tables.c:is_valid_unicode_codepoint
Unexecuted instantiation: mcxt.c:is_valid_unicode_codepoint
Unexecuted instantiation: encnames.c:is_valid_unicode_codepoint
Unexecuted instantiation: jsonapi.c:is_valid_unicode_codepoint
Unexecuted instantiation: parse_manifest.c:is_valid_unicode_codepoint
Unexecuted instantiation: saslprep.c:is_valid_unicode_codepoint
Unexecuted instantiation: unicode_case.c:is_valid_unicode_codepoint
Unexecuted instantiation: wchar.c:is_valid_unicode_codepoint
Unexecuted instantiation: chklocale.c:is_valid_unicode_codepoint
Unexecuted instantiation: path.c:is_valid_unicode_codepoint
Unexecuted instantiation: simple_query_fuzzer.c:is_valid_unicode_codepoint
376
377
static inline bool
378
is_utf16_surrogate_first(char32_t c)
379
31.9k
{
380
31.9k
  return (c >= 0xD800 && c <= 0xDBFF);
381
31.9k
}
Unexecuted instantiation: json_parser_fuzzer.c:is_utf16_surrogate_first
Unexecuted instantiation: fuzzer_initialize.c:is_utf16_surrogate_first
Unexecuted instantiation: printsimple.c:is_utf16_surrogate_first
Unexecuted instantiation: printtup.c:is_utf16_surrogate_first
Unexecuted instantiation: hashfunc.c:is_utf16_surrogate_first
Unexecuted instantiation: spgtextproc.c:is_utf16_surrogate_first
Unexecuted instantiation: parallel.c:is_utf16_surrogate_first
Unexecuted instantiation: namespace.c:is_utf16_surrogate_first
Unexecuted instantiation: pg_collation.c:is_utf16_surrogate_first
Unexecuted instantiation: pg_conversion.c:is_utf16_surrogate_first
Unexecuted instantiation: pg_proc.c:is_utf16_surrogate_first
Unexecuted instantiation: pg_type.c:is_utf16_surrogate_first
Unexecuted instantiation: parse_node.c:is_utf16_surrogate_first
parser.c:is_utf16_surrogate_first
Line
Count
Source
379
1.52k
{
380
1.52k
  return (c >= 0xD800 && c <= 0xDBFF);
381
1.52k
}
scan.c:is_utf16_surrogate_first
Line
Count
Source
379
856
{
380
856
  return (c >= 0xD800 && c <= 0xDBFF);
381
856
}
Unexecuted instantiation: scansup.c:is_utf16_surrogate_first
Unexecuted instantiation: async.c:is_utf16_surrogate_first
Unexecuted instantiation: collationcmds.c:is_utf16_surrogate_first
Unexecuted instantiation: conversioncmds.c:is_utf16_surrogate_first
Unexecuted instantiation: copy.c:is_utf16_surrogate_first
Unexecuted instantiation: copyfrom.c:is_utf16_surrogate_first
Unexecuted instantiation: copyfromparse.c:is_utf16_surrogate_first
Unexecuted instantiation: copyto.c:is_utf16_surrogate_first
Unexecuted instantiation: dbcommands.c:is_utf16_surrogate_first
Unexecuted instantiation: explain.c:is_utf16_surrogate_first
Unexecuted instantiation: explain_dr.c:is_utf16_surrogate_first
Unexecuted instantiation: extension.c:is_utf16_surrogate_first
Unexecuted instantiation: indexcmds.c:is_utf16_surrogate_first
Unexecuted instantiation: repack.c:is_utf16_surrogate_first
Unexecuted instantiation: repack_worker.c:is_utf16_surrogate_first
Unexecuted instantiation: variable.c:is_utf16_surrogate_first
Unexecuted instantiation: execMain.c:is_utf16_surrogate_first
Unexecuted instantiation: execPartition.c:is_utf16_surrogate_first
Unexecuted instantiation: execUtils.c:is_utf16_surrogate_first
Unexecuted instantiation: auth-oauth.c:is_utf16_surrogate_first
Unexecuted instantiation: auth-sasl.c:is_utf16_surrogate_first
Unexecuted instantiation: auth-scram.c:is_utf16_surrogate_first
Unexecuted instantiation: auth.c:is_utf16_surrogate_first
Unexecuted instantiation: be-secure-common.c:is_utf16_surrogate_first
Unexecuted instantiation: be-secure.c:is_utf16_surrogate_first
Unexecuted instantiation: crypt.c:is_utf16_surrogate_first
Unexecuted instantiation: hba.c:is_utf16_surrogate_first
Unexecuted instantiation: pqcomm.c:is_utf16_surrogate_first
Unexecuted instantiation: pqformat.c:is_utf16_surrogate_first
Unexecuted instantiation: pqmq.c:is_utf16_surrogate_first
Unexecuted instantiation: launch_backend.c:is_utf16_surrogate_first
Unexecuted instantiation: postmaster.c:is_utf16_surrogate_first
Unexecuted instantiation: regcomp.c:is_utf16_surrogate_first
Unexecuted instantiation: regerror.c:is_utf16_surrogate_first
Unexecuted instantiation: regexec.c:is_utf16_surrogate_first
Unexecuted instantiation: regexport.c:is_utf16_surrogate_first
Unexecuted instantiation: regfree.c:is_utf16_surrogate_first
Unexecuted instantiation: regprefix.c:is_utf16_surrogate_first
Unexecuted instantiation: applyparallelworker.c:is_utf16_surrogate_first
Unexecuted instantiation: logicalfuncs.c:is_utf16_surrogate_first
Unexecuted instantiation: proto.c:is_utf16_surrogate_first
Unexecuted instantiation: worker.c:is_utf16_surrogate_first
Unexecuted instantiation: walreceiver.c:is_utf16_surrogate_first
Unexecuted instantiation: walsender.c:is_utf16_surrogate_first
Unexecuted instantiation: backup_manifest.c:is_utf16_surrogate_first
Unexecuted instantiation: basebackup_copy.c:is_utf16_surrogate_first
Unexecuted instantiation: basebackup_incremental.c:is_utf16_surrogate_first
Unexecuted instantiation: backend_startup.c:is_utf16_surrogate_first
Unexecuted instantiation: dest.c:is_utf16_surrogate_first
Unexecuted instantiation: fastpath.c:is_utf16_surrogate_first
Unexecuted instantiation: postgres.c:is_utf16_surrogate_first
Unexecuted instantiation: dict_ispell.c:is_utf16_surrogate_first
Unexecuted instantiation: dict_synonym.c:is_utf16_surrogate_first
Unexecuted instantiation: dict_thesaurus.c:is_utf16_surrogate_first
Unexecuted instantiation: regis.c:is_utf16_surrogate_first
Unexecuted instantiation: spell.c:is_utf16_surrogate_first
Unexecuted instantiation: ts_locale.c:is_utf16_surrogate_first
Unexecuted instantiation: ts_utils.c:is_utf16_surrogate_first
Unexecuted instantiation: wparser_def.c:is_utf16_surrogate_first
Unexecuted instantiation: backend_progress.c:is_utf16_surrogate_first
Unexecuted instantiation: backend_status.c:is_utf16_surrogate_first
Unexecuted instantiation: array_userfuncs.c:is_utf16_surrogate_first
Unexecuted instantiation: arrayfuncs.c:is_utf16_surrogate_first
Unexecuted instantiation: ascii.c:is_utf16_surrogate_first
Unexecuted instantiation: bool.c:is_utf16_surrogate_first
Unexecuted instantiation: bytea.c:is_utf16_surrogate_first
Unexecuted instantiation: cash.c:is_utf16_surrogate_first
Unexecuted instantiation: char.c:is_utf16_surrogate_first
Unexecuted instantiation: date.c:is_utf16_surrogate_first
Unexecuted instantiation: ddlutils.c:is_utf16_surrogate_first
Unexecuted instantiation: encode.c:is_utf16_surrogate_first
Unexecuted instantiation: enum.c:is_utf16_surrogate_first
Unexecuted instantiation: float.c:is_utf16_surrogate_first
Unexecuted instantiation: format_type.c:is_utf16_surrogate_first
Unexecuted instantiation: formatting.c:is_utf16_surrogate_first
Unexecuted instantiation: genfile.c:is_utf16_surrogate_first
Unexecuted instantiation: geo_ops.c:is_utf16_surrogate_first
Unexecuted instantiation: hbafuncs.c:is_utf16_surrogate_first
Unexecuted instantiation: int.c:is_utf16_surrogate_first
Unexecuted instantiation: int8.c:is_utf16_surrogate_first
Unexecuted instantiation: json.c:is_utf16_surrogate_first
Unexecuted instantiation: jsonb.c:is_utf16_surrogate_first
Unexecuted instantiation: jsonfuncs.c:is_utf16_surrogate_first
Unexecuted instantiation: jsonpath.c:is_utf16_surrogate_first
Unexecuted instantiation: jsonpath_exec.c:is_utf16_surrogate_first
Unexecuted instantiation: jsonpath_gram.c:is_utf16_surrogate_first
Unexecuted instantiation: jsonpath_scan.c:is_utf16_surrogate_first
Unexecuted instantiation: like.c:is_utf16_surrogate_first
Unexecuted instantiation: like_support.c:is_utf16_surrogate_first
Unexecuted instantiation: mac.c:is_utf16_surrogate_first
Unexecuted instantiation: mac8.c:is_utf16_surrogate_first
Unexecuted instantiation: mcxtfuncs.c:is_utf16_surrogate_first
Unexecuted instantiation: multirangetypes.c:is_utf16_surrogate_first
Unexecuted instantiation: name.c:is_utf16_surrogate_first
Unexecuted instantiation: network.c:is_utf16_surrogate_first
Unexecuted instantiation: numeric.c:is_utf16_surrogate_first
Unexecuted instantiation: oid.c:is_utf16_surrogate_first
Unexecuted instantiation: oid8.c:is_utf16_surrogate_first
Unexecuted instantiation: oracle_compat.c:is_utf16_surrogate_first
Unexecuted instantiation: pg_dependencies.c:is_utf16_surrogate_first
Unexecuted instantiation: pg_locale.c:is_utf16_surrogate_first
Unexecuted instantiation: pg_locale_builtin.c:is_utf16_surrogate_first
Unexecuted instantiation: pg_locale_icu.c:is_utf16_surrogate_first
Unexecuted instantiation: pg_locale_libc.c:is_utf16_surrogate_first
Unexecuted instantiation: pg_lsn.c:is_utf16_surrogate_first
Unexecuted instantiation: pg_ndistinct.c:is_utf16_surrogate_first
Unexecuted instantiation: pseudotypes.c:is_utf16_surrogate_first
Unexecuted instantiation: rangetypes.c:is_utf16_surrogate_first
Unexecuted instantiation: regexp.c:is_utf16_surrogate_first
Unexecuted instantiation: regproc.c:is_utf16_surrogate_first
Unexecuted instantiation: rowtypes.c:is_utf16_surrogate_first
Unexecuted instantiation: ruleutils.c:is_utf16_surrogate_first
Unexecuted instantiation: selfuncs.c:is_utf16_surrogate_first
Unexecuted instantiation: tid.c:is_utf16_surrogate_first
Unexecuted instantiation: timestamp.c:is_utf16_surrogate_first
Unexecuted instantiation: tsquery.c:is_utf16_surrogate_first
Unexecuted instantiation: tsvector.c:is_utf16_surrogate_first
Unexecuted instantiation: tsvector_op.c:is_utf16_surrogate_first
Unexecuted instantiation: tsvector_parser.c:is_utf16_surrogate_first
Unexecuted instantiation: uuid.c:is_utf16_surrogate_first
Unexecuted instantiation: varbit.c:is_utf16_surrogate_first
Unexecuted instantiation: varchar.c:is_utf16_surrogate_first
Unexecuted instantiation: varlena.c:is_utf16_surrogate_first
Unexecuted instantiation: xid.c:is_utf16_surrogate_first
Unexecuted instantiation: xid8funcs.c:is_utf16_surrogate_first
Unexecuted instantiation: xml.c:is_utf16_surrogate_first
Unexecuted instantiation: csvlog.c:is_utf16_surrogate_first
Unexecuted instantiation: elog.c:is_utf16_surrogate_first
Unexecuted instantiation: jsonlog.c:is_utf16_surrogate_first
Unexecuted instantiation: globals.c:is_utf16_surrogate_first
Unexecuted instantiation: miscinit.c:is_utf16_surrogate_first
Unexecuted instantiation: postinit.c:is_utf16_surrogate_first
Unexecuted instantiation: conv.c:is_utf16_surrogate_first
Unexecuted instantiation: mbutils.c:is_utf16_surrogate_first
Unexecuted instantiation: stringinfo_mb.c:is_utf16_surrogate_first
Unexecuted instantiation: wstrcmp.c:is_utf16_surrogate_first
Unexecuted instantiation: wstrncmp.c:is_utf16_surrogate_first
Unexecuted instantiation: guc.c:is_utf16_surrogate_first
Unexecuted instantiation: guc-file.c:is_utf16_surrogate_first
Unexecuted instantiation: guc_tables.c:is_utf16_surrogate_first
Unexecuted instantiation: mcxt.c:is_utf16_surrogate_first
Unexecuted instantiation: encnames.c:is_utf16_surrogate_first
jsonapi.c:is_utf16_surrogate_first
Line
Count
Source
379
29.5k
{
380
29.5k
  return (c >= 0xD800 && c <= 0xDBFF);
381
29.5k
}
Unexecuted instantiation: parse_manifest.c:is_utf16_surrogate_first
Unexecuted instantiation: saslprep.c:is_utf16_surrogate_first
Unexecuted instantiation: unicode_case.c:is_utf16_surrogate_first
Unexecuted instantiation: wchar.c:is_utf16_surrogate_first
Unexecuted instantiation: chklocale.c:is_utf16_surrogate_first
Unexecuted instantiation: path.c:is_utf16_surrogate_first
Unexecuted instantiation: simple_query_fuzzer.c:is_utf16_surrogate_first
382
383
static inline bool
384
is_utf16_surrogate_second(char32_t c)
385
31.7k
{
386
31.7k
  return (c >= 0xDC00 && c <= 0xDFFF);
387
31.7k
}
Unexecuted instantiation: json_parser_fuzzer.c:is_utf16_surrogate_second
Unexecuted instantiation: fuzzer_initialize.c:is_utf16_surrogate_second
Unexecuted instantiation: printsimple.c:is_utf16_surrogate_second
Unexecuted instantiation: printtup.c:is_utf16_surrogate_second
Unexecuted instantiation: hashfunc.c:is_utf16_surrogate_second
Unexecuted instantiation: spgtextproc.c:is_utf16_surrogate_second
Unexecuted instantiation: parallel.c:is_utf16_surrogate_second
Unexecuted instantiation: namespace.c:is_utf16_surrogate_second
Unexecuted instantiation: pg_collation.c:is_utf16_surrogate_second
Unexecuted instantiation: pg_conversion.c:is_utf16_surrogate_second
Unexecuted instantiation: pg_proc.c:is_utf16_surrogate_second
Unexecuted instantiation: pg_type.c:is_utf16_surrogate_second
Unexecuted instantiation: parse_node.c:is_utf16_surrogate_second
parser.c:is_utf16_surrogate_second
Line
Count
Source
385
1.61k
{
386
1.61k
  return (c >= 0xDC00 && c <= 0xDFFF);
387
1.61k
}
scan.c:is_utf16_surrogate_second
Line
Count
Source
385
846
{
386
846
  return (c >= 0xDC00 && c <= 0xDFFF);
387
846
}
Unexecuted instantiation: scansup.c:is_utf16_surrogate_second
Unexecuted instantiation: async.c:is_utf16_surrogate_second
Unexecuted instantiation: collationcmds.c:is_utf16_surrogate_second
Unexecuted instantiation: conversioncmds.c:is_utf16_surrogate_second
Unexecuted instantiation: copy.c:is_utf16_surrogate_second
Unexecuted instantiation: copyfrom.c:is_utf16_surrogate_second
Unexecuted instantiation: copyfromparse.c:is_utf16_surrogate_second
Unexecuted instantiation: copyto.c:is_utf16_surrogate_second
Unexecuted instantiation: dbcommands.c:is_utf16_surrogate_second
Unexecuted instantiation: explain.c:is_utf16_surrogate_second
Unexecuted instantiation: explain_dr.c:is_utf16_surrogate_second
Unexecuted instantiation: extension.c:is_utf16_surrogate_second
Unexecuted instantiation: indexcmds.c:is_utf16_surrogate_second
Unexecuted instantiation: repack.c:is_utf16_surrogate_second
Unexecuted instantiation: repack_worker.c:is_utf16_surrogate_second
Unexecuted instantiation: variable.c:is_utf16_surrogate_second
Unexecuted instantiation: execMain.c:is_utf16_surrogate_second
Unexecuted instantiation: execPartition.c:is_utf16_surrogate_second
Unexecuted instantiation: execUtils.c:is_utf16_surrogate_second
Unexecuted instantiation: auth-oauth.c:is_utf16_surrogate_second
Unexecuted instantiation: auth-sasl.c:is_utf16_surrogate_second
Unexecuted instantiation: auth-scram.c:is_utf16_surrogate_second
Unexecuted instantiation: auth.c:is_utf16_surrogate_second
Unexecuted instantiation: be-secure-common.c:is_utf16_surrogate_second
Unexecuted instantiation: be-secure.c:is_utf16_surrogate_second
Unexecuted instantiation: crypt.c:is_utf16_surrogate_second
Unexecuted instantiation: hba.c:is_utf16_surrogate_second
Unexecuted instantiation: pqcomm.c:is_utf16_surrogate_second
Unexecuted instantiation: pqformat.c:is_utf16_surrogate_second
Unexecuted instantiation: pqmq.c:is_utf16_surrogate_second
Unexecuted instantiation: launch_backend.c:is_utf16_surrogate_second
Unexecuted instantiation: postmaster.c:is_utf16_surrogate_second
Unexecuted instantiation: regcomp.c:is_utf16_surrogate_second
Unexecuted instantiation: regerror.c:is_utf16_surrogate_second
Unexecuted instantiation: regexec.c:is_utf16_surrogate_second
Unexecuted instantiation: regexport.c:is_utf16_surrogate_second
Unexecuted instantiation: regfree.c:is_utf16_surrogate_second
Unexecuted instantiation: regprefix.c:is_utf16_surrogate_second
Unexecuted instantiation: applyparallelworker.c:is_utf16_surrogate_second
Unexecuted instantiation: logicalfuncs.c:is_utf16_surrogate_second
Unexecuted instantiation: proto.c:is_utf16_surrogate_second
Unexecuted instantiation: worker.c:is_utf16_surrogate_second
Unexecuted instantiation: walreceiver.c:is_utf16_surrogate_second
Unexecuted instantiation: walsender.c:is_utf16_surrogate_second
Unexecuted instantiation: backup_manifest.c:is_utf16_surrogate_second
Unexecuted instantiation: basebackup_copy.c:is_utf16_surrogate_second
Unexecuted instantiation: basebackup_incremental.c:is_utf16_surrogate_second
Unexecuted instantiation: backend_startup.c:is_utf16_surrogate_second
Unexecuted instantiation: dest.c:is_utf16_surrogate_second
Unexecuted instantiation: fastpath.c:is_utf16_surrogate_second
Unexecuted instantiation: postgres.c:is_utf16_surrogate_second
Unexecuted instantiation: dict_ispell.c:is_utf16_surrogate_second
Unexecuted instantiation: dict_synonym.c:is_utf16_surrogate_second
Unexecuted instantiation: dict_thesaurus.c:is_utf16_surrogate_second
Unexecuted instantiation: regis.c:is_utf16_surrogate_second
Unexecuted instantiation: spell.c:is_utf16_surrogate_second
Unexecuted instantiation: ts_locale.c:is_utf16_surrogate_second
Unexecuted instantiation: ts_utils.c:is_utf16_surrogate_second
Unexecuted instantiation: wparser_def.c:is_utf16_surrogate_second
Unexecuted instantiation: backend_progress.c:is_utf16_surrogate_second
Unexecuted instantiation: backend_status.c:is_utf16_surrogate_second
Unexecuted instantiation: array_userfuncs.c:is_utf16_surrogate_second
Unexecuted instantiation: arrayfuncs.c:is_utf16_surrogate_second
Unexecuted instantiation: ascii.c:is_utf16_surrogate_second
Unexecuted instantiation: bool.c:is_utf16_surrogate_second
Unexecuted instantiation: bytea.c:is_utf16_surrogate_second
Unexecuted instantiation: cash.c:is_utf16_surrogate_second
Unexecuted instantiation: char.c:is_utf16_surrogate_second
Unexecuted instantiation: date.c:is_utf16_surrogate_second
Unexecuted instantiation: ddlutils.c:is_utf16_surrogate_second
Unexecuted instantiation: encode.c:is_utf16_surrogate_second
Unexecuted instantiation: enum.c:is_utf16_surrogate_second
Unexecuted instantiation: float.c:is_utf16_surrogate_second
Unexecuted instantiation: format_type.c:is_utf16_surrogate_second
Unexecuted instantiation: formatting.c:is_utf16_surrogate_second
Unexecuted instantiation: genfile.c:is_utf16_surrogate_second
Unexecuted instantiation: geo_ops.c:is_utf16_surrogate_second
Unexecuted instantiation: hbafuncs.c:is_utf16_surrogate_second
Unexecuted instantiation: int.c:is_utf16_surrogate_second
Unexecuted instantiation: int8.c:is_utf16_surrogate_second
Unexecuted instantiation: json.c:is_utf16_surrogate_second
Unexecuted instantiation: jsonb.c:is_utf16_surrogate_second
Unexecuted instantiation: jsonfuncs.c:is_utf16_surrogate_second
Unexecuted instantiation: jsonpath.c:is_utf16_surrogate_second
Unexecuted instantiation: jsonpath_exec.c:is_utf16_surrogate_second
Unexecuted instantiation: jsonpath_gram.c:is_utf16_surrogate_second
Unexecuted instantiation: jsonpath_scan.c:is_utf16_surrogate_second
Unexecuted instantiation: like.c:is_utf16_surrogate_second
Unexecuted instantiation: like_support.c:is_utf16_surrogate_second
Unexecuted instantiation: mac.c:is_utf16_surrogate_second
Unexecuted instantiation: mac8.c:is_utf16_surrogate_second
Unexecuted instantiation: mcxtfuncs.c:is_utf16_surrogate_second
Unexecuted instantiation: multirangetypes.c:is_utf16_surrogate_second
Unexecuted instantiation: name.c:is_utf16_surrogate_second
Unexecuted instantiation: network.c:is_utf16_surrogate_second
Unexecuted instantiation: numeric.c:is_utf16_surrogate_second
Unexecuted instantiation: oid.c:is_utf16_surrogate_second
Unexecuted instantiation: oid8.c:is_utf16_surrogate_second
Unexecuted instantiation: oracle_compat.c:is_utf16_surrogate_second
Unexecuted instantiation: pg_dependencies.c:is_utf16_surrogate_second
Unexecuted instantiation: pg_locale.c:is_utf16_surrogate_second
Unexecuted instantiation: pg_locale_builtin.c:is_utf16_surrogate_second
Unexecuted instantiation: pg_locale_icu.c:is_utf16_surrogate_second
Unexecuted instantiation: pg_locale_libc.c:is_utf16_surrogate_second
Unexecuted instantiation: pg_lsn.c:is_utf16_surrogate_second
Unexecuted instantiation: pg_ndistinct.c:is_utf16_surrogate_second
Unexecuted instantiation: pseudotypes.c:is_utf16_surrogate_second
Unexecuted instantiation: rangetypes.c:is_utf16_surrogate_second
Unexecuted instantiation: regexp.c:is_utf16_surrogate_second
Unexecuted instantiation: regproc.c:is_utf16_surrogate_second
Unexecuted instantiation: rowtypes.c:is_utf16_surrogate_second
Unexecuted instantiation: ruleutils.c:is_utf16_surrogate_second
Unexecuted instantiation: selfuncs.c:is_utf16_surrogate_second
Unexecuted instantiation: tid.c:is_utf16_surrogate_second
Unexecuted instantiation: timestamp.c:is_utf16_surrogate_second
Unexecuted instantiation: tsquery.c:is_utf16_surrogate_second
Unexecuted instantiation: tsvector.c:is_utf16_surrogate_second
Unexecuted instantiation: tsvector_op.c:is_utf16_surrogate_second
Unexecuted instantiation: tsvector_parser.c:is_utf16_surrogate_second
Unexecuted instantiation: uuid.c:is_utf16_surrogate_second
Unexecuted instantiation: varbit.c:is_utf16_surrogate_second
Unexecuted instantiation: varchar.c:is_utf16_surrogate_second
Unexecuted instantiation: varlena.c:is_utf16_surrogate_second
Unexecuted instantiation: xid.c:is_utf16_surrogate_second
Unexecuted instantiation: xid8funcs.c:is_utf16_surrogate_second
Unexecuted instantiation: xml.c:is_utf16_surrogate_second
Unexecuted instantiation: csvlog.c:is_utf16_surrogate_second
Unexecuted instantiation: elog.c:is_utf16_surrogate_second
Unexecuted instantiation: jsonlog.c:is_utf16_surrogate_second
Unexecuted instantiation: globals.c:is_utf16_surrogate_second
Unexecuted instantiation: miscinit.c:is_utf16_surrogate_second
Unexecuted instantiation: postinit.c:is_utf16_surrogate_second
Unexecuted instantiation: conv.c:is_utf16_surrogate_second
Unexecuted instantiation: mbutils.c:is_utf16_surrogate_second
Unexecuted instantiation: stringinfo_mb.c:is_utf16_surrogate_second
Unexecuted instantiation: wstrcmp.c:is_utf16_surrogate_second
Unexecuted instantiation: wstrncmp.c:is_utf16_surrogate_second
Unexecuted instantiation: guc.c:is_utf16_surrogate_second
Unexecuted instantiation: guc-file.c:is_utf16_surrogate_second
Unexecuted instantiation: guc_tables.c:is_utf16_surrogate_second
Unexecuted instantiation: mcxt.c:is_utf16_surrogate_second
Unexecuted instantiation: encnames.c:is_utf16_surrogate_second
jsonapi.c:is_utf16_surrogate_second
Line
Count
Source
385
29.2k
{
386
29.2k
  return (c >= 0xDC00 && c <= 0xDFFF);
387
29.2k
}
Unexecuted instantiation: parse_manifest.c:is_utf16_surrogate_second
Unexecuted instantiation: saslprep.c:is_utf16_surrogate_second
Unexecuted instantiation: unicode_case.c:is_utf16_surrogate_second
Unexecuted instantiation: wchar.c:is_utf16_surrogate_second
Unexecuted instantiation: chklocale.c:is_utf16_surrogate_second
Unexecuted instantiation: path.c:is_utf16_surrogate_second
Unexecuted instantiation: simple_query_fuzzer.c:is_utf16_surrogate_second
388
389
static inline char32_t
390
surrogate_pair_to_codepoint(char16_t first, char16_t second)
391
86
{
392
86
  return ((first & 0x3FF) << 10) + 0x10000 + (second & 0x3FF);
393
86
}
Unexecuted instantiation: json_parser_fuzzer.c:surrogate_pair_to_codepoint
Unexecuted instantiation: fuzzer_initialize.c:surrogate_pair_to_codepoint
Unexecuted instantiation: printsimple.c:surrogate_pair_to_codepoint
Unexecuted instantiation: printtup.c:surrogate_pair_to_codepoint
Unexecuted instantiation: hashfunc.c:surrogate_pair_to_codepoint
Unexecuted instantiation: spgtextproc.c:surrogate_pair_to_codepoint
Unexecuted instantiation: parallel.c:surrogate_pair_to_codepoint
Unexecuted instantiation: namespace.c:surrogate_pair_to_codepoint
Unexecuted instantiation: pg_collation.c:surrogate_pair_to_codepoint
Unexecuted instantiation: pg_conversion.c:surrogate_pair_to_codepoint
Unexecuted instantiation: pg_proc.c:surrogate_pair_to_codepoint
Unexecuted instantiation: pg_type.c:surrogate_pair_to_codepoint
Unexecuted instantiation: parse_node.c:surrogate_pair_to_codepoint
parser.c:surrogate_pair_to_codepoint
Line
Count
Source
391
37
{
392
37
  return ((first & 0x3FF) << 10) + 0x10000 + (second & 0x3FF);
393
37
}
scan.c:surrogate_pair_to_codepoint
Line
Count
Source
391
19
{
392
19
  return ((first & 0x3FF) << 10) + 0x10000 + (second & 0x3FF);
393
19
}
Unexecuted instantiation: scansup.c:surrogate_pair_to_codepoint
Unexecuted instantiation: async.c:surrogate_pair_to_codepoint
Unexecuted instantiation: collationcmds.c:surrogate_pair_to_codepoint
Unexecuted instantiation: conversioncmds.c:surrogate_pair_to_codepoint
Unexecuted instantiation: copy.c:surrogate_pair_to_codepoint
Unexecuted instantiation: copyfrom.c:surrogate_pair_to_codepoint
Unexecuted instantiation: copyfromparse.c:surrogate_pair_to_codepoint
Unexecuted instantiation: copyto.c:surrogate_pair_to_codepoint
Unexecuted instantiation: dbcommands.c:surrogate_pair_to_codepoint
Unexecuted instantiation: explain.c:surrogate_pair_to_codepoint
Unexecuted instantiation: explain_dr.c:surrogate_pair_to_codepoint
Unexecuted instantiation: extension.c:surrogate_pair_to_codepoint
Unexecuted instantiation: indexcmds.c:surrogate_pair_to_codepoint
Unexecuted instantiation: repack.c:surrogate_pair_to_codepoint
Unexecuted instantiation: repack_worker.c:surrogate_pair_to_codepoint
Unexecuted instantiation: variable.c:surrogate_pair_to_codepoint
Unexecuted instantiation: execMain.c:surrogate_pair_to_codepoint
Unexecuted instantiation: execPartition.c:surrogate_pair_to_codepoint
Unexecuted instantiation: execUtils.c:surrogate_pair_to_codepoint
Unexecuted instantiation: auth-oauth.c:surrogate_pair_to_codepoint
Unexecuted instantiation: auth-sasl.c:surrogate_pair_to_codepoint
Unexecuted instantiation: auth-scram.c:surrogate_pair_to_codepoint
Unexecuted instantiation: auth.c:surrogate_pair_to_codepoint
Unexecuted instantiation: be-secure-common.c:surrogate_pair_to_codepoint
Unexecuted instantiation: be-secure.c:surrogate_pair_to_codepoint
Unexecuted instantiation: crypt.c:surrogate_pair_to_codepoint
Unexecuted instantiation: hba.c:surrogate_pair_to_codepoint
Unexecuted instantiation: pqcomm.c:surrogate_pair_to_codepoint
Unexecuted instantiation: pqformat.c:surrogate_pair_to_codepoint
Unexecuted instantiation: pqmq.c:surrogate_pair_to_codepoint
Unexecuted instantiation: launch_backend.c:surrogate_pair_to_codepoint
Unexecuted instantiation: postmaster.c:surrogate_pair_to_codepoint
Unexecuted instantiation: regcomp.c:surrogate_pair_to_codepoint
Unexecuted instantiation: regerror.c:surrogate_pair_to_codepoint
Unexecuted instantiation: regexec.c:surrogate_pair_to_codepoint
Unexecuted instantiation: regexport.c:surrogate_pair_to_codepoint
Unexecuted instantiation: regfree.c:surrogate_pair_to_codepoint
Unexecuted instantiation: regprefix.c:surrogate_pair_to_codepoint
Unexecuted instantiation: applyparallelworker.c:surrogate_pair_to_codepoint
Unexecuted instantiation: logicalfuncs.c:surrogate_pair_to_codepoint
Unexecuted instantiation: proto.c:surrogate_pair_to_codepoint
Unexecuted instantiation: worker.c:surrogate_pair_to_codepoint
Unexecuted instantiation: walreceiver.c:surrogate_pair_to_codepoint
Unexecuted instantiation: walsender.c:surrogate_pair_to_codepoint
Unexecuted instantiation: backup_manifest.c:surrogate_pair_to_codepoint
Unexecuted instantiation: basebackup_copy.c:surrogate_pair_to_codepoint
Unexecuted instantiation: basebackup_incremental.c:surrogate_pair_to_codepoint
Unexecuted instantiation: backend_startup.c:surrogate_pair_to_codepoint
Unexecuted instantiation: dest.c:surrogate_pair_to_codepoint
Unexecuted instantiation: fastpath.c:surrogate_pair_to_codepoint
Unexecuted instantiation: postgres.c:surrogate_pair_to_codepoint
Unexecuted instantiation: dict_ispell.c:surrogate_pair_to_codepoint
Unexecuted instantiation: dict_synonym.c:surrogate_pair_to_codepoint
Unexecuted instantiation: dict_thesaurus.c:surrogate_pair_to_codepoint
Unexecuted instantiation: regis.c:surrogate_pair_to_codepoint
Unexecuted instantiation: spell.c:surrogate_pair_to_codepoint
Unexecuted instantiation: ts_locale.c:surrogate_pair_to_codepoint
Unexecuted instantiation: ts_utils.c:surrogate_pair_to_codepoint
Unexecuted instantiation: wparser_def.c:surrogate_pair_to_codepoint
Unexecuted instantiation: backend_progress.c:surrogate_pair_to_codepoint
Unexecuted instantiation: backend_status.c:surrogate_pair_to_codepoint
Unexecuted instantiation: array_userfuncs.c:surrogate_pair_to_codepoint
Unexecuted instantiation: arrayfuncs.c:surrogate_pair_to_codepoint
Unexecuted instantiation: ascii.c:surrogate_pair_to_codepoint
Unexecuted instantiation: bool.c:surrogate_pair_to_codepoint
Unexecuted instantiation: bytea.c:surrogate_pair_to_codepoint
Unexecuted instantiation: cash.c:surrogate_pair_to_codepoint
Unexecuted instantiation: char.c:surrogate_pair_to_codepoint
Unexecuted instantiation: date.c:surrogate_pair_to_codepoint
Unexecuted instantiation: ddlutils.c:surrogate_pair_to_codepoint
Unexecuted instantiation: encode.c:surrogate_pair_to_codepoint
Unexecuted instantiation: enum.c:surrogate_pair_to_codepoint
Unexecuted instantiation: float.c:surrogate_pair_to_codepoint
Unexecuted instantiation: format_type.c:surrogate_pair_to_codepoint
Unexecuted instantiation: formatting.c:surrogate_pair_to_codepoint
Unexecuted instantiation: genfile.c:surrogate_pair_to_codepoint
Unexecuted instantiation: geo_ops.c:surrogate_pair_to_codepoint
Unexecuted instantiation: hbafuncs.c:surrogate_pair_to_codepoint
Unexecuted instantiation: int.c:surrogate_pair_to_codepoint
Unexecuted instantiation: int8.c:surrogate_pair_to_codepoint
Unexecuted instantiation: json.c:surrogate_pair_to_codepoint
Unexecuted instantiation: jsonb.c:surrogate_pair_to_codepoint
Unexecuted instantiation: jsonfuncs.c:surrogate_pair_to_codepoint
Unexecuted instantiation: jsonpath.c:surrogate_pair_to_codepoint
Unexecuted instantiation: jsonpath_exec.c:surrogate_pair_to_codepoint
Unexecuted instantiation: jsonpath_gram.c:surrogate_pair_to_codepoint
Unexecuted instantiation: jsonpath_scan.c:surrogate_pair_to_codepoint
Unexecuted instantiation: like.c:surrogate_pair_to_codepoint
Unexecuted instantiation: like_support.c:surrogate_pair_to_codepoint
Unexecuted instantiation: mac.c:surrogate_pair_to_codepoint
Unexecuted instantiation: mac8.c:surrogate_pair_to_codepoint
Unexecuted instantiation: mcxtfuncs.c:surrogate_pair_to_codepoint
Unexecuted instantiation: multirangetypes.c:surrogate_pair_to_codepoint
Unexecuted instantiation: name.c:surrogate_pair_to_codepoint
Unexecuted instantiation: network.c:surrogate_pair_to_codepoint
Unexecuted instantiation: numeric.c:surrogate_pair_to_codepoint
Unexecuted instantiation: oid.c:surrogate_pair_to_codepoint
Unexecuted instantiation: oid8.c:surrogate_pair_to_codepoint
Unexecuted instantiation: oracle_compat.c:surrogate_pair_to_codepoint
Unexecuted instantiation: pg_dependencies.c:surrogate_pair_to_codepoint
Unexecuted instantiation: pg_locale.c:surrogate_pair_to_codepoint
Unexecuted instantiation: pg_locale_builtin.c:surrogate_pair_to_codepoint
Unexecuted instantiation: pg_locale_icu.c:surrogate_pair_to_codepoint
Unexecuted instantiation: pg_locale_libc.c:surrogate_pair_to_codepoint
Unexecuted instantiation: pg_lsn.c:surrogate_pair_to_codepoint
Unexecuted instantiation: pg_ndistinct.c:surrogate_pair_to_codepoint
Unexecuted instantiation: pseudotypes.c:surrogate_pair_to_codepoint
Unexecuted instantiation: rangetypes.c:surrogate_pair_to_codepoint
Unexecuted instantiation: regexp.c:surrogate_pair_to_codepoint
Unexecuted instantiation: regproc.c:surrogate_pair_to_codepoint
Unexecuted instantiation: rowtypes.c:surrogate_pair_to_codepoint
Unexecuted instantiation: ruleutils.c:surrogate_pair_to_codepoint
Unexecuted instantiation: selfuncs.c:surrogate_pair_to_codepoint
Unexecuted instantiation: tid.c:surrogate_pair_to_codepoint
Unexecuted instantiation: timestamp.c:surrogate_pair_to_codepoint
Unexecuted instantiation: tsquery.c:surrogate_pair_to_codepoint
Unexecuted instantiation: tsvector.c:surrogate_pair_to_codepoint
Unexecuted instantiation: tsvector_op.c:surrogate_pair_to_codepoint
Unexecuted instantiation: tsvector_parser.c:surrogate_pair_to_codepoint
Unexecuted instantiation: uuid.c:surrogate_pair_to_codepoint
Unexecuted instantiation: varbit.c:surrogate_pair_to_codepoint
Unexecuted instantiation: varchar.c:surrogate_pair_to_codepoint
Unexecuted instantiation: varlena.c:surrogate_pair_to_codepoint
Unexecuted instantiation: xid.c:surrogate_pair_to_codepoint
Unexecuted instantiation: xid8funcs.c:surrogate_pair_to_codepoint
Unexecuted instantiation: xml.c:surrogate_pair_to_codepoint
Unexecuted instantiation: csvlog.c:surrogate_pair_to_codepoint
Unexecuted instantiation: elog.c:surrogate_pair_to_codepoint
Unexecuted instantiation: jsonlog.c:surrogate_pair_to_codepoint
Unexecuted instantiation: globals.c:surrogate_pair_to_codepoint
Unexecuted instantiation: miscinit.c:surrogate_pair_to_codepoint
Unexecuted instantiation: postinit.c:surrogate_pair_to_codepoint
Unexecuted instantiation: conv.c:surrogate_pair_to_codepoint
Unexecuted instantiation: mbutils.c:surrogate_pair_to_codepoint
Unexecuted instantiation: stringinfo_mb.c:surrogate_pair_to_codepoint
Unexecuted instantiation: wstrcmp.c:surrogate_pair_to_codepoint
Unexecuted instantiation: wstrncmp.c:surrogate_pair_to_codepoint
Unexecuted instantiation: guc.c:surrogate_pair_to_codepoint
Unexecuted instantiation: guc-file.c:surrogate_pair_to_codepoint
Unexecuted instantiation: guc_tables.c:surrogate_pair_to_codepoint
Unexecuted instantiation: mcxt.c:surrogate_pair_to_codepoint
Unexecuted instantiation: encnames.c:surrogate_pair_to_codepoint
jsonapi.c:surrogate_pair_to_codepoint
Line
Count
Source
391
30
{
392
30
  return ((first & 0x3FF) << 10) + 0x10000 + (second & 0x3FF);
393
30
}
Unexecuted instantiation: parse_manifest.c:surrogate_pair_to_codepoint
Unexecuted instantiation: saslprep.c:surrogate_pair_to_codepoint
Unexecuted instantiation: unicode_case.c:surrogate_pair_to_codepoint
Unexecuted instantiation: wchar.c:surrogate_pair_to_codepoint
Unexecuted instantiation: chklocale.c:surrogate_pair_to_codepoint
Unexecuted instantiation: path.c:surrogate_pair_to_codepoint
Unexecuted instantiation: simple_query_fuzzer.c:surrogate_pair_to_codepoint
394
395
/*
396
 * Convert a UTF-8 character to a Unicode code point.
397
 * This is a one-character version of pg_utf2wchar_with_len.
398
 *
399
 * No error checks here, c must point to a long-enough string.
400
 */
401
static inline char32_t
402
utf8_to_unicode(const unsigned char *c)
403
0
{
404
0
  if ((*c & 0x80) == 0)
405
0
    return (char32_t) c[0];
406
0
  else if ((*c & 0xe0) == 0xc0)
407
0
    return (char32_t) (((c[0] & 0x1f) << 6) |
408
0
               (c[1] & 0x3f));
409
0
  else if ((*c & 0xf0) == 0xe0)
410
0
    return (char32_t) (((c[0] & 0x0f) << 12) |
411
0
               ((c[1] & 0x3f) << 6) |
412
0
               (c[2] & 0x3f));
413
0
  else if ((*c & 0xf8) == 0xf0)
414
0
    return (char32_t) (((c[0] & 0x07) << 18) |
415
0
               ((c[1] & 0x3f) << 12) |
416
0
               ((c[2] & 0x3f) << 6) |
417
0
               (c[3] & 0x3f));
418
0
  else
419
    /* that is an invalid code on purpose */
420
0
    return 0xffffffff;
421
0
}
Unexecuted instantiation: json_parser_fuzzer.c:utf8_to_unicode
Unexecuted instantiation: fuzzer_initialize.c:utf8_to_unicode
Unexecuted instantiation: printsimple.c:utf8_to_unicode
Unexecuted instantiation: printtup.c:utf8_to_unicode
Unexecuted instantiation: hashfunc.c:utf8_to_unicode
Unexecuted instantiation: spgtextproc.c:utf8_to_unicode
Unexecuted instantiation: parallel.c:utf8_to_unicode
Unexecuted instantiation: namespace.c:utf8_to_unicode
Unexecuted instantiation: pg_collation.c:utf8_to_unicode
Unexecuted instantiation: pg_conversion.c:utf8_to_unicode
Unexecuted instantiation: pg_proc.c:utf8_to_unicode
Unexecuted instantiation: pg_type.c:utf8_to_unicode
Unexecuted instantiation: parse_node.c:utf8_to_unicode
Unexecuted instantiation: parser.c:utf8_to_unicode
Unexecuted instantiation: scan.c:utf8_to_unicode
Unexecuted instantiation: scansup.c:utf8_to_unicode
Unexecuted instantiation: async.c:utf8_to_unicode
Unexecuted instantiation: collationcmds.c:utf8_to_unicode
Unexecuted instantiation: conversioncmds.c:utf8_to_unicode
Unexecuted instantiation: copy.c:utf8_to_unicode
Unexecuted instantiation: copyfrom.c:utf8_to_unicode
Unexecuted instantiation: copyfromparse.c:utf8_to_unicode
Unexecuted instantiation: copyto.c:utf8_to_unicode
Unexecuted instantiation: dbcommands.c:utf8_to_unicode
Unexecuted instantiation: explain.c:utf8_to_unicode
Unexecuted instantiation: explain_dr.c:utf8_to_unicode
Unexecuted instantiation: extension.c:utf8_to_unicode
Unexecuted instantiation: indexcmds.c:utf8_to_unicode
Unexecuted instantiation: repack.c:utf8_to_unicode
Unexecuted instantiation: repack_worker.c:utf8_to_unicode
Unexecuted instantiation: variable.c:utf8_to_unicode
Unexecuted instantiation: execMain.c:utf8_to_unicode
Unexecuted instantiation: execPartition.c:utf8_to_unicode
Unexecuted instantiation: execUtils.c:utf8_to_unicode
Unexecuted instantiation: auth-oauth.c:utf8_to_unicode
Unexecuted instantiation: auth-sasl.c:utf8_to_unicode
Unexecuted instantiation: auth-scram.c:utf8_to_unicode
Unexecuted instantiation: auth.c:utf8_to_unicode
Unexecuted instantiation: be-secure-common.c:utf8_to_unicode
Unexecuted instantiation: be-secure.c:utf8_to_unicode
Unexecuted instantiation: crypt.c:utf8_to_unicode
Unexecuted instantiation: hba.c:utf8_to_unicode
Unexecuted instantiation: pqcomm.c:utf8_to_unicode
Unexecuted instantiation: pqformat.c:utf8_to_unicode
Unexecuted instantiation: pqmq.c:utf8_to_unicode
Unexecuted instantiation: launch_backend.c:utf8_to_unicode
Unexecuted instantiation: postmaster.c:utf8_to_unicode
Unexecuted instantiation: regcomp.c:utf8_to_unicode
Unexecuted instantiation: regerror.c:utf8_to_unicode
Unexecuted instantiation: regexec.c:utf8_to_unicode
Unexecuted instantiation: regexport.c:utf8_to_unicode
Unexecuted instantiation: regfree.c:utf8_to_unicode
Unexecuted instantiation: regprefix.c:utf8_to_unicode
Unexecuted instantiation: applyparallelworker.c:utf8_to_unicode
Unexecuted instantiation: logicalfuncs.c:utf8_to_unicode
Unexecuted instantiation: proto.c:utf8_to_unicode
Unexecuted instantiation: worker.c:utf8_to_unicode
Unexecuted instantiation: walreceiver.c:utf8_to_unicode
Unexecuted instantiation: walsender.c:utf8_to_unicode
Unexecuted instantiation: backup_manifest.c:utf8_to_unicode
Unexecuted instantiation: basebackup_copy.c:utf8_to_unicode
Unexecuted instantiation: basebackup_incremental.c:utf8_to_unicode
Unexecuted instantiation: backend_startup.c:utf8_to_unicode
Unexecuted instantiation: dest.c:utf8_to_unicode
Unexecuted instantiation: fastpath.c:utf8_to_unicode
Unexecuted instantiation: postgres.c:utf8_to_unicode
Unexecuted instantiation: dict_ispell.c:utf8_to_unicode
Unexecuted instantiation: dict_synonym.c:utf8_to_unicode
Unexecuted instantiation: dict_thesaurus.c:utf8_to_unicode
Unexecuted instantiation: regis.c:utf8_to_unicode
Unexecuted instantiation: spell.c:utf8_to_unicode
Unexecuted instantiation: ts_locale.c:utf8_to_unicode
Unexecuted instantiation: ts_utils.c:utf8_to_unicode
Unexecuted instantiation: wparser_def.c:utf8_to_unicode
Unexecuted instantiation: backend_progress.c:utf8_to_unicode
Unexecuted instantiation: backend_status.c:utf8_to_unicode
Unexecuted instantiation: array_userfuncs.c:utf8_to_unicode
Unexecuted instantiation: arrayfuncs.c:utf8_to_unicode
Unexecuted instantiation: ascii.c:utf8_to_unicode
Unexecuted instantiation: bool.c:utf8_to_unicode
Unexecuted instantiation: bytea.c:utf8_to_unicode
Unexecuted instantiation: cash.c:utf8_to_unicode
Unexecuted instantiation: char.c:utf8_to_unicode
Unexecuted instantiation: date.c:utf8_to_unicode
Unexecuted instantiation: ddlutils.c:utf8_to_unicode
Unexecuted instantiation: encode.c:utf8_to_unicode
Unexecuted instantiation: enum.c:utf8_to_unicode
Unexecuted instantiation: float.c:utf8_to_unicode
Unexecuted instantiation: format_type.c:utf8_to_unicode
Unexecuted instantiation: formatting.c:utf8_to_unicode
Unexecuted instantiation: genfile.c:utf8_to_unicode
Unexecuted instantiation: geo_ops.c:utf8_to_unicode
Unexecuted instantiation: hbafuncs.c:utf8_to_unicode
Unexecuted instantiation: int.c:utf8_to_unicode
Unexecuted instantiation: int8.c:utf8_to_unicode
Unexecuted instantiation: json.c:utf8_to_unicode
Unexecuted instantiation: jsonb.c:utf8_to_unicode
Unexecuted instantiation: jsonfuncs.c:utf8_to_unicode
Unexecuted instantiation: jsonpath.c:utf8_to_unicode
Unexecuted instantiation: jsonpath_exec.c:utf8_to_unicode
Unexecuted instantiation: jsonpath_gram.c:utf8_to_unicode
Unexecuted instantiation: jsonpath_scan.c:utf8_to_unicode
Unexecuted instantiation: like.c:utf8_to_unicode
Unexecuted instantiation: like_support.c:utf8_to_unicode
Unexecuted instantiation: mac.c:utf8_to_unicode
Unexecuted instantiation: mac8.c:utf8_to_unicode
Unexecuted instantiation: mcxtfuncs.c:utf8_to_unicode
Unexecuted instantiation: multirangetypes.c:utf8_to_unicode
Unexecuted instantiation: name.c:utf8_to_unicode
Unexecuted instantiation: network.c:utf8_to_unicode
Unexecuted instantiation: numeric.c:utf8_to_unicode
Unexecuted instantiation: oid.c:utf8_to_unicode
Unexecuted instantiation: oid8.c:utf8_to_unicode
Unexecuted instantiation: oracle_compat.c:utf8_to_unicode
Unexecuted instantiation: pg_dependencies.c:utf8_to_unicode
Unexecuted instantiation: pg_locale.c:utf8_to_unicode
Unexecuted instantiation: pg_locale_builtin.c:utf8_to_unicode
Unexecuted instantiation: pg_locale_icu.c:utf8_to_unicode
Unexecuted instantiation: pg_locale_libc.c:utf8_to_unicode
Unexecuted instantiation: pg_lsn.c:utf8_to_unicode
Unexecuted instantiation: pg_ndistinct.c:utf8_to_unicode
Unexecuted instantiation: pseudotypes.c:utf8_to_unicode
Unexecuted instantiation: rangetypes.c:utf8_to_unicode
Unexecuted instantiation: regexp.c:utf8_to_unicode
Unexecuted instantiation: regproc.c:utf8_to_unicode
Unexecuted instantiation: rowtypes.c:utf8_to_unicode
Unexecuted instantiation: ruleutils.c:utf8_to_unicode
Unexecuted instantiation: selfuncs.c:utf8_to_unicode
Unexecuted instantiation: tid.c:utf8_to_unicode
Unexecuted instantiation: timestamp.c:utf8_to_unicode
Unexecuted instantiation: tsquery.c:utf8_to_unicode
Unexecuted instantiation: tsvector.c:utf8_to_unicode
Unexecuted instantiation: tsvector_op.c:utf8_to_unicode
Unexecuted instantiation: tsvector_parser.c:utf8_to_unicode
Unexecuted instantiation: uuid.c:utf8_to_unicode
Unexecuted instantiation: varbit.c:utf8_to_unicode
Unexecuted instantiation: varchar.c:utf8_to_unicode
Unexecuted instantiation: varlena.c:utf8_to_unicode
Unexecuted instantiation: xid.c:utf8_to_unicode
Unexecuted instantiation: xid8funcs.c:utf8_to_unicode
Unexecuted instantiation: xml.c:utf8_to_unicode
Unexecuted instantiation: csvlog.c:utf8_to_unicode
Unexecuted instantiation: elog.c:utf8_to_unicode
Unexecuted instantiation: jsonlog.c:utf8_to_unicode
Unexecuted instantiation: globals.c:utf8_to_unicode
Unexecuted instantiation: miscinit.c:utf8_to_unicode
Unexecuted instantiation: postinit.c:utf8_to_unicode
Unexecuted instantiation: conv.c:utf8_to_unicode
Unexecuted instantiation: mbutils.c:utf8_to_unicode
Unexecuted instantiation: stringinfo_mb.c:utf8_to_unicode
Unexecuted instantiation: wstrcmp.c:utf8_to_unicode
Unexecuted instantiation: wstrncmp.c:utf8_to_unicode
Unexecuted instantiation: guc.c:utf8_to_unicode
Unexecuted instantiation: guc-file.c:utf8_to_unicode
Unexecuted instantiation: guc_tables.c:utf8_to_unicode
Unexecuted instantiation: mcxt.c:utf8_to_unicode
Unexecuted instantiation: encnames.c:utf8_to_unicode
Unexecuted instantiation: jsonapi.c:utf8_to_unicode
Unexecuted instantiation: parse_manifest.c:utf8_to_unicode
Unexecuted instantiation: saslprep.c:utf8_to_unicode
Unexecuted instantiation: unicode_case.c:utf8_to_unicode
Unexecuted instantiation: wchar.c:utf8_to_unicode
Unexecuted instantiation: chklocale.c:utf8_to_unicode
Unexecuted instantiation: path.c:utf8_to_unicode
Unexecuted instantiation: simple_query_fuzzer.c:utf8_to_unicode
422
423
/*
424
 * Map a Unicode code point to UTF-8.  utf8string must have at least
425
 * unicode_utf8len(c) bytes available.
426
 */
427
static inline unsigned char *
428
unicode_to_utf8(char32_t c, unsigned char *utf8string)
429
0
{
430
0
  if (c <= 0x7F)
431
0
  {
432
0
    utf8string[0] = c;
433
0
  }
434
0
  else if (c <= 0x7FF)
435
0
  {
436
0
    utf8string[0] = 0xC0 | ((c >> 6) & 0x1F);
437
0
    utf8string[1] = 0x80 | (c & 0x3F);
438
0
  }
439
0
  else if (c <= 0xFFFF)
440
0
  {
441
0
    utf8string[0] = 0xE0 | ((c >> 12) & 0x0F);
442
0
    utf8string[1] = 0x80 | ((c >> 6) & 0x3F);
443
0
    utf8string[2] = 0x80 | (c & 0x3F);
444
0
  }
445
0
  else
446
0
  {
447
0
    utf8string[0] = 0xF0 | ((c >> 18) & 0x07);
448
0
    utf8string[1] = 0x80 | ((c >> 12) & 0x3F);
449
0
    utf8string[2] = 0x80 | ((c >> 6) & 0x3F);
450
0
    utf8string[3] = 0x80 | (c & 0x3F);
451
0
  }
452
453
0
  return utf8string;
454
0
}
Unexecuted instantiation: json_parser_fuzzer.c:unicode_to_utf8
Unexecuted instantiation: fuzzer_initialize.c:unicode_to_utf8
Unexecuted instantiation: printsimple.c:unicode_to_utf8
Unexecuted instantiation: printtup.c:unicode_to_utf8
Unexecuted instantiation: hashfunc.c:unicode_to_utf8
Unexecuted instantiation: spgtextproc.c:unicode_to_utf8
Unexecuted instantiation: parallel.c:unicode_to_utf8
Unexecuted instantiation: namespace.c:unicode_to_utf8
Unexecuted instantiation: pg_collation.c:unicode_to_utf8
Unexecuted instantiation: pg_conversion.c:unicode_to_utf8
Unexecuted instantiation: pg_proc.c:unicode_to_utf8
Unexecuted instantiation: pg_type.c:unicode_to_utf8
Unexecuted instantiation: parse_node.c:unicode_to_utf8
Unexecuted instantiation: parser.c:unicode_to_utf8
Unexecuted instantiation: scan.c:unicode_to_utf8
Unexecuted instantiation: scansup.c:unicode_to_utf8
Unexecuted instantiation: async.c:unicode_to_utf8
Unexecuted instantiation: collationcmds.c:unicode_to_utf8
Unexecuted instantiation: conversioncmds.c:unicode_to_utf8
Unexecuted instantiation: copy.c:unicode_to_utf8
Unexecuted instantiation: copyfrom.c:unicode_to_utf8
Unexecuted instantiation: copyfromparse.c:unicode_to_utf8
Unexecuted instantiation: copyto.c:unicode_to_utf8
Unexecuted instantiation: dbcommands.c:unicode_to_utf8
Unexecuted instantiation: explain.c:unicode_to_utf8
Unexecuted instantiation: explain_dr.c:unicode_to_utf8
Unexecuted instantiation: extension.c:unicode_to_utf8
Unexecuted instantiation: indexcmds.c:unicode_to_utf8
Unexecuted instantiation: repack.c:unicode_to_utf8
Unexecuted instantiation: repack_worker.c:unicode_to_utf8
Unexecuted instantiation: variable.c:unicode_to_utf8
Unexecuted instantiation: execMain.c:unicode_to_utf8
Unexecuted instantiation: execPartition.c:unicode_to_utf8
Unexecuted instantiation: execUtils.c:unicode_to_utf8
Unexecuted instantiation: auth-oauth.c:unicode_to_utf8
Unexecuted instantiation: auth-sasl.c:unicode_to_utf8
Unexecuted instantiation: auth-scram.c:unicode_to_utf8
Unexecuted instantiation: auth.c:unicode_to_utf8
Unexecuted instantiation: be-secure-common.c:unicode_to_utf8
Unexecuted instantiation: be-secure.c:unicode_to_utf8
Unexecuted instantiation: crypt.c:unicode_to_utf8
Unexecuted instantiation: hba.c:unicode_to_utf8
Unexecuted instantiation: pqcomm.c:unicode_to_utf8
Unexecuted instantiation: pqformat.c:unicode_to_utf8
Unexecuted instantiation: pqmq.c:unicode_to_utf8
Unexecuted instantiation: launch_backend.c:unicode_to_utf8
Unexecuted instantiation: postmaster.c:unicode_to_utf8
Unexecuted instantiation: regcomp.c:unicode_to_utf8
Unexecuted instantiation: regerror.c:unicode_to_utf8
Unexecuted instantiation: regexec.c:unicode_to_utf8
Unexecuted instantiation: regexport.c:unicode_to_utf8
Unexecuted instantiation: regfree.c:unicode_to_utf8
Unexecuted instantiation: regprefix.c:unicode_to_utf8
Unexecuted instantiation: applyparallelworker.c:unicode_to_utf8
Unexecuted instantiation: logicalfuncs.c:unicode_to_utf8
Unexecuted instantiation: proto.c:unicode_to_utf8
Unexecuted instantiation: worker.c:unicode_to_utf8
Unexecuted instantiation: walreceiver.c:unicode_to_utf8
Unexecuted instantiation: walsender.c:unicode_to_utf8
Unexecuted instantiation: backup_manifest.c:unicode_to_utf8
Unexecuted instantiation: basebackup_copy.c:unicode_to_utf8
Unexecuted instantiation: basebackup_incremental.c:unicode_to_utf8
Unexecuted instantiation: backend_startup.c:unicode_to_utf8
Unexecuted instantiation: dest.c:unicode_to_utf8
Unexecuted instantiation: fastpath.c:unicode_to_utf8
Unexecuted instantiation: postgres.c:unicode_to_utf8
Unexecuted instantiation: dict_ispell.c:unicode_to_utf8
Unexecuted instantiation: dict_synonym.c:unicode_to_utf8
Unexecuted instantiation: dict_thesaurus.c:unicode_to_utf8
Unexecuted instantiation: regis.c:unicode_to_utf8
Unexecuted instantiation: spell.c:unicode_to_utf8
Unexecuted instantiation: ts_locale.c:unicode_to_utf8
Unexecuted instantiation: ts_utils.c:unicode_to_utf8
Unexecuted instantiation: wparser_def.c:unicode_to_utf8
Unexecuted instantiation: backend_progress.c:unicode_to_utf8
Unexecuted instantiation: backend_status.c:unicode_to_utf8
Unexecuted instantiation: array_userfuncs.c:unicode_to_utf8
Unexecuted instantiation: arrayfuncs.c:unicode_to_utf8
Unexecuted instantiation: ascii.c:unicode_to_utf8
Unexecuted instantiation: bool.c:unicode_to_utf8
Unexecuted instantiation: bytea.c:unicode_to_utf8
Unexecuted instantiation: cash.c:unicode_to_utf8
Unexecuted instantiation: char.c:unicode_to_utf8
Unexecuted instantiation: date.c:unicode_to_utf8
Unexecuted instantiation: ddlutils.c:unicode_to_utf8
Unexecuted instantiation: encode.c:unicode_to_utf8
Unexecuted instantiation: enum.c:unicode_to_utf8
Unexecuted instantiation: float.c:unicode_to_utf8
Unexecuted instantiation: format_type.c:unicode_to_utf8
Unexecuted instantiation: formatting.c:unicode_to_utf8
Unexecuted instantiation: genfile.c:unicode_to_utf8
Unexecuted instantiation: geo_ops.c:unicode_to_utf8
Unexecuted instantiation: hbafuncs.c:unicode_to_utf8
Unexecuted instantiation: int.c:unicode_to_utf8
Unexecuted instantiation: int8.c:unicode_to_utf8
Unexecuted instantiation: json.c:unicode_to_utf8
Unexecuted instantiation: jsonb.c:unicode_to_utf8
Unexecuted instantiation: jsonfuncs.c:unicode_to_utf8
Unexecuted instantiation: jsonpath.c:unicode_to_utf8
Unexecuted instantiation: jsonpath_exec.c:unicode_to_utf8
Unexecuted instantiation: jsonpath_gram.c:unicode_to_utf8
Unexecuted instantiation: jsonpath_scan.c:unicode_to_utf8
Unexecuted instantiation: like.c:unicode_to_utf8
Unexecuted instantiation: like_support.c:unicode_to_utf8
Unexecuted instantiation: mac.c:unicode_to_utf8
Unexecuted instantiation: mac8.c:unicode_to_utf8
Unexecuted instantiation: mcxtfuncs.c:unicode_to_utf8
Unexecuted instantiation: multirangetypes.c:unicode_to_utf8
Unexecuted instantiation: name.c:unicode_to_utf8
Unexecuted instantiation: network.c:unicode_to_utf8
Unexecuted instantiation: numeric.c:unicode_to_utf8
Unexecuted instantiation: oid.c:unicode_to_utf8
Unexecuted instantiation: oid8.c:unicode_to_utf8
Unexecuted instantiation: oracle_compat.c:unicode_to_utf8
Unexecuted instantiation: pg_dependencies.c:unicode_to_utf8
Unexecuted instantiation: pg_locale.c:unicode_to_utf8
Unexecuted instantiation: pg_locale_builtin.c:unicode_to_utf8
Unexecuted instantiation: pg_locale_icu.c:unicode_to_utf8
Unexecuted instantiation: pg_locale_libc.c:unicode_to_utf8
Unexecuted instantiation: pg_lsn.c:unicode_to_utf8
Unexecuted instantiation: pg_ndistinct.c:unicode_to_utf8
Unexecuted instantiation: pseudotypes.c:unicode_to_utf8
Unexecuted instantiation: rangetypes.c:unicode_to_utf8
Unexecuted instantiation: regexp.c:unicode_to_utf8
Unexecuted instantiation: regproc.c:unicode_to_utf8
Unexecuted instantiation: rowtypes.c:unicode_to_utf8
Unexecuted instantiation: ruleutils.c:unicode_to_utf8
Unexecuted instantiation: selfuncs.c:unicode_to_utf8
Unexecuted instantiation: tid.c:unicode_to_utf8
Unexecuted instantiation: timestamp.c:unicode_to_utf8
Unexecuted instantiation: tsquery.c:unicode_to_utf8
Unexecuted instantiation: tsvector.c:unicode_to_utf8
Unexecuted instantiation: tsvector_op.c:unicode_to_utf8
Unexecuted instantiation: tsvector_parser.c:unicode_to_utf8
Unexecuted instantiation: uuid.c:unicode_to_utf8
Unexecuted instantiation: varbit.c:unicode_to_utf8
Unexecuted instantiation: varchar.c:unicode_to_utf8
Unexecuted instantiation: varlena.c:unicode_to_utf8
Unexecuted instantiation: xid.c:unicode_to_utf8
Unexecuted instantiation: xid8funcs.c:unicode_to_utf8
Unexecuted instantiation: xml.c:unicode_to_utf8
Unexecuted instantiation: csvlog.c:unicode_to_utf8
Unexecuted instantiation: elog.c:unicode_to_utf8
Unexecuted instantiation: jsonlog.c:unicode_to_utf8
Unexecuted instantiation: globals.c:unicode_to_utf8
Unexecuted instantiation: miscinit.c:unicode_to_utf8
Unexecuted instantiation: postinit.c:unicode_to_utf8
Unexecuted instantiation: conv.c:unicode_to_utf8
Unexecuted instantiation: mbutils.c:unicode_to_utf8
Unexecuted instantiation: stringinfo_mb.c:unicode_to_utf8
Unexecuted instantiation: wstrcmp.c:unicode_to_utf8
Unexecuted instantiation: wstrncmp.c:unicode_to_utf8
Unexecuted instantiation: guc.c:unicode_to_utf8
Unexecuted instantiation: guc-file.c:unicode_to_utf8
Unexecuted instantiation: guc_tables.c:unicode_to_utf8
Unexecuted instantiation: mcxt.c:unicode_to_utf8
Unexecuted instantiation: encnames.c:unicode_to_utf8
Unexecuted instantiation: jsonapi.c:unicode_to_utf8
Unexecuted instantiation: parse_manifest.c:unicode_to_utf8
Unexecuted instantiation: saslprep.c:unicode_to_utf8
Unexecuted instantiation: unicode_case.c:unicode_to_utf8
Unexecuted instantiation: wchar.c:unicode_to_utf8
Unexecuted instantiation: chklocale.c:unicode_to_utf8
Unexecuted instantiation: path.c:unicode_to_utf8
Unexecuted instantiation: simple_query_fuzzer.c:unicode_to_utf8
455
456
/*
457
 * Number of bytes needed to represent the given char in UTF8.
458
 */
459
static inline int
460
unicode_utf8len(char32_t c)
461
0
{
462
0
  if (c <= 0x7F)
463
0
    return 1;
464
0
  else if (c <= 0x7FF)
465
0
    return 2;
466
0
  else if (c <= 0xFFFF)
467
0
    return 3;
468
0
  else
469
0
    return 4;
470
0
}
Unexecuted instantiation: json_parser_fuzzer.c:unicode_utf8len
Unexecuted instantiation: fuzzer_initialize.c:unicode_utf8len
Unexecuted instantiation: printsimple.c:unicode_utf8len
Unexecuted instantiation: printtup.c:unicode_utf8len
Unexecuted instantiation: hashfunc.c:unicode_utf8len
Unexecuted instantiation: spgtextproc.c:unicode_utf8len
Unexecuted instantiation: parallel.c:unicode_utf8len
Unexecuted instantiation: namespace.c:unicode_utf8len
Unexecuted instantiation: pg_collation.c:unicode_utf8len
Unexecuted instantiation: pg_conversion.c:unicode_utf8len
Unexecuted instantiation: pg_proc.c:unicode_utf8len
Unexecuted instantiation: pg_type.c:unicode_utf8len
Unexecuted instantiation: parse_node.c:unicode_utf8len
Unexecuted instantiation: parser.c:unicode_utf8len
Unexecuted instantiation: scan.c:unicode_utf8len
Unexecuted instantiation: scansup.c:unicode_utf8len
Unexecuted instantiation: async.c:unicode_utf8len
Unexecuted instantiation: collationcmds.c:unicode_utf8len
Unexecuted instantiation: conversioncmds.c:unicode_utf8len
Unexecuted instantiation: copy.c:unicode_utf8len
Unexecuted instantiation: copyfrom.c:unicode_utf8len
Unexecuted instantiation: copyfromparse.c:unicode_utf8len
Unexecuted instantiation: copyto.c:unicode_utf8len
Unexecuted instantiation: dbcommands.c:unicode_utf8len
Unexecuted instantiation: explain.c:unicode_utf8len
Unexecuted instantiation: explain_dr.c:unicode_utf8len
Unexecuted instantiation: extension.c:unicode_utf8len
Unexecuted instantiation: indexcmds.c:unicode_utf8len
Unexecuted instantiation: repack.c:unicode_utf8len
Unexecuted instantiation: repack_worker.c:unicode_utf8len
Unexecuted instantiation: variable.c:unicode_utf8len
Unexecuted instantiation: execMain.c:unicode_utf8len
Unexecuted instantiation: execPartition.c:unicode_utf8len
Unexecuted instantiation: execUtils.c:unicode_utf8len
Unexecuted instantiation: auth-oauth.c:unicode_utf8len
Unexecuted instantiation: auth-sasl.c:unicode_utf8len
Unexecuted instantiation: auth-scram.c:unicode_utf8len
Unexecuted instantiation: auth.c:unicode_utf8len
Unexecuted instantiation: be-secure-common.c:unicode_utf8len
Unexecuted instantiation: be-secure.c:unicode_utf8len
Unexecuted instantiation: crypt.c:unicode_utf8len
Unexecuted instantiation: hba.c:unicode_utf8len
Unexecuted instantiation: pqcomm.c:unicode_utf8len
Unexecuted instantiation: pqformat.c:unicode_utf8len
Unexecuted instantiation: pqmq.c:unicode_utf8len
Unexecuted instantiation: launch_backend.c:unicode_utf8len
Unexecuted instantiation: postmaster.c:unicode_utf8len
Unexecuted instantiation: regcomp.c:unicode_utf8len
Unexecuted instantiation: regerror.c:unicode_utf8len
Unexecuted instantiation: regexec.c:unicode_utf8len
Unexecuted instantiation: regexport.c:unicode_utf8len
Unexecuted instantiation: regfree.c:unicode_utf8len
Unexecuted instantiation: regprefix.c:unicode_utf8len
Unexecuted instantiation: applyparallelworker.c:unicode_utf8len
Unexecuted instantiation: logicalfuncs.c:unicode_utf8len
Unexecuted instantiation: proto.c:unicode_utf8len
Unexecuted instantiation: worker.c:unicode_utf8len
Unexecuted instantiation: walreceiver.c:unicode_utf8len
Unexecuted instantiation: walsender.c:unicode_utf8len
Unexecuted instantiation: backup_manifest.c:unicode_utf8len
Unexecuted instantiation: basebackup_copy.c:unicode_utf8len
Unexecuted instantiation: basebackup_incremental.c:unicode_utf8len
Unexecuted instantiation: backend_startup.c:unicode_utf8len
Unexecuted instantiation: dest.c:unicode_utf8len
Unexecuted instantiation: fastpath.c:unicode_utf8len
Unexecuted instantiation: postgres.c:unicode_utf8len
Unexecuted instantiation: dict_ispell.c:unicode_utf8len
Unexecuted instantiation: dict_synonym.c:unicode_utf8len
Unexecuted instantiation: dict_thesaurus.c:unicode_utf8len
Unexecuted instantiation: regis.c:unicode_utf8len
Unexecuted instantiation: spell.c:unicode_utf8len
Unexecuted instantiation: ts_locale.c:unicode_utf8len
Unexecuted instantiation: ts_utils.c:unicode_utf8len
Unexecuted instantiation: wparser_def.c:unicode_utf8len
Unexecuted instantiation: backend_progress.c:unicode_utf8len
Unexecuted instantiation: backend_status.c:unicode_utf8len
Unexecuted instantiation: array_userfuncs.c:unicode_utf8len
Unexecuted instantiation: arrayfuncs.c:unicode_utf8len
Unexecuted instantiation: ascii.c:unicode_utf8len
Unexecuted instantiation: bool.c:unicode_utf8len
Unexecuted instantiation: bytea.c:unicode_utf8len
Unexecuted instantiation: cash.c:unicode_utf8len
Unexecuted instantiation: char.c:unicode_utf8len
Unexecuted instantiation: date.c:unicode_utf8len
Unexecuted instantiation: ddlutils.c:unicode_utf8len
Unexecuted instantiation: encode.c:unicode_utf8len
Unexecuted instantiation: enum.c:unicode_utf8len
Unexecuted instantiation: float.c:unicode_utf8len
Unexecuted instantiation: format_type.c:unicode_utf8len
Unexecuted instantiation: formatting.c:unicode_utf8len
Unexecuted instantiation: genfile.c:unicode_utf8len
Unexecuted instantiation: geo_ops.c:unicode_utf8len
Unexecuted instantiation: hbafuncs.c:unicode_utf8len
Unexecuted instantiation: int.c:unicode_utf8len
Unexecuted instantiation: int8.c:unicode_utf8len
Unexecuted instantiation: json.c:unicode_utf8len
Unexecuted instantiation: jsonb.c:unicode_utf8len
Unexecuted instantiation: jsonfuncs.c:unicode_utf8len
Unexecuted instantiation: jsonpath.c:unicode_utf8len
Unexecuted instantiation: jsonpath_exec.c:unicode_utf8len
Unexecuted instantiation: jsonpath_gram.c:unicode_utf8len
Unexecuted instantiation: jsonpath_scan.c:unicode_utf8len
Unexecuted instantiation: like.c:unicode_utf8len
Unexecuted instantiation: like_support.c:unicode_utf8len
Unexecuted instantiation: mac.c:unicode_utf8len
Unexecuted instantiation: mac8.c:unicode_utf8len
Unexecuted instantiation: mcxtfuncs.c:unicode_utf8len
Unexecuted instantiation: multirangetypes.c:unicode_utf8len
Unexecuted instantiation: name.c:unicode_utf8len
Unexecuted instantiation: network.c:unicode_utf8len
Unexecuted instantiation: numeric.c:unicode_utf8len
Unexecuted instantiation: oid.c:unicode_utf8len
Unexecuted instantiation: oid8.c:unicode_utf8len
Unexecuted instantiation: oracle_compat.c:unicode_utf8len
Unexecuted instantiation: pg_dependencies.c:unicode_utf8len
Unexecuted instantiation: pg_locale.c:unicode_utf8len
Unexecuted instantiation: pg_locale_builtin.c:unicode_utf8len
Unexecuted instantiation: pg_locale_icu.c:unicode_utf8len
Unexecuted instantiation: pg_locale_libc.c:unicode_utf8len
Unexecuted instantiation: pg_lsn.c:unicode_utf8len
Unexecuted instantiation: pg_ndistinct.c:unicode_utf8len
Unexecuted instantiation: pseudotypes.c:unicode_utf8len
Unexecuted instantiation: rangetypes.c:unicode_utf8len
Unexecuted instantiation: regexp.c:unicode_utf8len
Unexecuted instantiation: regproc.c:unicode_utf8len
Unexecuted instantiation: rowtypes.c:unicode_utf8len
Unexecuted instantiation: ruleutils.c:unicode_utf8len
Unexecuted instantiation: selfuncs.c:unicode_utf8len
Unexecuted instantiation: tid.c:unicode_utf8len
Unexecuted instantiation: timestamp.c:unicode_utf8len
Unexecuted instantiation: tsquery.c:unicode_utf8len
Unexecuted instantiation: tsvector.c:unicode_utf8len
Unexecuted instantiation: tsvector_op.c:unicode_utf8len
Unexecuted instantiation: tsvector_parser.c:unicode_utf8len
Unexecuted instantiation: uuid.c:unicode_utf8len
Unexecuted instantiation: varbit.c:unicode_utf8len
Unexecuted instantiation: varchar.c:unicode_utf8len
Unexecuted instantiation: varlena.c:unicode_utf8len
Unexecuted instantiation: xid.c:unicode_utf8len
Unexecuted instantiation: xid8funcs.c:unicode_utf8len
Unexecuted instantiation: xml.c:unicode_utf8len
Unexecuted instantiation: csvlog.c:unicode_utf8len
Unexecuted instantiation: elog.c:unicode_utf8len
Unexecuted instantiation: jsonlog.c:unicode_utf8len
Unexecuted instantiation: globals.c:unicode_utf8len
Unexecuted instantiation: miscinit.c:unicode_utf8len
Unexecuted instantiation: postinit.c:unicode_utf8len
Unexecuted instantiation: conv.c:unicode_utf8len
Unexecuted instantiation: mbutils.c:unicode_utf8len
Unexecuted instantiation: stringinfo_mb.c:unicode_utf8len
Unexecuted instantiation: wstrcmp.c:unicode_utf8len
Unexecuted instantiation: wstrncmp.c:unicode_utf8len
Unexecuted instantiation: guc.c:unicode_utf8len
Unexecuted instantiation: guc-file.c:unicode_utf8len
Unexecuted instantiation: guc_tables.c:unicode_utf8len
Unexecuted instantiation: mcxt.c:unicode_utf8len
Unexecuted instantiation: encnames.c:unicode_utf8len
Unexecuted instantiation: jsonapi.c:unicode_utf8len
Unexecuted instantiation: parse_manifest.c:unicode_utf8len
Unexecuted instantiation: saslprep.c:unicode_utf8len
Unexecuted instantiation: unicode_case.c:unicode_utf8len
Unexecuted instantiation: wchar.c:unicode_utf8len
Unexecuted instantiation: chklocale.c:unicode_utf8len
Unexecuted instantiation: path.c:unicode_utf8len
Unexecuted instantiation: simple_query_fuzzer.c:unicode_utf8len
471
472
/*
473
 * The functions in this list are exported by libpq, and we need to be sure
474
 * that we know which calls are satisfied by libpq and which are satisfied
475
 * by static linkage to libpgcommon.  (This is because we might be using a
476
 * libpq.so that's of a different major version and has encoding IDs that
477
 * differ from the current version's.)  The nominal function names are what
478
 * are actually used in and exported by libpq, while the names exported by
479
 * libpgcommon.a and libpgcommon_srv.a end in "_private".
480
 */
481
#if defined(USE_PRIVATE_ENCODING_FUNCS) || !defined(FRONTEND)
482
2
#define pg_char_to_encoding     pg_char_to_encoding_private
483
2
#define pg_encoding_to_char     pg_encoding_to_char_private
484
0
#define pg_valid_server_encoding  pg_valid_server_encoding_private
485
#define pg_valid_server_encoding_id pg_valid_server_encoding_id_private
486
242
#define pg_utf_mblen        pg_utf_mblen_private
487
#endif
488
489
/*
490
 * These functions are considered part of libpq's exported API and
491
 * are also declared in libpq-fe.h.
492
 */
493
extern int  pg_char_to_encoding(const char *name);
494
extern const char *pg_encoding_to_char(int encoding);
495
extern int  pg_valid_server_encoding_id(int encoding);
496
497
/*
498
 * These functions are available to frontend code that links with libpgcommon
499
 * (in addition to the ones just above).  The constant tables declared
500
 * earlier in this file are also available from libpgcommon.
501
 */
502
extern void pg_encoding_set_invalid(int encoding, char *dst);
503
extern int  pg_encoding_mblen(int encoding, const char *mbstr);
504
extern int  pg_encoding_mblen_or_incomplete(int encoding, const char *mbstr,
505
                      size_t remaining);
506
extern int  pg_encoding_mblen_bounded(int encoding, const char *mbstr);
507
extern int  pg_encoding_dsplen(int encoding, const char *mbstr);
508
extern int  pg_encoding_verifymbchar(int encoding, const char *mbstr, int len);
509
extern int  pg_encoding_verifymbstr(int encoding, const char *mbstr, int len);
510
extern int  pg_encoding_max_length(int encoding);
511
extern int  pg_valid_client_encoding(const char *name);
512
extern int  pg_valid_server_encoding(const char *name);
513
extern bool is_encoding_supported_by_icu(int encoding);
514
extern const char *get_encoding_name_for_icu(int encoding);
515
516
extern bool pg_utf8_islegal(const unsigned char *source, int length);
517
extern int  pg_utf_mblen(const unsigned char *s);
518
519
/*
520
 * The remaining functions are backend-only.
521
 */
522
extern int  pg_mb2wchar(const char *from, pg_wchar *to);
523
extern int  pg_mb2wchar_with_len(const char *from, pg_wchar *to, int len);
524
extern int  pg_encoding_mb2wchar_with_len(int encoding,
525
                      const char *from, pg_wchar *to, int len);
526
extern int  pg_wchar2mb(const pg_wchar *from, char *to);
527
extern int  pg_wchar2mb_with_len(const pg_wchar *from, char *to, int len);
528
extern int  pg_encoding_wchar2mb_with_len(int encoding,
529
                      const pg_wchar *from, char *to, int len);
530
extern int  pg_char_and_wchar_strcmp(const char *s1, const pg_wchar *s2);
531
extern int  pg_wchar_strncmp(const pg_wchar *s1, const pg_wchar *s2, size_t n);
532
extern int  pg_char_and_wchar_strncmp(const char *s1, const pg_wchar *s2, size_t n);
533
extern size_t pg_wchar_strlen(const pg_wchar *str);
534
extern int  pg_mblen_cstr(const char *mbstr);
535
extern int  pg_mblen_range(const char *mbstr, const char *end);
536
extern int  pg_mblen_with_len(const char *mbstr, int limit);
537
extern int  pg_mblen_unbounded(const char *mbstr);
538
539
/* deprecated */
540
extern int  pg_mblen(const char *mbstr);
541
542
extern int  pg_dsplen(const char *mbstr);
543
extern int  pg_mbstrlen(const char *mbstr);
544
extern int  pg_mbstrlen_with_len(const char *mbstr, int limit);
545
extern int  pg_mbcliplen(const char *mbstr, int len, int limit);
546
extern int  pg_encoding_mbcliplen(int encoding, const char *mbstr,
547
                  int len, int limit);
548
extern int  pg_mbcharcliplen(const char *mbstr, int len, int limit);
549
extern int  pg_database_encoding_max_length(void);
550
extern mbcharacter_incrementer pg_database_encoding_character_incrementer(void);
551
552
extern int  PrepareClientEncoding(int encoding);
553
extern int  SetClientEncoding(int encoding);
554
extern void InitializeClientEncoding(void);
555
extern int  pg_get_client_encoding(void);
556
extern const char *pg_get_client_encoding_name(void);
557
558
extern void SetDatabaseEncoding(int encoding);
559
extern int  GetDatabaseEncoding(void);
560
extern const char *GetDatabaseEncodingName(void);
561
extern void SetMessageEncoding(int encoding);
562
extern int  GetMessageEncoding(void);
563
564
#ifdef ENABLE_NLS
565
extern int  pg_bind_textdomain_codeset(const char *domainname);
566
#endif
567
568
extern unsigned char *pg_do_encoding_conversion(unsigned char *src, int len,
569
                        int src_encoding,
570
                        int dest_encoding);
571
extern int  pg_do_encoding_conversion_buf(Oid proc,
572
                      int src_encoding,
573
                      int dest_encoding,
574
                      unsigned char *src, int srclen,
575
                      unsigned char *dest, int destlen,
576
                      bool noError);
577
578
extern char *pg_client_to_server(const char *s, int len);
579
extern char *pg_server_to_client(const char *s, int len);
580
extern char *pg_any_to_server(const char *s, int len, int encoding);
581
extern char *pg_server_to_any(const char *s, int len, int encoding);
582
583
extern void pg_unicode_to_server(char32_t c, unsigned char *s);
584
extern bool pg_unicode_to_server_noerror(char32_t c, unsigned char *s);
585
586
extern unsigned short BIG5toCNS(unsigned short big5, unsigned char *lc);
587
extern unsigned short CNStoBIG5(unsigned short cns, unsigned char lc);
588
589
extern int  UtfToLocal(const unsigned char *utf, int len,
590
             unsigned char *iso,
591
             const pg_mb_radix_tree *map,
592
             const pg_utf_to_local_combined *cmap, int cmapsize,
593
             utf_local_conversion_func conv_func,
594
             int encoding, bool noError);
595
extern int  LocalToUtf(const unsigned char *iso, int len,
596
             unsigned char *utf,
597
             const pg_mb_radix_tree *map,
598
             const pg_local_to_utf_combined *cmap, int cmapsize,
599
             utf_local_conversion_func conv_func,
600
             int encoding, bool noError);
601
602
extern bool pg_verifymbstr(const char *mbstr, int len, bool noError);
603
extern bool pg_verify_mbstr(int encoding, const char *mbstr, int len,
604
              bool noError);
605
extern int  pg_verify_mbstr_len(int encoding, const char *mbstr, int len,
606
                bool noError);
607
608
extern void check_encoding_conversion_args(int src_encoding,
609
                       int dest_encoding,
610
                       int len,
611
                       int expected_src_encoding,
612
                       int expected_dest_encoding);
613
614
pg_noreturn extern void report_invalid_encoding(int encoding, const char *mbstr, int len);
615
pg_noreturn extern void report_untranslatable_char(int src_encoding, int dest_encoding,
616
                           const char *mbstr, int len);
617
618
extern int  local2local(const unsigned char *l, unsigned char *p, int len,
619
            int src_encoding, int dest_encoding,
620
            const unsigned char *tab, bool noError);
621
622
#ifdef WIN32
623
extern WCHAR *pgwin32_message_to_UTF16(const char *str, int len, int *utf16len);
624
#endif
625
626
#endif              /* PG_WCHAR_H */