replace function, what happens afterwards?

Started by MirrorXalmost 12 years ago2 messagesgeneral
Jump to latest
#1MirrorX
mirrorx@gmail.com

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.

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

In reply to: MirrorX (#1)
Re: replace function, what happens afterwards?

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

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general