invalid UTF-8 via pl/perl

Поиск
Список
Период
Сортировка
От Hannu Krosing
Тема invalid UTF-8 via pl/perl
Дата
Msg-id 1262470911.1813.16.camel@huvostro
обсуждение исходный текст
Ответы Re: invalid UTF-8 via pl/perl  (Andrew Dunstan <andrew@dunslane.net>)
Список pgsql-hackers
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




В списке pgsql-hackers по дате отправления:

Предыдущее
От: David Fetter
Дата:
Сообщение: Re: psql tab completion for DO blocks
Следующее
От: Tom Lane
Дата:
Сообщение: Re: psql tab completion for DO blocks