jit: Fix type used for Datum values in LLVM IR. master github/master
authorThomas Munro <tmunro@postgresql.org>
Wed, 17 Sep 2025 00:00:16 +0000 (12:00 +1200)
committerThomas Munro <tmunro@postgresql.org>
Wed, 17 Sep 2025 01:38:35 +0000 (13:38 +1200)
commit0951942bba25f85ad29a4f096ed51a356652b5a2
treeb8a5c6c88fdfcdbf4ab19ede16518c0b9a4413c3
parent39f67d9b554fcd6dfb6c4f02a4af757eecd1fecf
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.mityugov@postgrespro.ru>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Tested-by: Dmitry Mityugov <d.mityugov@postgrespro.ru>
Discussion: https://postgr.es/m/0a9f0be59171c2e8f1b3bc10f4fcf267%40postgrespro.ru
src/backend/jit/llvm/llvmjit.c
src/backend/jit/llvm/llvmjit_deform.c
src/backend/jit/llvm/llvmjit_expr.c
src/backend/jit/llvm/llvmjit_types.c
src/include/jit/llvmjit.h
src/include/jit/llvmjit_emit.h