On Fri, Feb 24, 2006 at 10:32:58PM +0200, Andrus Moor wrote: > It seems that for some reason postgres returns sometimes escaped string size > (eq. single byte 0x00 uploaded as \\000 size is returned as 5 ) I'd guess that "some reason" is because the data was over-escaped when it was inserted -- that is, escaped and then escaped again. Try inserting a small file and querying for the bytea column and see what you get. CREATE TABLE foo (data bytea); INSERT INTO foo VALUES ($$\000$$); INSERT INTO foo VALUES ($$\\000$$); INSERT INTO foo VALUES ($$\\\000$$); INSERT INTO foo VALUES ($$\\\\000$$); SELECT data, octet_length(data) FROM foo; data | octet_length ---------+-------------- \000 | 1 \\000 | 4 \\\000 | 2 \\\\000 | 5 (4 rows) -- Michael Fuhr