1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-16 06:01:02 +03:00

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.
This commit is contained in:
Tom Lane
2011-04-09 14:40:09 -04:00
parent 7c76906b7e
commit a19002d4e5
7 changed files with 55 additions and 72 deletions

View File

@ -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;
}