Thread: array dimensions, pg_catalog.pg_attribute and the \d command
Hello, just a question regarding multidimensional arrays. When i create an array, its number of dimensions is recorded in pg_catalog.pg_attribute (attndims), but they are not enforced upon insertion, nor is this presented by \d command. (i didn't see any attndims column showing up in the logs) Any reasons why this is so?
Hey Achilleas,
--
// Dmitriy.
2012/2/3 Achilleas Mantzios <achill@matrix.gatewaynet.com>
Hello,
just a question regarding multidimensional arrays.
When i create an array, its number of dimensions is recorded in
pg_catalog.pg_attribute (attndims), but they are not enforced upon insertion,
nor is this presented by \d command. (i didn't see any attndims column showing
up in the logs)
Any reasons why this is so?
According to the documentation
"The current implementation does not enforce the declared number
of dimensions either. Arrays of a particular element type are all
considered to be of the same type, regardless of size or number
of dimensions. So, declaring the array size or number of dimensions
in CREATE TABLE is simply documentation; it does not affect run-time
behavior."
See
http://www.postgresql.org/docs/9.1/static/arrays.html#ARRAYS-DECLARATION
"The current implementation does not enforce the declared number
of dimensions either. Arrays of a particular element type are all
considered to be of the same type, regardless of size or number
of dimensions. So, declaring the array size or number of dimensions
in CREATE TABLE is simply documentation; it does not affect run-time
behavior."
See
http://www.postgresql.org/docs/9.1/static/arrays.html#ARRAYS-DECLARATION
--
// Dmitriy.
On Παρ 03 Φεβ 2012 22:21:49 Dmitriy Igrishin wrote: > Hey Achilleas, > > 2012/2/3 Achilleas Mantzios <achill@matrix.gatewaynet.com> > > > Hello, > > just a question regarding multidimensional arrays. > > When i create an array, its number of dimensions is recorded in > > pg_catalog.pg_attribute (attndims), but they are not enforced upon > > insertion, > > nor is this presented by \d command. (i didn't see any attndims column > > showing > > up in the logs) > > > > Any reasons why this is so? > > According to the documentation > "The current implementation does not enforce the declared number > of dimensions either. Arrays of a particular element type are all > considered to be of the same type, regardless of size or number > of dimensions. So, declaring the array size or number of dimensions > in CREATE TABLE is simply documentation; it does not affect run-time > behavior." > See > http://www.postgresql.org/docs/9.1/static/arrays.html#ARRAYS-DECLARATION Thanx Dmitry.