From a19002d4e5da028ff7280554b281e402c609898b Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sat, 9 Apr 2011 14:40:09 -0400 Subject: Adjust collation determination rules as per discussion. Remove crude hack that tried to propagate collation through a function-returning-record, ie, from the function's arguments to individual fields selected from its result record. That is just plain inconsistent, because the function result is composite and cannot have a collation; and there's no hope of making this kind of action-at-a-distance work consistently. Adjust regression test cases that expected this to happen. Meanwhile, the behavior of casting to a domain with a declared collation stays the same as it was, since that seemed to be the consensus. --- src/backend/parser/parse_func.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/backend/parser/parse_func.c') diff --git a/src/backend/parser/parse_func.c b/src/backend/parser/parse_func.c index a187287e283..ba699e9a1ed 100644 --- a/src/backend/parser/parse_func.c +++ b/src/backend/parser/parse_func.c @@ -1384,7 +1384,7 @@ ParseComplexProjection(ParseState *pstate, char *funcname, Node *first_arg, fselect->fieldnum = i + 1; fselect->resulttype = att->atttypid; fselect->resulttypmod = att->atttypmod; - /* resultcollid may get overridden by parse_collate.c */ + /* save attribute's collation for parse_collate.c */ fselect->resultcollid = att->attcollation; return (Node *) fselect; } -- cgit v1.2.3