On Fri, 13 Mar 1998, Thomas G. Lockhart wrote:
> > 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've just tried it here, and it seems that the value to insert into D is
the OID of a row in table A.
> 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!
This would give a table based on the parent table, but I think he was
trying to use table D to refer to values in table A _as_ a type.
[I may be wrong here, but that's what it looks like]
--
Peter T Mount petermount@earthling.net or pmount@maidast.demon.co.uk
Main Homepage: http://www.demon.co.uk/finder
Work Homepage: http://www.maidstone.gov.uk Work EMail: peter@maidstone.gov.uk