mirror of
https://github.com/postgres/postgres.git
synced 2025-05-12 16:21:30 +03:00
Add support for Tcl 9
Tcl 9 changed several API functions to take Tcl_Size, which is ptrdiff_t, instead of int, for 64-bit enablement. We have to change a few local variables to be compatible with that. We also provide a fallback typedef of Tcl_Size for older Tcl versions. The affected variables are used for quantities that will not approach values beyond the range of int, so this doesn't change any functionality. Reviewed-by: Tristan Partin <tristan@partin.io> Discussion: https://www.postgresql.org/message-id/flat/bce0fe54-75b4-438e-b42b-8e84bc7c0e9c%40eisentraut.org
This commit is contained in:
parent
13242b64e1
commit
f230e27a2a
@ -56,6 +56,10 @@ PG_MODULE_MAGIC;
|
|||||||
#define CONST86
|
#define CONST86
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if !HAVE_TCL_VERSION(8,7)
|
||||||
|
typedef int Tcl_Size;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* define our text domain for translations */
|
/* define our text domain for translations */
|
||||||
#undef TEXTDOMAIN
|
#undef TEXTDOMAIN
|
||||||
#define TEXTDOMAIN PG_TEXTDOMAIN("pltcl")
|
#define TEXTDOMAIN PG_TEXTDOMAIN("pltcl")
|
||||||
@ -983,7 +987,7 @@ pltcl_func_handler(PG_FUNCTION_ARGS, pltcl_call_state *call_state,
|
|||||||
HeapTuple tup;
|
HeapTuple tup;
|
||||||
Tcl_Obj *resultObj;
|
Tcl_Obj *resultObj;
|
||||||
Tcl_Obj **resultObjv;
|
Tcl_Obj **resultObjv;
|
||||||
int resultObjc;
|
Tcl_Size resultObjc;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set up data about result type. XXX it's tempting to consider
|
* Set up data about result type. XXX it's tempting to consider
|
||||||
@ -1059,7 +1063,7 @@ pltcl_trigger_handler(PG_FUNCTION_ARGS, pltcl_call_state *call_state,
|
|||||||
int tcl_rc;
|
int tcl_rc;
|
||||||
int i;
|
int i;
|
||||||
const char *result;
|
const char *result;
|
||||||
int result_Objc;
|
Tcl_Size result_Objc;
|
||||||
Tcl_Obj **result_Objv;
|
Tcl_Obj **result_Objv;
|
||||||
int rc PG_USED_FOR_ASSERTS_ONLY;
|
int rc PG_USED_FOR_ASSERTS_ONLY;
|
||||||
|
|
||||||
@ -2008,7 +2012,7 @@ pltcl_quote(ClientData cdata, Tcl_Interp *interp,
|
|||||||
char *tmp;
|
char *tmp;
|
||||||
const char *cp1;
|
const char *cp1;
|
||||||
char *cp2;
|
char *cp2;
|
||||||
int length;
|
Tcl_Size length;
|
||||||
|
|
||||||
/************************************************************
|
/************************************************************
|
||||||
* Check call syntax
|
* Check call syntax
|
||||||
@ -2202,7 +2206,7 @@ pltcl_returnnext(ClientData cdata, Tcl_Interp *interp,
|
|||||||
if (prodesc->fn_retistuple)
|
if (prodesc->fn_retistuple)
|
||||||
{
|
{
|
||||||
Tcl_Obj **rowObjv;
|
Tcl_Obj **rowObjv;
|
||||||
int rowObjc;
|
Tcl_Size rowObjc;
|
||||||
|
|
||||||
/* result should be a list, so break it down */
|
/* result should be a list, so break it down */
|
||||||
if (Tcl_ListObjGetElements(interp, objv[1], &rowObjc, &rowObjv) == TCL_ERROR)
|
if (Tcl_ListObjGetElements(interp, objv[1], &rowObjc, &rowObjv) == TCL_ERROR)
|
||||||
@ -2542,7 +2546,7 @@ pltcl_SPI_prepare(ClientData cdata, Tcl_Interp *interp,
|
|||||||
int objc, Tcl_Obj *const objv[])
|
int objc, Tcl_Obj *const objv[])
|
||||||
{
|
{
|
||||||
volatile MemoryContext plan_cxt = NULL;
|
volatile MemoryContext plan_cxt = NULL;
|
||||||
int nargs;
|
Tcl_Size nargs;
|
||||||
Tcl_Obj **argsObj;
|
Tcl_Obj **argsObj;
|
||||||
pltcl_query_desc *qdesc;
|
pltcl_query_desc *qdesc;
|
||||||
int i;
|
int i;
|
||||||
@ -2679,7 +2683,7 @@ pltcl_SPI_execute_plan(ClientData cdata, Tcl_Interp *interp,
|
|||||||
const char *arrayname = NULL;
|
const char *arrayname = NULL;
|
||||||
Tcl_Obj *loop_body = NULL;
|
Tcl_Obj *loop_body = NULL;
|
||||||
int count = 0;
|
int count = 0;
|
||||||
int callObjc;
|
Tcl_Size callObjc;
|
||||||
Tcl_Obj **callObjv = NULL;
|
Tcl_Obj **callObjv = NULL;
|
||||||
Datum *argvalues;
|
Datum *argvalues;
|
||||||
MemoryContext oldcontext = CurrentMemoryContext;
|
MemoryContext oldcontext = CurrentMemoryContext;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user