26 return (*chkcond) (checkval, curitem);
27 else if (curitem->
val == (
int32)
'!')
30 ((
ltree_execute(curitem + 1, checkval, calcnot, chkcond)) ?
false :
true)
33 else if (curitem->
val == (
int32)
'&')
36 return ltree_execute(curitem + 1, checkval, calcnot, chkcond);
45 return ltree_execute(curitem + 1, checkval, calcnot, chkcond);
59 int tlen = ((
CHKVAL *) checkval)->node->numlevel;
60 char *op = ((
CHKVAL *) checkval)->operand +
val->distance;
61 int (*cmpptr) (
const char *,
const char *, size_t);
71 else if ((
val->length == level->
len ||
73 (*cmpptr) (op, level->
name,
val->length) == 0)
#define PG_FREE_IF_COPY(ptr, n)
#define DirectFunctionCall2(func, arg1, arg2)
#define PG_GETARG_DATUM(n)
#define PG_RETURN_DATUM(x)
#define PG_RETURN_BOOL(x)
bool compare_subnode(ltree_level *t, char *qn, int len, int(*cmpptr)(const char *, const char *, size_t), bool anyend)
int ltree_strncasecmp(const char *a, const char *b, size_t s)
#define PG_GETARG_LTXTQUERY_P(n)
#define PG_GETARG_LTREE_P(n)
Datum ltxtq_rexec(PG_FUNCTION_ARGS)
Datum ltxtq_exec(PG_FUNCTION_ARGS)
bool ltree_execute(ITEM *curitem, void *checkval, bool calcnot, bool(*chkcond)(void *checkval, ITEM *val))
PG_FUNCTION_INFO_V1(ltxtq_exec)
static bool checkcondition_str(void *checkval, ITEM *val)
void check_stack_depth(void)
char name[FLEXIBLE_ARRAY_MEMBER]