76 elog(
ERROR,
"can't negate an empty subexpression");
104 newopexpr->opresulttype = opexpr->opresulttype;
107 newopexpr->inputcollid = opexpr->inputcollid;
216 newexpr->argisrow = expr->argisrow;
249 elog(
ERROR,
"unrecognized booltesttype: %d",
571 foreach(
temp, reference)
#define Assert(condition)
bool equal(const void *a, const void *b)
List * list_difference(const List *list1, const List *list2)
List * lappend(List *list, void *datum)
List * list_concat(List *list1, const List *list2)
bool list_member(const List *list, const void *datum)
List * list_union(const List *list1, const List *list2)
Oid get_negator(Oid opno)
Expr * make_orclause(List *orclauses)
Node * makeBoolConst(bool value, bool isnull)
Expr * make_andclause(List *andclauses)
Expr * make_notclause(Expr *notclause)
static bool is_andclause(const void *clause)
static bool is_orclause(const void *clause)
#define IsA(nodeptr, _type_)
static int list_length(const List *l)
static bool DatumGetBool(Datum X)
Expr * canonicalize_qual(Expr *qual, bool is_check)
static Expr * process_duplicate_ors(List *orlist)
static List * pull_ors(List *orlist)
Node * negate_clause(Node *node)
static List * pull_ands(List *andlist)
static Expr * find_duplicate_ors(Expr *qual, bool is_check)
BoolTestType booltesttype
NullTestType nulltesttype