mirror of
https://github.com/postgres/postgres.git
synced 2025-07-03 20:02:46 +03:00
Make more use of castNode()
This commit is contained in:
@ -508,8 +508,7 @@ create_scan_plan(PlannerInfo *root, Path *best_path, int flags)
|
||||
{
|
||||
case T_IndexScan:
|
||||
case T_IndexOnlyScan:
|
||||
Assert(IsA(best_path, IndexPath));
|
||||
scan_clauses = ((IndexPath *) best_path)->indexinfo->indrestrictinfo;
|
||||
scan_clauses = castNode(IndexPath, best_path)->indexinfo->indrestrictinfo;
|
||||
break;
|
||||
default:
|
||||
scan_clauses = rel->baserestrictinfo;
|
||||
@ -2450,9 +2449,8 @@ create_indexscan_plan(PlannerInfo *root,
|
||||
qpqual = NIL;
|
||||
foreach(l, scan_clauses)
|
||||
{
|
||||
RestrictInfo *rinfo = (RestrictInfo *) lfirst(l);
|
||||
RestrictInfo *rinfo = castNode(RestrictInfo, lfirst(l));
|
||||
|
||||
Assert(IsA(rinfo, RestrictInfo));
|
||||
if (rinfo->pseudoconstant)
|
||||
continue; /* we may drop pseudoconstants here */
|
||||
if (list_member_ptr(indexquals, rinfo))
|
||||
@ -2608,10 +2606,9 @@ create_bitmap_scan_plan(PlannerInfo *root,
|
||||
qpqual = NIL;
|
||||
foreach(l, scan_clauses)
|
||||
{
|
||||
RestrictInfo *rinfo = (RestrictInfo *) lfirst(l);
|
||||
RestrictInfo *rinfo = castNode(RestrictInfo, lfirst(l));
|
||||
Node *clause = (Node *) rinfo->clause;
|
||||
|
||||
Assert(IsA(rinfo, RestrictInfo));
|
||||
if (rinfo->pseudoconstant)
|
||||
continue; /* we may drop pseudoconstants here */
|
||||
if (list_member(indexquals, clause))
|
||||
@ -2820,9 +2817,9 @@ create_bitmap_subplan(PlannerInfo *root, Path *bitmapqual,
|
||||
ListCell *l;
|
||||
|
||||
/* Use the regular indexscan plan build machinery... */
|
||||
iscan = (IndexScan *) create_indexscan_plan(root, ipath,
|
||||
NIL, NIL, false);
|
||||
Assert(IsA(iscan, IndexScan));
|
||||
iscan = castNode(IndexScan,
|
||||
create_indexscan_plan(root, ipath,
|
||||
NIL, NIL, false));
|
||||
/* then convert to a bitmap indexscan */
|
||||
plan = (Plan *) make_bitmap_indexscan(iscan->scan.scanrelid,
|
||||
iscan->indexid,
|
||||
@ -3391,13 +3388,13 @@ create_customscan_plan(PlannerInfo *root, CustomPath *best_path,
|
||||
* Invoke custom plan provider to create the Plan node represented by the
|
||||
* CustomPath.
|
||||
*/
|
||||
cplan = (CustomScan *) best_path->methods->PlanCustomPath(root,
|
||||
rel,
|
||||
best_path,
|
||||
tlist,
|
||||
scan_clauses,
|
||||
custom_plans);
|
||||
Assert(IsA(cplan, CustomScan));
|
||||
cplan = castNode(CustomScan,
|
||||
best_path->methods->PlanCustomPath(root,
|
||||
rel,
|
||||
best_path,
|
||||
tlist,
|
||||
scan_clauses,
|
||||
custom_plans));
|
||||
|
||||
/*
|
||||
* Copy cost data from Path to Plan; no need to make custom-plan providers
|
||||
@ -3683,7 +3680,7 @@ create_mergejoin_plan(PlannerInfo *root,
|
||||
i = 0;
|
||||
foreach(lc, best_path->path_mergeclauses)
|
||||
{
|
||||
RestrictInfo *rinfo = (RestrictInfo *) lfirst(lc);
|
||||
RestrictInfo *rinfo = castNode(RestrictInfo, lfirst(lc));
|
||||
EquivalenceClass *oeclass;
|
||||
EquivalenceClass *ieclass;
|
||||
PathKey *opathkey;
|
||||
@ -3693,7 +3690,6 @@ create_mergejoin_plan(PlannerInfo *root,
|
||||
ListCell *l2;
|
||||
|
||||
/* fetch outer/inner eclass from mergeclause */
|
||||
Assert(IsA(rinfo, RestrictInfo));
|
||||
if (rinfo->outer_is_left)
|
||||
{
|
||||
oeclass = rinfo->left_ec;
|
||||
@ -4228,12 +4224,10 @@ fix_indexqual_references(PlannerInfo *root, IndexPath *index_path)
|
||||
|
||||
forboth(lcc, index_path->indexquals, lci, index_path->indexqualcols)
|
||||
{
|
||||
RestrictInfo *rinfo = (RestrictInfo *) lfirst(lcc);
|
||||
RestrictInfo *rinfo = castNode(RestrictInfo, lfirst(lcc));
|
||||
int indexcol = lfirst_int(lci);
|
||||
Node *clause;
|
||||
|
||||
Assert(IsA(rinfo, RestrictInfo));
|
||||
|
||||
/*
|
||||
* Replace any outer-relation variables with nestloop params.
|
||||
*
|
||||
|
Reference in New Issue
Block a user