diff options
author | Lele Gaifax <lele@metapensiero.it> | 2018-07-24 17:47:35 +0200 |
---|---|---|
committer | Lele Gaifax <lele@metapensiero.it> | 2018-07-25 08:13:17 +0200 |
commit | 05ec05c4cb4f3e28ac258190f02dd8b98c49ddb6 (patch) | |
tree | 37a97971fa08bc7b734d78baa379538b5b739458 /pgcli/pgexecute.py | |
parent | 6a18b6d0e3fdaa569e15dcdadcb4cb41b3e1f4f0 (diff) |
Adapt the query used to get functions metadata to PG11
This fixes #919.
Diffstat (limited to 'pgcli/pgexecute.py')
-rw-r--r-- | pgcli/pgexecute.py | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/pgcli/pgexecute.py b/pgcli/pgexecute.py index 0d55ab01..8bcc5c63 100644 --- a/pgcli/pgexecute.py +++ b/pgcli/pgexecute.py @@ -618,7 +618,25 @@ class PGExecute(object): def functions(self): """Yields FunctionMetadata named tuples""" - if self.conn.server_version > 90000: + if self.conn.server_version >= 110000: + query = ''' + SELECT n.nspname schema_name, + p.proname func_name, + p.proargnames, + COALESCE(proallargtypes::regtype[], proargtypes::regtype[])::text[], + p.proargmodes, + prorettype::regtype::text return_type, + p.prokind = 'a' is_aggregate, + p.prokind = 'w' is_window, + p.proretset is_set_returning, + pg_get_expr(proargdefaults, 0) AS arg_defaults + FROM pg_catalog.pg_proc p + INNER JOIN pg_catalog.pg_namespace n + ON n.oid = p.pronamespace + WHERE p.prorettype::regtype != 'trigger'::regtype + ORDER BY 1, 2 + ''' + elif self.conn.server_version > 90000: query = ''' SELECT n.nspname schema_name, p.proname func_name, |