| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Mime::Parser и переход на Posgresql 9.01 |
| Автор: antananarivu 10.12.2010, 11:40 | ||
| Понимаю, что вряд ли кто то сможет помочь. Есть процедура (procedure shedule()) использующая Mime::Parser. Перешли на Postgresql 9.0.1. Проблема: если делать select shedule() из PGadmin3 (1.12) - все корректно работает. Если же запускать из командной строки (ubuntu 10.04 psql 9.0.1), то parser не отрабатывает.
Все subject, to, from, date - все остается пустым. Ума не приложу в чем может быть проблема... Заранее спасибо! P.S. В коде ничего не менялось. |
| Автор: antananarivu 10.12.2010, 13:23 | ||
| Вывел в логи ошибку... WARNING: Can't call method "head" on an undefined value at line 128. То есть по какой то причине -
не отрабатывает... хотя в $p_stdin честно лежит текст письма eml. ничего не понимаю... |
| Автор: antananarivu 10.12.2010, 13:45 | ||
| Разобрался в чем причина. Данные из таблицы messageblks - в котором и хранится текст письма раньше не был закодирован. и я смело скармливал его парсеру. теперь же данные выглядят приблизительно так:
я даже не могу понять в какой кодировке они там. |
| Автор: antananarivu 10.12.2010, 14:46 |
| Это тип данных bytea - может быть он поменялся в новой версии Постгреса? Может быть его представление зависит от каких то настроек?.. |
| Автор: antananarivu 10.12.2010, 15:27 |
| Вопрос снят http://victor-k-development.blogspot.com/2010/10/bytea-postgresql-90.html среда, 20 октября 2010 г. Изменился формат вывода bytea в PostgreSQL 9.0 После перехода на PostgreSQL 9, в одном из приложений, в разработке которого я учавствую, начала возникать ошибка при получении и десериализации данных, которые хранятся в базе данных в поле типа byte. В приложении используется библиотека Npgsql. Причиной возникновения ошибки стало изменение формата вывода данных типа bytea. До версии PostgreSQL 9 форматом вывода по умолчанию был escape. Начиная с версии PostgreSQL 9 форматом вывода по умолчанию стал hex. Библиотека Npgsql этих изменений еще не учитывает. Я нашел два способа решения этой проблемы. Первый, это изменение параметра bytea_output в конфигурационном файле postgresql.conf. Нужно убрать комментарий и установить значение escape. Второй способ, это в клиентском коде преобразовать массив из hex-формата в обычный массив байт. |