iocoerce-llvm-fixes.diff
application/octet-stream
Filename: iocoerce-llvm-fixes.diff
Type: application/octet-stream
Part: 0
Message:
Re: remaining sql/json patches
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: unified
| File | + | − |
|---|---|---|
| src/backend/jit/llvm/llvmjit.c | 2 | 2 |
| src/backend/jit/llvm/llvmjit_expr.c | 5 | 2 |
| src/backend/jit/llvm/llvmjit_types.c | 1 | 1 |
| src/include/jit/llvmjit.h | 1 | 1 |
diff --git a/src/backend/jit/llvm/llvmjit.c b/src/backend/jit/llvm/llvmjit.c
index 125e1e73ae..5a9be73957 100644
--- a/src/backend/jit/llvm/llvmjit.c
+++ b/src/backend/jit/llvm/llvmjit.c
@@ -77,7 +77,7 @@ LLVMTypeRef StructExprState;
LLVMTypeRef StructAggState;
LLVMTypeRef StructAggStatePerGroupData;
LLVMTypeRef StructAggStatePerTransData;
-LLVMTypeRef StructErrorSaveContext;
+LLVMTypeRef StructNode;
LLVMValueRef AttributeTemplate;
@@ -1130,7 +1130,7 @@ llvm_create_types(void)
StructAggState = llvm_pg_var_type("StructAggState");
StructAggStatePerGroupData = llvm_pg_var_type("StructAggStatePerGroupData");
StructAggStatePerTransData = llvm_pg_var_type("StructAggStatePerTransData");
- StructErrorSaveContext = llvm_pg_var_type("StructErrorSaveContext");
+ StructNode = llvm_pg_var_type("StructNode");
AttributeTemplate = LLVMGetNamedFunction(llvm_types_module, "AttributeTemplate");
}
diff --git a/src/backend/jit/llvm/llvmjit_expr.c b/src/backend/jit/llvm/llvmjit_expr.c
index 7d44a4c9f4..aa0e09bd7a 100644
--- a/src/backend/jit/llvm/llvmjit_expr.c
+++ b/src/backend/jit/llvm/llvmjit_expr.c
@@ -1358,11 +1358,13 @@ llvm_compile_expr(ExprState *state)
v_params[0] = l_ptr_const(op->d.iocoerce.finfo_in,
l_ptr(StructFmgrInfo));
- v_params[1] = v_output;
+ v_params[1] = LLVMBuildIntToPtr(b, v_output,
+ l_ptr(LLVMInt8TypeInContext(lc)),
+ "");
v_params[2] = l_oid_const(lc, ioparam);
v_params[3] = l_int32_const(lc, -1);
v_params[4] = l_ptr_const(op->d.iocoerce.escontext,
- l_ptr(StructErrorSaveContext));
+ l_ptr(StructNode));
/*
* InputFunctionCallSafe() will write directly into
@@ -1378,6 +1380,7 @@ llvm_compile_expr(ExprState *state)
* Return null if InputFunctionCallSafe() encountered
* an error.
*/
+ v_success = LLVMBuildZExt(b, v_success, TypeStorageBool, "");
v_resnullp = LLVMBuildICmp(b, LLVMIntEQ, v_success,
l_sbool_const(0), "");
}
diff --git a/src/backend/jit/llvm/llvmjit_types.c b/src/backend/jit/llvm/llvmjit_types.c
index e1e9625038..78f1f14ba0 100644
--- a/src/backend/jit/llvm/llvmjit_types.c
+++ b/src/backend/jit/llvm/llvmjit_types.c
@@ -67,7 +67,7 @@ TupleTableSlot StructTupleTableSlot;
HeapTupleTableSlot StructHeapTupleTableSlot;
MinimalTupleTableSlot StructMinimalTupleTableSlot;
TupleDescData StructTupleDescData;
-ErrorSaveContext StructErrorSaveContext;
+Node StructNode;
/*
diff --git a/src/include/jit/llvmjit.h b/src/include/jit/llvmjit.h
index 5b7681eba9..e4ff3be566 100644
--- a/src/include/jit/llvmjit.h
+++ b/src/include/jit/llvmjit.h
@@ -83,7 +83,7 @@ extern PGDLLIMPORT LLVMTypeRef StructExprState;
extern PGDLLIMPORT LLVMTypeRef StructAggState;
extern PGDLLIMPORT LLVMTypeRef StructAggStatePerTransData;
extern PGDLLIMPORT LLVMTypeRef StructAggStatePerGroupData;
-extern PGDLLIMPORT LLVMTypeRef StructErrorSaveContext;
+extern PGDLLIMPORT LLVMTypeRef StructNode;
extern PGDLLIMPORT LLVMValueRef AttributeTemplate;