diff options
author | Andres Freund <andres@anarazel.de> | 2017-01-26 16:47:03 -0800 |
---|---|---|
committer | Andres Freund <andres@anarazel.de> | 2017-01-26 16:47:03 -0800 |
commit | 9ba8a9ce4548bb34b7136b7463a61b2c499979a3 (patch) | |
tree | d11a07704ed51e833683b52131bcc4d5a37eaed3 /src/backend/executor | |
parent | 5bcab111426e5aae659a97a66d5de4ab9fe40edf (diff) | |
download | postgresql-9ba8a9ce4548bb34b7136b7463a61b2c499979a3.tar.gz postgresql-9ba8a9ce4548bb34b7136b7463a61b2c499979a3.zip |
Use the new castNode() macro in a number of places.
This is far from a pervasive conversion, but it's a good starting
point.
Author: Peter Eisentraut, with some minor changes by me
Reviewed-By: Tom Lane
Discussion: https://postgr.es/m/c5d387d9-3440-f5e0-f9d4-71d53b9fbe52@2ndquadrant.com
Diffstat (limited to 'src/backend/executor')
-rw-r--r-- | src/backend/executor/execAmi.c | 7 | ||||
-rw-r--r-- | src/backend/executor/execQual.c | 6 | ||||
-rw-r--r-- | src/backend/executor/execTuples.c | 5 | ||||
-rw-r--r-- | src/backend/executor/functions.c | 6 | ||||
-rw-r--r-- | src/backend/executor/nodeAgg.c | 8 | ||||
-rw-r--r-- | src/backend/executor/nodeCtescan.c | 3 | ||||
-rw-r--r-- | src/backend/executor/nodeCustom.c | 4 | ||||
-rw-r--r-- | src/backend/executor/nodeHashjoin.c | 7 | ||||
-rw-r--r-- | src/backend/executor/nodeLockRows.c | 4 | ||||
-rw-r--r-- | src/backend/executor/nodeModifyTable.c | 4 | ||||
-rw-r--r-- | src/backend/executor/nodeSubplan.c | 15 | ||||
-rw-r--r-- | src/backend/executor/nodeWorktablescan.c | 4 |
12 files changed, 26 insertions, 47 deletions
diff --git a/src/backend/executor/execAmi.c b/src/backend/executor/execAmi.c index 1ca4bcb117c..d3802079f5e 100644 --- a/src/backend/executor/execAmi.c +++ b/src/backend/executor/execAmi.c @@ -403,11 +403,12 @@ ExecSupportsMarkRestore(Path *pathnode) return true; case T_CustomScan: - Assert(IsA(pathnode, CustomPath)); - if (((CustomPath *) pathnode)->flags & CUSTOMPATH_SUPPORT_MARK_RESTORE) + { + CustomPath *customPath = castNode(CustomPath, pathnode); + if (customPath->flags & CUSTOMPATH_SUPPORT_MARK_RESTORE) return true; return false; - + } case T_Result: /* diff --git a/src/backend/executor/execQual.c b/src/backend/executor/execQual.c index 19dd0b264bc..4566219ca8b 100644 --- a/src/backend/executor/execQual.c +++ b/src/backend/executor/execQual.c @@ -4640,10 +4640,9 @@ ExecInitExpr(Expr *node, PlanState *parent) cstate->arg = ExecInitExpr(caseexpr->arg, parent); foreach(l, caseexpr->args) { - CaseWhen *when = (CaseWhen *) lfirst(l); + CaseWhen *when = castNode(CaseWhen, lfirst(l)); CaseWhenState *wstate = makeNode(CaseWhenState); - Assert(IsA(when, CaseWhen)); wstate->xprstate.evalfunc = NULL; /* not used */ wstate->xprstate.expr = (Expr *) when; wstate->expr = ExecInitExpr(when->expr, parent); @@ -5137,9 +5136,8 @@ ExecCleanTargetListLength(List *targetlist) foreach(tl, targetlist) { - TargetEntry *curTle = (TargetEntry *) lfirst(tl); + TargetEntry *curTle = castNode(TargetEntry, lfirst(tl)); - Assert(IsA(curTle, TargetEntry)); if (!curTle->resjunk) len++; } diff --git a/src/backend/executor/execTuples.c b/src/backend/executor/execTuples.c index cbb2bcb5684..f002ee2561f 100644 --- a/src/backend/executor/execTuples.c +++ b/src/backend/executor/execTuples.c @@ -160,10 +160,7 @@ ExecResetTupleTable(List *tupleTable, /* tuple table */ foreach(lc, tupleTable) { - TupleTableSlot *slot = (TupleTableSlot *) lfirst(lc); - - /* Sanity checks */ - Assert(IsA(slot, TupleTableSlot)); + TupleTableSlot *slot = castNode(TupleTableSlot, lfirst(lc)); /* Always release resources and reset the slot to empty */ ExecClearTuple(slot); diff --git a/src/backend/executor/functions.c b/src/backend/executor/functions.c index e4a1da4dbbf..15c709139ad 100644 --- a/src/backend/executor/functions.c +++ b/src/backend/executor/functions.c @@ -479,19 +479,17 @@ init_execution_state(List *queryTree_list, foreach(lc1, queryTree_list) { - List *qtlist = (List *) lfirst(lc1); + List *qtlist = castNode(List, lfirst(lc1)); execution_state *firstes = NULL; execution_state *preves = NULL; ListCell *lc2; foreach(lc2, qtlist) { - Query *queryTree = (Query *) lfirst(lc2); + Query *queryTree = castNode(Query, lfirst(lc2)); PlannedStmt *stmt; execution_state *newes; - Assert(IsA(queryTree, Query)); - /* Plan the query if needed */ if (queryTree->commandType == CMD_UTILITY) { diff --git a/src/backend/executor/nodeAgg.c b/src/backend/executor/nodeAgg.c index e4992134bd0..5c6079af808 100644 --- a/src/backend/executor/nodeAgg.c +++ b/src/backend/executor/nodeAgg.c @@ -2572,9 +2572,8 @@ ExecInitAgg(Agg *node, EState *estate, int eflags) if (phase > 0) { - aggnode = list_nth(node->chain, phase - 1); - sortnode = (Sort *) aggnode->plan.lefttree; - Assert(IsA(sortnode, Sort)); + aggnode = castNode(Agg, list_nth(node->chain, phase - 1)); + sortnode = castNode(Sort, aggnode->plan.lefttree); } else { @@ -3010,10 +3009,9 @@ ExecInitAgg(Agg *node, EState *estate, int eflags) */ foreach(arg, pertrans->aggref->args) { - TargetEntry *source_tle = (TargetEntry *) lfirst(arg); + TargetEntry *source_tle = castNode(TargetEntry, lfirst(arg)); TargetEntry *tle; - Assert(IsA(source_tle, TargetEntry)); tle = flatCopyTargetEntry(source_tle); tle->resno += column_offset; diff --git a/src/backend/executor/nodeCtescan.c b/src/backend/executor/nodeCtescan.c index 610797b36b6..8f4e0f527e4 100644 --- a/src/backend/executor/nodeCtescan.c +++ b/src/backend/executor/nodeCtescan.c @@ -210,7 +210,7 @@ ExecInitCteScan(CteScan *node, EState *estate, int eflags) prmdata = &(estate->es_param_exec_vals[node->cteParam]); Assert(prmdata->execPlan == NULL); Assert(!prmdata->isnull); - scanstate->leader = (CteScanState *) DatumGetPointer(prmdata->value); + scanstate->leader = castNode(CteScanState, DatumGetPointer(prmdata->value)); if (scanstate->leader == NULL) { /* I am the leader */ @@ -223,7 +223,6 @@ ExecInitCteScan(CteScan *node, EState *estate, int eflags) else { /* Not the leader */ - Assert(IsA(scanstate->leader, CteScanState)); /* Create my own read pointer, and ensure it is at start */ scanstate->readptr = tuplestore_alloc_read_pointer(scanstate->leader->cte_table, diff --git a/src/backend/executor/nodeCustom.c b/src/backend/executor/nodeCustom.c index a27430242a5..16343a56df7 100644 --- a/src/backend/executor/nodeCustom.c +++ b/src/backend/executor/nodeCustom.c @@ -35,8 +35,8 @@ ExecInitCustomScan(CustomScan *cscan, EState *estate, int eflags) * methods field correctly at this time. Other standard fields should be * set to zero. */ - css = (CustomScanState *) cscan->methods->CreateCustomScanState(cscan); - Assert(IsA(css, CustomScanState)); + css = castNode(CustomScanState, + cscan->methods->CreateCustomScanState(cscan)); /* ensure flags is filled correctly */ css->flags = cscan->flags; diff --git a/src/backend/executor/nodeHashjoin.c b/src/backend/executor/nodeHashjoin.c index 6e576ad0b38..8a04294b402 100644 --- a/src/backend/executor/nodeHashjoin.c +++ b/src/backend/executor/nodeHashjoin.c @@ -519,12 +519,9 @@ ExecInitHashJoin(HashJoin *node, EState *estate, int eflags) hoperators = NIL; foreach(l, hjstate->hashclauses) { - FuncExprState *fstate = (FuncExprState *) lfirst(l); - OpExpr *hclause; + FuncExprState *fstate = castNode(FuncExprState, lfirst(l)); + OpExpr *hclause = castNode(OpExpr, fstate->xprstate.expr); - Assert(IsA(fstate, FuncExprState)); - hclause = (OpExpr *) fstate->xprstate.expr; - Assert(IsA(hclause, OpExpr)); lclauses = lappend(lclauses, linitial(fstate->args)); rclauses = lappend(rclauses, lsecond(fstate->args)); hoperators = lappend_oid(hoperators, hclause->opno); diff --git a/src/backend/executor/nodeLockRows.c b/src/backend/executor/nodeLockRows.c index f1bf6fdf9f0..b0980343377 100644 --- a/src/backend/executor/nodeLockRows.c +++ b/src/backend/executor/nodeLockRows.c @@ -401,12 +401,10 @@ ExecInitLockRows(LockRows *node, EState *estate, int eflags) epq_arowmarks = NIL; foreach(lc, node->rowMarks) { - PlanRowMark *rc = (PlanRowMark *) lfirst(lc); + PlanRowMark *rc = castNode(PlanRowMark, lfirst(lc)); ExecRowMark *erm; ExecAuxRowMark *aerm; - Assert(IsA(rc, PlanRowMark)); - /* ignore "parent" rowmarks; they are irrelevant at runtime */ if (rc->isParent) continue; diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c index e35603964b7..95e158970c3 100644 --- a/src/backend/executor/nodeModifyTable.c +++ b/src/backend/executor/nodeModifyTable.c @@ -1958,11 +1958,9 @@ ExecInitModifyTable(ModifyTable *node, EState *estate, int eflags) */ foreach(l, node->rowMarks) { - PlanRowMark *rc = (PlanRowMark *) lfirst(l); + PlanRowMark *rc = castNode(PlanRowMark, lfirst(l)); ExecRowMark *erm; - Assert(IsA(rc, PlanRowMark)); - /* ignore "parent" rowmarks; they are irrelevant at runtime */ if (rc->isParent) continue; diff --git a/src/backend/executor/nodeSubplan.c b/src/backend/executor/nodeSubplan.c index f8a2cd446a2..8f419a13acd 100644 --- a/src/backend/executor/nodeSubplan.c +++ b/src/backend/executor/nodeSubplan.c @@ -808,8 +808,7 @@ ExecInitSubPlan(SubPlan *subplan, PlanState *parent) else if (and_clause((Node *) sstate->testexpr->expr)) { /* multiple combining operators */ - Assert(IsA(sstate->testexpr, BoolExprState)); - oplist = ((BoolExprState *) sstate->testexpr)->args; + oplist = castNode(BoolExprState, sstate->testexpr)->args; } else { @@ -829,8 +828,8 @@ ExecInitSubPlan(SubPlan *subplan, PlanState *parent) i = 1; foreach(l, oplist) { - FuncExprState *fstate = (FuncExprState *) lfirst(l); - OpExpr *opexpr = (OpExpr *) fstate->xprstate.expr; + FuncExprState *fstate = castNode(FuncExprState, lfirst(l)); + OpExpr *opexpr = castNode(OpExpr, fstate->xprstate.expr); ExprState *exstate; Expr *expr; TargetEntry *tle; @@ -839,8 +838,6 @@ ExecInitSubPlan(SubPlan *subplan, PlanState *parent) Oid left_hashfn; Oid right_hashfn; - Assert(IsA(fstate, FuncExprState)); - Assert(IsA(opexpr, OpExpr)); Assert(list_length(fstate->args) == 2); /* Process lefthand argument */ @@ -1218,10 +1215,8 @@ ExecAlternativeSubPlan(AlternativeSubPlanState *node, bool *isNull) { /* Just pass control to the active subplan */ - SubPlanState *activesp = (SubPlanState *) list_nth(node->subplans, - node->active); - - Assert(IsA(activesp, SubPlanState)); + SubPlanState *activesp = castNode(SubPlanState, + list_nth(node->subplans, node->active)); return ExecSubPlan(activesp, econtext, isNull); } diff --git a/src/backend/executor/nodeWorktablescan.c b/src/backend/executor/nodeWorktablescan.c index bdba9e0bfcd..23b5b949857 100644 --- a/src/backend/executor/nodeWorktablescan.c +++ b/src/backend/executor/nodeWorktablescan.c @@ -95,8 +95,8 @@ ExecWorkTableScan(WorkTableScanState *node) param = &(estate->es_param_exec_vals[plan->wtParam]); Assert(param->execPlan == NULL); Assert(!param->isnull); - node->rustate = (RecursiveUnionState *) DatumGetPointer(param->value); - Assert(node->rustate && IsA(node->rustate, RecursiveUnionState)); + node->rustate = castNode(RecursiveUnionState, DatumGetPointer(param->value)); + Assert(node->rustate); /* * The scan tuple type (ie, the rowtype we expect to find in the work |