ne 21. 9. 2025 v 16:59 odesílatel Tom Lane <[email protected]> napsal:

> "David G. Johnston" <[email protected]> writes:
> > I’m surprised that this is how the system works and I agree that either
> we
> > should add this notice or remove the one for create view.  Even more
> > because there is no syntax for directly creating a temporary function -
>
> It is possible to do
>
> CREATE FUNCTION pg_temp.foo() ...
>
> However, then it's not in your search path and you have to write
> "pg_temp.foo" to call it, so this is far from transparent.
>
> The fact that you can't call a temporary function without explicit
> schema qualification is a security decision that is very unlikely
> to get relaxed.  But because of that, temp functions aren't really
> first-class objects, and so I wouldn't be in favor of inventing
> CREATE TEMP FUNCTION.
>
> There's a larger issue here though: a function such as Jim shows
> is a normal function, probably stored in the public schema, and
> by default other sessions will be able to call it.  But it will
> certainly not work as desired for them, since they can't access
> the creating session's temp tables.  It would likely bollix
> a concurrent pg_dump too.  I wonder if we'd be better off to
> forbid creation of such a function altogether.
>

+1

Pavel


>
>                         regards, tom lane
>

Reply via email to