constraint definition on an array column?
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?
Thanks in Advance!
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