• Tom Lane's avatar
    Improve performance of ExecEvalWholeRowVar. · 2f0903ea
    Tom Lane authored
    In commit b8d7f053, we needed to fix ExecEvalWholeRowVar to not change
    the state of the slot it's copying.  The initial quick hack at that
    required two rounds of tuple construction, which is not very nice.
    To fix, add another primitive to tuptoaster.c that does precisely what
    we need.  (I initially tried to do this by refactoring one of the
    existing functions into two pieces; but it looked like that might hurt
    performance for the existing case, and the amount of code that could
    be shared is not very large, so I gave up on that.)
    
    Discussion: https://postgr.es/m/26088.1490315792@sss.pgh.pa.us
    2f0903ea
execExprInterp.c 92.6 KB