From a4ee5b26b60271da93b4576d9fed51a9f06a0118 Mon Sep 17 00:00:00 2001 From: lilong Date: Fri, 6 Jan 2023 10:22:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=BD=E6=95=B0ProcedureCreate=E5=86=85param?= =?UTF-8?q?Modes=E7=9B=B8=E5=85=B3=E4=BB=A3=E7=A0=81=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/backend/catalog/pg_proc.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/common/backend/catalog/pg_proc.cpp b/src/common/backend/catalog/pg_proc.cpp index ef465b2ca..52677a2e6 100644 --- a/src/common/backend/catalog/pg_proc.cpp +++ b/src/common/backend/catalog/pg_proc.cpp @@ -1147,13 +1147,13 @@ Oid ProcedureCreate(const char* procedureName, Oid procNamespace, Oid propackage } bool existOutParam = false; - if (allParameterTypes != PointerGetDatum(NULL)) { + if (allParameterTypes != PointerGetDatum(NULL) && paramModes != NULL) { for (i = 0; i < allParamCount; i++) { + if (paramModes[i] == PROARGMODE_IN || paramModes[i] == PROARGMODE_VARIADIC) + continue; /* ignore input-only params */ if (paramModes[i] == PROARGMODE_OUT || paramModes[i] == PROARGMODE_INOUT) { existOutParam = true; } - if (paramModes == NULL || paramModes[i] == PROARGMODE_IN || paramModes[i] == PROARGMODE_VARIADIC) - continue; /* ignore input-only params */ switch (allParams[i]) { case ANYARRAYOID: