• Tom Lane's avatar
    Fix coerce_to_target_type for coerce_type's klugy handling of COLLATE. · ac7a5a3f
    Tom Lane authored
    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.
    ac7a5a3f
collate.out 16.7 KB