Re: Number of dimensions of an array parameter

Поиск
Список
Период
Сортировка
От Rod Taylor
Тема Re: Number of dimensions of an array parameter
Дата
Msg-id 1147111397.93283.189.camel@home
обсуждение исходный текст
Ответ на Number of dimensions of an array parameter  (Thomas Hallgren <thomas@tada.se>)
Список pgsql-hackers
> thhal=# CREATE DOMAIN twodims as int[][];
> CREATE DOMAIN

While still not perfect, you can use a CHECK constraint on the domain to
enforce dimension.

It's not perfect because domain constraints are not enforced in all
locations in versions earlier than 8.2. Adding extra explicit casts can
often work around that though.
       ru=# create domain twodims as int[][] check(array_dims(value) =       '[1:2][1:2]');              ru=# select
  array_dims('{{{1,2},{3,4}},{{5,3},{9,9}}}'::twodims);       ERROR:  value for domain twodims violates check
constraint      "twodims_check"              ru=# select array_dims('{{1,2},{3,4}}'::twodims);        array_dims
------------       [1:2][1:2]       (1 row)
 

If you want to be fancy, use something like this:              check(array_dims(value) ~ '^[1:\\d+][1:\\d+]$');


-- 



В списке pgsql-hackers по дате отправления:

Предыдущее
От: "Magnus Hagander"
Дата:
Сообщение: Re: Pragma linking?
Следующее
От: Martijn van Oosterhout
Дата:
Сообщение: Re: Number of dimensions of an array parameter