On Fri, Oct 30, 2015 at 6:19 AM, Ashutosh Bapat <ashutosh.bapat@enterprisedb.com> wrote: > If there is a collate clause in the ORDER BY, the server crashes with > assertion > + Assert(loc_cxt.state == FDW_COLLATE_NONE || > + loc_cxt.state == FDW_COLLATE_SAFE); > > > The assertion is fine as long as is_foreign_expr() tests only boolean > expressions (appearing in quals). This patch uses the function to test an > expression appearing in ORDER BY clause, which need not be boolean. Attached > patch removed the assertion and instead makes the function return false, > when the walker deems collation of the expression unsafe. The walker can not > return false when it encounter unsafe expression since the subtree it's > examining might be part of an expression which does not use the collation > ultimately.