-- -- TEXT -- SELECT text 'this is a text string' = text 'this is a text string' AS true; true ------ t (1 row) SELECT text 'this is a text string' = text 'this is a text strin' AS false; false ------- f (1 row) CREATE TABLE TEXT_TBL (f1 text); INSERT INTO TEXT_TBL VALUES ('doh!'); INSERT INTO TEXT_TBL VALUES ('hi de ho neighbor'); SELECT '' AS two, * FROM TEXT_TBL; two | f1 -----+------------------- | doh! | hi de ho neighbor (2 rows) -- As of 8.3 we have removed most implicit casts to text, so that for example -- this no longer works: select length(42); ERROR: function length(integer) does not exist LINE 1: select length(42); ^ HINT: No function matches the given name and argument types. You might need to add explicit type casts. -- But as a special exception for usability's sake, we still allow implicit -- casting to text in concatenations, so long as the other input is text or -- an unknown literal. So these work: select 'four: '::text || 2+2; ?column? ---------- four: 4 (1 row) select 'four: ' || 2+2; ?column? ---------- four: 4 (1 row) -- but not this: select 3 || 4.0; ERROR: operator does not exist: integer || numeric LINE 1: select 3 || 4.0; ^ HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.