Thread: Bug #625: bytea data type problem/bug

Bug #625: bytea data type problem/bug

From
pgsql-bugs@postgresql.org
Date:
Eric Lu (yclu@ecompliance.net) reports a bug with a severity of 4
The lower the number the more severe it is.

Short Description
bytea data type problem/bug

Long Description
Hi,

It happens when I was trying to test the avalaibility of the new binary data type <bytea> comes with ver 7.2.
As I read from the document, <bytea> will take data from '\\000' (0d)to '\\377' (255d). Although it saves data more
thanone byte, it looks odd to me that the first digit of the binary data could never be greater than '3'.
 
Is it the way it should be?
Thanks!

Eric Lu

Sample Code
testdb=> insert into bytetest(id,bdata) values(8,'\\777');
ERROR:  Bad input string for type bytea
testdb=> insert into bytetest(id,bdata) values(8,'\\400');
ERROR:  Bad input string for type bytea
testdb=> insert into bytetest(id,bdata) values(8,'\\4000');
ERROR:  Bad input string for type bytea
testdb=> insert into bytetest(id,bdata) values(8,'\\7000');
ERROR:  Bad input string for type bytea
testdb=> insert into bytetest(id,bdata) values(8,'\\3000');
INSERT 488510 1
testdb=> select * from bytetest;
id|bdata
--+----------
 1|\\
 2|\000
 3|\225321465
 3|
 5|\011
 6|H
 7|\377
 8|\3000
(8 rows)

WHERE bytetest was created by:
create table bytetest(
    id int,
    bdata bytea
);


No file was uploaded with this report

Re: Bug #625: bytea data type problem/bug

From
Joe Conway
Date:
pgsql-bugs@postgresql.org wrote:
> Eric Lu (yclu@ecompliance.net) reports a bug with a severity of 4
> The lower the number the more severe it is.
>
> Short Description
> bytea data type problem/bug
>
> Long Description
> Hi,
>
> It happens when I was trying to test the avalaibility of the new binary data type <bytea> comes with ver 7.2.
> As I read from the document, <bytea> will take data from '\\000' (0d)to '\\377' (255d). Although it saves data more
thanone byte, it looks odd to me that the first digit of the binary data could never be greater than '3'. 
> Is it the way it should be?
> Thanks!
>
> Eric Lu
>

The escaped values must be three-digits, octal (i.e. base 8) numbers,
and in the range of 0 - 255 in decimal (base 10). Only the digits 0 - 7
are defined, and 377 octal == 255 decimal is the maximum allowable
value. Anything starting with 4 - 7 (e.g. 400 octal == 256 decimal) is
too big.

Joe