]> granicus.if.org Git - postgresql/commit
Don't generate EEOP_*_FETCHSOME operations for slots know to be virtual.
authorAndres Freund <andres@anarazel.de>
Mon, 30 Sep 2019 23:06:16 +0000 (16:06 -0700)
committerAndres Freund <andres@anarazel.de>
Mon, 30 Sep 2019 23:06:16 +0000 (16:06 -0700)
commit36d22dd95bc87ca68e742da91f47f8826f8758c9
treebfc8ce87848e25ded000f0f164e0e210bd8e9c6c
parent34c9c53bb035ba92491006eb80f7a60527db367d
Don't generate EEOP_*_FETCHSOME operations for slots know to be virtual.

That avoids unnecessary work during both interpreted execution, and
JIT compiled expression evaluation. Both benefit from fewer expression
steps needing be processed, and for interpreted execution there now is
a fastpath dedicated to just fetching a value from a virtual
slot. That's e.g. beneficial for hashjoins over nodes that perform
projections, as the hashed columns are currently fetched individually.

Author: Soumyadeep Chakraborty, Andres Freund
Discussion: https://postgr.es/m/CAE-ML+9OKSN71+mHtfMD-L24oDp8dGTfaVjDU6U+j+FNAW5kRQ@mail.gmail.com
src/backend/executor/execExpr.c
src/backend/executor/execExprInterp.c
src/backend/jit/llvm/llvmjit_expr.c