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
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... |