Return-Path: mao
Received: by postgres.Berkeley.EDU (5.61/1.29)
	id AA15425; Thu, 17 Dec 92 16:45:44 -0800
Message-Id: <9212180045.AA15425@postgres.Berkeley.EDU>
From: <mao@postgres.berkeley.edu>
Subject: Re: Future complex type attributes
To: postgres@postgres.berkeley.edu
Sender: pg_adm@postgres.berkeley.edu
In-Reply-To: Your message of Thu, 17 Dec 92 14:07:46 PST.
             <9212172207.AA14318@postgres.Berkeley.EDU> 
Date: Thu, 17 Dec 92 16:48:12 PST

In message <9212172207.AA14318@postgres.Berkeley.EDU> you write:

> The release notes for version 4.0 state:
> 
>        As a side effect of the improved  support  for  func-
>     tions,  it  is  not  possible in Version 4.0 to create a
>     relation which has an attribute that  is  of  a  complex
>     (tuple)  type.   For  example, the addattr command shown
>     above is illegal in this release of POSTGRES, since  the
>     type  of the attribute being added is person, and person
>     is a class.  Support for  attributes  of  complex  types
>     will be reintroduced in a future release of POSTGRES.
> 
> I wonder if someone could expand on this statement a bit.

here's a translation:

we screwed up and accidentally removed support for nested complex types
in a furious push to get functions working just before the 4.0 release date.
adding support for postquel functions required several internal data
structures to be redesigned.  one of the structures lost an element that
was required for support of nested complex types in the process.

note that you can define postquel functions (methods) on classes, and
that these functions can return complex types.

> I believe
> not being able to state complex types directly to be confusing, 
> especially considering the following articles:
> 
>    [...]

there is not, and has never been, any intention to withdraw support
for these.  we intend to provide the services described in the papers
you cite.  we're furiously working to reintroduce this support at
present.

> PS  What is type "regproc"?

internally, it's a four-byte quantity that is the object id of some
tuple in the pg_proc table.  conceptually, it's a registered procedure;
postgres searches the pg_proc table for the supplied object id internally,
and uses the procedure's name in its in and out functions.

					mike
