From af872dec4ec7f9284e3ddb0f9758ba3395db2994 Mon Sep 17 00:00:00 2001 From: ANJU BHARTI Date: Tue, 3 Jun 2025 05:30:45 +0000 Subject: [PATCH] fix: correct behavior of cross-database table valued functions Signed-off-by: ANJU BHARTI --- src/backend/executor/execSRF.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/backend/executor/execSRF.c b/src/backend/executor/execSRF.c index fe7308adc68..165118cdd74 100644 --- a/src/backend/executor/execSRF.c +++ b/src/backend/executor/execSRF.c @@ -21,6 +21,7 @@ #include "access/htup_details.h" #include "catalog/objectaccess.h" #include "catalog/pg_proc.h" +#include "executor/execExpr.h" #include "funcapi.h" #include "miscadmin.h" #include "nodes/nodeFuncs.h" @@ -701,7 +702,10 @@ init_sexpr(Oid foid, Oid input_collation, Expr *node, size_t numargs = list_length(sexpr->args); /* Check permission to call function */ - aclresult = object_aclcheck(ProcedureRelationId, foid, GetUserId(), ACL_EXECUTE); + if (ExecFuncProc_AclCheck_hook) + aclresult = ExecFuncProc_AclCheck_hook(foid); + else + aclresult = object_aclcheck(ProcedureRelationId, foid, GetUserId(), ACL_EXECUTE); if (aclresult != ACLCHECK_OK) aclcheck_error(aclresult, OBJECT_FUNCTION, get_func_name(foid)); InvokeFunctionExecuteHook(foid);