aboutsummaryrefslogtreecommitdiff
path: root/src/backend/jit/llvm/llvmjit_expr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/jit/llvm/llvmjit_expr.c')
-rw-r--r--src/backend/jit/llvm/llvmjit_expr.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/backend/jit/llvm/llvmjit_expr.c b/src/backend/jit/llvm/llvmjit_expr.c
index 36c5f7d500e..31b03212751 100644
--- a/src/backend/jit/llvm/llvmjit_expr.c
+++ b/src/backend/jit/llvm/llvmjit_expr.c
@@ -2228,6 +2228,28 @@ llvm_compile_expr(ExprState *state)
{
LLVMValueRef params[3];
+ LLVMValueRef v_curaggcontext;
+ LLVMValueRef v_current_set;
+ LLVMValueRef v_aggcontext;
+
+ v_aggcontext = l_ptr_const(op->d.agg_init_trans.aggcontext,
+ l_ptr(StructExprContext));
+
+ v_current_set =
+ LLVMBuildStructGEP(b,
+ v_aggstatep,
+ FIELDNO_AGGSTATE_CURRENT_SET,
+ "aggstate.current_set");
+ v_curaggcontext =
+ LLVMBuildStructGEP(b,
+ v_aggstatep,
+ FIELDNO_AGGSTATE_CURAGGCONTEXT,
+ "aggstate.curaggcontext");
+
+ LLVMBuildStore(b, l_int32_const(op->d.agg_init_trans.setno),
+ v_current_set);
+ LLVMBuildStore(b, v_aggcontext,
+ v_curaggcontext);
params[0] = v_aggstatep;
params[1] = v_pertransp;