> How can I use composite types?
> If I create two tables like this:
> create table A ( a int, b int);
> create table D ( a A, b int);
> I would expect to be able to
> insert into D (a.a, a.b, b) values (1,2,3);
> and
> select a.a, a.b, b from D;
> That doesn't work, at least not with postgresql 6.3. Is that the way
> it's supposed to work? What is the proper way to do it?
I'm not sure if this is supported. The old tutorial does not have an
example exactly like this (at least that I could find), but it seems
like it _should_ work, and the backend accepts the syntax.
What you want to do can probably be accomplished with inheritance, but
that only seems to work if you have unique names for more of your
fields:
create table A ( a int, b int);
create table D ( c int) inherits (A);
But, if you try
create table D ( b int) inherits (A);
then the new column in D gets lost without warning!
- Tom