jit: Fix type used for Datum values in LLVM IR.

Commit 2a600a93 made Datum 8 bytes wide everywhere.  It was no longer
appropriate to use TypeSizeT on 32 bit systems, and JIT compilation
would fail with various type check errors.  Introduce a separate
LLVMTypeRef with the name TypeDatum.  TypeSizeT is still used in some
places for actual size_t values.

Reported-by: Dmitry Mityugov <d.mityu...@postgrespro.ru>
Reviewed-by: Tom Lane <t...@sss.pgh.pa.us>
Tested-by: Dmitry Mityugov <d.mityu...@postgrespro.ru>
Discussion: 
https://postgr.es/m/0a9f0be59171c2e8f1b3bc10f4fcf267%40postgrespro.ru

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/0951942bba25f85ad29a4f096ed51a356652b5a2

Modified Files
--------------
src/backend/jit/llvm/llvmjit.c        |   2 +
src/backend/jit/llvm/llvmjit_deform.c |  10 +--
src/backend/jit/llvm/llvmjit_expr.c   | 150 +++++++++++++++++-----------------
src/backend/jit/llvm/llvmjit_types.c  |   1 +
src/include/jit/llvmjit.h             |   1 +
src/include/jit/llvmjit_emit.h        |  11 ++-
6 files changed, 94 insertions(+), 81 deletions(-)

Reply via email to