postgres stored procedure
CREATE OR REPLACE FUNCTION public.date_submission(state varchar, created_at date, updated_at date) returns date LANGUAGE plpgsql IMMUTABLE AS $function$ declare response date; begin if (state = 'CREATED' or state = 'PENDING' or state = 'PENDING - RESUBMITTED') then response = updated_at; else response = created_at; end if; return response; end; $function$ select date_submission('PENDING', now()::date, now()::date)
sp help text in postgresql
SELECT n.nspname AS schema ,proname AS fname ,proargnames AS args ,t.typname AS return_type ,d.description ,pg_get_functiondef(p.oid) as definition -- ,CASE WHEN NOT p.proisagg THEN pg_get_functiondef(p.oid) -- ELSE 'pg_get_functiondef() can''t be used with aggregate functions' -- END as definition FROM pg_proc p JOIN pg_type t ON p.prorettype = t.oid LEFT OUTER JOIN pg_description d ON p.oid = d.objoid LEFT OUTER JOIN pg_namespace n ON n.oid = p.pronamespace WHERE NOT p.proisagg AND n.nspname~'<$SCHEMA_NAME_PATTERN>' AND proname~'<$FUNCTION_NAME_PATTERN>'
Source: stackoverflow.com