From 10c953a88363232684726e0b7172f1d8d3888034 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Villemain?= Date: Fri, 7 Mar 2025 09:28:31 +0100 Subject: [PATCH] Add an assert about Param kind Currently there is a check function used, but let's keep a stronger point for the future, just in case. --- src/backend/distributed/utils/citus_clauses.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/backend/distributed/utils/citus_clauses.c b/src/backend/distributed/utils/citus_clauses.c index d4e0d2cfc..7086cec4e 100644 --- a/src/backend/distributed/utils/citus_clauses.c +++ b/src/backend/distributed/utils/citus_clauses.c @@ -100,6 +100,7 @@ PartiallyEvaluateExpression(Node *expression, } NodeTag nodeTag = nodeTag(expression); + /* ExecInitExpr cannot handle some expressions (PARAM_MULTIEXPR and PARAM_SUBLINK) */ if (!CheckExprExecutorSafe(expression)) { @@ -109,6 +110,8 @@ PartiallyEvaluateExpression(Node *expression, /* ExecInitExpr cannot handle PARAM_MULTIEXPR and PARAM_SUBLINK but we have guards */ else if (nodeTag == T_Param) { + Assert(((Param *) expression)->paramkind != PARAM_MULTIEXPR && + ((Param *) expression)->paramkind != PARAM_SUBLINK); return (Node *) citus_evaluate_expr((Expr *) expression, exprType(expression), exprTypmod(expression), @@ -261,7 +264,9 @@ ShouldEvaluateExpression(Expr *expression) } default: + { return false; + } } }