On 10/22/2012 12:13 PM, Andres Freund wrote:
> On Monday, October 22, 2012 06:08:32 PM Tom Lane wrote:
>> I wrote:
>>> I tested, and indeed this seems to work:
>>> CREATE TABLE t1 (c int[] WHERE EACH ELEMENT REFERENCES t2);
>>>
>>> and it's perfectly sensible from an English-grammar standpoint too.
>>> If we take that, how would we spell the table-constraint case exactly?
>>> Grammatically I'd prefer
>>>
>>> FOREIGN KEY (foo, EACH ELEMENT OF bar) REFERENCES
>> Are people happy with these syntax proposals, or do we need some other
>> color for the bikeshed?
> Except that I'd prefer a WHERE in the table-constraint case as well for
> consistencies sake I am unsurprisingly happy with the proposal.
That would look odd too, especially if the array isn't the last element
in the FK:
FOREIGN KEY (foo, WHERE EACH ELEMENT OF bar, baz) REFERENCES
cheers
andrew