diff options
Diffstat (limited to 'src/backend/optimizer/util')
-rw-r--r-- | src/backend/optimizer/util/clauses.c | 10 | ||||
-rw-r--r-- | src/backend/optimizer/util/orclauses.c | 13 | ||||
-rw-r--r-- | src/backend/optimizer/util/restrictinfo.c | 12 |
3 files changed, 12 insertions, 23 deletions
diff --git a/src/backend/optimizer/util/clauses.c b/src/backend/optimizer/util/clauses.c index 3dedee6d699..b19380e1b1e 100644 --- a/src/backend/optimizer/util/clauses.c +++ b/src/backend/optimizer/util/clauses.c @@ -2700,9 +2700,8 @@ eval_const_expressions_mutator(Node *node, * Since the underlying operator is "=", must negate * its result */ - Const *csimple = (Const *) simple; + Const *csimple = castNode(Const, simple); - Assert(IsA(csimple, Const)); csimple->constvalue = BoolGetDatum(!DatumGetBool(csimple->constvalue)); return (Node *) csimple; @@ -3091,12 +3090,10 @@ eval_const_expressions_mutator(Node *node, const_true_cond = false; foreach(arg, caseexpr->args) { - CaseWhen *oldcasewhen = (CaseWhen *) lfirst(arg); + CaseWhen *oldcasewhen = castNode(CaseWhen, lfirst(arg)); Node *casecond; Node *caseresult; - Assert(IsA(oldcasewhen, CaseWhen)); - /* Simplify this alternative's test condition */ casecond = eval_const_expressions_mutator((Node *) oldcasewhen->expr, context); @@ -4081,8 +4078,7 @@ fetch_function_defaults(HeapTuple func_tuple) if (isnull) elog(ERROR, "not enough default arguments"); str = TextDatumGetCString(proargdefaults); - defaults = (List *) stringToNode(str); - Assert(IsA(defaults, List)); + defaults = castNode(List, stringToNode(str)); pfree(str); return defaults; } diff --git a/src/backend/optimizer/util/orclauses.c b/src/backend/optimizer/util/orclauses.c index c965bb678d3..9cbcaedb75d 100644 --- a/src/backend/optimizer/util/orclauses.c +++ b/src/backend/optimizer/util/orclauses.c @@ -188,9 +188,8 @@ extract_or_clause(RestrictInfo *or_rinfo, RelOptInfo *rel) foreach(lc2, andargs) { - RestrictInfo *rinfo = (RestrictInfo *) lfirst(lc2); + RestrictInfo *rinfo = castNode(RestrictInfo, lfirst(lc2)); - Assert(IsA(rinfo, RestrictInfo)); if (restriction_is_or_clause(rinfo)) { /* @@ -211,11 +210,11 @@ extract_or_clause(RestrictInfo *or_rinfo, RelOptInfo *rel) } else { - Assert(IsA(orarg, RestrictInfo)); - Assert(!restriction_is_or_clause((RestrictInfo *) orarg)); - if (is_safe_restriction_clause_for((RestrictInfo *) orarg, rel)) - subclauses = lappend(subclauses, - ((RestrictInfo *) orarg)->clause); + RestrictInfo *rinfo = castNode(RestrictInfo, orarg); + + Assert(!restriction_is_or_clause(rinfo)); + if (is_safe_restriction_clause_for(rinfo, rel)) + subclauses = lappend(subclauses, rinfo->clause); } /* diff --git a/src/backend/optimizer/util/restrictinfo.c b/src/backend/optimizer/util/restrictinfo.c index 045b5cf5392..6f79f966544 100644 --- a/src/backend/optimizer/util/restrictinfo.c +++ b/src/backend/optimizer/util/restrictinfo.c @@ -335,9 +335,7 @@ get_actual_clauses(List *restrictinfo_list) foreach(l, restrictinfo_list) { - RestrictInfo *rinfo = (RestrictInfo *) lfirst(l); - - Assert(IsA(rinfo, RestrictInfo)); + RestrictInfo *rinfo = castNode(RestrictInfo, lfirst(l)); Assert(!rinfo->pseudoconstant); @@ -361,9 +359,7 @@ extract_actual_clauses(List *restrictinfo_list, foreach(l, restrictinfo_list) { - RestrictInfo *rinfo = (RestrictInfo *) lfirst(l); - - Assert(IsA(rinfo, RestrictInfo)); + RestrictInfo *rinfo = castNode(RestrictInfo, lfirst(l)); if (rinfo->pseudoconstant == pseudoconstant) result = lappend(result, rinfo->clause); @@ -393,9 +389,7 @@ extract_actual_join_clauses(List *restrictinfo_list, foreach(l, restrictinfo_list) { - RestrictInfo *rinfo = (RestrictInfo *) lfirst(l); - - Assert(IsA(rinfo, RestrictInfo)); + RestrictInfo *rinfo = castNode(RestrictInfo, lfirst(l)); if (rinfo->is_pushed_down) { |