Thread: array dimensions, pg_catalog.pg_attribute and the \d command

array dimensions, pg_catalog.pg_attribute and the \d command

From
Achilleas Mantzios
Date:
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?


Re: array dimensions, pg_catalog.pg_attribute and the \d command

From
Dmitriy Igrishin
Date:
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

--
// Dmitriy.


Re: array dimensions, pg_catalog.pg_attribute and the \d command

From
Achilleas Mantzios
Date:
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.