Hi I propose a schema private functions as analogy to Oracle package functions.
My target of this proposal is better isolation generally available top level callable functions from other auxiliary functions. A execution of functions can be little bit more robust due less dependency on SEARCH_PATH. The other significant benefit can come with schema session variables. We can different between three kinds of functions: 1. stored in schema - current implementation - the function has not any special relation to schema, where it is stored. The most important is SEARCH_PATH property 2. global in schema - top level callable functions where access to objects in schema (functions, tables, variables) is preferred - first searching is in schema, second in SEARCH_PATH. This property is related to visibility (search-ability) of database objects only. The access rights are independent. 3. private in schema - second level callable functions where access to objects in schema is preferred. These functions can be called from any private in schema, global in schema or stored in schema functions. These functions can use stored in schema and global in schema functions from other schema. These functions cannot be called from top-level where schema is not locked. The access rights are independent feature - so access can be restricted to some roles for this kind of functions too. Important questions =============== 1. relation to SEARCH_PATH 2. relation to access rights I propose this feature as orthogonal to access rights. I have not a plan to implement it immediately - (any volunteer?). I would to start a discussion and collect requests - and I would to create more complete image of two joined features: schema pinned functions (private, global) and schema session variables. Comments, notes? Regards Pavel