Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 906dafb

Browse files
committed
fix CustomEvalParamExternCompat(), many thanks to Alexander Kuzmenkov
1 parent 7a4aa43 commit 906dafb

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

src/include/compat/pg_compat.h

+4-4
Original file line numberDiff line numberDiff line change
@@ -864,15 +864,15 @@ extern AttrNumber *convert_tuples_by_name_map(TupleDesc indesc,
864864

865865
/* See ExecEvalParamExtern() */
866866
static inline ParamExternData *
867-
CustomEvalParamExternCompat(Param *param, ParamListInfo params)
867+
CustomEvalParamExternCompat(Param *param,
868+
ParamListInfo params,
869+
ParamExternData *prmdata)
868870
{
869871
ParamExternData *prm;
870872

871873
#if PG_VERSION_NUM >= 110000
872-
ParamExternData prmdata;
873-
874874
if (params->paramFetch != NULL)
875-
prm = params->paramFetch(params, param->paramid, false, &prmdata);
875+
prm = params->paramFetch(params, param->paramid, false, prmdata);
876876
else
877877
prm = &params->params[param->paramid - 1];
878878
#else

src/planner_tree_modification.c

+4-1
Original file line numberDiff line numberDiff line change
@@ -971,7 +971,10 @@ eval_extern_params_mutator(Node *node, ParamListInfo params)
971971
param->paramid > 0 &&
972972
param->paramid <= params->numParams)
973973
{
974-
ParamExternData *prm = CustomEvalParamExternCompat(param, params);
974+
ParamExternData prmdata; /* storage for 'prm' (PG 11) */
975+
ParamExternData *prm = CustomEvalParamExternCompat(param,
976+
params,
977+
&prmdata);
975978

976979
if (OidIsValid(prm->ptype))
977980
{

0 commit comments

Comments
 (0)