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.
Branch
------
master
Details
-------
http://git.postgresql.org/pg/commitdiff/a19002d4e5da028ff7280554b281e402c609898b
Modified Files
--------------
src/backend/parser/parse_collate.c | 27 ++---------
src/backend/parser/parse_func.c | 2 +-
src/backend/parser/parse_target.c | 2 +-
src/test/regress/expected/collate.linux.utf8.out | 54 +++++++++++-----------
src/test/regress/expected/collate.out | 32 ++++++------
src/test/regress/sql/collate.linux.utf8.sql | 10 ++--
src/test/regress/sql/collate.sql | 8 ++--
7 files changed, 59 insertions(+), 76 deletions(-)