Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit2b16fcd

Browse files
committed
code cleanup
1 parent691c6e1 commit2b16fcd

File tree

2 files changed

+44
-54
lines changed

2 files changed

+44
-54
lines changed

‎src/utils.c

Lines changed: 40 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@
2525

2626

2727
staticboolclause_contains_params_walker(Node*node,void*context);
28-
staticvoidchange_varnos_in_restrinct_info(RestrictInfo*rinfo,change_varno_context*context);
28+
staticvoidchange_varnos_in_restrinct_info(RestrictInfo*rinfo,
29+
change_varno_context*context);
2930
staticboolchange_varno_walker(Node*node,change_varno_context*context);
3031
staticList*get_tableoids_list(List*tlist);
3132
staticvoidlock_rows_visitor(Plan*plan,void*context);
@@ -440,6 +441,43 @@ change_varno_walker(Node *node, change_varno_context *context)
440441
returnexpression_tree_walker(node,change_varno_walker, (void*)context);
441442
}
442443

444+
staticvoid
445+
change_varnos_in_restrinct_info(RestrictInfo*rinfo,change_varno_context*context)
446+
{
447+
ListCell*lc;
448+
449+
change_varno_walker((Node*)rinfo->clause,context);
450+
if (rinfo->left_em)
451+
change_varno_walker((Node*)rinfo->left_em->em_expr,context);
452+
453+
if (rinfo->right_em)
454+
change_varno_walker((Node*)rinfo->right_em->em_expr,context);
455+
456+
if (rinfo->orclause)
457+
foreach(lc, ((BoolExpr*)rinfo->orclause)->args)
458+
{
459+
Node*node= (Node*)lfirst(lc);
460+
change_varno_walker(node,context);
461+
}
462+
463+
/* TODO: find some elegant way to do this */
464+
if (bms_is_member(context->old_varno,rinfo->clause_relids))
465+
{
466+
rinfo->clause_relids=bms_del_member(rinfo->clause_relids,context->old_varno);
467+
rinfo->clause_relids=bms_add_member(rinfo->clause_relids,context->new_varno);
468+
}
469+
if (bms_is_member(context->old_varno,rinfo->left_relids))
470+
{
471+
rinfo->left_relids=bms_del_member(rinfo->left_relids,context->old_varno);
472+
rinfo->left_relids=bms_add_member(rinfo->left_relids,context->new_varno);
473+
}
474+
if (bms_is_member(context->old_varno,rinfo->right_relids))
475+
{
476+
rinfo->right_relids=bms_del_member(rinfo->right_relids,context->old_varno);
477+
rinfo->right_relids=bms_add_member(rinfo->right_relids,context->new_varno);
478+
}
479+
}
480+
443481
Oid
444482
str_to_oid(constchar*cstr)
445483
{
@@ -477,10 +515,6 @@ plan_tree_walker(Plan *plan,
477515
plan_tree_walker((Plan*)lfirst(l),visitor,context);
478516
break;
479517

480-
/*
481-
* Add proxy PartitionFilter nodes
482-
* to subplans of ModifyTable node
483-
*/
484518
caseT_ModifyTable:
485519
foreach (l, ((ModifyTable*)plan)->plans)
486520
plan_tree_walker((Plan*)lfirst(l),visitor,context);
@@ -510,47 +544,10 @@ plan_tree_walker(Plan *plan,
510544
plan_tree_walker(plan->lefttree,visitor,context);
511545
plan_tree_walker(plan->righttree,visitor,context);
512546

547+
/* Apply visitor to the current node */
513548
visitor(plan,context);
514549
}
515550

516-
517-
staticvoid
518-
change_varnos_in_restrinct_info(RestrictInfo*rinfo,change_varno_context*context)
519-
{
520-
ListCell*lc;
521-
522-
change_varno_walker((Node*)rinfo->clause,context);
523-
if (rinfo->left_em)
524-
change_varno_walker((Node*)rinfo->left_em->em_expr,context);
525-
526-
if (rinfo->right_em)
527-
change_varno_walker((Node*)rinfo->right_em->em_expr,context);
528-
529-
if (rinfo->orclause)
530-
foreach(lc, ((BoolExpr*)rinfo->orclause)->args)
531-
{
532-
Node*node= (Node*)lfirst(lc);
533-
change_varno_walker(node,context);
534-
}
535-
536-
/* TODO: find some elegant way to do this */
537-
if (bms_is_member(context->old_varno,rinfo->clause_relids))
538-
{
539-
rinfo->clause_relids=bms_del_member(rinfo->clause_relids,context->old_varno);
540-
rinfo->clause_relids=bms_add_member(rinfo->clause_relids,context->new_varno);
541-
}
542-
if (bms_is_member(context->old_varno,rinfo->left_relids))
543-
{
544-
rinfo->left_relids=bms_del_member(rinfo->left_relids,context->old_varno);
545-
rinfo->left_relids=bms_add_member(rinfo->left_relids,context->new_varno);
546-
}
547-
if (bms_is_member(context->old_varno,rinfo->right_relids))
548-
{
549-
rinfo->right_relids=bms_del_member(rinfo->right_relids,context->old_varno);
550-
rinfo->right_relids=bms_add_member(rinfo->right_relids,context->new_varno);
551-
}
552-
}
553-
554551
/*
555552
* Add missing 'TABLEOID_STR%u' junk attributes for inherited partitions
556553
*

‎src/utils.h

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,8 @@
1919

2020
typedefstruct
2121
{
22-
RelOptInfo*child;
23-
RelOptInfo*parent;
24-
intsublevels_up;
25-
}ReplaceVarsContext;
26-
27-
typedefstruct
28-
{
29-
Oidold_varno;
30-
Oidnew_varno;
22+
Oidold_varno;
23+
Oidnew_varno;
3124
}change_varno_context;
3225

3326

@@ -53,10 +46,10 @@ List * list_reverse(List *l);
5346

5447
voidchange_varnos(Node*node,Oidold_varno,Oidnew_varno);
5548

56-
Oidstr_to_oid(constchar*cstr);
49+
Oidstr_to_oid(constchar*cstr);
5750

5851
voidplan_tree_walker(Plan*plan,
59-
void (*visitor)(Plan*,void*),
52+
void (*visitor)(Plan*plan,void*context),
6053
void*context);
6154

6255
voidrowmark_add_tableoids(Query*parse);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp