Обсуждение: Bug #625: bytea data type problem/bug

Поиск
Список
Период
Сортировка

Bug #625: bytea data type problem/bug

От
pgsql-bugs@postgresql.org
Дата:
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

От
Joe Conway
Дата:
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