Основное Отличие Версии 8.3, Которое Может Вызвать Проблемы При Переходе На Нее

Возникла задача перенести сайт на новый сервер.

Одной из ожидаемых проблем была несовместимость с PHP5, которую в итоге решили очень быстро, но сайт так и не запустился.

Оказалось, что простейшие запросы к базе данных не обрабатываются.

При ближайшем рассмотрении оказалось, что автоматического преобразования типов не происходит. В процессе переписки с г.

Самохвалов Оказалось, что в новой версии действительно нет правил автопреобразования типов в текст по умолчанию.

http://www.postgresql.org/docs/current/static/release-8-3.html Несимвольные типы данных больше не преобразуются автоматически в ТЕКСТ (Питер, Том).

Что произошло раньше: 0 превратился в «0» и произошло сравнение строк (текст > текст).

Автоматического приведения типов больше не существует. Это более правильный подход. Вам необходимо адаптировать свое приложение.

Если вы хотите, чтобы все работало как раньше, вы можете создать правило автоприведения вручную int4-> text, float4-> text и т. д. с помощью команды CREATE CAST. Но нужно понимать, что это будет всего лишь сравнение строк, как и раньше.

Я создал правила для всех необходимых в моем случае типов, но это, насколько я понимаю, не решение, а временная мера, которая скорее всего повлияет на производительность.

В результате на данный момент запросы постепенно переписываются, типы вынуждены указываться, чтобы соответствовать «нормам» версии 8.3. Николай (из переписки):

P.S. Такие вопросы должны обсуждаться публично, если только это не коммерческий вопрос.

Спасибо, Николай! Теги: #postgresql #postgre #sql #база данных #postgresql
Вместе с данным постом часто просматривают: