Обсуждение: table as field type??

Поиск
Список
Период
Сортировка

table as field type??

От
David Diller
Дата:
I noticed that it's possible to have a table as a field type.
For example:
create table foo (val1  integer);
create table bar (val2 foo);
although the following doesn't work: create table bar2 (val2 foo[]);

val2 in table bar ends up as an int4, designed for storing an oid from
table foo.
Is there a way to perform a query on bar that will return values from table
foo (i.e., val1)?

Thanks,

David


Re: table as field type??

От
Tod McQuillin
Дата:
On Tue, 3 Oct 2000, David Diller wrote:

> I noticed that it's possible to have a table as a field type.
> For example:
> create table foo (val1  integer);
> create table bar (val2 foo);
> 
> val2 in table bar ends up as an int4, designed for storing an oid from
> table foo.
> Is there a way to perform a query on bar that will return values from table
> foo (i.e., val1)?

I didn't know you could use a table name as a type either.  I thought
something like this might join the tables:

select val1 from foo, bar where bar.val2::oid = foo.oid ;

But I get "ERROR:  Cannot cast type 'foo' to 'oid'"

You can't seem to cast an oid into a foo either.
-- 
Tod McQuillin





Re: table as field type??

От
Дата:
On Wed, 4 Oct 2000, Tod McQuillin wrote:

> > I noticed that it's possible to have a table as a field type.
> > For example:
> > create table foo (val1  integer);
> > create table bar (val2 foo);
> > 
> > val2 in table bar ends up as an int4, designed for storing an oid from
> > table foo.
> > Is there a way to perform a query on bar that will return values from table
> > foo (i.e., val1)?
> 
> I didn't know you could use a table name as a type either.  I thought
> something like this might join the tables:
> 
> select val1 from foo, bar where bar.val2::oid = foo.oid ;
> 
> But I get "ERROR:  Cannot cast type 'foo' to 'oid'"
> 
> You can't seem to cast an oid into a foo either.

Don't you need to use CREATE TYPE to use a new type in this fashion?

Brett W. McCoy                                             http://www.chapelperilous.net
---------------------------------------------------------------------------
You are going to have a new love affair.