Re: [SQL] Function definitions - batch update

2012-02-21 Thread Tom Lane
Marcin Krawczyk jankes...@gmail.com writes:
 I've come across a situation when I need to add some constant code to all
 functions in my database. Does anyone know a way to batch update all
 definitions ? I've got like 500 functions so doing it one by one will be
 time consuming.

If you're feeling like a DBA cowboy, become superuser and issue a direct
UPDATE against the prosrc column of pg_proc, being careful not to update
rows that aren't the functions you want to hit.

Slightly saner would be to read pg_proc and construct CREATE OR REPLACE
FUNCTION commands that you then EXECUTE.  The latter, if not done as
superuser, would at least ensure you didn't accidentally break any
functions you don't own.

In either case, I'd practice against a test copy of the database before
doing this live ...

regards, tom lane

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


Re: [SQL] Function definitions - batch update

2012-02-21 Thread Marcin Krawczyk
Thanks for the hints, I'll give it a try.


pozdrowienia
mk


2012/2/21 Tom Lane t...@sss.pgh.pa.us

 Marcin Krawczyk jankes...@gmail.com writes:
  I've come across a situation when I need to add some constant code to all
  functions in my database. Does anyone know a way to batch update all
  definitions ? I've got like 500 functions so doing it one by one will be
  time consuming.

 If you're feeling like a DBA cowboy, become superuser and issue a direct
 UPDATE against the prosrc column of pg_proc, being careful not to update
 rows that aren't the functions you want to hit.

 Slightly saner would be to read pg_proc and construct CREATE OR REPLACE
 FUNCTION commands that you then EXECUTE.  The latter, if not done as
 superuser, would at least ensure you didn't accidentally break any
 functions you don't own.

 In either case, I'd practice against a test copy of the database before
 doing this live ...

regards, tom lane