Thread: replace function, what happens afterwards?

replace function, what happens afterwards?

From
MirrorX
Date:
dear all,

i have a question regarding a recent problem that we faced and we are trying
to identify.
let's suppose we have a function A and a function B that in some point calls
function A.

function A->
…..
insert into table1(col1,col2) values ($1,$2)
…..


function B ->
…
select…
update….
insert….
select..
A();
….



Now function A is changed a bit, i.e we add a new argument in the insert
statement that it has (a constant). However this does not affect neither the
arguments of the function, nor the return type. And then function A is being
recompiled (with 'create or replace').

Afterwards, will function B keep working? Or we need to recomplie function B
as well (even if the code won't change)?


i am just trying to understand what is the default behaviour in this
situation


thank you in advance



--
View this message in context:
http://postgresql.1045698.n5.nabble.com/replace-function-what-happens-afterwards-tp5800264.html
Sent from the PostgreSQL - general mailing list archive at Nabble.com.


Re: replace function, what happens afterwards?

From
Raymond O'Donnell
Date:
On 16/04/2014 13:54, MirrorX wrote:
> dear all,
>
> i have a question regarding a recent problem that we faced and we are
> trying to identify. let's suppose we have a function A and a function
> B that in some point calls function A.
>
> function A-> ….. insert into table1(col1,col2) values ($1,$2) …..
>
>
> function B -> … select… update…. insert…. select.. A(); ….
>
>
>
> Now function A is changed a bit, i.e we add a new argument in the
> insert statement that it has (a constant). However this does not
> affect neither the arguments of the function, nor the return type.
> And then function A is being recompiled (with 'create or replace').
>
> Afterwards, will function B keep working? Or we need to recomplie
> function B as well (even if the code won't change)?

No, you don't need to re-create function B - it should keep working fine.

As far as I know, functions aren't "compiled", at least at the point
when you execute CREATE FUNCTION anyway - the text representation of the
code is stored, and then loaded when the function is invoked. I could be
wrong about this - others will know better.

Ray.


--
Raymond O'Donnell :: Galway :: Ireland
rod@iol.ie