Re: Storing null bytes in bytea

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Storing null bytes in bytea
Дата
Msg-id 11364.1240864149@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Storing null bytes in bytea  (Andy Shellam <andy-lists@networkmail.eu>)
Ответы Re: Storing null bytes in bytea  (Andy Shellam <andy-lists@networkmail.eu>)
Список pgsql-sql
Andy Shellam <andy-lists@networkmail.eu> writes:
> Because of the nul bytes, I've set the session_data column to be a bytea 
> column in my database table.  However I cannot get PostgreSQL to read 
> past the first nul byte on an insert, so the unserialize call fails when 
> it reads it back out the database and the remaining data is omitted.

Your example works fine in psql:

regression=# create table t1 (f1 bytea);
CREATE TABLE
regression=# insert into t1 values
(E'IsLoggedIn|b:1;CurrentUser|O:17:"Class_SystemUser":4:{s:26:"\\000Class_SystemUser}'::bytea);
INSERT 0 1
regression=# select * from t1;                                       f1                                      

-----------------------------------------------------------------------------------IsLoggedIn|b:1;CurrentUser|O:17:"Class_SystemUser":4:{s:26:"\000Class_SystemUser}
(1 row)


I suspect what is happening is that some layer on the client side is
doubling (or perhaps undoubling?) the backslashes for you.  Exactly
what are you doing with that literal as you build the query?  It might
help to turn on log_statements so that you can see just what the
server is getting.
        regards, tom lane


В списке pgsql-sql по дате отправления:

Предыдущее
От: "Leif B. Kristensen"
Дата:
Сообщение: Re: Multiple return values and assignment
Следующее
От: Emi Lu
Дата:
Сообщение: pg_stat_activity return all connections