pgsql: Fix coerce_to_target_type for coerce_type's klugy handling of CO
| От | Tom Lane |
|---|---|
| Тема | pgsql: Fix coerce_to_target_type for coerce_type's klugy handling of CO |
| Дата | |
| Msg-id | E1Rhnnf-0003Dm-Kg@gemulon.postgresql.org обсуждение исходный текст |
| Список | pgsql-committers |
Fix coerce_to_target_type for coerce_type's klugy handling of COLLATE. Because coerce_type recurses into the argument of a CollateExpr, coerce_to_target_type's longstanding code for detecting whether coerce_type had actually done anything (to wit, returned a different node than it passed in) was broken in 9.1. This resulted in unexpected failures in hide_coercion_node; which was not the latter's fault, since it's critical that we never call it on anything that wasn't inserted by coerce_type. (Else we might decide to "hide" a user-written function call.) Fix by removing and replacing the CollateExpr in coerce_to_target_type itself. This is all pretty ugly but I don't immediately see a way to make it nicer. Per report from Jean-Yves F. Barbier. Branch ------ master Details ------- http://git.postgresql.org/pg/commitdiff/ac7a5a3f25708c03242edc301ad008236fc36c7e Modified Files -------------- src/backend/parser/parse_coerce.c | 28 +++++++++++++++++++++++++++- src/test/regress/expected/collate.out | 3 +++ src/test/regress/sql/collate.sql | 5 +++++ 3 files changed, 35 insertions(+), 1 deletions(-)
В списке pgsql-committers по дате отправления: