Как получить список UDF в Redshift?

Есть ли простой способ получить список всех UDF, доступных в Redshift? Более того, я хотел бы найти UDF с параметрами и искать UDF по имени.

Ответ 1

Вы можете запросить таблицу pg_proc чтобы получить все доступные UDF.

Фильтр по имени

Вы можете фильтровать по имени, используя столбец с proname:

SELECT * FROM pg_proc WHERE proname ILIKE '%<name_here>%';

Фильтр по типу параметра

Вы можете фильтровать по типам параметров, используя столбец proargtypes:

SELECT * FROM pg_proc WHERE proargtypes = 1043;

Здесь 1043 - это varchar что можно увидеть, pg_type таблицу pg_type:

SELECT * FROM pg_type WHERE typname ILIKE '%char%';

Фильтровать по имени параметра

Вы также можете фильтровать по имени параметра, используя столбец proargnames:

SELECT * FROM pg_proc WHERE proargnames = ARRAY['foo'];

Рекомендации:

http://docs.aws.amazon.com/redshift/latest/dg/c_join_PG.html

http://www.postgresql.org/docs/8.0/static/catalog-pg-proc.html