Add search-public.sql
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
WITH defs AS (
|
||||
SELECT
|
||||
'function'::text AS kind,
|
||||
n.nspname AS schema_name,
|
||||
p.oid::regprocedure::text AS object,
|
||||
pg_get_functiondef(p.oid) AS definition
|
||||
FROM pg_proc p
|
||||
JOIN pg_namespace n ON n.oid = p.pronamespace
|
||||
WHERE p.prokind IN ('f', 'p')
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
'view/matview',
|
||||
n.nspname,
|
||||
c.oid::regclass::text,
|
||||
pg_get_viewdef(c.oid)
|
||||
FROM pg_class c
|
||||
JOIN pg_namespace n ON n.oid = c.relnamespace
|
||||
WHERE c.relkind IN ('v', 'm')
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
'trigger',
|
||||
n.nspname,
|
||||
format('%s.%s', t.tgrelid::regclass, t.tgname),
|
||||
pg_get_triggerdef(t.oid)
|
||||
FROM pg_trigger t
|
||||
JOIN pg_class c ON c.oid = t.tgrelid
|
||||
JOIN pg_namespace n ON n.oid = c.relnamespace
|
||||
WHERE NOT t.tgisinternal
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
'default',
|
||||
n.nspname,
|
||||
format('%s.%s', a.attrelid::regclass, a.attname),
|
||||
pg_get_expr(d.adbin, d.adrelid)
|
||||
FROM pg_attrdef d
|
||||
JOIN pg_attribute a ON a.attrelid = d.adrelid AND a.attnum = d.adnum
|
||||
JOIN pg_class c ON c.oid = a.attrelid
|
||||
JOIN pg_namespace n ON n.oid = c.relnamespace
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
'constraint',
|
||||
n.nspname,
|
||||
format('%s.%s', c.conrelid::regclass, c.conname),
|
||||
pg_get_constraintdef(c.oid)
|
||||
FROM pg_constraint c
|
||||
JOIN pg_class cl ON cl.oid = c.conrelid
|
||||
JOIN pg_namespace n ON n.oid = cl.relnamespace
|
||||
WHERE c.conrelid <> 0
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
'index',
|
||||
n.nspname,
|
||||
i.indexrelid::regclass::text,
|
||||
pg_get_indexdef(i.indexrelid)
|
||||
FROM pg_index i
|
||||
JOIN pg_class c ON c.oid = i.indexrelid
|
||||
JOIN pg_namespace n ON n.oid = c.relnamespace
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
'rule',
|
||||
n.nspname,
|
||||
format('%s.%s', r.ev_class::regclass, r.rulename),
|
||||
pg_get_ruledef(r.oid)
|
||||
FROM pg_rewrite r
|
||||
JOIN pg_class c ON c.oid = r.ev_class
|
||||
JOIN pg_namespace n ON n.oid = c.relnamespace
|
||||
)
|
||||
SELECT
|
||||
kind,
|
||||
schema_name,
|
||||
object,
|
||||
definition
|
||||
FROM defs
|
||||
WHERE definition LIKE '%public.%'
|
||||
OR definition LIKE '%"public".%'
|
||||
ORDER BY schema_name, kind, object;
|
||||
Reference in New Issue
Block a user