­If I want to change the name of my database schema, I call 
        alter schema my_schema rename to other_schema
However, there is a problem with functions that call other functions in the 
same schema. These functions have a search_path 
        alter function my_schema.function1 set search_path to my_schema
If the name of the schema is changed with "alter schema...", the search path of 
the functions is not changed, so I still have to call the following after 
renaming the schema: 
        alter function other_schema.function1 set search_path to other_schema
This is worse than it seems at first glance, because I need to know which 
functions have a search_path. If my list of these functions is incomplete and I 
therefore do not change the search_path for all functions, there will be an 
error in the schema after renaming the schema.

I am sure that in the vast majority of cases where a function has a 
search_path, this search_path specifies the schema in which the function is 
located, i.e. the function 
        my_schema.function1 
has search_path 
        my_schema
It would therefore be great if you could implement a "magic variable" called 
__function_schema__, which can be set as the search_path of a function and 
which is not evaluated from the outset, but is transferred unchanged to the 
metadata of the function:
        Metadata of function1:
        ...
        search_path: __function_schema__
        ...
Each time the function is executed, the variable value is determined. 
Therefore, the search_path is always correct: as long as the function is in the 
schema my_schema, the search_path __function_schema__ is evaluated to my_schema 
when the function is executed, and as soon as the function is in the schema 
other_schema after the schema has been renamed, the search_path 
__function_schema__ is evaluated to other_schema when the function is executed.
Of course, the implementation could cache the value of __function_schema__ for 
each function and only change it when the schema of the function changes.

Wilma
PS Even though I wrote that I would like to have a "magic variable" called 
__function_schema__, I would of course also be very happy with a name other 
than __function_schema__.
________________________________________________________
Your E-Mail. Your Cloud. Your Office. eclipso Mail Europe. 
https://www.eclipso.de




Reply via email to