Re: constraint definition on an array column? - Mailing list pgsql-general

From Merlin Moncure
Subject Re: constraint definition on an array column?
Date
Msg-id b42b73150909110851m1c4e88e2kced995798ecd3d69@mail.gmail.com
Whole thread Raw
In response to constraint definition on an array column?  ("Gauthier, Dave" <dave.gauthier@intel.com>)
List pgsql-general
On Fri, Sep 11, 2009 at 10:34 AM, Gauthier, Dave
<dave.gauthier@intel.com> wrote:
> Hi:
>
> Is it possible to define a constraint that checks all elements of an array
> type column?
>
> Example...
>
>
>
> create table foo (asset text, owner_uids text[]);
>
>
>
> I also have a  plperlu function that checks to see if a given uid is valid
> (returns a 0/1).  It’s called validate_uid(text),  This function could be
> modified to handle a list of uids if that was needed.
>
>
>
> I want something like...
>
>
>
> constraint validate_all_owner_uids check (select validate_uid(owner_uid) =
> 1)
>
>
>
> ...but owner_uid is an array, not any one distinct value.
>
>
>
> 1)     Is there a way to pass in a list for the plperlu to evaluate (return
> 0 if any uid is invalid)?
>
> 2)     Is there some sort of syntactical support for defining constraints on
> array columns?

there doesn't have to be.  since a constraint can invoke a function
(preferably immutable), you can do anything you want regarding
validating the array.

merlin

pgsql-general by date:

Previous
From: Raymond O'Donnell
Date:
Subject: Re: return multiple rows
Next
From: erik
Date:
Subject: 8.3.7 server fails to start on Snow Leopard 10.6.1