Simplify executor's handling of CaseTestExpr & CoerceToDomainValue. Instead of deciding at runtime whether to read from casetest.value or caseValue_datum, split EEOP_CASE_TESTVAL into two opcodes and make the decision during expression compilation. Similarly for EEOP_DOMAIN_TESTVAL. This actually results in net less code, mainly because llvmjit_expr.c's code for handling these opcodes gets shorter. The performance gain is doubtless negligible, but this seems worth changing anyway on grounds of simplicity and understandability.
Author: Andreas Karlsson <andr...@proxel.se> Co-authored-by: Xing Guo <higuox...@gmail.com> Reviewed-by: Tom Lane <t...@sss.pgh.pa.us> Discussion: https://postgr.es/m/CACpMh+AiBYAWn+D1aU7Rsy-V1tox06Cbc0H3qA7rwL5zdJ=a...@mail.gmail.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/115a365519bfd53a65bf17d253b26902eff0c337 Modified Files -------------- src/backend/executor/execExpr.c | 34 ++++++++++++-------- src/backend/executor/execExprInterp.c | 59 ++++++++++++++--------------------- src/backend/jit/llvm/llvmjit_expr.c | 56 ++++++++++----------------------- src/include/executor/execExpr.h | 2 ++ 4 files changed, 63 insertions(+), 88 deletions(-)