From: | Stephan Szabo <sszabo(at)megazone(dot)bigpanda(dot)com> |
---|---|
To: | Ang Chin Han <angch(at)bytecraft(dot)com(dot)my> |
Cc: | <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: CREATE TABLE with a column of type {table name} |
Date: | 2003-07-31 10:56:33 |
Message-ID: | 20030731035231.J12915-100000@megazone.bigpanda.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Thu, 31 Jul 2003, Ang Chin Han wrote:
> In Postgresql 7.3, a datatype can be int, text, etc, and also
> pseudo-types like RECORD, any, etc.
>
> These pseudo types are mainly used in CREATE FUNCTIONs, but what if it's
> used in a CREATE TABLE, esp. when the name of another table is used as a
> datatype?
[...]
>
> -- Hmmm... What if pseudo-types in CREATE TABLEs?
> -- *** THIS IS THE WHAT I'M INTERESTED IN ***
> CREATE TABLE bar(myfoo foo, c int);
>
> -- The only way I can think of to insert values into the table bar:
> SELECT INTO bar SELECT get_foo1(), 1;
You can write casts as well presumably to allow other inputs.
> -- How to retrieve data from bar?
> SELECT * FROM bar;
> ERROR: Cannot display a value of type RECORD
>
> SELECT myfoo.a FROM bar;
> ERROR: Attribute "myfoo.a" not found
However the syntax
select a(myfoo),b(myfoo) from bar
should work.
From | Date | Subject | |
---|---|---|---|
Next Message | Tambet Matiisen | 2003-07-31 11:42:33 | COPY and domains |
Previous Message | Jonathan Mezach | 2003-07-31 10:46:08 | Re: Updating from update trigger |