поведение хранения строки в bytea в postgresql-8 и postgresql-12

#postgresql-12 #postgresql-8.4

Вопрос:

в настоящее время я переношу базу данных postgres с pg8 на pg12, но столкнулся с новой проблемой

ранее в pg8

  create table test (id int, data bytea);
 insert into test values (1,'hello world');
 table test;      

  id |    data
 ---- -------------
   1 | hello world
 (1 row)
 

Теперь в pg12

  create table test (id int, data bytea);
 insert into test values (1,'hello world');
 table test;

 id |           data
---- --------------------------
  1 | x68656c6c6f20776f726c64
(1 row)
 

Я хочу такое же поведение, как и в pg8, как описано выше. может у кого-нибудь есть идея, как мне этого добиться.

а также почему это поведение отличается в разных версиях? кто-нибудь может это объяснить.

Ответ №1:

Вам нужно установить в postgres.conf, чтобы избежать вывода bytea

  bytea_output = 'escape'
 

См.: https://www.postgresql.org/docs/14/datatype-binary.html