Thread: edit function

edit function

From
Rakotomandimby Mihamina
Date:
Hi all,
On a PostGreSQL 8.1 (Debian Etch)

I have a function like this:

CREATE FUNCTION f_active_client(character varying)
        RETURNS character varying
     AS $_$
  DECLARE
   v_modem ALIAS FOR $1;
   v_firstuse BOOLEAN;
   v_admactive BOOLEAN;
   v_codeclt varchar;
BEGIN
    SELECT INTO (...)
         IF FOUND THEN
            (...)
    ELSE
       RETURN 'ERROR';
         END IF;
END;
$_$


I have to insert several IF statements in the "IF FOUND" one.
I wont do it one time, I will insert them one by one.

I cannot stop too much long the PG server (a /etc/init.d restart time
is OK, more is not)

Dumping and the restoring is not possible because of too long downtime.

DELETing CREATing the function is not possible because of dependency.

When looking  at the help, '\h' has no REPLACE FUNCTION.
Only ALTER FUNCTION

How to manage it?

Thank you.

--
       Architecte Informatique chez Blueline/Gulfsat:
    Administration Systeme, Recherche & Developpement
                                    +261 34 29 155 34

Re: edit function

From
Guillaume Lelarge
Date:
Le lundi 7 septembre 2009 à 08:26:27, Rakotomandimby Mihamina a écrit :
> [...]
> I have to insert several IF statements in the "IF FOUND" one.
> I wont do it one time, I will insert them one by one.
>
> I cannot stop too much long the PG server (a /etc/init.d restart time
> is OK, more is not)
>
> Dumping and the restoring is not possible because of too long downtime.
>
> DELETing CREATing the function is not possible because of dependency.
>
> When looking  at the help, '\h' has no REPLACE FUNCTION.
> Only ALTER FUNCTION
>
> How to manage it?
>

You're probably looking for CREATE OR REPLACE.


--
Guillaume.
 http://www.postgresqlfr.org
 http://dalibo.com

Re: edit function

From
John DeSoi
Date:
On Sep 7, 2009, at 2:26 AM, Rakotomandimby Mihamina wrote:

> I have a function like this:
>
> CREATE FUNCTION f_active_client(character varying)
>       RETURNS character varying
>    AS $_$
> DECLARE
>  v_modem ALIAS FOR $1;
>  v_firstuse BOOLEAN;
>  v_admactive BOOLEAN;
>  v_codeclt varchar;
> BEGIN
>     SELECT INTO (...)
>        IF FOUND THEN
>           (...)
>     ELSE
>        RETURN 'ERROR';
>        END IF;
> END;
> $_$
>
>
> I have to insert several IF statements in the "IF FOUND" one.
> I wont do it one time, I will insert them one by one.
>
> I cannot stop too much long the PG server (a /etc/init.d restart
> time is OK, more is not)
>
> Dumping and the restoring is not possible because of too long
> downtime.
>
> DELETing CREATing the function is not possible because of dependency.
>
> When looking  at the help, '\h' has no REPLACE FUNCTION.
> Only ALTER FUNCTION
>
> How to manage it?


Write it exactly as you have above, but replace the first line with:

CREATE OR REPLACE FUNCTION f_active_client(character varying)





John DeSoi, Ph.D.