Search Postgresql Archives

Postgres doesn't seem to enforce array dimensions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



What's up with Postgres and array dimensions? The table definition doesn't even store how many dimensions the array should be.

[local]:playpen=> create table arrtest(
playpen(>    id SERIAL PRIMARY KEY,
playpen(>   arrone int[],
playpen(>   arrtwo int[][]
playpen(> );
NOTICE: CREATE TABLE will create implicit sequence "arrtest_id_seq" for serial column "arrtest.id" NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "arrtest_pkey" for table "arrtest"
CREATE TABLE
Time: 22.688 ms
[local]:playpen=> INSERT into arrtest (arrone) VALUES (null); --should work, and does
INSERT 0 1
Time: 3.798 ms
[local]:playpen=> INSERT into arrtest (arrone) VALUES ( ARRAY[1,2]);
INSERT 0 1
Time: 0.668 ms
[local]:playpen=> INSERT into arrtest (arrone) VALUES ( ARRAY[[3,4]]); --should not work
INSERT 0 1
Time: 0.715 ms
[local]:playpen=> INSERT into arrtest (arrtwo) VALUES ( ARRAY[5,6]); --should not work
INSERT 0 1
Time: 0.671 ms
[local]:playpen=> INSERT into arrtest (arrtwo) VALUES ( ARRAY[[7,8]]);
INSERT 0 1
Time: 0.704 ms
[local]:playpen=> select * from arrtest;
 id | arrone  | arrtwo
----+---------+---------
  1 |         |
  2 | {1,2}   |
  3 | {{3,4}} |
  4 |         | {5,6}
  5 |         | {{7,8}}
(5 rows)

Time: 1.217 ms
[local]:playpen=>  \d arrtest
                          Table "public.arrtest"
 Column |   Type    |                      Modifiers
--------+-----------+------------------------------------------------------
 id     | integer   | not null default nextval('arrtest_id_seq'::regclass)
 arrone | integer[] |
 arrtwo | integer[] |
Indexes:
    "arrtest_pkey" PRIMARY KEY, btree (id)

[local]:playpen=> select version();
version
-----------------------------------------------------------------------------------------------------------
PostgreSQL 8.4.3 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.4.6 20060404 (Red Hat 3.4.6-9), 32-bit

--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux