Thread: Create temporary function
I have recently run across situations that might benefit from the ability to create a temporary function. One situation is where periodic processing would benefit from server-side functions but the processing is run rarely (say monthly or annually) and the requirements for the function may change. This is relatively easily handled by a CREATE OR REPLACE..run..DROP FUNCTION but CREATE TEMPORARY FUNCTION would be cleaner. The other is where it would be nice for a client to see an isolated individual copy of a function. For me both of the above are minor nice-to-haves. I have no idea how difficult this would be to implement but in the spirit of brainstorming, I thought I'd throw it out to see if anyone else thinks it is a useful concept. Cheers, Steve
Steve Crawford <scrawford@pinpointresearch.com> writes: > I have recently run across situations that might benefit from the > ability to create a temporary function. You can do that today, as long as you don't mind schema-qualifying uses of the function: regression=# create function pg_temp.tfunc(int) returns int as regression-# $$ select $1 + 1 $$ language sql; CREATE FUNCTION regression=# select pg_temp.tfunc(42); tfunc ------- 43 (1 row) Without the qualification, the function won't be found, even if you put pg_temp into your search path explicitly. That's intentional because of the risk of trojan horses ... regards, tom lane
Tom Lane wrote: > Steve Crawford <scrawford@pinpointresearch.com> writes: > >> I have recently run across situations that might benefit from the >> ability to create a temporary function. >> > > You can do that today, as long as you don't mind schema-qualifying > uses of the function: > > regression=# create function pg_temp.tfunc(int) returns int as > regression-# $$ select $1 + 1 $$ language sql; > Excellent. I've submitted this as a comment to the docs for the next time someone googles "CREATE TEMPORARY FUNCTION". Cheers, Steve