Gibt es eine einfache Möglichkeit, die Liste aller UDFs, die in Redshift verfügbar sind, zu erhalten? Außerdem möchte ich UDFs mit Parametertypen finden und nach UDFs nach Namen suchen.Wie erhalte ich eine Liste von UDFs in Redshift?
9
A
Antwort
10
Sie können die Tabelle pg_proc abfragen, um alle UDFs abzurufen.
select * from pg_proc where proname ilike '%<name_here>%'
Sie durch Parametertypen durch Angabe der Argument Parametertypen in der where-Klausel thusly filtern -
select * from pg_proc where proargtypes=1043
wo 1043 ist varchar wie aus der pg_type Tabelle ersichtlich -
select * from pg_type where typname ilike '%char%'
Sie können auch spec ify die Parameternamen in der where-Klausel -
select * from pg_proc where proargnames = array['foo']
Referenzen:
http://docs.aws.amazon.com/redshift/latest/dg/c_join_PG.html http://www.postgresql.org/docs/8.0/static/catalog-pg-proc.html
Das war wirklich nützlich. Seltsamerweise verlangt mein SQL-Client (Postico), dass ich explizit die oids auswähle, um sie so zu sehen: 'select oid, * from pg_type;'. Nicht wirklich sicher warum, aber es hat mich eine ganze Weile verwirrt. – killthrush