PostrgeSQL разница версий

Drupal + PostgreSQL = белый экран смерти

Для хранения временных данных Drupal использует таблицы в наименованиях которых содержится название "cache". Для этих таблиц поле data имеет тип данных "bytea". А в версии 9 данный формат имеет отличное представление от версии 8. И получается интересная картина. Drupal первый раз загружается, данные заносятся в таблицы кеширования, естественно они на выходе ломаются и мы наблюдаем белый экран.

Данная проблема решается довольно просто. Простым хаком include файла "database.pgsql.inc". Находим строку pg_query($connection, "set client_encoding="UTF8"'); и сразу после нее добавляем pg_query($connection, 'set bytea_output = escape");, для определения формата данных на выходе для этого типа данных.

Решение:

  $connection = @pg_connect($conn_string);
 
...
 
  pg_query($connection, "set client_encoding=\"UTF8\"");
 
  pg_query($connection, "set bytea_output = escape");