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;
71 else if ((
val->length == level->
len ||
73 (*prefix_eq) (op,
val->length, level->
name, level->
len))
#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, ltree_prefix_eq_func prefix_eq, bool anyend)
bool ltree_prefix_eq(const char *a, size_t a_sz, const char *b, size_t b_sz)
bool ltree_prefix_eq_ci(const char *a, size_t a_sz, const char *b, size_t b_sz)
#define PG_GETARG_LTXTQUERY_P(n)
bool(* ltree_prefix_eq_func)(const char *, size_t, const char *, size_t)
#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]