Thread: table as field type??
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
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
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.