On Wed, Nov 4, 2009 at 11:23 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> silly8888 <silly8888@gmail.com> writes:
>> create type mytype as (x integer, y integer);
>
>> create table foo(
>> a mytype primary key,
>> b integer
>> );
>
>> create table bar(
>> a mytype references foo
>> );
>
> While that probably ought to work, is there a really good reason that
> you're not doing this with a conventional two-column primary key and
> foreign key? The composite type is going to be exceedingly inefficient,
> not to mention not portable to other DBMSes.
>
> regards, tom lane
>
You are right, the two-column solution is probably better. The only
reason I posted here was to see if I hit a bug (and it seems that I
might have).
BTW the composite might offer some small benefits in this case, namely
when combined with user defined DOMAINs it can simplify CHECK
constraints a lot.