I am trying to create a materialized view. I have a working SQL query that uses this expression: coalesce(trim(foo), bar). When I use that in the definition for create materialized view, Postgres force replaces the trim() call into a btrim() and breaks the query result. In my specific case, all the values become empty instead of yielding either the trimmed "foo" or the "bar" fields if trimmed "foo" is empty. Is there a way to make Postgres use the function trim as I require?
COALESCE returns the first non-null value. The empty string is non-null and so it will be returned.