78#define GETCHAR(t) pg_ascii_tolower(t)
87 if (plen == 1 && *p ==
'%')
101 while (tlen > 0 && plen > 0)
110 (
errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE),
111 errmsg(
"LIKE pattern must not end with escape character")));
172 (
errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE),
173 errmsg(
"LIKE pattern must not end with escape character")));
231 found_escape =
false;
240 (
errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE),
241 errmsg(
"LIKE pattern must not end with escape character")));
243 else if (*p1 ==
'_' || *p1 ==
'%')
257 for (
const char *
c = p;
c < p1;
c++)
378 while (plen > 0 && *p ==
'%')
440 (
errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE),
441 errmsg(
"invalid escape string"),
442 errhint(
"Escape string must be empty or one character.")));
463 if (
CHAREQ(p,
e) && !afterescape)
int errhint(const char *fmt,...)
int errcode(int sqlerrcode)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
#define CopyAdvChar(dst, src, srclen)
#define NextByte(p, plen)
#define NextChar(p, plen)
static int MatchText(const char *t, int tlen, const char *p, int plen, pg_locale_t locale)
void pfree(void *pointer)
#define CHECK_FOR_INTERRUPTS()
int pg_strncoll(const char *arg1, ssize_t len1, const char *arg2, ssize_t len2, pg_locale_t locale)
static char buf[DEFAULT_XLOG_SEG_SIZE]
static int cmp(const chr *x, const chr *y, size_t len)
void check_stack_depth(void)
static Size VARSIZE_ANY(const void *PTR)
static Size VARSIZE_ANY_EXHDR(const void *PTR)
static char * VARDATA(const void *PTR)
static char * VARDATA_ANY(const void *PTR)
static void SET_VARSIZE(void *PTR, Size len)