aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/execExpr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/executor/execExpr.c')
-rw-r--r--src/backend/executor/execExpr.c19
1 files changed, 1 insertions, 18 deletions
diff --git a/src/backend/executor/execExpr.c b/src/backend/executor/execExpr.c
index 1f65daf2035..c8d7145fe38 100644
--- a/src/backend/executor/execExpr.c
+++ b/src/backend/executor/execExpr.c
@@ -1203,8 +1203,6 @@ ExecInitExprRec(Expr *node, ExprState *state,
FmgrInfo *finfo;
FunctionCallInfo fcinfo;
AclResult aclresult;
- FmgrInfo *hash_finfo;
- FunctionCallInfo hash_fcinfo;
Oid cmpfuncid;
/*
@@ -1262,18 +1260,6 @@ ExecInitExprRec(Expr *node, ExprState *state,
*/
if (OidIsValid(opexpr->hashfuncid))
{
- hash_finfo = palloc0(sizeof(FmgrInfo));
- hash_fcinfo = palloc0(SizeForFunctionCallInfo(1));
- fmgr_info(opexpr->hashfuncid, hash_finfo);
- fmgr_info_set_expr((Node *) node, hash_finfo);
- InitFunctionCallInfoData(*hash_fcinfo, hash_finfo,
- 1, opexpr->inputcollid, NULL,
- NULL);
-
- scratch.d.hashedscalararrayop.hash_finfo = hash_finfo;
- scratch.d.hashedscalararrayop.hash_fcinfo_data = hash_fcinfo;
- scratch.d.hashedscalararrayop.hash_fn_addr = hash_finfo->fn_addr;
-
/* Evaluate scalar directly into left function argument */
ExecInitExprRec(scalararg, state,
&fcinfo->args[0].value, &fcinfo->args[0].isnull);
@@ -1292,11 +1278,8 @@ ExecInitExprRec(Expr *node, ExprState *state,
scratch.d.hashedscalararrayop.inclause = opexpr->useOr;
scratch.d.hashedscalararrayop.finfo = finfo;
scratch.d.hashedscalararrayop.fcinfo_data = fcinfo;
- scratch.d.hashedscalararrayop.fn_addr = finfo->fn_addr;
+ scratch.d.hashedscalararrayop.saop = opexpr;
- scratch.d.hashedscalararrayop.hash_finfo = hash_finfo;
- scratch.d.hashedscalararrayop.hash_fcinfo_data = hash_fcinfo;
- scratch.d.hashedscalararrayop.hash_fn_addr = hash_finfo->fn_addr;
ExprEvalPushStep(state, &scratch);
}