Passing the table name as a function argument in PLPGSQL - Mailing list pgsql-novice

From Vincent Ficet
Subject Passing the table name as a function argument in PLPGSQL
Date
Msg-id 4DF70D30.90303@bull.net
Whole thread Raw
Responses Re: Passing the table name as a function argument in PLPGSQL  (Andreas Kretschmer <akretschmer@spamfence.net>)
List pgsql-novice
Hello,


Is it possible to pass the name of the table to update to a given function ?

For example, how can I do something like:

CREATE FUNCTION compute_ipaddr(CHARACTER VARYING, INET)
    AS $_$
DECLARE
   tbl_name ALIAS FOR $1;
   module_ipaddr ALIAS FOR $2;
BEGIN
 UPDATE tbl_name SET ipaddr = module_ipaddr  ....

END;
$_$
    LANGUAGE PLPGSQL;


Since this does not work, I have to do

IF tbl_name = 'controller' THEN
  UPDATE controller SET ipaddr = module_ipaddr ...
ELSE IF tbl_name = 'server' THEN
  UPDATE server SET ipaddr = module_ipaddr ...
[ ...]


Is there a technique to pass the table name and so make the code more
generic ?

Thanks for your help

Vincent






pgsql-novice by date:

Previous
From: "Jean-Yves F. Barbier"
Date:
Subject: Re: permissions PB [SOLVED]
Next
From: Maalini Samuganardan
Date:
Subject: Scheduling autovacuum