Das Maskieren eines einfachen Anführungszeichens in (Standard-)SQL erfolgt durch die Verwendung von zwei einfachen Anführungszeichen, z. B.
'Peter''s house'
Ich bevorzuge die Verwendung des expliziten ARRAY[..]
was auch ein Anführungszeichen weniger benötigt, sodass Ihre Einfügung folgendermaßen geschrieben werden könnte:
INSERT into t1 (columnname)
VALUES (ARRAY['str1', 'str2''with quote symbol']);
In Versionen vor 9.1 erlaubte Postgres die Verwendung von \
als alternatives Fluchtzeichen, würde aber eine Warnung protokollieren, wenn es verwendet wird. Seit 9.1 ist der Konfigurationsparameter standard_conforming_strings
aktiviert ist und damit der \
kann nicht als Escapezeichen verwendet werden. Ein einfaches Anführungszeichen.