Yields FunctionMetadata named tuples
(self)
| 702 | yield ForeignKey(*row) |
| 703 | |
| 704 | def functions(self): |
| 705 | """Yields FunctionMetadata named tuples""" |
| 706 | |
| 707 | if self.conn.info.server_version >= 110000: |
| 708 | query = """ |
| 709 | SELECT n.nspname schema_name, |
| 710 | p.proname func_name, |
| 711 | p.proargnames, |
| 712 | COALESCE(proallargtypes::regtype[], proargtypes::regtype[])::text[], |
| 713 | p.proargmodes, |
| 714 | prorettype::regtype::text return_type, |
| 715 | p.prokind = 'a' is_aggregate, |
| 716 | p.prokind = 'w' is_window, |
| 717 | p.proretset is_set_returning, |
| 718 | d.deptype = 'e' is_extension, |
| 719 | pg_get_expr(proargdefaults, 0) AS arg_defaults |
| 720 | FROM pg_catalog.pg_proc p |
| 721 | INNER JOIN pg_catalog.pg_namespace n |
| 722 | ON n.oid = p.pronamespace |
| 723 | LEFT JOIN pg_depend d ON d.objid = p.oid and d.deptype = 'e' |
| 724 | WHERE p.prorettype::regtype != 'trigger'::regtype |
| 725 | ORDER BY 1, 2 |
| 726 | """ |
| 727 | elif self.conn.info.server_version > 90000: |
| 728 | query = """ |
| 729 | SELECT n.nspname schema_name, |
| 730 | p.proname func_name, |
| 731 | p.proargnames, |
| 732 | COALESCE(proallargtypes::regtype[], proargtypes::regtype[])::text[], |
| 733 | p.proargmodes, |
| 734 | prorettype::regtype::text return_type, |
| 735 | p.proisagg is_aggregate, |
| 736 | p.proiswindow is_window, |
| 737 | p.proretset is_set_returning, |
| 738 | d.deptype = 'e' is_extension, |
| 739 | pg_get_expr(proargdefaults, 0) AS arg_defaults |
| 740 | FROM pg_catalog.pg_proc p |
| 741 | INNER JOIN pg_catalog.pg_namespace n |
| 742 | ON n.oid = p.pronamespace |
| 743 | LEFT JOIN pg_depend d ON d.objid = p.oid and d.deptype = 'e' |
| 744 | WHERE p.prorettype::regtype != 'trigger'::regtype |
| 745 | ORDER BY 1, 2 |
| 746 | """ |
| 747 | elif self.conn.info.server_version >= 80400: |
| 748 | query = """ |
| 749 | SELECT n.nspname schema_name, |
| 750 | p.proname func_name, |
| 751 | p.proargnames, |
| 752 | COALESCE(proallargtypes::regtype[], proargtypes::regtype[])::text[], |
| 753 | p.proargmodes, |
| 754 | prorettype::regtype::text, |
| 755 | p.proisagg is_aggregate, |
| 756 | false is_window, |
| 757 | p.proretset is_set_returning, |
| 758 | d.deptype = 'e' is_extension, |
| 759 | NULL AS arg_defaults |
| 760 | FROM pg_catalog.pg_proc p |
| 761 | INNER JOIN pg_catalog.pg_namespace n |
no test coverage detected