Thread: How to insert zeros into a bytea column?
Hello, I'm inserting data into a bytea colunm which can contain zero bytes. It seems that insertion stops at first zero: gkk=# CREATE TABLE test (id int4, adat bytea); CREATE gkk=# insert into test (id, adat) values (1, '\100\200\000\100\200'); INSERT 164175 1 gkk=# select * from test;id | adat ----+------- 1 | @\200 (1 row) gkk=# select get_byte(adat,1) from test;get_byte ---------- 128 (1 row) gkk=# select get_byte(adat,2) from test; ERROR: byteaGetByte: index 2 out of range [0..1] How to insert in a correct way? Thanks, Lajos
Iklódi Lajos wrote: > Hello, > > I'm inserting data into a bytea colunm which can contain zero bytes. It > seems that insertion stops at first zero: > > gkk=# CREATE TABLE test (id int4, adat bytea); > CREATE > gkk=# insert into test (id, adat) values (1, '\100\200\000\100\200'); > INSERT 164175 1 > gkk=# select * from test; > id | adat > ----+------- > 1 | @\200 > (1 row) You should double up on the backslashes: test=# CREATE TABLE test (id int4, adat bytea); CREATE test=# insert into test (id, adat) values (1, '\\100\\200\\000\\100\\200'); INSERT 82097 1 test=# select * from test; id | adat ----+---------------- 1 | @\200\000@\200 (1 row) See for more info: http://www.us.postgresql.org/users-lounge/docs/7.2/postgres/datatype-binary.html HTH, Joe