aboutsummaryrefslogtreecommitdiff
path: root/src/backend/parser/parse_expr.c
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2017-02-21 11:33:07 -0500
committerPeter Eisentraut <peter_e@gmx.net>2017-02-21 11:59:09 -0500
commit38d103763d14baddf3cbfe4b00b501059fc9447f (patch)
treea69106fc39af0e181307f40fd3ba43b1930c3fcc /src/backend/parser/parse_expr.c
parent4e5ce3c1aeadf81b504bc9d683b67950bd3f8766 (diff)
downloadpostgresql-38d103763d14baddf3cbfe4b00b501059fc9447f.tar.gz
postgresql-38d103763d14baddf3cbfe4b00b501059fc9447f.zip
Make more use of castNode()
Diffstat (limited to 'src/backend/parser/parse_expr.c')
-rw-r--r--src/backend/parser/parse_expr.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c
index 4b732724177..d3ed073cee2 100644
--- a/src/backend/parser/parse_expr.c
+++ b/src/backend/parser/parse_expr.c
@@ -917,13 +917,11 @@ transformAExprOp(ParseState *pstate, A_Expr *a)
/* ROW() op ROW() is handled specially */
lexpr = transformExprRecurse(pstate, lexpr);
rexpr = transformExprRecurse(pstate, rexpr);
- Assert(IsA(lexpr, RowExpr));
- Assert(IsA(rexpr, RowExpr));
result = make_row_comparison_op(pstate,
a->name,
- ((RowExpr *) lexpr)->args,
- ((RowExpr *) rexpr)->args,
+ castNode(RowExpr, lexpr)->args,
+ castNode(RowExpr, rexpr)->args,
a->location);
}
else
@@ -1296,8 +1294,7 @@ transformAExprBetween(ParseState *pstate, A_Expr *a)
/* Deconstruct A_Expr into three subexprs */
aexpr = a->lexpr;
- Assert(IsA(a->rexpr, List));
- args = (List *) a->rexpr;
+ args = castNode(List, a->rexpr);
Assert(list_length(args) == 2);
bexpr = (Node *) linitial(args);
cexpr = (Node *) lsecond(args);
@@ -1672,12 +1669,10 @@ transformCaseExpr(ParseState *pstate, CaseExpr *c)
resultexprs = NIL;
foreach(l, c->args)
{
- CaseWhen *w = (CaseWhen *) lfirst(l);
+ CaseWhen *w = castNode(CaseWhen, lfirst(l));
CaseWhen *neww = makeNode(CaseWhen);
Node *warg;
- Assert(IsA(w, CaseWhen));
-
warg = (Node *) w->expr;
if (placeholder)
{
@@ -2339,12 +2334,10 @@ transformXmlExpr(ParseState *pstate, XmlExpr *x)
foreach(lc, x->named_args)
{
- ResTarget *r = (ResTarget *) lfirst(lc);
+ ResTarget *r = castNode(ResTarget, lfirst(lc));
Node *expr;
char *argname;
- Assert(IsA(r, ResTarget));
-
expr = transformExprRecurse(pstate, r->val);
if (r->name)
@@ -2800,8 +2793,7 @@ make_row_comparison_op(ParseState *pstate, List *opname,
Node *rarg = (Node *) lfirst(r);
OpExpr *cmp;
- cmp = (OpExpr *) make_op(pstate, opname, larg, rarg, location);
- Assert(IsA(cmp, OpExpr));
+ cmp = castNode(OpExpr, make_op(pstate, opname, larg, rarg, location));
/*
* We don't use coerce_to_boolean here because we insist on the