diff options
Diffstat (limited to 'src/backend/executor/functions.c')
-rw-r--r-- | src/backend/executor/functions.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/backend/executor/functions.c b/src/backend/executor/functions.c index 1c387a952e3..f940f48c6da 100644 --- a/src/backend/executor/functions.c +++ b/src/backend/executor/functions.c @@ -24,6 +24,7 @@ #include "nodes/makefuncs.h" #include "nodes/nodeFuncs.h" #include "parser/parse_coerce.h" +#include "parser/parse_collate.h" #include "parser/parse_func.h" #include "storage/proc.h" #include "tcop/utility.h" @@ -1989,6 +1990,7 @@ coerce_fn_result_column(TargetEntry *src_tle, -1); if (cast_result == NULL) return false; + assign_expr_collations(NULL, cast_result); src_tle->expr = (Expr *) cast_result; /* Make a Var referencing the possibly-modified TLE */ new_tle_expr = (Expr *) makeVarFromTargetEntry(1, src_tle); @@ -2007,6 +2009,7 @@ coerce_fn_result_column(TargetEntry *src_tle, -1); if (cast_result == NULL) return false; + assign_expr_collations(NULL, cast_result); /* Did the coercion actually do anything? */ if (cast_result != (Node *) var) *upper_tlist_nontrivial = true; |