From 5935a26ffaefde5876d226d6d582491724c4433e Mon Sep 17 00:00:00 2001 From: root Date: Fri, 9 Oct 2020 22:04:24 -0400 Subject: [PATCH] Use list_delete_xxxcell O(1) instead of list_delete_ptr O(N) --- src/backend/optimizer/path/joinpath.c | 4 ++-- src/backend/rewrite/rewriteHandler.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/optimizer/path/joinpath.c b/src/backend/optimizer/path/joinpath.c index db54a6b..61ef7c8 100644 --- a/src/backend/optimizer/path/joinpath.c +++ b/src/backend/optimizer/path/joinpath.c @@ -1005,8 +1005,8 @@ sort_inner_and_outer(PlannerInfo *root, /* Make a pathkey list with this guy first */ if (l != list_head(all_pathkeys)) outerkeys = lcons(front_pathkey, - list_delete_ptr(list_copy(all_pathkeys), - front_pathkey)); + list_delete_nth_cell(list_copy(all_pathkeys), + foreach_current_index(l))); else outerkeys = all_pathkeys; /* no work at first one... */ diff --git a/src/backend/rewrite/rewriteHandler.c b/src/backend/rewrite/rewriteHandler.c index fe777c3..d0f15b8 100644 --- a/src/backend/rewrite/rewriteHandler.c +++ b/src/backend/rewrite/rewriteHandler.c @@ -650,7 +650,7 @@ adjustJoinTreeList(Query *parsetree, bool removert, int rt_index) if (IsA(rtr, RangeTblRef) && rtr->rtindex == rt_index) { - newjointree = list_delete_ptr(newjointree, rtr); + newjointree = list_delete_cell(newjointree, l); /* * foreach is safe because we exit loop after list_delete... -- 1.8.3.1