Bạn có thể tìm thấy tất cả các phần phụ thuộc trong danh mục hệ thống pg_depend
.
Điều này trả về tất cả các chức năng tùy thuộc vào loại . I E. không chỉ những người có loại trong RETURNS
mà còn những mệnh đề có kiểu là tham số hàm:
SELECT objid::regproc AS function_name
, pg_get_functiondef(objid) AS function_definition
, pg_get_function_identity_arguments(objid) AS function_args
, pg_get_function_result(objid) AS function_returns
FROM pg_depend
WHERE refclassid = 'pg_type'::regclass
AND refobjid = 'my_type'::regtype -- insert your type name here
AND classid = 'pg_proc'::regclass; -- only find functions
Điều này cũng hoạt động cho các hàm bảng:
...
RETURNS TABLE (foo my_type, bar int)
Sử dụng chức năng thông tin danh mục hệ thống .
Có thể có các phụ thuộc khác (không phải các hàm). Xóa WHERE
cuối cùng điều kiện từ truy vấn của tôi để kiểm tra (và điều chỉnh SELECT
danh sách, rõ ràng).
Và vẫn có khả năng kiểu được sử dụng một cách rõ ràng (ví dụ như kiểu ép kiểu) trong các truy vấn trong thân hàm hoặc trong SQL động. Bạn chỉ có thể xác định các trường hợp sử dụng như vậy bằng cách phân tích cú pháp văn bản của thân hàm. Không có phụ thuộc rõ ràng nào được đăng ký trong hệ thống.
Có liên quan:
- Cách lấy danh sách tham số hàm (để tôi có thể bỏ một hàm)
- DROP FUNCTION mà không biết số lượng / loại tham số?