On Mon, Sep 21, 2009 at 3:08 PM, Alvaro Herrera <alvhe...@commandprompt.com> wrote: > David Fetter escribió: >> On Mon, Sep 21, 2009 at 01:06:17PM -0400, Alvaro Herrera wrote: > >> > The fine manual saith >> > >> > You may have multiple "END" blocks within a file--they will >> > execute in reverse order of definition; that is: last in, first >> > out (LIFO). >> > >> > But then, why would we care? We just call the destructor and Perl >> > ensures that the blocks are called in the right order. >> >> This is not quite what I meant. Let's say we have two or more different >> PL/Perl functions executed over the course of a backend. Which one's >> END block gets executed last? > > I think the manual is quite clear on this point. It talks about "files" > which we don't have, but other than that it doesn't seem like there > shouldn't be any problem. > > Now that I think about it, this only affects loaded modules, not the > plperl functions themselves, right? I mean, you can't define an END > block inside a function.
You might think that, but it turns out the world of Perl is crazier than the ordinary mind can fathom. $ perl -e 'sub foo { END { print "hi\n" } }' hi ...Robert -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs