Thread: Possible mistake in new array syntax
The documentation says the following is allowed: INSERT INTO sal_emp VALUES ('Bill', ARRAY[10000, 10000, 10000, 10000], ARRAY[['meeting', 'lunch'], ['','']]); I cannot find justification for this in the standard. According to my reading, it should be INSERT INTO sal_emp VALUES ('Bill', ARRAY[10000, 10000, 10000, 10000], ARRAY[ARRAY['meeting', 'lunch'], ARRAY['','']]); -- Peter Eisentraut peter_e@gmx.net
Peter Eisentraut wrote: > The documentation says the following is allowed: > > INSERT INTO sal_emp > VALUES ('Bill', > ARRAY[10000, 10000, 10000, 10000], > ARRAY[['meeting', 'lunch'], ['','']]); > > I cannot find justification for this in the standard. According to my > reading, it should be > > INSERT INTO sal_emp > VALUES ('Bill', > ARRAY[10000, 10000, 10000, 10000], > ARRAY[ARRAY['meeting', 'lunch'], ARRAY['','']]); > This parallels my question on the last post. I don't see any justification for multidimensional arrays at all, so my thought was that we have a free hand to define it. It seemed much nicer to write: ARRAY[[[[[[1]]]]]] for a 6 dimensional array, than this: ARRAY[ARRAY[ARRAY[ARRAY[ARRAY[ARRAY[1]]]]]] and actually, both do work: regression=# select ARRAY[ARRAY[ARRAY[ARRAY[ARRAY[ARRAY[1]]]]]]; array --------------- {{{{{{1}}}}}} (1 row) regression=# select ARRAY[[[[[[1]]]]]]; array --------------- {{{{{{1}}}}}} (1 row) Joe
Peter Eisentraut <peter_e@gmx.net> writes: > The documentation says the following is allowed: > INSERT INTO sal_emp > VALUES ('Bill', > ARRAY[10000, 10000, 10000, 10000], > ARRAY[['meeting', 'lunch'], ['','']]); > I cannot find justification for this in the standard. According to my > reading, it should be > INSERT INTO sal_emp > VALUES ('Bill', > ARRAY[10000, 10000, 10000, 10000], > ARRAY[ARRAY['meeting', 'lunch'], ARRAY['','']]); If it's an extension, it seems like a pretty reasonable one ... regards, tom lane