Received: from cygnus.com (runyon.sfbay.redhat.com [205.180.230.5] (may be forged)) by postgresql.org (8.11.3/8.11.4) with SMTP id g0NIDgl43812 for ; Wed, 23 Jan 2002 13:13:44 -0500 (EST) (envelope-from fnasser@redhat.com) Received: from redhat.com (totem.toronto.redhat.com [172.16.14.242]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id KAA26768; Wed, 23 Jan 2002 10:12:37 -0800 (PST) Message-ID: <3C4EFD15.882B0785@redhat.com> Date: Wed, 23 Jan 2002 13:12:37 -0500 From: Fernando Nasser Organization: Red Hat , Inc. - Toronto X-Mailer: Mozilla 4.78 [en] (X11; U; Linux 2.4.7-10smp i686) X-Accept-Language: en MIME-Version: 1.0 To: Tom Lane CC: Zeugswetter Andreas SB SD , pgsql-hackers@postgresql.org Subject: Re: Schemas vs. PostQUEL: resolving qualified identifiers References: <46C15C39FEB2C44BA555E356FBCD6FA42128D9@m0114.s-mxs.net> <2521.1011798379@sss.pgh.pa.us> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Archive-Number: 200201/1069 X-Sequence-Number: 18051 Tom Lane wrote: > > "Zeugswetter Andreas SB SD" writes: > > What I do not like at all is the notion that "table" == "table".* . > > (IIRC there has already been some discussion where I objected to that.) > > > "table" as function parameter imho passes an object of type "table" > > to the function. This involves type checking, and that the function only > > has one argument. > > > "table".* to the contrary is not an object, but one object (one parameter) > > per table column. This is imho easier to understand, since select table.* > > also does it like that. Thus calling func(table.*) should imho rather be > > mapped to func (table.col1, table.col2 ...). > > Okay, but then how will you refer unambiguously to the rowtype object? > If you write func(schema.tab) the system will misinterpret it as > func(tab.col) --- which, in the worst case, might fail to fail because > there actually is such a column. We have to make some compromises here. > I'm not all that thrilled with foo.* for rowtype either, but you haven't > offered a workable alternative. > What about casting with the keyord ROW? func(ROW table) always refers to the row-type of table "table" even if there is a column called "table". -- Fernando Nasser Red Hat - Toronto E-Mail: fnasser@redhat.com 2323 Yonge Street, Suite #300 Toronto, Ontario M4P 2C9