Hi

I found some code places call list_delete_ptr can be replaced by 
list_delete_xxxcell which can be faster.

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);


Best regards,
houzj


Attachment: 0001-Use-list_delete_xxxcell-instead-of-list_delete_ptr.patch
Description: 0001-Use-list_delete_xxxcell-instead-of-list_delete_ptr.patch

Reply via email to