select
p.proname as function_name,
case
when strpos(lower(p.prosrc), 'npo_agreement_id') > 0 then
substring(
p.prosrc
from greatest(strpos(lower(p.prosrc), 'npo_agreement_id') - 300, 1)
for 900
)
else
substring(
p.prosrc
from greatest(strpos(lower(p.prosrc), 'npo_pension_agreement') - 300, 1)
for 900
)
end as source_fragment
from pg_proc p
join pg_namespace n
on n.oid = p.pronamespace
where n.nspname = 'ourpension'
and (
p.prosrc ilike '%npo_agreement_id%'
or p.prosrc ilike '%npo_pension_agreement%'
)
order by p.proname;