Thread: Bug #876: Bugs Inserts Arrays

Bug #876: Bugs Inserts Arrays

From
pgsql-bugs@postgresql.org
Date:
Walter (wgpalumbo@yahoo.com.br) reports a bug with a severity of 2
The lower the number the more severe it is.

Short Description
Bugs Inserts Arrays

Long Description
Hi, Im Walter, from Brazil, and I use PG 7.2.
(excuse my english!)
The error: the last entrance (last array
dimension) determine the dimension of all arrays,
losting data information.

see the example:
all of array has 2 elements. The error: the last entrance (last array
dimension) determine the dimension of all arrays,
losting data information (the information "002" of first array is lost).

If I make a mistake, forgot it, but if not, please, report me something !

Thanks a Lot

Walter



Sample Code
create table teste(serie integer,aula text[][]);
//it´s ok when insert this
insert into teste values (1,'{{"004","009"},{"009"},{""},
{"001","002"}}');
//But when I insert this..
insert into teste values
(1,'{{"004","009","002"},{"009","001"},{""},{"001","002"}}');
                  ^^^^^^ -> lost information  ^^^^^^^^^^ -> array dimension last entrance.



No file was uploaded with this report

Re: Bug #876: Bugs Inserts Arrays

From
Tom Lane
Date:
pgsql-bugs@postgresql.org writes:
> Sample Code
> create table teste(serie integer,aula text[][]);
> //it�s ok when insert this
> insert into teste values (1,'{{"004","009"},{"009"},{""},
> {"001","002"}}');
> //But when I insert this..
> insert into teste values
> (1,'{{"004","009","002"},{"009","001"},{""},{"001","002"}}');
>                   ^^^^^^ -> lost information  ^^^^^^^^^^ -> array dimension last entrance.

Yeah, this seems to be a long-standing misbehavior.  I get the same
results as far back as PG 7.0 (the oldest version I have running):

play=> select * from teste;serie |                        aula
-------+-----------------------------------------------------    1 | {{"004","009"},{"009",""},{"",""},{"001","002"}}
1 | {{"004","009"},{"009","001"},{"",""},{"001","002"}}
 
(2 rows)


On the other hand, the last time I fixed what seemed an obvious bug in
the array-value parser, I got flak for it.  Anyone want to defend the
present behavior?
        regards, tom lane