Nathan Jahnke <njahnke@xxxxxxxxx> wrote: > [...] > my $encodeddata = $data; > $encodeddata =~ s!(\\|[^ -~])!sprintf("\\%03o",ord($1))!ge; #prepare > data for bytea column storage > [...] > my $insert_sth = $connection->prepare('insert into testtable (data) > values (?) returning id'); > $insert_sth->execute($encodeddata); > my $ref = $insert_sth->fetchrow_hashref; > my $id = $ref->{id}; > my $getall_sth = $connection->prepare('select * from testtable where id=?'); > $getall_sth->execute($id); > my $newref = $getall_sth->fetchrow_hashref; > my $newdata = $newref->{data}; > $newdata =~ s!\\(?:\\|(\d{3}))!$1 ? chr(oct($1)) : "\\"!ge; #decode > bytea column storage format > [...] > hash of data changes ... if you uncomment the $data = '123abc' line > you can see that it works with those six bytes fine, and it also works > with most other binary data, just not this binary data. any insight > would be appreciated. thanks. Why do you encode/decode the data in your own application a second time? It is already encoded by DBD::Pg. Tim -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general