with Postgres 8.4:
SQL 1: update customer set note = ('A' || '\r\n' || 'B') where 1=0;
generates:
WARNING: nonstandard use of escape in a string literal
LINE 1: update customer set note = ('A' || '\r\n' || 'B') where 1=0;
^
HINT: Use the escape string syntax for escapes, e.g., E'\r\n'.
(Note is of datatype TEXT)
SQL 2: select ('A' || '\r\n' || 'B') as tt from customer limit 1
Functions without escaping literal
On postgres 8.3.7 both of the above SQLs function without requiring
any literals to be escaped.
This seems inconsistent to me in that I would have thought that in
Postgres 8.4 either both SQLs would have required escaping or neither
of them would have required escaping.