On Fri, May 29, 2009 at 5:45 PM, Greg Stark <st...@enterprisedb.com> wrote:
> On Fri, May 29, 2009 at 10:26 PM, Robert Haas <robertmh...@gmail.com> wrote:
>> This sounds quite horrid to me.  The way programming languages solve
>> this problem is they have a flag that either makes certain names not
>> visible from other namespaces, or they provide explicit control over
>> which names get exported.
>
> There are two factors which distinguish this situation from most
> programming languages:
>
> 1) Hopefully these languages you're thinking of are lexically scoped.
> So the search path in effect when the objects are defined decide which
> other objects they reference. In Postgres in many cases we're
> effectively dynamically scoped. If someone calls us with another
> search path we'll pick up other objects we weren't expecting.
>
> 2) Normally programming languages do early binding so as soon as the
> code is parsed references are resolved. You can't later define a new
> function earlier in the search path and have it take over references
> that have were previously referring to some other function.

Good point.  But maybe there's some way of getting some kind of
behavior that is closer to lexical scoping/early binding?  Because the
way it works right now has lousy security implications, beyond being
difficult for search_path management.  Assign a search path to a
schema, that applies to views and functions defined therein?
*brainstorming*

...Robert

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to