• Andrew Dunstan's avatar
    Cache argument type information in json(b) aggregate functions. · c00c3249
    Andrew Dunstan authored
    These functions have been looking up type info for every row they
    process. Instead of doing that we only look them up the first time
    through and stash the information in the aggregate state object.
    
    Affects json_agg, json_object_agg, jsonb_agg and jsonb_object_agg.
    
    There is plenty more work to do in making these more efficient,
    especially the jsonb functions, but this is a virtually cost free
    improvement that can be done right away.
    
    Backpatch to 9.5 where the jsonb variants were introduced.
    c00c3249
json.c 62.6 KB