Re: Anonymous code block with parameters - Mailing list pgsql-hackers

From Andres Freund
Subject Re: Anonymous code block with parameters
Date
Msg-id 20140918114039.GX25887@awork2.anarazel.de
Whole thread Raw
In response to Re: Anonymous code block with parameters  (Pavel Stehule <pavel.stehule@gmail.com>)
Responses Re: Anonymous code block with parameters
Re: Anonymous code block with parameters
Re: Anonymous code block with parameters
List pgsql-hackers
On 2014-09-17 22:17:22 +0200, Pavel Stehule wrote:
> 2014-09-17 22:07 GMT+02:00 Vik Fearing <vik.fearing@dalibo.com>:
> 
> > On 09/16/2014 10:09 AM, Heikki Linnakangas wrote:
> > > On 09/16/2014 10:57 AM, Craig Ringer wrote:
> > >> On 09/16/2014 03:15 PM, Pavel Stehule wrote:
> > >>
> > >>> Why we don't introduce a temporary functions instead?
> > >>
> > >> I think that'd be a lot cleaner and simpler. It's something I've
> > >> frequently wanted, and as Hekki points out it's already possible by
> > >> creating the function in pg_temp, there just isn't the syntax sugar for
> > >> "CREATE TEMPORARY FUNCTION".
> > >>
> > >> So why not just add "CREATE TEMPORARY FUNCTION"?
> > >
> > > Sure, why not.
> >
> > Because you still have to do
> >
> >     SELECT pg_temp.my_temp_function(blah);
> >
> > to execute it.
> >
> 
> this problem should be solvable. I can to use a temporary tables without
> using pg_temp schema.

I fail to see why that is so much preferrable for you to passing
parameter to DO?

1) You need to think about unique names for functions
2) Doesn't work on HOT STANDBYs
3) Causes noticeable amount of catalog bloat
4) Is about a magnitude or two more expensive

So yes, TEMPORARY FUNCTION would be helpful. But it's simply a different
feature.

Greetings,

Andres Freund

-- Andres Freund                       http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training &
Services



pgsql-hackers by date:

Previous
From: Martijn van Oosterhout
Date:
Subject: Re: Anonymous code block with parameters
Next
From: Pavel Stehule
Date:
Subject: Re: Anonymous code block with parameters