Re: RFD: schemas and different kinds of Postgres objects
Bill Studenmund <wrstuden@netbsd.org>
From: Bill Studenmund <wrstuden@netbsd.org>
To: Hiroshi Inoue <Inoue@tpf.co.jp>
Cc: Peter Eisentraut <peter_e@gmx.net>, Tom Lane <tgl@sss.pgh.pa.us>, Stephan Szabo <sszabo@megazone23.bigpanda.com>, PostgreSQL Development <pgsql-hackers@postgreSQL.org>, Fernando Nasser <fnasser@redhat.com>
Date: 2002-01-29T00:27:04Z
Lists: pgsql-hackers
On Mon, 28 Jan 2002, Hiroshi Inoue wrote: > Is *the path* below the same as "search path* in other > postings about this thread ? I think so. I believe the path I've been talking about is the one in step 6 below. Take care, Bill > Maybe Peter's posting isn't the one exactly what I have to > ask but there are too many postings for me to follow. > > regards, > Hiroshi Inoue > > Peter Eisentraut wrote: > > > > Bill Studenmund writes: > > > > > Does SQL'99 say anything about this? > > > > Yes, though, as usual, you have to twist your brain a little to understand > > it. My understanding is that for a function call of the form "foo(a, b)" > > it goes like this: > > > > 1. Find all functions named "foo" in the current database. This is the > > set of "possibly candidate routines". > > > > 2. Drop all routines that you do not have EXECUTE privilege for. This is > > the set of "executable routines". > > > > 3. Drop all routines that do not have compatible parameter lists. This is > > the set of "invocable routines". > > > > 4. Drop all routines whose schema is not in the path. This is the set of > > "candidate routines". > > > > 5. If you have more than one routine left, eliminate some routines > > according to type precedence rules. (We do some form of this, SQL99 > > specifies something different.) This yields the set of "candidate subject > > routines". > > > > 6. Choose the routine whose schema is earliest in the path as the "subject > > routine". > > > > Execute the subject routine. Phew! > > > > This doesn't look glaringly wrong to me, so maybe you want to consider it. > > Please note step 2. > > > > -- > > Peter Eisentraut peter_e@gmx.net >