Re: RFD: schemas and different kinds of Postgres objects

From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: Bill Studenmund <wrstuden(at)netbsd(dot)org>
Cc: Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, PostgreSQL Development <pgsql-hackers(at)postgreSQL(dot)org>, Fernando Nasser <fnasser(at)redhat(dot)com>
Subject: Re: RFD: schemas and different kinds of Postgres objects
Date: 2002-01-24 05:28:16
Message-ID: Pine.LNX.4.30.0201240003120.686-100000@peter.localdomain
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

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(at)gmx(dot)net

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Teodor Sigaev 2002-01-24 09:25:48 Re: Checking for undefined in Perl interface code?
Previous Message Christopher Kings-Lynne 2002-01-24 05:10:06 Re: Query taking a long time...