34extern size_t strfold_builtin(
char *dst,
size_t dstsize,
const char *src,
65 size_t prev_offset = wbstate->
offset;
84 locale->info.builtin.casemap_full);
100 locale->info.builtin.casemap_full,
109 locale->info.builtin.casemap_full);
117 locale->info.builtin.casemap_full);
126 if (
collid == DEFAULT_COLLATION_OID)
135 Anum_pg_database_datlocale);
148 Anum_pg_collation_colllocale);
159 result->
provider = COLLPROVIDER_BUILTIN;
162 result->
ctype_is_c = (strcmp(locstr,
"C") == 0);
177 if (strcmp(collcollate,
"C") == 0)
179 else if (strcmp(collcollate,
"C.UTF-8") == 0)
181 else if (strcmp(collcollate,
"PG_UNICODE_FAST") == 0)
185 (
errcode(ERRCODE_WRONG_OBJECT_TYPE),
186 errmsg(
"invalid locale name \"%s\" for builtin provider",
#define TextDatumGetCString(d)
int errcode(int sqlerrcode)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
#define HeapTupleIsValid(tuple)
static pg_wchar utf8_to_unicode(const unsigned char *c)
int GetDatabaseEncoding(void)
char * MemoryContextStrdup(MemoryContext context, const char *string)
void * MemoryContextAllocZero(MemoryContext context, Size size)
const char * builtin_validate_locale(int encoding, const char *locale)
pg_locale_t create_pg_locale_builtin(Oid collid, MemoryContext context)
static size_t initcap_wbnext(void *state)
size_t strupper_builtin(char *dst, size_t dstsize, const char *src, ssize_t srclen, pg_locale_t locale)
size_t strlower_builtin(char *dst, size_t dstsize, const char *src, ssize_t srclen, pg_locale_t locale)
char * get_collation_actual_version_builtin(const char *collcollate)
size_t strfold_builtin(char *dst, size_t dstsize, const char *src, ssize_t srclen, pg_locale_t locale)
size_t strtitle_builtin(char *dst, size_t dstsize, const char *src, ssize_t srclen, pg_locale_t locale)
static int unicode_utf8len(pg_wchar c)
static Datum ObjectIdGetDatum(Oid X)
struct pg_locale_struct::@158::@159 builtin
union pg_locale_struct::@158 info
void ReleaseSysCache(HeapTuple tuple)
HeapTuple SearchSysCache1(int cacheId, Datum key1)
Datum SysCacheGetAttrNotNull(int cacheId, HeapTuple tup, AttrNumber attributeNumber)
size_t unicode_strupper(char *dst, size_t dstsize, const char *src, ssize_t srclen, bool full)
size_t unicode_strlower(char *dst, size_t dstsize, const char *src, ssize_t srclen, bool full)
size_t unicode_strtitle(char *dst, size_t dstsize, const char *src, ssize_t srclen, bool full, WordBoundaryNext wbnext, void *wbstate)
size_t unicode_strfold(char *dst, size_t dstsize, const char *src, ssize_t srclen, bool full)
bool pg_u_isalnum(pg_wchar code, bool posix)