Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Mime::Parser и переход на Posgresql 9.01, Перестал отрабатывать парсер! 
:(
    Опции темы
antananarivu
Дата 10.12.2010, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 25.6.2010

Репутация: нет
Всего: нет



Понимаю, что вряд ли кто то сможет помочь.

Есть процедура (procedure shedule()) использующая Mime::Parser.
Перешли на Postgresql 9.0.1. 
Проблема: если делать select shedule() из PGadmin3 (1.12) - все корректно работает. Если же запускать из командной строки (ubuntu 10.04 psql 9.0.1), то parser не отрабатывает.

Код

my $entity = $parser->parse_data($p_stdin);
my $header = $entity->head;
$subject = $header->get('Subject');
$to = $header->get('To');
$from = $header->get('From');
$date = $header->get('Date');


Все subject, to, from, date - все остается пустым. 

Ума не приложу в чем может быть проблема... 
Заранее спасибо!

P.S. В коде ничего не менялось.
PM MAIL   Вверх
antananarivu
Дата 10.12.2010, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 25.6.2010

Репутация: нет
Всего: нет



Вывел в логи ошибку... 

WARNING:  Can't call method "head" on an undefined value at line 128.

То есть по какой то причине - 


Код

$entity = $parser->parse_data($p_stdin);
$header = $entity->head;


не отрабатывает... хотя в $p_stdin честно лежит текст письма eml.
ничего не понимаю...
PM MAIL   Вверх
antananarivu
Дата 10.12.2010, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 25.6.2010

Репутация: нет
Всего: нет



Разобрался в чем причина.
Данные из таблицы messageblks - в котором и хранится текст письма раньше не был закодирован. и я смело скармливал его парсеру. теперь же данные выглядят приблизительно так:
Код

\x52656365697665643a2066726f6d206777312e6e6578742d6c696e652e727520286777312e6e6578742d6c696e652e7275205b38392e3137392e3133362e35315d290a096279206d61696c2e6e6578746c696e652e72752028506f73746669782920776974682045534d5450206964204345413645333132303544460a09666f72203c6e616c406e61453467494445774d7a45304e54413143774141546941674d54417a4d6a41784d444555414..."


я даже не могу понять в какой кодировке они там.

Это сообщение отредактировал(а) antananarivu - 10.12.2010, 13:45
PM MAIL   Вверх
antananarivu
Дата 10.12.2010, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 25.6.2010

Репутация: нет
Всего: нет



Это тип данных bytea - может быть он поменялся в новой версии Постгреса? Может быть его представление зависит от каких то настроек?..
PM MAIL   Вверх
antananarivu
Дата 10.12.2010, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 25.6.2010

Репутация: нет
Всего: нет



Вопрос снят


http://victor-k-development.blogspot.com/2...tgresql-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-формата в обычный массив байт.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0502 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.