Thread: Arrays
Hello, I'm trying to use a bidimensional array and I'm having the following problem: students=# UPDATE years SET y_grade[1] = '{2,3,4,5,6,7}'; ERROR: pg_atoi: error in "{2,3,4,5,6,7}": can't parse "{2,3,4,5,6,7}" I've declared y_grade as a bidimensional array (y_grade smallint[][]), but still, I get this when I describe the table: students=# \d years Table "years" Column | Type | Modifiers ------------+------------+---------------------------------------- y_id | integer | not null default nextval('Y_ID'::text) y_year | smallint | y_student | smallint | y_grade | smallint[] | y_absences | smallint | Primary key: years_pkey (notice it's only a onedimensinal array) I don't know if that's how it's supposed to be, but even if it is, my query isn't working. I'm not trying to enlarge the array, I read in the docs you can't do that: students=# select * from years; y_id | y_year | y_student | y_grade | y_absences ------+--------+-----------+-------------------------------+------------ 4 | 1 | 1 | {{0,0,0,0,0,0},{0,0,0,0,0,0}} | (1 row) So, any idea why I'm getting this error?
Ymir <ymir@wolfheart.ro> writes: > I'm trying to use a bidimensional array and I'm having the following > problem: > students=# UPDATE years SET y_grade[1] = '{2,3,4,5,6,7}'; > ERROR: pg_atoi: error in "{2,3,4,5,6,7}": can't parse "{2,3,4,5,6,7}" Not the right subscripts for an array slice. Try it this way: regression=# create table years(y_grade int[]); CREATE regression=# insert into years values('{{1,2,3,4,5,6},{11,22,33,44,55,66}}'); INSERT 164022 1 regression=# select * from years; y_grade ------------------------------------- {{1,2,3,4,5,6},{11,22,33,44,55,66}} (1 row) regression=# update years set y_grade[1][1:6] = '{2,3,4,5,6,7}'; UPDATE 1 regression=# select * from years; y_grade ------------------------------------- {{2,3,4,5,6,7},{11,22,33,44,55,66}} (1 row) > I've declared y_grade as a bidimensional array (y_grade smallint[][]), but > still, I get this when I describe the table: The declaration of the table just says that the column is an array of int; the number of dimensions is not really constrained, any more than the array size is. regards, tom lane