Как стать автором
Обновить

Главное отличие версии 8.3, которое может вызвать проблемы при переходе на нее

Время на прочтение 1 мин
Количество просмотров 712
Встала задача переноса сайта на новый сервер. Из проблем ожидалась несовместимость с PHP5, которая в итоге очень быстро решилась, а сайт все равно не поднимался. Выяснилось, что не отрабатывают простейшие запросы к БД. При ближайшем рассмотрении оказалось, что не происходит автоматическое преобразование типов.

В процессе переписки с господином Самохваловым выяснилось, что в новой версии действительно по умолчанию нет правил автопреобразования типов к текстовому.
http://www.postgresql.org/docs/current/static/release-8-3.html
Non-character data types are no longer automatically cast to TEXT (Peter, Tom)

Что происходило раньше: 0 превращался в '0' и происходило сравнение строк (text > text). Теперь автоматическое приведение типов отсутствует. Это более правильный подход. Вам надо адаптировать своё приложение.

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


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

Николай (из переписки):
P.S. Подобные вопросы следует обсуждать публично, если только это не коммерческое обращение.


Спасибо, Николай!
Теги:
Хабы:
+20
Комментарии 41
Комментарии Комментарии 41

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн