47 errmsg(
"could not determine which collation to use for regular expression"),
48 errhint(
"Use the COLLATE clause to set the collation explicitly.")));
56 errmsg(
"nondeterministic collations are not supported for regular expressions")));
227 if (
pcc->cv.nranges >=
pcc->cv.rangespace)
231 pcc->cv.rangespace *
sizeof(
chr) * 2);
237 pcc->cv.ranges[
pcc->cv.nranges * 2 + 1] =
chr1 + nchrs - 1;
243 if (
pcc->cv.nchrs >=
pcc->cv.chrspace)
245 pcc->cv.chrspace *= 2;
247 pcc->cv.chrspace *
sizeof(
chr));
278 if (
pcc->probefunc == probefunc &&
289 pcc->probefunc = probefunc;
292 pcc->cv.chrspace = 128;
295 pcc->cv.rangespace = 64;
316#if MAX_SIMPLE_CHR >= 127
318 pcc->cv.cclasscode = -1;
329#if MAX_SIMPLE_CHR >= UCHAR_MAX
331 pcc->cv.cclasscode = -1;
346 else if (nmatches > 0)
361 if (
pcc->cv.nchrs == 0)
365 pcc->cv.chrspace = 0;
367 else if (
pcc->cv.nchrs <
pcc->cv.chrspace)
370 pcc->cv.nchrs *
sizeof(
chr));
374 pcc->cv.chrspace =
pcc->cv.nchrs;
376 if (
pcc->cv.nranges == 0)
380 pcc->cv.rangespace = 0;
382 else if (
pcc->cv.nranges <
pcc->cv.rangespace)
385 pcc->cv.nranges *
sizeof(
chr) * 2);
389 pcc->cv.rangespace =
pcc->cv.nranges;
#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)
static const unsigned char pg_char_properties[128]
static unsigned char pg_ascii_tolower(unsigned char ch)
static unsigned char pg_ascii_toupper(unsigned char ch)
int(* regc_wc_probefunc)(pg_wchar c)
static int regc_wc_isdigit(pg_wchar c)
static struct cvec * regc_ctype_get_cache(regc_wc_probefunc probefunc, int cclasscode)
static int regc_wc_ispunct(pg_wchar c)
static pg_ctype_cache * pg_ctype_cache_list
static int regc_wc_isalnum(pg_wchar c)
static bool store_match(pg_ctype_cache *pcc, pg_wchar chr1, int nchrs)
static int regc_wc_islower(pg_wchar c)
static pg_wchar regc_wc_toupper(pg_wchar c)
static int regc_wc_isupper(pg_wchar c)
static int regc_wc_isalpha(pg_wchar c)
static int regc_wc_isgraph(pg_wchar c)
static int regc_wc_isprint(pg_wchar c)
void pg_set_regex_collation(Oid collation)
static int regc_wc_isword(pg_wchar c)
static pg_locale_t pg_regex_locale
static pg_wchar regc_wc_tolower(pg_wchar c)
static int regc_wc_isspace(pg_wchar c)
pg_wchar(* wc_toupper)(pg_wchar wc, pg_locale_t locale)
bool(* wc_ispunct)(pg_wchar wc, pg_locale_t locale)
bool(* wc_isprint)(pg_wchar wc, pg_locale_t locale)
bool(* wc_isalpha)(pg_wchar wc, pg_locale_t locale)
pg_wchar(* wc_tolower)(pg_wchar wc, pg_locale_t locale)
bool(* wc_isupper)(pg_wchar wc, pg_locale_t locale)
bool(* wc_isspace)(pg_wchar wc, pg_locale_t locale)
bool(* wc_isgraph)(pg_wchar wc, pg_locale_t locale)
bool(* wc_islower)(pg_wchar wc, pg_locale_t locale)
bool(* wc_isalnum)(pg_wchar wc, pg_locale_t locale)
bool(* wc_isdigit)(pg_wchar wc, pg_locale_t locale)
regc_wc_probefunc probefunc
struct pg_ctype_cache * next
const struct ctype_methods * ctype