Обсуждение: pgsql: Move EEOP_*_SYSVAR evaluation out of line.
Move EEOP_*_SYSVAR evaluation out of line. This mainly de-duplicates code. As evaluating a system variable isn't the hottest path and the current inline implementation ends up calling out to an external function anyway, this is OK from a performance POV. The main motivation for de-duplicating is the upcoming slot abstraction work, after which there's not guaranteed to be a HeapTuple backing the slot. Author: Andres Freund, Amit Khandekar Discussion: https://postgr.es/m/20181105210039.hh4vvi4vwoq5ba2q@alap3.anarazel.de Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/b84a6dafbf2bb921baee53c0c1aba7719ee38817 Modified Files -------------- src/backend/executor/execExprInterp.c | 58 ++++++++++++----------------------- src/backend/jit/llvm/llvmjit.c | 4 +-- src/backend/jit/llvm/llvmjit_expr.c | 38 +++++------------------ src/backend/jit/llvm/llvmjit_types.c | 2 +- src/include/executor/execExpr.h | 2 ++ src/include/jit/llvmjit.h | 2 +- 6 files changed, 33 insertions(+), 73 deletions(-)
Andres Freund <andres@anarazel.de> writes: > Move EEOP_*_SYSVAR evaluation out of line. Seems like many of your JIT-enabled animals don't like this. regards, tom lane
Hi, On 2018-11-07 16:23:13 -0500, Tom Lane wrote: > Andres Freund <andres@anarazel.de> writes: > > Move EEOP_*_SYSVAR evaluation out of line. > > Seems like many of your JIT-enabled animals don't like this. Thanks. Yea, it's the animals that have the (pretty expensive) LLVM assertions enabled. I've pushed the trivial oversight fix. Sorry for not attributing this message/thread - I only saw it afterwards. Greetings, Andres Freund