From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Christophe <xof(at)thebuild(dot)com> |
Cc: | PGSQL General <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: indexes on functions and create or replace function |
Date: | 2008-08-29 01:51:22 |
Message-ID: | 20080829015122.GI8424@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Christophe wrote:
>
> On Aug 28, 2008, at 6:10 PM, Matthew Dennis wrote:
>> I'm not sure I follow. Couldn't you track which statements were
>> prepared that called a function and either reprepare (just like
>> reindex, recheck, etc) or in the case of dropping a function, refuse to
>> drop it because something depends on it?
>
> EXECUTE in PL/pgSQL accepts a string and executes it as a statement.
> (That's different from the SQL-level EXECUTE.) I'm not sure how one
> would track dependencies there.
There's no way at all in the general case (a function name could be
passed as a parameter, for example). I think Matthew is suggesting to
track dependencies at run time, but that seems a recipe for burnt
fingers and an overall performance loss, for what seems a dubious gain.
Also, you have to keep in mind that we support pluggable languages. The
function's source code is just an opaque string. It could be anything.
I doubt anyone uses PL/LOLCODE functions in production, but PL/Java
functions are more likely, and for these we only have a class and method
name, and little else.
--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.
From | Date | Subject | |
---|---|---|---|
Next Message | Christophe | 2008-08-29 02:01:45 | Re: indexes on functions and create or replace function |
Previous Message | Christophe | 2008-08-29 01:15:03 | Re: indexes on functions and create or replace function |