38 const unsigned char *tab,
41 const unsigned char *
start = l;
66 (
const char *) l,
len);
93 return (
s1 > d1 || (
s1 == d1 &&
s2 > d2)) ? 1 : ((
s1 == d1 &&
s2 == d2) ? 0 : -1);
108 return (v1 >
v2) ? 1 : ((v1 ==
v2) ? 0 : -1);
114static inline unsigned char *
117 if (code & 0xff000000)
118 *dest++ = code >> 24;
119 if (code & 0x00ff0000)
120 *dest++ = code >> 16;
121 if (code & 0x0000ff00)
123 if (code & 0x000000ff)
161 return rt->chars32[
b4 +
idx -
rt->b4_4_lower];
170 return rt->chars16[
b4 +
idx -
rt->b4_4_lower];
190 return rt->chars32[
b4 +
idx -
rt->b3_3_lower];
198 return rt->chars16[
b4 +
idx -
rt->b3_3_lower];
216 return rt->chars32[
b4 +
idx -
rt->b2_2_lower];
223 return rt->chars16[
b4 +
idx -
rt->b2_2_lower];
236 return rt->chars32[
b4 +
rt->b1root -
rt->b1_lower];
238 return rt->chars16[
b4 +
rt->b1root -
rt->b1_lower];
288 unsigned char b1 = 0;
289 unsigned char b2 = 0;
290 unsigned char b3 = 0;
291 unsigned char b4 = 0;
332 elog(
ERROR,
"unsupported character length %d", l);
389 elog(
ERROR,
"unsupported character length %d", l);
499 unsigned char b1 = 0;
500 unsigned char b2 = 0;
501 unsigned char b3 = 0;
502 unsigned char b4 = 0;
543 elog(
ERROR,
"unsupported character length %d", l);
Datum idx(PG_FUNCTION_ARGS)
#define IS_HIGHBIT_SET(ch)
int UtfToLocal(const unsigned char *utf, int len, unsigned char *iso, const pg_mb_radix_tree *map, const pg_utf_to_local_combined *cmap, int cmapsize, utf_local_conversion_func conv_func, int encoding, bool noError)
static int compare3(const void *p1, const void *p2)
static unsigned char * store_coded_char(unsigned char *dest, uint32 code)
static uint32 pg_mb_radix_conv(const pg_mb_radix_tree *rt, int l, unsigned char b1, unsigned char b2, unsigned char b3, unsigned char b4)
int LocalToUtf(const unsigned char *iso, int len, unsigned char *utf, const pg_mb_radix_tree *map, const pg_local_to_utf_combined *cmap, int cmapsize, utf_local_conversion_func conv_func, int encoding, bool noError)
static int compare4(const void *p1, const void *p2)
int local2local(const unsigned char *l, unsigned char *p, int len, int src_encoding, int dest_encoding, const unsigned char *tab, bool noError)
int errcode(int sqlerrcode)
#define ereport(elevel,...)
void report_untranslatable_char(int src_encoding, int dest_encoding, const char *mbstr, int len)
void report_invalid_encoding(int encoding, const char *mbstr, int len)
uint32(* utf_local_conversion_func)(uint32 code)
#define PG_VALID_ENCODING(_enc)
bool pg_utf8_islegal(const unsigned char *source, int length)
int pg_encoding_verifymbchar(int encoding, const char *mbstr, int len)