• Tom Lane's avatar
    Avoid using a local FunctionCallInfoData struct in ExecMakeFunctionResult · 0811ff20
    Tom Lane authored
    and related routines.
    
    We already had a redundant FunctionCallInfoData struct in FuncExprState,
    but were using that copy only in set-returning-function cases, to avoid
    keeping function evaluation state in the expression tree for the benefit
    of plpgsql's "simple expression" logic.  But of course that didn't work
    anyway.  Given the recent fixes in plpgsql there is no need to have two
    separate behaviors here.  Getting rid of the local FunctionCallInfoData
    structs should make things a little faster (because we don't need to do
    InitFunctionCallInfoData each time), and it also makes for a noticeable
    reduction in stack space consumption during recursive calls.
    0811ff20
execnodes.h 60.8 KB