81#define PG_ISDIGIT 0x01
82#define PG_ISALPHA 0x02
83#define PG_ISALNUM (PG_ISDIGIT | PG_ISALPHA)
84#define PG_ISUPPER 0x04
85#define PG_ISLOWER 0x08
86#define PG_ISGRAPH 0x10
87#define PG_ISPRINT 0x20
88#define PG_ISPUNCT 0x40
89#define PG_ISSPACE 0x80
243 (
errcode(ERRCODE_INDETERMINATE_COLLATION),
244 errmsg(
"could not determine which collation to use for regular expression"),
245 errhint(
"Use the COLLATE clause to set the collation explicitly.")));
248 if (collation == C_COLLATION_OID)
262 if (!
locale->deterministic)
264 (
errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
265 errmsg(
"nondeterministic collations are not supported for regular expressions")));
276 else if (
locale->provider == COLLPROVIDER_BUILTIN)
282 else if (
locale->provider == COLLPROVIDER_ICU)
312 if (
sizeof(
wchar_t) >= 4 ||
c <= (
pg_wchar) 0xFFFF)
339 if (
sizeof(
wchar_t) >= 4 ||
c <= (
pg_wchar) 0xFFFF)
366 if (
sizeof(
wchar_t) >= 4 ||
c <= (
pg_wchar) 0xFFFF)
402 if (
sizeof(
wchar_t) >= 4 ||
c <= (
pg_wchar) 0xFFFF)
429 if (
sizeof(
wchar_t) >= 4 ||
c <= (
pg_wchar) 0xFFFF)
456 if (
sizeof(
wchar_t) >= 4 ||
c <= (
pg_wchar) 0xFFFF)
483 if (
sizeof(
wchar_t) >= 4 ||
c <= (
pg_wchar) 0xFFFF)
510 if (
sizeof(
wchar_t) >= 4 ||
c <= (
pg_wchar) 0xFFFF)
537 if (
sizeof(
wchar_t) >= 4 ||
c <= (
pg_wchar) 0xFFFF)
565 if (
sizeof(
wchar_t) >= 4 ||
c <= (
pg_wchar) 0xFFFF)
593 if (
sizeof(
wchar_t) >= 4 ||
c <= (
pg_wchar) 0xFFFF)
735#if MAX_SIMPLE_CHR >= 127
749#if MAX_SIMPLE_CHR >= UCHAR_MAX
770 for (cur_chr = 0; cur_chr <= max_chr; cur_chr++)
772 if ((*probefunc) (cur_chr))
774 else if (nmatches > 0)
776 if (!
store_match(pcc, cur_chr - nmatches, nmatches))
783 if (!
store_match(pcc, cur_chr - nmatches, nmatches))
#define Assert(condition)
#define OidIsValid(objectId)
int errhint(const char *fmt,...)
int errcode(int sqlerrcode)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
int GetDatabaseEncoding(void)
pg_locale_t pg_newlocale_from_collation(Oid collid)
unsigned char pg_ascii_tolower(unsigned char ch)
unsigned char pg_ascii_toupper(unsigned char ch)
static int pg_wc_islower(pg_wchar c)
static int pg_wc_isword(pg_wchar c)
static int pg_wc_isspace(pg_wchar c)
static pg_wchar pg_wc_tolower(pg_wchar c)
static int pg_wc_ispunct(pg_wchar c)
static pg_ctype_cache * pg_ctype_cache_list
static int pg_wc_isgraph(pg_wchar c)
static pg_wchar pg_wc_toupper(pg_wchar c)
static bool store_match(pg_ctype_cache *pcc, pg_wchar chr1, int nchrs)
static int pg_wc_isprint(pg_wchar c)
static int pg_wc_isalnum(pg_wchar c)
int(* pg_wc_probefunc)(pg_wchar c)
static int pg_wc_isdigit(pg_wchar c)
static PG_Locale_Strategy pg_regex_strategy
@ PG_REGEX_STRATEGY_LIBC_WIDE
@ PG_REGEX_STRATEGY_BUILTIN
@ PG_REGEX_STRATEGY_LIBC_1BYTE
void pg_set_regex_collation(Oid collation)
static struct cvec * pg_ctype_get_cache(pg_wc_probefunc probefunc, int cclasscode)
static pg_locale_t pg_regex_locale
static int pg_wc_isupper(pg_wchar c)
static int pg_wc_isalpha(pg_wchar c)
static const unsigned char pg_char_properties[128]
struct pg_ctype_cache pg_ctype_cache
pg_wc_probefunc probefunc
struct pg_ctype_cache * next
union pg_locale_struct::@157 info
pg_wchar unicode_uppercase_simple(pg_wchar code)
pg_wchar unicode_lowercase_simple(pg_wchar code)
bool pg_u_isspace(pg_wchar code)
bool pg_u_ispunct(pg_wchar code, bool posix)
bool pg_u_isprint(pg_wchar code)
bool pg_u_islower(pg_wchar code)
bool pg_u_isalpha(pg_wchar code)
bool pg_u_isalnum(pg_wchar code, bool posix)
bool pg_u_isupper(pg_wchar code)
bool pg_u_isdigit(pg_wchar code, bool posix)
bool pg_u_isgraph(pg_wchar code)