Module: ArSchemaFunctions::Extensions::PostgreSQLAdapter

Defined in:
lib/ar_schema_functions/extensions.rb

Instance Method Summary collapse

Instance Method Details

#functionsObject

rubocop:disable Metrics/MethodLength



41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/ar_schema_functions/extensions.rb', line 41

def functions # rubocop:disable Metrics/MethodLength
  # From https://dataedo.com/kb/query/postgresql/list-user-defined-functions
  exec_query("    select case when l.lanname = 'internal' then p.prosrc\n                else pg_get_functiondef(p.oid)\n                end as definition\n    from pg_proc p\n    left join pg_namespace n on p.pronamespace = n.oid\n    left join pg_language l on p.prolang = l.oid\n    where n.nspname not in ('pg_catalog', 'information_schema')\#{' '}\n      and l.lanname != 'c'\n    order by definition;\n  SQL\nend\n".squish, 'SCHEMA').cast_values