Re: [QUESTIONS] using composite types

From: "Thomas G(dot) Lockhart" <lockhart(at)alumni(dot)caltech(dot)edu>
To: Brian Grossman <brian(at)softhome(dot)net>
Cc: pgsql-questions(at)postgresql(dot)org, Postgres Hackers List <hackers(at)postgresql(dot)org>
Subject: Re: [QUESTIONS] using composite types
Date: 1998-03-13 15:37:22
Message-ID: 350952B2.ACEED945@alumni.caltech.edu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> 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

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message A. R. Van Hook 1998-03-13 15:38:21 group control
Previous Message Thomas G. Lockhart 1998-03-13 15:04:21 Re: [HACKERS] Keyword