¿Definir nombres de tablas y columnas como argumentos en una función plpgsql?

Debe ser simple, pero estoy haciendo mis primeros pasos en las funciones de Postgres y no puedo encontrar nada que funcione ...

Me gustaría crear una función que modifique una tabla y / o columna y no puedo encontrar la manera correcta de especificar mis tablas y columnas como argumentos en mi función.

Algo como:

CREATE OR REPLACE FUNCTION foo(t table)
RETURNS void AS $
BEGIN
   alter table t add column c1 varchar(20);
   alter table t add column c2 varchar(20);
   alter table t add column c3 varchar(20);
   alter table t add column c4 varchar(20);
END;
$ LANGUAGE PLPGSQL;

select foo(some_table)

En otro caso, me gustaría tener una función que altera una determinada columna de una tabla determinada:

CREATE OR REPLACE FUNCTION foo(t table, c column)
RETURNS void AS $
BEGIN
   UPDATE t SET c = "This is a test";
END;
$ LANGUAGE PLPGSQL;

¿Es posible hacer eso?

Respuestas a la pregunta(1)

Su respuesta a la pregunta