It is possible to get an invalid byte sequence into a text field via pl, in this case pl/perl :
---8<------8<------8<------8<------8<------8<--- CREATE TABLE utf_test ( id serial PRIMARY KEY, data character varying ); CREATE OR REPLACE FUNCTION invalid_utf_seq() RETURNS character varying AS $BODY$ return "\xd0"; $BODY$ LANGUAGE 'plperlu' VOLATILE STRICT; insert into utf_test(data) values(invalid_utf_seq()); ---8<------8<------8<------8<------8<------8<--- This results in a table, which has invalid utf sequence in it and consequently does not pass dump/load What would be the best place to fix this ? Should there be checks in all text types ? (probably too expensive) Or should pl/perl check it's return values for compliance with server_encoding ? Or should postgresql itself check that pl-s return what they promise to return ? -- Hannu Krosing http://www.2ndQuadrant.com PostgreSQL Scalability and Availability Services, Consulting and Training -- Sent via pgsql-hackers mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
