20#include <unicode/uchar.h>
63 for (
char32_t code = 0; code <= 0x10ffff; code++)
153 printf(
"category_test: FAILURE for codepoint 0x%06x\n", code);
173 printf(
"category_test: FAILURE for codepoint 0x%06x\n", code);
174 printf(
"category_test: Postgres property alphabetic/lowercase/uppercase/cased/case_ignorable/white_space/hex_digit/join_control: %d/%d/%d/%d/%d/%d/%d/%d\n",
178 printf(
"category_test: ICU property alphabetic/lowercase/uppercase/cased/case_ignorable/white_space/hex_digit/join_control: %d/%d/%d/%d/%d/%d/%d/%d\n",
199 printf(
"category_test: FAILURE for codepoint 0x%06x\n", code);
200 printf(
"category_test: Postgres class alpha/lower/upper/punct/digit/xdigit/alnum/space/blank/cntrl/graph/print: %d/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d\n",
201 isalpha,
islower,
isupper,
ispunct,
isdigit,
isxdigit,
isalnum,
isspace,
isblank,
iscntrl,
isgraph,
isprint);
202 printf(
"category_test: ICU class alpha/lower/upper/punct/digit/xdigit/alnum/space/blank/cntrl/graph/print: %d/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d\n",
203 icu_isalpha,
icu_islower,
icu_isupper,
icu_ispunct,
icu_isdigit,
icu_isxdigit,
icu_isalnum,
icu_isspace,
icu_isblank,
icu_iscntrl,
icu_isgraph,
icu_isprint);
213 printf(
"category_test: skipped %d codepoints unassigned in Postgres due to Unicode version mismatch\n",
216 printf(
"category_test: skipped %d codepoints unassigned in ICU due to Unicode version mismatch\n",
235 printf(
"category_test: ICU not available; skipping\n");
#define PG_USED_FOR_ASSERTS_ONLY
#define Assert(condition)
static int pg_unicode_version
static int parse_unicode_version(const char *version)
bool pg_u_isalnum(char32_t code, bool posix)
const char * unicode_category_string(pg_unicode_category category)
bool pg_u_prop_cased(char32_t code)
bool pg_u_prop_white_space(char32_t code)
bool pg_u_isprint(char32_t code)
bool pg_u_islower(char32_t code)
const char * unicode_category_abbrev(pg_unicode_category category)
bool pg_u_iscntrl(char32_t code)
pg_unicode_category unicode_category(char32_t code)
bool pg_u_prop_lowercase(char32_t code)
bool pg_u_prop_join_control(char32_t code)
bool pg_u_isdigit(char32_t code, bool posix)
bool pg_u_isalpha(char32_t code)
bool pg_u_prop_uppercase(char32_t code)
bool pg_u_isxdigit(char32_t code, bool posix)
bool pg_u_prop_case_ignorable(char32_t code)
bool pg_u_ispunct(char32_t code, bool posix)
bool pg_u_prop_hex_digit(char32_t code)
bool pg_u_isblank(char32_t code)
bool pg_u_isgraph(char32_t code)
bool pg_u_isspace(char32_t code)
bool pg_u_isupper(char32_t code)
bool pg_u_prop_alphabetic(char32_t code)
#define PG_UNICODE_VERSION
Datum icu_unicode_version(PG_FUNCTION_ARGS)