• Tom Lane's avatar
    Remove explicit FreeExprContext calls during plan node shutdown. The · 9b5b9616
    Tom Lane authored
    ExprContexts will be freed anyway when FreeExecutorState() is reached,
    and letting that routine do the work is more efficient because it will
    automatically free the ExprContexts in reverse creation order.  The
    existing coding was effectively freeing them in exactly the worst
    possible order, resulting in O(N^2) behavior inside list_delete_ptr,
    which becomes highly visible in cases with a few thousand plan nodes.
    
    ExecFreeExprContext is now effectively a no-op and could be removed,
    but I left it in place in case we ever want to put it back to use.
    9b5b9616
execUtils.c 28.9 KB