From 61a78c71a656593bf4121e624348a990ba5b91da Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 28 Sep 2020 14:12:38 -0400 Subject: Assign collations in partition bound expressions. Failure to do this can result in errors during evaluation of the bound expression, as illustrated by the new regression test. Back-patch to v12 where the ability for partition bounds to be expressions was added. Discussion: https://postgr.es/m/CAJV4CdrZ5mKuaEsRSbLf2URQ3h6iMtKD=hik8MaF5WwdmC9uZw@mail.gmail.com --- src/backend/parser/parse_utilcmd.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/backend/parser/parse_utilcmd.c') diff --git a/src/backend/parser/parse_utilcmd.c b/src/backend/parser/parse_utilcmd.c index 7b5502a06df..6b59538b138 100644 --- a/src/backend/parser/parse_utilcmd.c +++ b/src/backend/parser/parse_utilcmd.c @@ -4239,7 +4239,10 @@ transformPartitionBoundValue(ParseState *pstate, Node *val, /* Simplify the expression, in case we had a coercion */ if (!IsA(value, Const)) + { + assign_expr_collations(pstate, value); value = (Node *) expression_planner((Expr *) value); + } /* * transformExpr() should have already rejected column references, -- cgit v1.2.3